离校前端框架,包括数据字典、工作队伍、新闻公告模块
diff --git a/leave-school-vue/src/mock/auditscope.js b/leave-school-vue/src/mock/auditscope.js
new file mode 100644
index 0000000..b1f233c
--- /dev/null
+++ b/leave-school-vue/src/mock/auditscope.js
@@ -0,0 +1,69 @@
+import Mock from 'mockjs'
+import { param2Obj } from '@/utils'
+
+const auditscopeList = Mock.mock({
+ 'list|50': [{
+ 'id': '@increment',
+ 'fwkzmc': '@cword(6, 15)',
+ 'fwkzsxl': '@word(15)'
+ }]
+}).list
+
+export default{
+ getList: config => {
+ const { fwkzmc, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+ const mockList = auditscopeList.filter(item => {
+ if (fwkzmc && item.fwkzmc !== fwkzmc) 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
+ }
+ },
+ getItem: config => {
+ const { id } = param2Obj(config.url)
+ const mockList = auditscopeList.filter(item => item.id + '' === id + '')
+ return {
+ data: mockList.length > 0 ? mockList[0] : null,
+ code: 200
+ }
+ },
+ createData: config => {
+ const auditscope = JSON.parse(config.body)
+ if (!auditscope.id) {
+ auditscope.id = '' + parseInt(Math.random() * 100) + 1024 // mock a id
+ auditscopeList.unshift(auditscope)
+ } else {
+ for (let i = 0; i < auditscopeList.length; i++) {
+ if (auditscopeList[i].id + '' === auditscope.id + '') {
+ auditscopeList.splice(i, 1, auditscope)
+ break
+ }
+ }
+ }
+ return {
+ item: auditscope,
+ code: 200
+ }
+ },
+ deleteData: config => {
+ const auditscope = JSON.parse(config.body)
+ let index = -1
+ for (let i = 0; i < auditscopeList.length; i++) {
+ if (auditscopeList[i].id + '' === auditscope.id + '') {
+ index = i
+ break
+ }
+ }
+ if (index > -1) {
+ auditscopeList.splice(index, 1)
+ }
+ return {
+ code: 200
+ }
+ }
+}
diff --git a/leave-school-vue/src/mock/autoaudittype.js b/leave-school-vue/src/mock/autoaudittype.js
new file mode 100644
index 0000000..ab77486
--- /dev/null
+++ b/leave-school-vue/src/mock/autoaudittype.js
@@ -0,0 +1,69 @@
+import Mock from 'mockjs'
+import { param2Obj } from '@/utils'
+
+const autoaudittypeList = Mock.mock({
+ 'list|50': [{
+ 'id': '@increment',
+ 'zdshlxmc': '@cword(6, 15)',
+ 'zdshlxsxl': '@word(15)'
+ }]
+}).list
+
+export default{
+ getList: config => {
+ const { zdshlxmc, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+ const mockList = autoaudittypeList.filter(item => {
+ if (zdshlxmc && item.zdshlxmc !== zdshlxmc) 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
+ }
+ },
+ getItem: config => {
+ const { id } = param2Obj(config.url)
+ const mockList = autoaudittypeList.filter(item => item.id + '' === id + '')
+ return {
+ data: mockList.length > 0 ? mockList[0] : null,
+ code: 200
+ }
+ },
+ createData: config => {
+ const autoaudittype = JSON.parse(config.body)
+ if (!autoaudittype.id) {
+ autoaudittype.id = '' + parseInt(Math.random() * 100) + 1024 // mock a id
+ autoaudittypeList.unshift(autoaudittype)
+ } else {
+ for (let i = 0; i < autoaudittypeList.length; i++) {
+ if (autoaudittypeList[i].id + '' === autoaudittype.id + '') {
+ autoaudittypeList.splice(i, 1, autoaudittype)
+ break
+ }
+ }
+ }
+ return {
+ item: autoaudittype,
+ code: 200
+ }
+ },
+ deleteData: config => {
+ const autoaudittype = JSON.parse(config.body)
+ let index = -1
+ for (let i = 0; i < autoaudittypeList.length; i++) {
+ if (autoaudittypeList[i].id + '' === autoaudittype.id + '') {
+ index = i
+ break
+ }
+ }
+ if (index > -1) {
+ autoaudittypeList.splice(index, 1)
+ }
+ return {
+ code: 200
+ }
+ }
+}
diff --git a/leave-school-vue/src/mock/class.js b/leave-school-vue/src/mock/class.js
new file mode 100644
index 0000000..01fc0ae
--- /dev/null
+++ b/leave-school-vue/src/mock/class.js
@@ -0,0 +1,88 @@
+import Mock from 'mockjs'
+import { param2Obj } from '@/utils'
+
+const clsList = Mock.mock({
+ 'list|26': [{
+ 'id': '@increment',
+ 'nj|1': ['6', '7', '8'],
+ 'njmc|1': ['2017', '2018', '2019'],
+ 'yx|1-26': 26,
+ 'yxmc': '@cword(6, 15)',
+ 'zy|27-375': 375,
+ 'zymc': '@cword(3, 5)',
+ 'bjdm': '@word(5)',
+ 'bjmc': '@cword(6, 10)',
+ 'sfky|1': ['1', '0'],
+ 'sfkymc|1': ['可用', '不可用']
+ }]
+}).list
+
+export default{
+ getList: config => {
+ const { yx, zy, bjmc, nj, bjdm, sfky, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+ const mockList = clsList.filter(item => {
+ if (yx && item.yx + '' !== yx + '') return false
+ if (zy && item.zy !== zy) return false
+ if (bjmc && item.bjmc !== bjmc) return false
+ if (nj && item.nj !== nj) return false
+ if (bjdm && item.bjdm !== bjdm) return false
+ if (sfky && item.sfky !== sfky) 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
+ }
+ },
+ getAllList: config => {
+ return {
+ items: clsList,
+ code: 200
+ }
+ },
+ getItem: config => {
+ const { id } = param2Obj(config.url)
+ const mockList = clsList.filter(item => item.id + '' === id + '')
+ return {
+ data: mockList.length > 0 ? mockList[0] : null,
+ code: 200
+ }
+ },
+ createData: config => {
+ const cls = JSON.parse(config.body)
+ if (!cls.id) {
+ cls.id = '' + parseInt(Math.random() * 100) + 1024 // mock a id
+ clsList.unshift(cls)
+ } else {
+ for (let i = 0; i < clsList.length; i++) {
+ if (clsList[i].id + '' === cls.id + '') {
+ clsList.splice(i, 1, cls)
+ break
+ }
+ }
+ }
+ return {
+ item: cls,
+ code: 200
+ }
+ },
+ deleteData: config => {
+ const cls = JSON.parse(config.body)
+ let index = -1
+ for (let i = 0; i < clsList.length; i++) {
+ if (clsList[i].id + '' === cls.id + '') {
+ index = i
+ break
+ }
+ }
+ if (index > -1) {
+ clsList.splice(index, 1)
+ }
+ return {
+ code: 200
+ }
+ }
+}
diff --git a/leave-school-vue/src/mock/department.js b/leave-school-vue/src/mock/department.js
new file mode 100644
index 0000000..ce07f0b
--- /dev/null
+++ b/leave-school-vue/src/mock/department.js
@@ -0,0 +1,86 @@
+import Mock from 'mockjs'
+import { param2Obj, parseTime } from '@/utils'
+
+const deptList = Mock.mock({
+ 'list|26': [{
+ 'id': '@increment',
+ 'dwdm': '000@id',
+ 'dwmc': '@cword(6, 15)',
+ 'dwjc': '@cword(3, 5)',
+ 'dwywmc': '@word(6, 10)',
+ 'sfqy|1': ['启用', '未启用'],
+ 'sfqycode|1': ['1', '0'],
+ 'lbm|1': ['院系', '部门'],
+ 'lbmid|1': ['1', '2'],
+ 'cjsj': '@Date'
+ }]
+}).list
+
+export default{
+ getList: config => {
+ const { dwdm, dwmc, sfqy, lbm, 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
+ return true
+ })
+
+ const pageList = mockList.filter((item, index) => index < pageSize * pageIndex && index >= pageSize * (pageIndex - 1))
+ return {
+ items: pageList,
+ recordCount: mockList.length,
+ code: 200
+ }
+ },
+ getAllList: config => {
+ return {
+ items: deptList,
+ code: 200
+ }
+ },
+ getItem: config => {
+ const { id } = param2Obj(config.url)
+ const mockList = deptList.filter(item => item.id + '' === id + '')
+ return {
+ data: mockList.length > 0 ? mockList[0] : null,
+ code: 200
+ }
+ },
+ createData: config => {
+ const dept = JSON.parse(config.body)
+ dept.cjsj = parseTime(new Date(), '{y}-{m}-{d}')
+ if (!dept.id) {
+ dept.id = '' + parseInt(Math.random() * 100) + 1024 // mock a id
+ deptList.unshift(dept)
+ } else {
+ for (let i = 0; i < deptList.length; i++) {
+ if (deptList[i].id + '' === dept.id + '') {
+ deptList.splice(i, 1, dept)
+ break
+ }
+ }
+ }
+ return {
+ item: dept,
+ code: 200
+ }
+ },
+ deleteData: config => {
+ const dept = JSON.parse(config.body)
+ let index = -1
+ for (let i = 0; i < deptList.length; i++) {
+ if (deptList[i].id + '' === dept.id + '') {
+ index = i
+ break
+ }
+ }
+ if (index > -1) {
+ deptList.splice(index, 1)
+ }
+ return {
+ code: 200
+ }
+ }
+}
diff --git a/leave-school-vue/src/mock/departmentleader.js b/leave-school-vue/src/mock/departmentleader.js
new file mode 100644
index 0000000..e9fe93e
--- /dev/null
+++ b/leave-school-vue/src/mock/departmentleader.js
@@ -0,0 +1,77 @@
+import Mock from 'mockjs'
+import { param2Obj } from '@/utils'
+
+const departmentleaderList = Mock.mock({
+ 'list|50': [{
+ 'gh': '@increment',
+ 'xm': '@cword(2, 3)',
+ 'yx': '@cword(6, 15)',
+ 'xb|1': ['男', '女'],
+ 'zzmm|1': ['党员', '共青团员', '群众'],
+ 'lxdh': '@word',
+ 'sfzr|1': ['是', '否']
+ }]
+}).list
+
+export default{
+ getList: config => {
+ const { gh, xm, yx, zzmm, xb, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+ const mockList = departmentleaderList.filter(item => {
+ if (gh && item.gh + '' !== gh + '') return false
+ if (xm && item.xm !== xm) return false
+ if (yx && item.yx !== yx) return false
+ if (zzmm && item.zzmm !== zzmm) return false
+ if (xb && item.xb !== xb) 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
+ }
+ },
+ getItem: config => {
+ const { id } = param2Obj(config.url)
+ const mockList = departmentleaderList.filter(item => item.id + '' === id + '')
+ return {
+ data: mockList.length > 0 ? mockList[0] : null,
+ code: 200
+ }
+ },
+ createData: config => {
+ const departmentleader = JSON.parse(config.body)
+ if (!departmentleader.id) {
+ departmentleader.id = '' + parseInt(Math.random() * 100) + 1024 // mock a id
+ departmentleaderList.unshift(departmentleader)
+ } else {
+ for (let i = 0; i < departmentleaderList.length; i++) {
+ if (departmentleaderList[i].id + '' === departmentleader.id + '') {
+ departmentleaderList.splice(i, 1, departmentleader)
+ break
+ }
+ }
+ }
+ return {
+ item: departmentleader,
+ code: 200
+ }
+ },
+ deleteData: config => {
+ const departmentleader = JSON.parse(config.body)
+ let index = -1
+ for (let i = 0; i < departmentleaderList.length; i++) {
+ if (departmentleaderList[i].id + '' === departmentleader.id + '') {
+ index = i
+ break
+ }
+ }
+ if (index > -1) {
+ departmentleaderList.splice(index, 1)
+ }
+ return {
+ code: 200
+ }
+ }
+}
diff --git a/leave-school-vue/src/mock/dictionary.js b/leave-school-vue/src/mock/dictionary.js
new file mode 100644
index 0000000..fbfb169
--- /dev/null
+++ b/leave-school-vue/src/mock/dictionary.js
@@ -0,0 +1,108 @@
+// import Mock from 'mockjs'
+import { param2Obj } from '@/utils'
+
+const deptList = [{
+ 'id': '1',
+ 'type': 'lbm',
+ 'name': '院系'
+},
+{
+ 'id': '2',
+ 'type': 'lbm',
+ 'name': '部门'
+},
+{
+ 'id': '3',
+ 'type': 'gjzybz',
+ 'name': '文学'
+},
+{
+ 'id': '4',
+ 'type': 'gjzybz',
+ 'name': '物理'
+},
+{
+ 'id': '5',
+ 'type': 'gjzybz',
+ 'name': '数学'
+},
+{
+ 'id': '6',
+ 'type': 'nj',
+ 'name': '2017'
+},
+{
+ 'id': '7',
+ 'type': 'nj',
+ 'name': '2018'
+},
+{
+ 'id': '8',
+ 'type': 'nj',
+ 'name': '2019'
+},
+{
+ 'id': '9',
+ 'type': 'zzmm',
+ 'name': '党员'
+},
+{
+ 'id': '10',
+ 'type': 'zzmm',
+ 'name': '群众'
+},
+{
+ 'id': '11',
+ 'type': 'xb',
+ 'name': '男'
+},
+{
+ 'id': '12',
+ 'type': 'xb',
+ 'name': '女'
+},
+{
+ 'id': '13',
+ 'type': 'xswz',
+ 'name': '置顶'
+},
+{
+ 'id': '14',
+ 'type': 'xswz',
+ 'name': '其他'
+},
+{
+ 'id': '15',
+ 'type': 'gglx',
+ 'name': '离校公告'
+},
+{
+ 'id': '16',
+ 'type': 'jszlx',
+ 'name': '所有人'
+},
+{
+ 'id': '17',
+ 'type': 'jszlx',
+ 'name': '所有学生'
+},
+{
+ 'id': '18',
+ 'type': 'jszlx',
+ 'name': '所有教职工'
+}]
+
+export default{
+ getDicList: config => {
+ const { type } = param2Obj(config.url)
+ const mockList = deptList.filter(item => {
+ if (type && item.type !== type) return false
+ return true
+ })
+
+ return {
+ items: mockList,
+ code: 200
+ }
+ }
+}
diff --git a/leave-school-vue/src/mock/index.js b/leave-school-vue/src/mock/index.js
new file mode 100644
index 0000000..1e9f075
--- /dev/null
+++ b/leave-school-vue/src/mock/index.js
@@ -0,0 +1,90 @@
+import Mock from 'mockjs'
+import loginApi from './login'
+import departmentApi from './department'
+import menulistApi from './menulist'
+import majorApi from './major'
+import classApi from './class'
+import dicApi from './dictionary'
+import schoolyearApi from './schoolyear'
+import auditscopeApi from './auditscope'
+import autoaudittypeApi from './autoaudittype'
+import rostersyncinterfaceApi from './rostersyncinterface'
+import departmentleaderApi from './departmentleader'
+import instructorApi from './instructor'
+import newspublishApi from './newspublish'
+
+// 登录
+Mock.mock(/\/api\/login\/login/, 'post', loginApi.loginByUsername)
+Mock.mock(/\/api\/system\/user\/info/, 'get', loginApi.getUserInfo)
+Mock.mock(/\/api\/login\/logout-api/, 'post', loginApi.logout)
+
+// 数据字典
+Mock.mock(/\/api\/system\/dictionary\/getdiclist/, 'get', dicApi.getDicList)
+
+// 菜单列表
+Mock.mock(/\/api\/system\/menu\/list/, 'get', menulistApi.getMenuList)
+
+// 院系部门管理
+Mock.mock(/\/api\/system\/department\/list-api/, 'get', departmentApi.getList)
+Mock.mock(/\/api\/system\/department\/all-list/, 'get', departmentApi.getAllList)
+Mock.mock(/\/api\/system\/department\/create-department/, 'post', departmentApi.createData)
+Mock.mock(/\/api\/system\/department\/delete-department/, 'delete', departmentApi.deleteData)
+Mock.mock(/\/api\/system\/department\/get-item/, 'get', departmentApi.getItem)
+
+// 专业管理
+Mock.mock(/\/api\/system\/major\/list-api/, 'get', majorApi.getList)
+Mock.mock(/\/api\/system\/major\/create-major/, 'post', majorApi.createData)
+Mock.mock(/\/api\/system\/major\/delete-major/, 'delete', majorApi.deleteData)
+Mock.mock(/\/api\/system\/major\/get-item/, 'get', majorApi.getItem)
+Mock.mock(/\/api\/system\/major\/list-byyx-api/, 'get', majorApi.getZyListByYx)
+
+// 班级管理
+Mock.mock(/\/api\/system\/class\/list-api/, 'get', classApi.getList)
+Mock.mock(/\/api\/system\/class\/all-list/, 'get', classApi.getAllList)
+Mock.mock(/\/api\/system\/class\/create-class/, 'post', classApi.createData)
+Mock.mock(/\/api\/system\/class\/delete-class/, 'delete', classApi.deleteData)
+Mock.mock(/\/api\/system\/class\/get-item/, 'get', classApi.getItem)
+
+// 学年管理
+Mock.mock(/\/api\/system\/schoolyear\/list-api/, 'get', schoolyearApi.getList)
+Mock.mock(/\/api\/system\/schoolyear\/create-schoolyear/, 'post', schoolyearApi.createData)
+Mock.mock(/\/api\/system\/schoolyear\/delete-schoolyear/, 'delete', schoolyearApi.deleteData)
+Mock.mock(/\/api\/system\/schoolyear\/get-item/, 'get', schoolyearApi.getItem)
+
+// 名单同步接口设置
+Mock.mock(/\/api\/system\/rostersyncinterface\/list-api/, 'get', rostersyncinterfaceApi.getList)
+Mock.mock(/\/api\/system\/rostersyncinterface\/create-rostersyncinterface/, 'post', rostersyncinterfaceApi.createData)
+Mock.mock(/\/api\/system\/rostersyncinterface\/delete-rostersyncinterface/, 'delete', rostersyncinterfaceApi.deleteData)
+Mock.mock(/\/api\/system\/rostersyncinterface\/get-item/, 'get', rostersyncinterfaceApi.getItem)
+
+// 审核学生范围控制
+Mock.mock(/\/api\/system\/auditscope\/list-api/, 'get', auditscopeApi.getList)
+Mock.mock(/\/api\/system\/auditscope\/create-auditscope/, 'post', auditscopeApi.createData)
+Mock.mock(/\/api\/system\/auditscope\/delete-auditscope/, 'delete', auditscopeApi.deleteData)
+Mock.mock(/\/api\/system\/auditscope\/get-item/, 'get', auditscopeApi.getItem)
+
+// 离校自动审核类型设置
+Mock.mock(/\/api\/system\/autoaudittype\/list-api/, 'get', autoaudittypeApi.getList)
+Mock.mock(/\/api\/system\/autoaudittype\/create-autoaudittype/, 'post', autoaudittypeApi.createData)
+Mock.mock(/\/api\/system\/autoaudittype\/delete-autoaudittype/, 'delete', autoaudittypeApi.deleteData)
+Mock.mock(/\/api\/system\/autoaudittype\/get-item/, 'get', autoaudittypeApi.getItem)
+
+// 学院负责人信息管理
+Mock.mock(/\/api\/workteam\/departmentleader\/list-api/, 'get', departmentleaderApi.getList)
+Mock.mock(/\/api\/workteam\/departmentleader\/create-departmentleader/, 'post', departmentleaderApi.createData)
+Mock.mock(/\/api\/workteam\/departmentleader\/delete-departmentleader/, 'delete', departmentleaderApi.deleteData)
+Mock.mock(/\/api\/workteam\/departmentleader\/get-item/, 'get', departmentleaderApi.getItem)
+
+// 辅导员信息管理
+Mock.mock(/\/api\/workteam\/instructor\/list-api/, 'get', instructorApi.getList)
+Mock.mock(/\/api\/workteam\/instructor\/create-instructor/, 'post', instructorApi.createData)
+Mock.mock(/\/api\/workteam\/instructor\/delete-instructor/, 'delete', instructorApi.deleteData)
+Mock.mock(/\/api\/workteam\/instructor\/get-item/, 'get', instructorApi.getItem)
+
+// 院系部门管理
+Mock.mock(/\/api\/news\/newspublish\/list-api/, 'get', newspublishApi.getList)
+Mock.mock(/\/api\/news\/newspublish\/create-newspublish/, 'post', newspublishApi.createData)
+Mock.mock(/\/api\/news\/newspublish\/delete-newspublish/, 'delete', newspublishApi.deleteData)
+Mock.mock(/\/api\/news\/newspublish\/get-item/, 'get', newspublishApi.getItem)
+
+export default Mock
diff --git a/leave-school-vue/src/mock/instructor.js b/leave-school-vue/src/mock/instructor.js
new file mode 100644
index 0000000..0f48407
--- /dev/null
+++ b/leave-school-vue/src/mock/instructor.js
@@ -0,0 +1,76 @@
+import Mock from 'mockjs'
+import { param2Obj } from '@/utils'
+
+const instructorList = Mock.mock({
+ 'list|50': [{
+ 'gh': '@increment',
+ 'xm': '@cword(2, 3)',
+ 'sdbj': '@cword(6, 15)',
+ 'bjzrs': '@integer(60, 100)',
+ 'szyx': '@cword(5,7)',
+ 'sfzr|1': ['是', '否']
+ }]
+}).list
+
+export default{
+ getList: config => {
+ const { gh, xm, yx, bjzrs, sfzr, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+ const mockList = instructorList.filter(item => {
+ if (gh && item.gh + '' !== gh + '') return false
+ if (xm && item.xm !== xm) return false
+ if (yx && item.yx !== yx) return false
+ if (bjzrs && item.bjzrs !== bjzrs) return false
+ if (sfzr && item.sfzr !== sfzr) 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
+ }
+ },
+ getItem: config => {
+ const { id } = param2Obj(config.url)
+ const mockList = instructorList.filter(item => item.id + '' === id + '')
+ return {
+ data: mockList.length > 0 ? mockList[0] : null,
+ code: 200
+ }
+ },
+ createData: config => {
+ const instructor = JSON.parse(config.body)
+ if (!instructor.id) {
+ instructor.id = '' + parseInt(Math.random() * 100) + 1024 // mock a id
+ instructorList.unshift(instructor)
+ } else {
+ for (let i = 0; i < instructorList.length; i++) {
+ if (instructorList[i].id + '' === instructor.id + '') {
+ instructorList.splice(i, 1, instructor)
+ break
+ }
+ }
+ }
+ return {
+ item: instructor,
+ code: 200
+ }
+ },
+ deleteData: config => {
+ const instructor = JSON.parse(config.body)
+ let index = -1
+ for (let i = 0; i < instructorList.length; i++) {
+ if (instructorList[i].id + '' === instructor.id + '') {
+ index = i
+ break
+ }
+ }
+ if (index > -1) {
+ instructorList.splice(index, 1)
+ }
+ return {
+ code: 200
+ }
+ }
+}
diff --git a/leave-school-vue/src/mock/login.js b/leave-school-vue/src/mock/login.js
new file mode 100644
index 0000000..baa100d
--- /dev/null
+++ b/leave-school-vue/src/mock/login.js
@@ -0,0 +1,33 @@
+import { param2Obj } from '@/utils'
+
+const userMap = {
+ admin: {
+ data: {
+ roles: ['admin'],
+ token: 'admin',
+ introduction: '我是超级管理员',
+ avatar: 'https://cn.vuejs.org/images/logo.png',
+ name: 'Super Admin'
+ },
+ code: 200
+ }
+}
+export default {
+ loginByUsername: config => {
+ const { username } = JSON.parse(config.body)
+ return userMap[username]
+ },
+ getUserInfo: config => {
+ const { token } = param2Obj(config.url)
+ if (userMap[token]) {
+ return userMap[token]
+ } else {
+ return false
+ }
+ },
+ logout: () => {
+ return {
+ code: 200
+ }
+ }
+}
diff --git a/leave-school-vue/src/mock/major.js b/leave-school-vue/src/mock/major.js
new file mode 100644
index 0000000..fe9b977
--- /dev/null
+++ b/leave-school-vue/src/mock/major.js
@@ -0,0 +1,86 @@
+import Mock from 'mockjs'
+import { param2Obj } from '@/utils'
+
+const majorList = Mock.mock({
+ 'list|350': [{
+ 'id': '@increment',
+ 'zydm': '000@id',
+ 'zymc': '@cword(6, 15)',
+ 'sfky|1': ['可用', '不可用'],
+ 'sfkycode|1': ['1', '0'],
+ 'ssyx|1': ['教育学院', '经管学院', '人文学院', '数学学院', '计算机学院', '电子学院', '电气学院', '生命科学院'],
+ 'ssyxid|1': ['1', '2', '3', '4', '5', '6', '7', '8'],
+ 'sszygb|1': ['计算机', '哲学']
+ }]
+}).list
+
+export default{
+ getList: config => {
+ const { zydm, zymc, sfky, ssyx, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+ const mockList = majorList.filter(item => {
+ if (zydm && item.zydm !== zydm) return false
+ if (zymc && item.zymc !== zymc) return false
+ if (sfky && item.sfkycode !== sfky) return false
+ if (ssyx && item.ssyxid !== ssyx) 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
+ }
+ },
+ getZyListByYx: config => {
+ const { yx } = param2Obj(config.url)
+ const mockList = majorList.filter(item => item.ssyxid === yx)
+
+ return {
+ list: mockList,
+ code: 200
+ }
+ },
+ getItem: config => {
+ const { id } = param2Obj(config.url)
+ const mockList = majorList.filter(item => item.id + '' === id + '')
+ return {
+ data: mockList.length > 0 ? mockList[0] : null,
+ code: 200
+ }
+ },
+ createData: config => {
+ const major = JSON.parse(config.body)
+ if (!major.id) {
+ major.id = '' + parseInt(Math.random() * 100) + 1024 // mock a id
+ majorList.unshift(major)
+ } else {
+ for (let i = 0; i < majorList.length; i++) {
+ if (majorList[i].id + '' === major.id + '') {
+ majorList.splice(i, 1, major)
+ break
+ }
+ }
+ }
+ return {
+ item: major,
+ code: 200
+ }
+ },
+ deleteData: config => {
+ const major = JSON.parse(config.body)
+ let index = -1
+ for (let i = 0; i < majorList.length; i++) {
+ if (majorList[i].id + '' === major.id + '') {
+ index = i
+ break
+ }
+ }
+ if (index > -1) {
+ majorList.splice(index, 1)
+ }
+ return {
+ code: 200
+ }
+ }
+}
diff --git a/leave-school-vue/src/mock/menulist.js b/leave-school-vue/src/mock/menulist.js
new file mode 100644
index 0000000..7453cd9
--- /dev/null
+++ b/leave-school-vue/src/mock/menulist.js
@@ -0,0 +1,101 @@
+/* Layout */
+// import Layout from '../views/layout/Layout'
+
+const menuList = [
+ {
+ path: '/dictionary',
+ code: 'dictionary',
+ meta: { title: '数据字典管理', icon: 'dictionary' },
+ children: [
+ {
+ path: 'department',
+ code: 'Department',
+ resource: '/views/systemmanagement/department/index',
+ meta: { title: '院系部门管理', icon: 'department' }
+ },
+ {
+ path: 'major',
+ code: 'Major',
+ resource: '/views/systemmanagement/major/index',
+ meta: { title: '专业管理', icon: 'major' }
+ },
+ {
+ path: 'class',
+ code: 'Class',
+ resource: '/views/systemmanagement/class/index',
+ meta: { title: '班级管理', icon: 'class' }
+ },
+ {
+ path: 'schoolyear',
+ code: 'SchoolYear',
+ resource: '/views/systemmanagement/schoolyear/index',
+ meta: { title: '学年管理', icon: 'schoolyear' }
+ },
+ {
+ path: 'rostersyncinterface',
+ code: 'RosterSyncInterface',
+ resource: '/views/systemmanagement/rostersyncinterface/index',
+ meta: { title: '名单同步接口设置', icon: 'rostersyncinterface' }
+ },
+ {
+ path: 'auditscope',
+ code: 'AuditScope',
+ resource: '/views/systemmanagement/auditscope/index',
+ meta: { title: '审核学生范围控制', icon: 'auditscope' }
+ },
+ {
+ path: 'autoaudittype',
+ code: 'AutoAuditType',
+ resource: '/views/systemmanagement/autoaudittype/index',
+ meta: { title: '离校自动审核类型设置', icon: 'autoaudittype' }
+ }
+ ]
+ },
+ {
+ path: '/workteam',
+ code: 'workteam',
+ meta: { title: '工作队伍管理', icon: 'workteam' },
+ children: [
+ {
+ path: 'departmentleader',
+ code: 'Departmentleader',
+ resource: '/views/workteam/departmentleader/index',
+ meta: { title: '学院负责人信息管理', icon: 'departmentleader' }
+ },
+ {
+ path: 'instructor',
+ code: 'Instructor',
+ resource: '/views/workteam/instructor/index',
+ meta: { title: '辅导员信息管理', icon: 'instructor' }
+ }
+ ]
+ },
+ {
+ path: '/news',
+ code: 'news',
+ meta: { title: '新闻公告管理', icon: 'news' },
+ children: [
+ {
+ path: 'newspublish',
+ code: 'NewsPublish',
+ resource: '/views/news/newspublish/index',
+ meta: { title: '新闻公告发布', icon: 'newspublish' }
+ },
+ {
+ path: 'newview',
+ code: 'NewsView',
+ resource: '/views/news/newview/index',
+ meta: { title: '新闻公告查看', icon: 'newview' }
+ }
+ ]
+ }
+]
+
+export default{
+ getMenuList: config => {
+ return {
+ items: menuList,
+ code: 200
+ }
+ }
+}
diff --git a/leave-school-vue/src/mock/newspublish.js b/leave-school-vue/src/mock/newspublish.js
new file mode 100644
index 0000000..2c4d8f3
--- /dev/null
+++ b/leave-school-vue/src/mock/newspublish.js
@@ -0,0 +1,84 @@
+import Mock from 'mockjs'
+import { param2Obj, parseTime } from '@/utils'
+
+const newspublishList = Mock.mock({
+ 'list|26': [{
+ 'id': '@increment',
+ 'ggbt': '@cword(6, 15)',
+ 'gglx': '离校公告',
+ 'jszlx|1': ['所有学生', '所有人', '所有教职工'],
+ 'sfky|1': ['可用', '不可用'],
+ 'fbqssj': '2018-06-28',
+ 'fbjssj': '2018-06-28',
+ 'xswz|1': ['其它', '置顶'],
+ 'jlckzt': '需要',
+ 'djs': '@integer(60, 100)',
+ 'fbr': 'admin',
+ 'fbrq': '2018-08-08'
+ }]
+}).list
+
+export default{
+ getList: config => {
+ const { ggbt, fbqssj, fbjssj, sfky, xswz, jlckzt, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+ const mockList = newspublishList.filter(item => {
+ if (ggbt && item.ggbt !== ggbt) return false
+ if (fbqssj && item.fbqssj !== fbqssj) return false
+ if (fbjssj && item.fbjssj !== fbjssj) return false
+ if (sfky && item.sfky !== sfky) return false
+ if (xswz && item.xswz !== xswz) return false
+ if (jlckzt && item.jlckzt !== jlckzt) 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
+ }
+ },
+ getItem: config => {
+ const { id } = param2Obj(config.url)
+ const mockList = newspublishList.filter(item => item.id + '' === id + '')
+ return {
+ data: mockList.length > 0 ? mockList[0] : null,
+ code: 200
+ }
+ },
+ createData: config => {
+ const newspublish = JSON.parse(config.body)
+ newspublish.cjsj = parseTime(new Date(), '{y}-{m}-{d}')
+ if (!newspublish.id) {
+ newspublish.id = '' + parseInt(Math.random() * 100) + 1024 // mock a id
+ newspublishList.unshift(newspublish)
+ } else {
+ for (let i = 0; i < newspublishList.length; i++) {
+ if (newspublishList[i].id + '' === newspublish.id + '') {
+ newspublishList.splice(i, 1, newspublish)
+ break
+ }
+ }
+ }
+ return {
+ item: newspublish,
+ code: 200
+ }
+ },
+ deleteData: config => {
+ const newspublish = JSON.parse(config.body)
+ let index = -1
+ for (let i = 0; i < newspublishList.length; i++) {
+ if (newspublishList[i].id + '' === newspublish.id + '') {
+ index = i
+ break
+ }
+ }
+ if (index > -1) {
+ newspublishList.splice(index, 1)
+ }
+ return {
+ code: 200
+ }
+ }
+}
diff --git a/leave-school-vue/src/mock/rostersyncinterface.js b/leave-school-vue/src/mock/rostersyncinterface.js
new file mode 100644
index 0000000..3a7259c
--- /dev/null
+++ b/leave-school-vue/src/mock/rostersyncinterface.js
@@ -0,0 +1,76 @@
+import Mock from 'mockjs'
+import { param2Obj } from '@/utils'
+
+const rostersyncinterfaceList = Mock.mock({
+ 'list|50': [{
+ 'id': '@increment',
+ 'dm': '@word(4)',
+ 'mc': '@cword(6, 15)',
+ 'tj': '@word(15)',
+ 'px': '@word(15)',
+ 'gglx': '@word(15)'
+ }]
+}).list
+
+export default{
+ getList: config => {
+ const { dm, mc, tj, px, gglx, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+ const mockList = rostersyncinterfaceList.filter(item => {
+ if (dm && item.dm !== dm) return false
+ if (mc && item.mc !== mc) return false
+ if (tj && item.tj !== tj) return false
+ if (px && item.px !== px) return false
+ if (gglx && item.gglx !== gglx) 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
+ }
+ },
+ getItem: config => {
+ const { id } = param2Obj(config.url)
+ const mockList = rostersyncinterfaceList.filter(item => item.id + '' === id + '')
+ return {
+ data: mockList.length > 0 ? mockList[0] : null,
+ code: 200
+ }
+ },
+ createData: config => {
+ const rostersyncinterface = JSON.parse(config.body)
+ if (!rostersyncinterface.id) {
+ rostersyncinterface.id = '' + parseInt(Math.random() * 100) + 1024 // mock a id
+ rostersyncinterfaceList.unshift(rostersyncinterface)
+ } else {
+ for (let i = 0; i < rostersyncinterfaceList.length; i++) {
+ if (rostersyncinterfaceList[i].id + '' === rostersyncinterface.id + '') {
+ rostersyncinterfaceList.splice(i, 1, rostersyncinterface)
+ break
+ }
+ }
+ }
+ return {
+ item: rostersyncinterface,
+ code: 200
+ }
+ },
+ deleteData: config => {
+ const rostersyncinterface = JSON.parse(config.body)
+ let index = -1
+ for (let i = 0; i < rostersyncinterfaceList.length; i++) {
+ if (rostersyncinterfaceList[i].id + '' === rostersyncinterface.id + '') {
+ index = i
+ break
+ }
+ }
+ if (index > -1) {
+ rostersyncinterfaceList.splice(index, 1)
+ }
+ return {
+ code: 200
+ }
+ }
+}
diff --git a/leave-school-vue/src/mock/schoolyear.js b/leave-school-vue/src/mock/schoolyear.js
new file mode 100644
index 0000000..7e37aa9
--- /dev/null
+++ b/leave-school-vue/src/mock/schoolyear.js
@@ -0,0 +1,70 @@
+import Mock from 'mockjs'
+import { param2Obj } from '@/utils'
+
+const schoolyearList = Mock.mock({
+ 'list|26': [{
+ 'id': '@increment',
+ 'xndm|1': ['2016', '2017', '2018'],
+ 'xnmc': '@xndm@cword(6, 15)'
+ }]
+}).list
+
+export default{
+ getList: config => {
+ const { xndm, xnmc, pageIndex = 1, pageSize = 20 } = param2Obj(config.url)
+ const mockList = schoolyearList.filter(item => {
+ if (xndm && item.xndm !== xndm) return false
+ if (xnmc && item.xnmc !== xnmc) 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
+ }
+ },
+ getItem: config => {
+ const { id } = param2Obj(config.url)
+ const mockList = schoolyearList.filter(item => item.id + '' === id + '')
+ return {
+ data: mockList.length > 0 ? mockList[0] : null,
+ code: 200
+ }
+ },
+ createData: config => {
+ const schoolyear = JSON.parse(config.body)
+ if (!schoolyear.id) {
+ schoolyear.id = '' + parseInt(Math.random() * 100) + 1024 // mock a id
+ schoolyearList.unshift(schoolyear)
+ } else {
+ for (let i = 0; i < schoolyearList.length; i++) {
+ if (schoolyearList[i].id + '' === schoolyear.id + '') {
+ schoolyearList.splice(i, 1, schoolyear)
+ break
+ }
+ }
+ }
+ return {
+ item: schoolyear,
+ code: 200
+ }
+ },
+ deleteData: config => {
+ const schoolyear = JSON.parse(config.body)
+ let index = -1
+ for (let i = 0; i < schoolyearList.length; i++) {
+ if (schoolyearList[i].id + '' === schoolyear.id + '') {
+ index = i
+ break
+ }
+ }
+ if (index > -1) {
+ schoolyearList.splice(index, 1)
+ }
+ return {
+ code: 200
+ }
+ }
+}