diff --git a/leave-school-vue/src/mock/leavestudent.js b/leave-school-vue/src/mock/leavestudent.js
index 17eefb4..919aef4 100644
--- a/leave-school-vue/src/mock/leavestudent.js
+++ b/leave-school-vue/src/mock/leavestudent.js
@@ -18,7 +18,34 @@
     'studentType': '@cword(6, 7)',
     'leaveSchoolType': '@cword(6, 7)',
     'graduateYear': '@cword(6, 7)',
-    'graduateMonth': '@cword(6, 7)'
+    'graduateMonth': '@cword(6, 7)',
+    'allowedLeave|1': ['准予', '不准予'],
+    'auditLogList|4': [{
+      'auditNode|1': ['后勤处', '财务处', '学生处', '图书馆'],
+      'auditResult|1': ['通过', '不通过'],
+      'auditOpinionList|3': [{
+        'auditResult|1': ['通过', '不通过'],
+        'auditTime': '@datetime',
+        'auditor': '@cword(2, 3)',
+        'auditOpinion': '@cword(6, 10)'
+      }]
+    }],
+    'nodelist': [{
+      'auditNode': '后勤处',
+      'auditResult|1': ['—', '×', '√']
+    },
+    {
+      'auditNode': '财务处',
+      'auditResult|1': ['—', '×', '√']
+    },
+    {
+      'auditNode': '学生处',
+      'auditResult|1': ['—', '×', '√']
+    },
+    {
+      'auditNode': '图书馆',
+      'auditResult|1': ['—', '×', '√']
+    }]
   }]
 }).list
 
@@ -56,9 +83,26 @@
     'label': '其他'
   }]
 )
+const auditResultList = Mock.mock(
+  [{
+    'value': 'TO_BE_AUDITED',
+    'label': '待审核'
+  },
+  {
+    'value': 'APPROVED',
+    'label': '审核通过'
+  },
+  {
+    'value': 'NOT_PASSED',
+    'label': '审核不通过'
+  }]
+)
 export default{
   getList: config => {
-    const { studentNumber, name, department, major, clazz, leaveSchoolBatch, studentType, leaveSchoolType, graduateYear, graduateMonth, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+    const { studentNumber, name, department, major, clazz,
+      leaveSchoolBatch, studentType, leaveSchoolType, graduateYear, graduateMonth,
+      auditNode, allowedLeave, auditResult,
+      pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
     const mockList = clsList.filter(item => {
       if (studentNumber && item.studentNumber && item.studentNumber !== studentNumber) return false
       if (name && item.name && item.name !== name) return false
@@ -70,6 +114,9 @@
       if (leaveSchoolType && item.leaveSchoolType && item.leaveSchoolType !== leaveSchoolType) return false
       if (graduateYear && item.graduateYear && item.graduateYear !== graduateYear) return false
       if (graduateMonth && item.graduateMonth && item.graduateMonth !== graduateMonth) return false
+      if (auditNode && item.auditNode && item.auditNode !== auditNode) return false
+      if (allowedLeave && item.allowedLeave && item.allowedLeave !== allowedLeave) return false
+      if (auditResult && item.auditResult && item.auditResult !== auditResult) return false
       return true
     })
 
@@ -79,9 +126,16 @@
       leaveSchoolTypeList: leaveSchoolTypeList,
       studentTypeList: studentTypeList,
       leaveSchoolBatchList: leaveSchoolBatchList,
+      auditResultList: auditResultList,
       items: pageList,
       recordCount: mockList.length,
       code: 200
     }
+  },
+  saveAudit: config => {
+    return {
+      code: 200
+    }
   }
 }
+
