blob: 5eecdd2362508eae8cb2537832ae34501fcae6d4 [file] [log] [blame]
huibing.xie1f1606f2018-08-20 15:46:55 +08001import Mock from 'mockjs'
2import { param2Obj, parseTime } from '@/utils'
huibing.xiec95b6a22018-08-29 14:15:43 +08003import dic from './dictionary'
huibing.xie1f1606f2018-08-20 15:46:55 +08004
5const deptList = Mock.mock({
6 'list|26': [{
7 'id': '@increment',
huibing.xiec95b6a22018-08-29 14:15:43 +08008 'code': '000@id',
9 'name|1': ['教育学院', '经管学院', '人文学院', '数学学院', '计算机学院', '电子学院', '电气学院', '生命科学院'],
10 'abbreviation': '@cword(3, 5)',
11 'enName': '@word(6, 10)',
12 'enable|1': ['启用', '未启用'],
13 'classCode|1': ['院系', '部门'],
14 'createDate': '@Date'
huibing.xie1f1606f2018-08-20 15:46:55 +080015 }]
16}).list
17
18export default{
huibing.xiec95b6a22018-08-29 14:15:43 +080019 getPage: config => {
20 const { code, name, enable, classCode, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
huibing.xie1f1606f2018-08-20 15:46:55 +080021 const mockList = deptList.filter(item => {
huibing.xiec95b6a22018-08-29 14:15:43 +080022 if (code && item.code !== code) return false
23 if (name && item.name !== name) return false
24 if (enable && item.enable !== enable) return false
25 if (classCode && item.classCode !== classCode) return false
huibing.xie1f1606f2018-08-20 15:46:55 +080026 return true
27 })
28
29 const pageList = mockList.filter((item, index) => index < pageSize * pageIndex && index >= pageSize * (pageIndex - 1))
30 return {
huibing.xie99536f52018-08-29 14:30:32 +080031 classCodeList: dic.getDicList({ dicType: 'classCode' }).items,
huibing.xie1f1606f2018-08-20 15:46:55 +080032 items: pageList,
33 recordCount: mockList.length,
34 code: 200
35 }
36 },
huibing.xiebba5eb92018-08-27 11:12:36 +080037 getDeptList: config => {
huibing.xiec95b6a22018-08-29 14:15:43 +080038 const mockList = deptList.filter(item => item.classCode === '院系')
huibing.xie1f1606f2018-08-20 15:46:55 +080039 return {
huibing.xiebba5eb92018-08-27 11:12:36 +080040 items: mockList,
41 code: 200
42 }
43 },
44 getSectionList: config => {
huibing.xiec95b6a22018-08-29 14:15:43 +080045 const mockList = deptList.filter(item => item.classCode === '部门')
huibing.xiebba5eb92018-08-27 11:12:36 +080046 return {
47 items: mockList,
huibing.xie1f1606f2018-08-20 15:46:55 +080048 code: 200
49 }
50 },
51 getItem: config => {
52 const { id } = param2Obj(config.url)
53 const mockList = deptList.filter(item => item.id + '' === id + '')
54 return {
55 data: mockList.length > 0 ? mockList[0] : null,
56 code: 200
57 }
58 },
59 createData: config => {
60 const dept = JSON.parse(config.body)
61 dept.cjsj = parseTime(new Date(), '{y}-{m}-{d}')
62 if (!dept.id) {
63 dept.id = '' + parseInt(Math.random() * 100) + 1024 // mock a id
64 deptList.unshift(dept)
65 } else {
66 for (let i = 0; i < deptList.length; i++) {
67 if (deptList[i].id + '' === dept.id + '') {
68 deptList.splice(i, 1, dept)
69 break
70 }
71 }
72 }
73 return {
74 item: dept,
75 code: 200
76 }
77 },
78 deleteData: config => {
79 const dept = JSON.parse(config.body)
80 let index = -1
81 for (let i = 0; i < deptList.length; i++) {
82 if (deptList[i].id + '' === dept.id + '') {
83 index = i
84 break
85 }
86 }
87 if (index > -1) {
88 deptList.splice(index, 1)
89 }
90 return {
91 code: 200
92 }
93 }
94}