ttk-app-core
Version:
enterprise develop framework
87 lines (75 loc) • 2.44 kB
JavaScript
/**
* mock.js 提供应用截获ajax请求,为脱离后台测试使用
* 模拟查询更改内存中mockData,并返回数据
*/
import { fetch } from 'edf-utils'
import moment from 'moment'
const mockData = fetch.mockData
function initPersons() {
if (!mockData.persons) {
mockData.persons = []
for (let i = 0; i < 200; i++) {
mockData.persons.push({
id: i,
name: '曹操' + (i + 1),
sex: i % 2 + '',
birthday: `1980-${i % 11 + 1}-${i % 28 + 1}`,
mobile: '18910888' + (100 + i),
department: undefined,
address: '北京海淀区北清路' + (i + 1) + '号'
})
}
}
}
function initDepartments() {
if (!mockData.departments) {
mockData.departments = []
for (let i = 0; i < 5; i++) {
mockData.departments.push({
id: i,
code: '00' + (i + 1),
name: '部门' + (i + 1),
})
}
}
}
fetch.mock('/v1/person/query', (option) => {
initPersons()
initDepartments()
const { pagination, filter } = option
var data = mockData.persons
if (filter) {
if (filter.name)
data = data.filter(o => o.name.indexOf(filter.name) != -1)
if (filter.sex)
data = data.filter(o => o.sex == filter.sex)
if (filter.birthdayRange && filter.birthdayRange.length == 2) {
data = data.filter(o => moment(o.birthday).isAfter(filter.birthdayRange[0]) && moment(o.birthday).isBefore(filter.birthdayRange[1]))
}
}
var current = pagination.current
var pageSize = pagination.pageSize
var start = (current - 1) * pageSize
var end = current * pageSize
start = start > data.length - 1 ? 0 : start
end = start > data.length - 1 ? pageSize : end
current = start > data.length - 1 ? 1 : current
var ret = {
result: true,
value: {
pagination: { current, pageSize, total: data.length },
list: []
}
}
for (let j = start; j < end; j++) {
if (data[j])
ret.value.list.push(data[j])
}
ret.value.list = ret.value.list.map(o => {
return {
...o,
department: o.department ? mockData.departments.find(d => d.code == o.department).name : o.department
}
})
return ret
})