diff --git a/leave-school-vue/src/mock/leavestudent.js b/leave-school-vue/src/mock/leavestudent.js
new file mode 100644
index 0000000..8681db0
--- /dev/null
+++ b/leave-school-vue/src/mock/leavestudent.js
@@ -0,0 +1,45 @@
+import Mock from 'mockjs'
+import { param2Obj } from '@/utils'
+
+const clsList = Mock.mock({
+  'list|26': [{
+    'id': '@increment',
+    'hjmc|1': ['后勤处', '财务处', '学生处'],
+    'xh': '@word(8)',
+    'xm': '@cword(2, 3)',
+    'yx|1': ['教育学院', '经管学院', '人文学院', '数学学院', '计算机学院', '电子学院', '电气学院', '生命科学院'],
+    'yxid|1': ['1', '2', '3', '4', '5', '6', '7', '8'],
+    'zy': '@cword(6, 7)',
+    'bj': '@cword(6, 7)',
+    'shzt|1': ['待审核', '审核通过', '审核不通过'],
+    'shyj': '@cword(6, 10)',
+    'shztcode|1': ['1', '2', '3']
+  }]
+}).list
+
+export default{
+  getList: config => {
+    const { xh, xm, pcmc, xslb, bynf, byyf, yx, zy, xb, shhj, shzt, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+    const mockList = clsList.filter(item => {
+      if (pcmc && item.pcmc && item.pcmc + '' !== pcmc + '') return false
+      if (xslb && item.xslb && item.xslb !== xslb) return false
+      if (bynf && item.bynf && item.bynf !== bynf) return false
+      if (byyf && item.byyf && item.byyf !== byyf) return false
+      if (yx && item.yxid && item.yxid !== yx) return false
+      if (zy && item.zy && item.zy !== zy) return false
+      if (xb && item.xb && item.xb !== xb) return false
+      if (shhj && item.shhj && item.shhj !== shhj) return false
+      if (shzt && item.shztcode && item.shztcode !== shzt) return false
+      if (xh && item.xh && item.xh !== xh) return false
+      if (xm && item.xm && item.xm !== xm) return false
+      return true
+    })
+
+    const pageList = mockList.filter((item, index) => index < pageSize * pageIndex && index >= pageSize * (pageIndex - 1))
+    return {
+      items: pageList,
+      recordCount: mockList.length,
+      code: 200
+    }
+  }
+}
