isun
Version:
快速创建vue项目
102 lines (93 loc) • 2.7 kB
JavaScript
import { Result, Page } from './entity'
const _ = require('lodash')
const responseBody = Result
export function isIE () {
const bw = window.navigator.userAgent
const compare = (s) => bw.indexOf(s) >= 0
const ie11 = (() => 'ActiveXObject' in window)()
return compare('MSIE') || ie11
}
export const builder = (data, msg = '操作成功', code = 200, headers = {}) => {
responseBody.data = data
if (msg !== undefined && msg !== null) {
responseBody.msg = msg
}
if (code !== undefined && code !== 0) {
responseBody.code = code
}
if (headers !== null && typeof headers === 'object' && Object.keys(headers).length > 0) {
responseBody._headers = headers
}
return responseBody
}
export const getQueryParameters = (options) => {
const url = options.url
const search = url.split('?')[1]
if (!search) {
return {}
}
return JSON.parse('{"' + decodeURIComponent(search)
.replace(/"/g, '\\"')
.replace(/&/g, '","')
.replace(/=/g, '":"') + '"}')
}
export const getBody = (options) => {
return options.body && JSON.parse(options.body)
}
/**
* @title 获取分页数据
* @param data 数据源
* @param current 页码
* @param size 分页数
* @return { list, current, pages, size, total }
*/
export const PageBuilder = (data, current, size, msg = '操作成功', code = 200) => {
let daces = Page
if (!data.length || data.length === 0) {
daces = {
msg: msg,
code: code,
current: Number(current),
size: Number(size),
data: [],
pages: 0,
total: 0
}
} else {
daces = {
msg: msg,
code: code,
current: Number(current),
size: Number(size),
pages: Math.ceil(data.length / size),
total: data.length,
data: _.chunk(data, size)[current - 1]
}
}
return daces
}
/**
* @title 新增数据
* @param data 数据源
* @param params 新增的数据
* @return { data }
*/
export const addData = (data, params) => {
const _data = [...data]
_data.unshift(params)
return _data
}
/**
* @title 根据ID更新数据
* @param data 数据源
* @param id ID值
* @param params 需要更新的数据
* @return { data }
*/
export const updateData = (data, id, params) => {
if (!data.length) return
const _data = [...data]
const index = _data.findIndex(item => item.id === id)
_data[index] = { ..._data[index], ...params }
return _data
}