diff --git a/mock/modules/sdy.js b/mock/modules/sdy.js index 893a20c..400c7fa 100644 --- a/mock/modules/sdy.js +++ b/mock/modules/sdy.js @@ -23,14 +23,14 @@ const loans = Mock.mock({ 'department': '@pick(["机电工程系","护理分院","建筑系","材料科学与工程系","环境科学与工程系"])', 'cation': '@pick(["2021-2022学年度","2022-2023学年度"])', 'loanTerm': '@pick(["已放款","未放款"])', - 'timeofapplication': '@date("yyyy-MM-dd")', + 'timeofapplication': "@now('yyyy-MM-dd')", } ] }) const daily = Mock.mock({ 'list|10': [ { - 'date': '@date("yyyy-MM-dd")', + 'date': "@now('yyyy-MM-dd')", 'tuiti': '@integer(10000,50000)', 'incidentals': '@integer(1000,5000)', 'materials': '@integer(1000,5000)', @@ -42,6 +42,74 @@ const daily = Mock.mock({ } ] }) +const paragraph = Mock.mock({ + 'list|15': [ + { + 'name': '@cname', + department: '机电工程系', + grade: '机制1班', + counselor: '王刚', + cellPhone: '13354679999', + money: 16800, + condition: '未还款' + }, + { + 'name': '@cname', + department: '护理分院', + grade: '护理1班', + counselor: '李昆', + cellPhone: '18845065230', + money: 24000, + condition: '未还款' + }, + { + 'name': '@cname', + department: '建筑系', + grade: '建筑1班', + counselor: '张明', + cellPhone: '16656664666', + money: 12000, + condition: '未还款' + } + ] +}) +const analysis = Mock.mock({ + list: [ + { + id: 1, + name: '机电工程系', + studentnumber: 120, + department: 120, + major: 80, + grade: '1344000', + tuition: 40, + weigrade: 672000, + shition: 2016000 + }, + { + id: 2, + name: '护理分院', + studentnumber: 200, + department: 200, + major: 120, + grade: '2016000', + tuition: 80, + weigrade: 1344000, + shition: 33600000 + }, + { + id: 3, + name: '建筑系', + studentnumber: 300, + department: 300, + major: 200, + grade: '2016000', + tuition: 100, + weigrade: 1680000, + shition: 5040000 + } + ] +}) export default [ //应收管理列表 @@ -145,7 +213,7 @@ export default [ }, // 当日明细列表 { - url: '/post-sdy-daily-list', + url: '/get-sdy-daily-list', method: 'get', response: () => { return { @@ -153,6 +221,52 @@ export default [ data: daily } } - } + }, + // 学生催款表 + { + url: '/get-sdy-paragraph-list', + method: 'get', + response: () => { + return { + code: 200, + data: paragraph + } + } + }, + // 学生催款表搜索 + { + url: '/post-sdy-paragraph-find', + method: 'post', + response: (req) => { + if (req.body.name !== '') { + const arr = paragraph.list.filter(item => item.name.includes(req.body.name)) + return arr + } else if (req.body.studentnumber !== '') { + const arr = paragraph.list.filter(item => item.department.includes(req.body.studentnumber)) + return arr + } else if (req.body.counselor !== '') { + const arr = paragraph.list.filter(item => item.counselor.includes(req.body.counselor)) + return arr + } else if (req.body.grade !== '') { + const arr = paragraph.list.filter(item => item.grade.includes(req.body.grade)) + return arr + } + return { + code: 200, + data: arr + } + } + }, + // 学院分析 + { + url: '/get-sdy-analysis-list', + method: 'get', + response: () => { + return { + code: 200, + data: analysis + } + } + } ] \ No newline at end of file diff --git a/src/api/receivables-management/management.js b/src/api/receivables-management/management.js index ce8f9e9..5029ab6 100644 --- a/src/api/receivables-management/management.js +++ b/src/api/receivables-management/management.js @@ -21,5 +21,17 @@ export function APILoansAdd(data) { } // 借款管理 export function APIDailyList() { - return request.get('/post-sdy-daily-list') + return request.get('/get-sdy-daily-list') +} +//催缴管理 +export function APIParagraphList() { + return request.get('/get-sdy-paragraph-list') +} +//催缴搜索 +export function APIParagraphFind(data) { + return request.post('/post-sdy-paragraph-find', data) +} +//学院分析 +export function APIAnalysisList() { + return request.get('/get-sdy-analysis-list') } diff --git a/src/layout/components/LayoutAside.vue b/src/layout/components/LayoutAside.vue index 47bcb73..c3eb3b1 100644 --- a/src/layout/components/LayoutAside.vue +++ b/src/layout/components/LayoutAside.vue @@ -54,6 +54,9 @@ 学生催款单 + + 部门分析表 + diff --git a/src/pages/receivables-management/chargeSchedule.vue b/src/pages/receivables-management/chargeSchedule.vue index 6ac5ab5..04976ff 100644 --- a/src/pages/receivables-management/chargeSchedule.vue +++ b/src/pages/receivables-management/chargeSchedule.vue @@ -1,7 +1,193 @@ - 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 搜索 + 重置 + + + + + + + + {{ row.condition }} + + + 联系该学生导员 + + + + + + + + + + + + + + + + + + + + - + - + diff --git a/src/pages/receivables-management/daily.vue b/src/pages/receivables-management/daily.vue index a85bd14..da6a37a 100644 --- a/src/pages/receivables-management/daily.vue +++ b/src/pages/receivables-management/daily.vue @@ -13,7 +13,6 @@ 收费日报表 减免明细表 @@ -52,18 +51,18 @@ 退费明细表 @@ -71,18 +70,18 @@ 学生欠费明细表 @@ -92,9 +91,10 @@ import { ref, onMounted } from 'vue' import { APIDailyList } from '@/api/receivables-management/management' import lineChart from '@/components/echarts/line.vue' -// 表格数据 +import dayjs from 'dayjs' +// 日常收费明细表数据 const tableData = ref([]) -// 表格头数据 +// 日常收费明细表格头数据 const columns = ref([ { colKey: 'date', title: '日期' }, { colKey: 'tuiti', title: '学费' }, @@ -106,19 +106,19 @@ const columns = ref([ { colKey: 'cost', title: '其他费用' }, { colKey: 'tuition', title: '总计' } ]) -// 表格分页数据 +// 日常收费明细表格分页数据 let pagination = { defaultCurrent: 1, defaultPageSize: 10, total: 50 } -// 表格加载状态 +// 日常收费明细表格加载状态 const loading = ref(false) -// 表格点击事件 +// 日常收费明细表格点击事件 const handleRowClick = e => { console.log(e) } -// 监听分页变化事件 +// 日常收费明细监听分页变化事件 const onPageChange = (Newpage, PreviousPagePrev) => { loading.value = true const timerId = setTimeout(() => { @@ -144,12 +144,164 @@ const seriesData = ref([ type: 'line' } ]) -// 获取数据 +// 获取日常收费明细表数据 const DailyList = async () => { const res = await APIDailyList() tableData.value = res.data.list pagination.total = res.data.list.length } +// 减免明细表 +const mitigateTableData = ref([ + { + name: '张三', + type: '五保户', + amount: 100, + note: '该学上为五保户特批,减免100元。' + }, + { + name: '李四', + type: '平困证', + amount: 500, + note: '该学上为五保户特批,减免500元。' + }, + { + name: '王五', + type: '校长亲属', + amount: 1000, + note: '该学上为五保户特批,减免1000元。' + } +]) +// 减免明细表格头数据 +const mitigateColumns = ref([ + { colKey: 'name', title: '姓名' }, + { colKey: 'type', title: '类型' }, + { colKey: 'amount', title: '金额' }, + { colKey: 'note', title: '备注' } +]) +// 减免明细表格分页数据 +let mitigatePagination = { + defaultCurrent: 1, + defaultPageSize: 10, + total: 50 +} +// 减免明细表格加载状态 +const mitigateLoading = ref(false) +// 减免明细表格点击事件 +const mitigateHandleRowClick = e => { + console.log(e) +} +// 减免明细监听分页变化事件 +const mitigateOnPageChange = (Newpage, PreviousPagePrev) => { + mitigateLoading.value = true + const timerId = setTimeout(() => { + mitigateLoading.value = false + clearInterval(timerId) + }, 300) +} +//退费明细表 +const refundTableData = ref([ + { + data: dayjs().format('YYYY-MM-DD'), + name: '张三', + type: '退学', + amount: 16800, + draw: '是', + note: '该学生上学是犯下大错' + }, + { + data: dayjs().format('YYYY-MM-DD'), + name: '王五', + type: '休学', + amount: 16800, + draw: '是', + note: '该学生学习中途生病,需休学' + }, + { + data: dayjs().format('YYYY-MM-DD'), + name: '张三', + type: '开除', + amount: 16800, + draw: '亲属待领', + note: '该同学被开除' + } +]) +//退费明细表格头数据 +const refundColumns = ref([ + { colKey: 'date', title: '日期' }, + { colKey: 'name', title: '姓名' }, + { colKey: 'type', title: '类型' }, + { colKey: 'amount', title: '金额' }, + { colKey: 'draw', title: '是否为本人领取' }, + { colKey: 'note', title: '备注' } +]) +//退费明细表格分页数据 +let refundPagination = { + defaultCurrent: 1, + defaultPageSize: 10, + total: 50 +} +//退费明细表格加载状态 +const refundLoading = ref(false) +//退费明细表格点击事件 +const refundHandleRowClick = e => { + console.log(e) +} +//退费明细监听分页变化事件 +const refundOnPageChange = (Newpage, PreviousPagePrev) => { + refundLoading.value = true + const timerId = setTimeout(() => { + refundLoading.value = false + clearInterval(timerId) + }, 300) +} +//学生欠费明细表 +const studentTableData = ref([ + { + name: '张三', + type: '3年学费', + amount: 18000, + note: '该学生3年未缴纳学费,欠款18000元。' + }, + { + name: '王五', + type: '住宿费', + amount: 2400, + note: '该学生3年未缴纳学费,欠款2400元。' + }, + { + name: '赵六', + type: '书费', + amount: 200, + note: '该学生今年年未缴纳书费,欠款200元。' + } +]) +//学生欠费明细表格头数据 +const studentColumns = ref([ + { colKey: 'name', title: '姓名' }, + { colKey: 'type', title: '类型' }, + { colKey: 'amount', title: '金额' }, + { colKey: 'note', title: '备注' } +]) +//学生欠费明细表格分页数据 +let studentPagination = { + defaultCurrent: 1, + defaultPageSize: 10, + total: 50 +} +//学生欠费明细表格加载状态 +const tudentLoading = ref(false) +//学生欠费明细表格点击事件 +const studentHandleRowClick = e => { + console.log(e) +} +//学生欠费明细监听分页变化事件 +const studentOnPageChange = (Newpage, PreviousPagePrev) => { + tudentLoading.value = true + const timerId = setTimeout(() => { + tudentLoading.value = false + clearInterval(timerId) + }, 300) +} onMounted(() => { DailyList() }) diff --git a/src/pages/receivables-management/facultyAnalysis.vue b/src/pages/receivables-management/facultyAnalysis.vue new file mode 100644 index 0000000..0e2befe --- /dev/null +++ b/src/pages/receivables-management/facultyAnalysis.vue @@ -0,0 +1,582 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/router/modules/receivablesManagement.js b/src/router/modules/receivablesManagement.js index 723938c..0f4ffc1 100644 --- a/src/router/modules/receivablesManagement.js +++ b/src/router/modules/receivablesManagement.js @@ -49,6 +49,12 @@ const ReceivablesManagement = [ name: "ChargeSchedule", component: () => import("@/pages/receivables-management/chargeSchedule.vue"), meta: { title: "学生催款单", }, + }, + { + path: "/faculty-analysis", + name: "FacultyAnalysis", + component: () => import("@/pages/receivables-management/facultyAnalysis.vue"), + meta: { title: "部门分析表", }, } ], },