diff --git a/leave-school-vue/src/mock/department.js b/leave-school-vue/src/mock/department.js
index 98ef5b3..d37068e 100644
--- a/leave-school-vue/src/mock/department.js
+++ b/leave-school-vue/src/mock/department.js
@@ -1,48 +1,48 @@
 import Mock from 'mockjs'
 import { param2Obj, parseTime } from '@/utils'
+import dic from './dictionary'
 
 const deptList = Mock.mock({
   'list|26': [{
     'id': '@increment',
-    'dwdm': '000@id',
-    'dwmc|1': ['教育学院', '经管学院', '人文学院', '数学学院', '计算机学院', '电子学院', '电气学院', '生命科学院'],
-    'dwjc': '@cword(3, 5)',
-    'dwywmc': '@word(6, 10)',
-    'sfqy|1': ['启用', '未启用'],
-    'sfqycode|1': ['1', '0'],
-    'lbm|1': ['院系', '部门'],
-    'lbmid|1': ['1', '2'],
-    'cjsj': '@Date'
+    'code': '000@id',
+    'name|1': ['教育学院', '经管学院', '人文学院', '数学学院', '计算机学院', '电子学院', '电气学院', '生命科学院'],
+    'abbreviation': '@cword(3, 5)',
+    'enName': '@word(6, 10)',
+    'enable|1': ['启用', '未启用'],
+    'classCode|1': ['院系', '部门'],
+    'createDate': '@Date'
   }]
 }).list
 
 export default{
-  getList: config => {
-    const { dwdm, dwmc, sfqy, lbm, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+  getPage: config => {
+    const { code, name, enable, classCode, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
     const mockList = deptList.filter(item => {
-      if (dwdm && item.dwdm !== dwdm) return false
-      if (dwmc && item.dwmc !== dwmc) return false
-      if (sfqy && item.sfqycode !== sfqy) return false
-      if (lbm && item.lbmid !== lbm) return false
+      if (code && item.code !== code) return false
+      if (name && item.name !== name) return false
+      if (enable && item.enable !== enable) return false
+      if (classCode && item.classCode !== classCode) return false
       return true
     })
 
     const pageList = mockList.filter((item, index) => index < pageSize * pageIndex && index >= pageSize * (pageIndex - 1))
     return {
+      classCodeList: dic.getDicList({ type: 'classCode' }).items,
       items: pageList,
       recordCount: mockList.length,
       code: 200
     }
   },
   getDeptList: config => {
-    const mockList = deptList.filter(item => item.lbm === '院系')
+    const mockList = deptList.filter(item => item.classCode === '院系')
     return {
       items: mockList,
       code: 200
     }
   },
   getSectionList: config => {
-    const mockList = deptList.filter(item => item.lbm === '部门')
+    const mockList = deptList.filter(item => item.classCode === '部门')
     return {
       items: mockList,
       code: 200
