用户管理
diff --git a/leave-school-vue/src/mock/user.js b/leave-school-vue/src/mock/user.js
new file mode 100644
index 0000000..431f833
--- /dev/null
+++ b/leave-school-vue/src/mock/user.js
@@ -0,0 +1,119 @@
+import Mock from 'mockjs'
+import { param2Obj, parseTime } from '@/utils'
+
+const userList = Mock.mock({
+  'list|26': [{
+    'id': '@increment',
+    'rownum': '@id',
+    'ghxh': '@id',
+    'xm': '000@id',
+    'zhlb|1': ['教职工', '学生', '其他'],
+    'xb|1': ['男', '女'],
+    'zt|1': ['启用', '停用'],
+    'yx': '@cword(3, 5)',
+    'xybm': '@word(6, 10)',
+    'gzdw': '@word(6, 10)',
+    'sj': '@cword(3, 5)',
+    'wx': '@cword(3, 5)',
+    'qq': '@cword(3, 5)'
+  }]
+}).list
+
+const zhlbList = Mock.mock(
+  [{
+    'value': 'teacher',
+    'label': '教职工'
+  },
+  {
+    'value': 'student',
+    'label': '学生'
+  },
+  {
+    'value': 'other',
+    'label': '其他'
+  }]
+)
+
+const xbList = Mock.mock(
+  [{
+    'value': 'male',
+    'label': '男'
+  },
+  {
+    'value': 'female',
+    'label': '女'
+  }]
+)
+const ztList = Mock.mock(
+  [{
+    'value': 'on',
+    'label': '启用'
+  },
+  {
+    'value': 'off',
+    'label': '停用'
+  }]
+)
+export default{
+  getPage: config => {
+    const { zhlb, ghxhxm, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+    const mockList = userList.filter(item => {
+      if (zhlb && item.zhlb !== zhlb) return false
+      if (ghxhxm && item.ghxh + '' !== ghxhxm + '' && item.xm + '' !== ghxhxm + '') return false
+      return true
+    })
+
+    const pageList = mockList.filter((item, index) => index < pageSize * pageIndex && index >= pageSize * (pageIndex - 1))
+    return {
+      xbList: xbList,
+      ztList: ztList,
+      zhlbList: zhlbList,
+      items: pageList,
+      recordCount: mockList.length,
+      code: 200
+    }
+  },
+  getItem: config => {
+    const { id } = param2Obj(config.url)
+    const mockList = userList.filter(item => item.id + '' === id + '')
+    return {
+      data: mockList.length > 0 ? mockList[0] : null,
+      code: 200
+    }
+  },
+  createData: config => {
+    const user = JSON.parse(config.body)
+    user.cjsj = parseTime(new Date(), '{y}-{m}-{d}')
+    if (!user.id) {
+      user.id = '' + parseInt(Math.random() * 100) + 1024 // mock a id
+      userList.unshift(user)
+    } else {
+      for (let i = 0; i < userList.length; i++) {
+        if (userList[i].id + '' === user.id + '') {
+          userList.splice(i, 1, user)
+          break
+        }
+      }
+    }
+    return {
+      item: user,
+      code: 200
+    }
+  },
+  deleteData: config => {
+    const user = JSON.parse(config.body)
+    let index = -1
+    for (let i = 0; i < userList.length; i++) {
+      if (userList[i].id + '' === user.id + '') {
+        index = i
+        break
+      }
+    }
+    if (index > -1) {
+      userList.splice(index, 1)
+    }
+    return {
+      code: 200
+    }
+  }
+}