✨ feat:完成了学生信息统计功能等页面
This commit is contained in:
parent
b647880ea6
commit
f1ee4efbd0
|
@ -110,6 +110,247 @@ const analysis = Mock.mock({
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
const message = Mock.mock({
|
||||||
|
'list|10': [
|
||||||
|
{
|
||||||
|
'id|+1': 1,
|
||||||
|
//学生姓名
|
||||||
|
'name': '@cname',
|
||||||
|
//学生学号
|
||||||
|
'studentNumber': '@integer(132000000,1329999999)',
|
||||||
|
//性别
|
||||||
|
'gender': '@pick(["男","女"])',
|
||||||
|
//年龄
|
||||||
|
'age': '@integer(20,21)',
|
||||||
|
//学院
|
||||||
|
'date': '@date',
|
||||||
|
//籍贯
|
||||||
|
'nativePlace': "@city",
|
||||||
|
//民族
|
||||||
|
'nation': '汉族',
|
||||||
|
//入学时间
|
||||||
|
'enrollmentyear': '@now("yyyy")',
|
||||||
|
//部门
|
||||||
|
'college': '机电工程系',
|
||||||
|
//专业
|
||||||
|
'major': '机械制造与自动化',
|
||||||
|
//部门
|
||||||
|
'grade': '机制1班',
|
||||||
|
//辅导员
|
||||||
|
'tutor': '王刚',
|
||||||
|
//手机号
|
||||||
|
'phone': '@integer(13200000000,13299999999)',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id|+1': 11,
|
||||||
|
//学生姓名
|
||||||
|
'name': '@cname',
|
||||||
|
//学生学号
|
||||||
|
'studentNumber': '@integer(188000000,18899999999)',
|
||||||
|
//性别
|
||||||
|
'gender': '@pick(["男","女"])',
|
||||||
|
//年龄
|
||||||
|
'age': '@integer(20,21)',
|
||||||
|
//学院
|
||||||
|
'date': '@date',
|
||||||
|
//籍贯
|
||||||
|
'nativePlace': "@city",
|
||||||
|
//民族
|
||||||
|
'nation': '汉族',
|
||||||
|
//入学时间
|
||||||
|
'enrollmentyear': '@now("yyyy")',
|
||||||
|
//部门
|
||||||
|
'college': '护理分院',
|
||||||
|
//专业
|
||||||
|
'major': '护理学',
|
||||||
|
//部门
|
||||||
|
'grade': '护理学1班',
|
||||||
|
//辅导员
|
||||||
|
'tutor': '张明',
|
||||||
|
//手机号
|
||||||
|
'phone': '@integer(18800000000,18899999999)',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id|+1': 21,
|
||||||
|
//学生姓名
|
||||||
|
'name': '@cname',
|
||||||
|
//学生学号
|
||||||
|
'studentNumber': '@integer(186000000,1869999999)',
|
||||||
|
//性别
|
||||||
|
'gender': '@pick(["男","女"])',
|
||||||
|
//年龄
|
||||||
|
'age': '@integer(20,21)',
|
||||||
|
//出生时间
|
||||||
|
'date': '@date',
|
||||||
|
//籍贯
|
||||||
|
'nativePlace': "@city",
|
||||||
|
//民族
|
||||||
|
'nation': '汉族',
|
||||||
|
//入学时间
|
||||||
|
'enrollmentyear': '@now("yyyy")',
|
||||||
|
//部门
|
||||||
|
'college': '建筑系',
|
||||||
|
//专业
|
||||||
|
'major': '建筑工程',
|
||||||
|
//部门
|
||||||
|
'grade': '建筑1班',
|
||||||
|
//辅导员
|
||||||
|
'tutor': '李宇',
|
||||||
|
//手机号
|
||||||
|
'phone': '@integer(18600000000,18699999999)',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
const mitigate = Mock.mock({
|
||||||
|
'list|10': [
|
||||||
|
{
|
||||||
|
'id|+1': 1,
|
||||||
|
//学生姓名
|
||||||
|
'name': '@cname',
|
||||||
|
//学生学号
|
||||||
|
'studentNumber': '@integer(132000000,1329999999)',
|
||||||
|
//性别
|
||||||
|
'gender': '@pick(["男","女"])',
|
||||||
|
//年龄
|
||||||
|
'age': '@integer(20,21)',
|
||||||
|
//学费
|
||||||
|
'tuition': 16800,
|
||||||
|
//减免金额
|
||||||
|
'mitigate': 12800,
|
||||||
|
//入学时间
|
||||||
|
'enrollmentyear': '@now("yyyy")',
|
||||||
|
//部门
|
||||||
|
'college': '机电工程系',
|
||||||
|
//专业
|
||||||
|
'major': '机械制造与自动化',
|
||||||
|
//部门
|
||||||
|
'grade': '机制1班',
|
||||||
|
//辅导员
|
||||||
|
'tutor': '王刚',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id|+1': 11,
|
||||||
|
//学生姓名
|
||||||
|
'name': '@cname',
|
||||||
|
//学生学号
|
||||||
|
'studentNumber': '@integer(188000000,18899999999)',
|
||||||
|
//性别
|
||||||
|
'gender': '@pick(["男","女"])',
|
||||||
|
//年龄
|
||||||
|
'age': '@integer(20,21)',
|
||||||
|
'tuition': 16800,
|
||||||
|
//减免金额
|
||||||
|
'mitigate': 10000,
|
||||||
|
//入学时间
|
||||||
|
'enrollmentyear': '@now("yyyy")',
|
||||||
|
//部门
|
||||||
|
'college': '护理分院',
|
||||||
|
//专业
|
||||||
|
'major': '护理学',
|
||||||
|
//部门
|
||||||
|
'grade': '护理学1班',
|
||||||
|
//辅导员
|
||||||
|
'tutor': '张明',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id|+1': 21,
|
||||||
|
//学生姓名
|
||||||
|
'name': '@cname',
|
||||||
|
//学生学号
|
||||||
|
'studentNumber': '@integer(186000000,1869999999)',
|
||||||
|
//性别
|
||||||
|
'gender': '@pick(["男","女"])',
|
||||||
|
//年龄
|
||||||
|
'age': '@integer(20,21)',
|
||||||
|
'tuition': 16800,
|
||||||
|
//减免金额
|
||||||
|
'mitigate': 12000,
|
||||||
|
//入学时间
|
||||||
|
'enrollmentyear': '@now("yyyy")',
|
||||||
|
//部门
|
||||||
|
'college': '建筑系',
|
||||||
|
//专业
|
||||||
|
'major': '建筑工程',
|
||||||
|
//部门
|
||||||
|
'grade': '建筑1班',
|
||||||
|
//辅导员
|
||||||
|
'tutor': '李宇',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
const premium = Mock.mock({
|
||||||
|
'list|10': [
|
||||||
|
{
|
||||||
|
'id|+1': 1,
|
||||||
|
//学生姓名
|
||||||
|
'name': '@cname',
|
||||||
|
//学生学号
|
||||||
|
'studentNumber': '@integer(132000000,1329999999)',
|
||||||
|
//性别
|
||||||
|
'gender': '@pick(["男","女"])',
|
||||||
|
//年龄
|
||||||
|
'age': '@integer(20,21)',
|
||||||
|
//退费金额
|
||||||
|
'tuition': 16800,
|
||||||
|
//入学时间
|
||||||
|
'enrollmentyear': '@now("yyyy")',
|
||||||
|
//部门
|
||||||
|
'college': '机电工程系',
|
||||||
|
//专业
|
||||||
|
'major': '机械制造与自动化',
|
||||||
|
//部门
|
||||||
|
'grade': '机制1班',
|
||||||
|
//辅导员
|
||||||
|
'tutor': '王刚',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id|+1': 11,
|
||||||
|
//学生姓名
|
||||||
|
'name': '@cname',
|
||||||
|
//学生学号
|
||||||
|
'studentNumber': '@integer(188000000,18899999999)',
|
||||||
|
//性别
|
||||||
|
'gender': '@pick(["男","女"])',
|
||||||
|
//年龄
|
||||||
|
'age': '@integer(20,21)',
|
||||||
|
//退费金额
|
||||||
|
'tuition': 16800,
|
||||||
|
//入学时间
|
||||||
|
'enrollmentyear': '@now("yyyy")',
|
||||||
|
//部门
|
||||||
|
'college': '护理分院',
|
||||||
|
//专业
|
||||||
|
'major': '护理学',
|
||||||
|
//部门
|
||||||
|
'grade': '护理学1班',
|
||||||
|
//辅导员
|
||||||
|
'tutor': '张明',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id|+1': 21,
|
||||||
|
//学生姓名
|
||||||
|
'name': '@cname',
|
||||||
|
//学生学号
|
||||||
|
'studentNumber': '@integer(186000000,1869999999)',
|
||||||
|
//性别
|
||||||
|
'gender': '@pick(["男","女"])',
|
||||||
|
//年龄
|
||||||
|
'age': '@integer(20,21)',
|
||||||
|
//退费金额
|
||||||
|
'tuition': 16800,
|
||||||
|
//入学时间
|
||||||
|
'enrollmentyear': '@now("yyyy")',
|
||||||
|
//部门
|
||||||
|
'college': '建筑系',
|
||||||
|
//专业
|
||||||
|
'major': '建筑工程',
|
||||||
|
//部门
|
||||||
|
'grade': '建筑1班',
|
||||||
|
//辅导员
|
||||||
|
'tutor': '李宇',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
export default [
|
export default [
|
||||||
//应收管理列表
|
//应收管理列表
|
||||||
|
@ -247,8 +488,8 @@ export default [
|
||||||
} else if (req.body.counselor !== '') {
|
} else if (req.body.counselor !== '') {
|
||||||
const arr = paragraph.list.filter(item => item.counselor.includes(req.body.counselor))
|
const arr = paragraph.list.filter(item => item.counselor.includes(req.body.counselor))
|
||||||
return arr
|
return arr
|
||||||
} else if (req.body.grade !== '') {
|
} else if (req.body.tutor !== '') {
|
||||||
const arr = paragraph.list.filter(item => item.grade.includes(req.body.grade))
|
const arr = paragraph.list.filter(item => item.grade.includes(req.body.tutor))
|
||||||
return arr
|
return arr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -268,5 +509,110 @@ export default [
|
||||||
data: analysis
|
data: analysis
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
]
|
// 学生信息统计
|
||||||
|
{
|
||||||
|
url: '/get-sdy-message-list',
|
||||||
|
method: 'get',
|
||||||
|
response: () => {
|
||||||
|
return {
|
||||||
|
code: 200,
|
||||||
|
data: message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 学生信息统计搜索
|
||||||
|
{
|
||||||
|
url: '/post-sdy-message-find',
|
||||||
|
method: 'post',
|
||||||
|
response: (req) => {
|
||||||
|
if (req.body.name !== '') {
|
||||||
|
const arr = message.list.filter(item => item.name.includes(req.body.name))
|
||||||
|
return arr
|
||||||
|
} else if (req.body.studentnumber !== '') {
|
||||||
|
const arr = message.list.filter(item => item.department.includes(req.body.studentnumber))
|
||||||
|
return arr
|
||||||
|
} else if (req.body.college !== '') {
|
||||||
|
const arr = message.list.filter(item => item.counselor.includes(req.body.counselor))
|
||||||
|
return arr
|
||||||
|
} else if (req.body.grade !== '') {
|
||||||
|
const arr = message.list.filter(item => item.grade.includes(req.body.grade))
|
||||||
|
return arr
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
code: 200,
|
||||||
|
data: arr
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 减免管理
|
||||||
|
{
|
||||||
|
url: '/get-sdy-mitigate-list',
|
||||||
|
method: 'get',
|
||||||
|
response: () => {
|
||||||
|
return {
|
||||||
|
code: 200,
|
||||||
|
data: mitigate
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 减免管理搜索
|
||||||
|
{
|
||||||
|
url: '/post-sdy-mitigate-find',
|
||||||
|
method: 'post',
|
||||||
|
response: (req) => {
|
||||||
|
if (req.body.name !== '') {
|
||||||
|
const arr = mitigate.list.filter(item => item.name.includes(req.body.name))
|
||||||
|
return arr
|
||||||
|
} else if (req.body.studentnumber !== '') {
|
||||||
|
const arr = mitigate.list.filter(item => item.department.includes(req.body.studentnumber))
|
||||||
|
return arr
|
||||||
|
} else if (req.body.college !== '') {
|
||||||
|
const arr = mitigate.list.filter(item => item.counselor.includes(req.body.counselor))
|
||||||
|
return arr
|
||||||
|
} else if (req.body.tutor !== '') {
|
||||||
|
const arr = mitigate.list.filter(item => item.tutor.includes(req.body.tutor))
|
||||||
|
return arr
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
code: 200,
|
||||||
|
data: arr
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 退费管理
|
||||||
|
{
|
||||||
|
url: '/get-sdy-premium-list',
|
||||||
|
method: 'get',
|
||||||
|
response: () => {
|
||||||
|
return {
|
||||||
|
code: 200,
|
||||||
|
data: premium
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 退费管理搜索
|
||||||
|
{
|
||||||
|
url: '/post-sdy-premium-find',
|
||||||
|
method: 'post',
|
||||||
|
response: (req) => {
|
||||||
|
if (req.body.name !== '') {
|
||||||
|
const arr = premium.list.filter(item => item.name.includes(req.body.name))
|
||||||
|
return arr
|
||||||
|
} else if (req.body.studentnumber !== '') {
|
||||||
|
const arr = premium.list.filter(item => item.department.includes(req.body.studentnumber))
|
||||||
|
return arr
|
||||||
|
} else if (req.body.college !== '') {
|
||||||
|
const arr = premium.list.filter(item => item.counselor.includes(req.body.counselor))
|
||||||
|
return arr
|
||||||
|
} else if (req.body.tutor !== '') {
|
||||||
|
const arr = premium.list.filter(item => item.tutor.includes(req.body.tutor))
|
||||||
|
return arr
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
code: 200,
|
||||||
|
data: arr
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
|
@ -35,3 +35,27 @@ export function APIParagraphFind(data) {
|
||||||
export function APIAnalysisList() {
|
export function APIAnalysisList() {
|
||||||
return request.get('/get-sdy-analysis-list')
|
return request.get('/get-sdy-analysis-list')
|
||||||
}
|
}
|
||||||
|
//学生信息统计
|
||||||
|
export function APIMessageList() {
|
||||||
|
return request.get('/get-sdy-message-list')
|
||||||
|
}
|
||||||
|
//学生信息搜索
|
||||||
|
export function APIMessageFind(data) {
|
||||||
|
return request.post('/post-sdy-message-find', data)
|
||||||
|
}
|
||||||
|
//减免管理
|
||||||
|
export function APIMitigateList() {
|
||||||
|
return request.get('/get-sdy-mitigate-list')
|
||||||
|
}
|
||||||
|
//减免搜索
|
||||||
|
export function APIMitigateFind(data) {
|
||||||
|
return request.post('/post-sdy-mitigate-find', data)
|
||||||
|
}
|
||||||
|
// 退费管理
|
||||||
|
export function APIPremiumList() {
|
||||||
|
return request.get('/get-sdy-premium-list')
|
||||||
|
}
|
||||||
|
//退费搜索
|
||||||
|
export function APIPremiumFind(data) {
|
||||||
|
return request.post('/post-sdy-premium-find', data)
|
||||||
|
}
|
||||||
|
|
|
@ -52,14 +52,26 @@
|
||||||
<span>助学贷款</span>
|
<span>助学贷款</span>
|
||||||
</t-menu-item>
|
</t-menu-item>
|
||||||
<t-menu-item value="3-4" to="/daily">
|
<t-menu-item value="3-4" to="/daily">
|
||||||
<span>收费日报及收费明细</span>
|
<span>收费日报表</span>
|
||||||
</t-menu-item>
|
</t-menu-item>
|
||||||
<t-menu-item value="3-5" to="/charge-schedule">
|
<t-menu-item value="3-5" to="/mitigate">
|
||||||
|
<span>减免明细表</span>
|
||||||
|
</t-menu-item>
|
||||||
|
<t-menu-item value="3-6" to="/return-premium">
|
||||||
|
<span>退费明细表</span>
|
||||||
|
</t-menu-item>
|
||||||
|
<t-menu-item value="3-7" to="/rrrearage">
|
||||||
|
<span>欠费明细表</span>
|
||||||
|
</t-menu-item>
|
||||||
|
<t-menu-item value="3-8" to="/charge-schedule">
|
||||||
<span>学生催款单</span>
|
<span>学生催款单</span>
|
||||||
</t-menu-item>
|
</t-menu-item>
|
||||||
<t-menu-item value="3-6" to="/faculty-analysis">
|
<t-menu-item value="3-9" to="/faculty-analysis">
|
||||||
<span>部门分析表</span>
|
<span>部门分析表</span>
|
||||||
</t-menu-item>
|
</t-menu-item>
|
||||||
|
<t-menu-item value="3-10" to="/student-information">
|
||||||
|
<span>学生信息统计表</span>
|
||||||
|
</t-menu-item>
|
||||||
</t-submenu>
|
</t-submenu>
|
||||||
<t-submenu value="4" title="学生管理">
|
<t-submenu value="4" title="学生管理">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
|
|
145
src/pages/receivables-management/Arrearage.vue
Normal file
145
src/pages/receivables-management/Arrearage.vue
Normal file
|
@ -0,0 +1,145 @@
|
||||||
|
<template>
|
||||||
|
<div class="back-color">
|
||||||
|
<div class="form">
|
||||||
|
<t-form
|
||||||
|
:data="formData"
|
||||||
|
reset-type="initial"
|
||||||
|
colon
|
||||||
|
@reset="onReset"
|
||||||
|
@submit="onSubmit"
|
||||||
|
>
|
||||||
|
<t-row>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="学生姓名" name="name">
|
||||||
|
<t-input v-model="formData.name"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="学生学号" name="studentnumber">
|
||||||
|
<t-input v-model="formData.studentnumber"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="学生学院" name="college">
|
||||||
|
<t-input v-model="formData.college"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="导员姓名" name="tutor">
|
||||||
|
<t-input v-model="formData.tutor"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
</t-row>
|
||||||
|
<t-row style="margin-top: 0.5rem">
|
||||||
|
<t-col :push="10" :span="2" style="margin-top: 0.2rem">
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 8vw;
|
||||||
|
margin-left: 4.5vw;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<t-button type="submit">搜索</t-button>
|
||||||
|
<t-button type="reset">重置</t-button>
|
||||||
|
</div>
|
||||||
|
</t-col>
|
||||||
|
</t-row>
|
||||||
|
</t-form>
|
||||||
|
</div>
|
||||||
|
<div class="table">
|
||||||
|
<t-table
|
||||||
|
row-key="id"
|
||||||
|
:data="tableData"
|
||||||
|
:columns="columns"
|
||||||
|
:hover="true"
|
||||||
|
table-layout="auto"
|
||||||
|
:pagination="pagination"
|
||||||
|
:show-header="true"
|
||||||
|
cell-empty-content="-"
|
||||||
|
max-height="550"
|
||||||
|
lazy-load
|
||||||
|
@page-change="onPageChange"
|
||||||
|
:loading="loading"
|
||||||
|
>
|
||||||
|
</t-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, onMounted, reactive } from 'vue'
|
||||||
|
import {
|
||||||
|
APIPremiumList,
|
||||||
|
APIPremiumFind
|
||||||
|
} from '@/api/receivables-management/management'
|
||||||
|
// 表格数据
|
||||||
|
const tableData = ref([])
|
||||||
|
//表单数据
|
||||||
|
const formData = reactive({
|
||||||
|
name: '',
|
||||||
|
studentnumber: '',
|
||||||
|
college: '',
|
||||||
|
tutor: ''
|
||||||
|
})
|
||||||
|
// 表头
|
||||||
|
const columns = ref([
|
||||||
|
{ colKey: 'serial-number', title: '学生序号', align: 'center' },
|
||||||
|
{ colKey: 'name', title: '学生姓名', align: 'center' },
|
||||||
|
{ colKey: 'studentNumber', title: '学号', align: 'center' },
|
||||||
|
{ colKey: 'gender', title: '性别', align: 'center' },
|
||||||
|
{ colKey: 'age', title: '年龄', align: 'center' },
|
||||||
|
{ colKey: 'tuition', title: '欠费金额', align: 'center' },
|
||||||
|
{ colKey: 'enrollmentyear', title: '入学年份', align: 'center' },
|
||||||
|
{ colKey: 'college', title: '所在学院', align: 'center' },
|
||||||
|
{ colKey: 'major', title: '所在专业', align: 'center' },
|
||||||
|
{ colKey: 'grade', title: '所在班级', align: 'center' },
|
||||||
|
{ colKey: 'tutor', title: '导员姓名', align: 'center' }
|
||||||
|
])
|
||||||
|
// 表格分页数据
|
||||||
|
let pagination = {
|
||||||
|
defaultCurrent: 1,
|
||||||
|
defaultPageSize: 10,
|
||||||
|
total: 50
|
||||||
|
}
|
||||||
|
// 表格加载状态
|
||||||
|
const loading = ref(false)
|
||||||
|
//发送请求
|
||||||
|
const PremiumList = async () => {
|
||||||
|
const res = await APIPremiumList()
|
||||||
|
tableData.value = res.data.list
|
||||||
|
pagination.total = res.data.list.length
|
||||||
|
}
|
||||||
|
// 监听分页变化事件
|
||||||
|
const onPageChange = (Newpage, PreviousPagePrev) => {
|
||||||
|
loading.value = true
|
||||||
|
const timerId = setTimeout(() => {
|
||||||
|
loading.value = false
|
||||||
|
clearInterval(timerId)
|
||||||
|
}, 300)
|
||||||
|
}
|
||||||
|
//表单重置
|
||||||
|
const onReset = () => {
|
||||||
|
loading.value = true
|
||||||
|
const timerId = setTimeout(() => {
|
||||||
|
PremiumList()
|
||||||
|
loading.value = false
|
||||||
|
clearInterval(timerId)
|
||||||
|
}, 300)
|
||||||
|
}
|
||||||
|
//表单提交
|
||||||
|
const onSubmit = async () => {
|
||||||
|
const data = await APIPremiumFind(formData)
|
||||||
|
tableData.value = data
|
||||||
|
pagination.total = data.length
|
||||||
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
PremiumList()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.table {
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -1,5 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="back-color">
|
<div class="back-color">
|
||||||
|
<div>
|
||||||
|
<t-button @click="backToHome">返回</t-button>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="invoiceContainer">
|
<div class="invoiceContainer">
|
||||||
<div class="invoiceHeade">
|
<div class="invoiceHeade">
|
||||||
|
@ -146,9 +149,11 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import { useRoute } from 'vue-router'
|
import { useRoute } from 'vue-router'
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
|
|
||||||
const Route = useRoute()
|
const Route = useRoute()
|
||||||
|
const Router = useRouter()
|
||||||
//后端会返回发票的数据
|
//后端会返回发票的数据
|
||||||
const InvoiceData = ref({
|
const InvoiceData = ref({
|
||||||
//发票日期
|
//发票日期
|
||||||
|
@ -178,6 +183,9 @@ const InvoiceData = ref({
|
||||||
//开票人
|
//开票人
|
||||||
xdrawer: ''
|
xdrawer: ''
|
||||||
})
|
})
|
||||||
|
const backToHome = () => {
|
||||||
|
Router.go(-1)
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
146
src/pages/receivables-management/Mitigate.vue
Normal file
146
src/pages/receivables-management/Mitigate.vue
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
<template>
|
||||||
|
<div class="back-color">
|
||||||
|
<div class="form">
|
||||||
|
<t-form
|
||||||
|
:data="formData"
|
||||||
|
reset-type="initial"
|
||||||
|
colon
|
||||||
|
@reset="onReset"
|
||||||
|
@submit="onSubmit"
|
||||||
|
>
|
||||||
|
<t-row>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="学生姓名" name="name">
|
||||||
|
<t-input v-model="formData.name"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="学生学号" name="studentnumber">
|
||||||
|
<t-input v-model="formData.studentnumber"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="学生学院" name="college">
|
||||||
|
<t-input v-model="formData.college"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="导员姓名" name="tutor">
|
||||||
|
<t-input v-model="formData.tutor"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
</t-row>
|
||||||
|
<t-row style="margin-top: 0.5rem">
|
||||||
|
<t-col :push="10" :span="2" style="margin-top: 0.2rem">
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 8vw;
|
||||||
|
margin-left: 4.5vw;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<t-button type="submit">搜索</t-button>
|
||||||
|
<t-button type="reset">重置</t-button>
|
||||||
|
</div>
|
||||||
|
</t-col>
|
||||||
|
</t-row>
|
||||||
|
</t-form>
|
||||||
|
</div>
|
||||||
|
<div class="table">
|
||||||
|
<t-table
|
||||||
|
row-key="id"
|
||||||
|
:data="tableData"
|
||||||
|
:columns="columns"
|
||||||
|
:hover="true"
|
||||||
|
table-layout="auto"
|
||||||
|
:pagination="pagination"
|
||||||
|
:show-header="true"
|
||||||
|
cell-empty-content="-"
|
||||||
|
max-height="550"
|
||||||
|
lazy-load
|
||||||
|
@page-change="onPageChange"
|
||||||
|
:loading="loading"
|
||||||
|
>
|
||||||
|
</t-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, onMounted, reactive } from 'vue'
|
||||||
|
import {
|
||||||
|
APIMitigateList,
|
||||||
|
APIMitigateFind
|
||||||
|
} from '@/api/receivables-management/management'
|
||||||
|
// 表格数据
|
||||||
|
const tableData = ref([])
|
||||||
|
//表单数据
|
||||||
|
const formData = reactive({
|
||||||
|
name: '',
|
||||||
|
studentnumber: '',
|
||||||
|
college: '',
|
||||||
|
tutor: ''
|
||||||
|
})
|
||||||
|
// 表头
|
||||||
|
const columns = ref([
|
||||||
|
{ colKey: 'serial-number', title: '学生序号', align: 'center' },
|
||||||
|
{ colKey: 'name', title: '学生姓名', align: 'center' },
|
||||||
|
{ colKey: 'studentNumber', title: '学号', align: 'center' },
|
||||||
|
{ colKey: 'gender', title: '性别', align: 'center' },
|
||||||
|
{ colKey: 'age', title: '年龄', align: 'center' },
|
||||||
|
{ colKey: 'tuition', title: '学费金额', align: 'center' },
|
||||||
|
{ colKey: 'mitigate', title: '减免金额', align: 'center' },
|
||||||
|
{ colKey: 'enrollmentyear', title: '入学年份', align: 'center' },
|
||||||
|
{ colKey: 'college', title: '所在学院', align: 'center' },
|
||||||
|
{ colKey: 'major', title: '所在专业', align: 'center' },
|
||||||
|
{ colKey: 'grade', title: '所在班级', align: 'center' },
|
||||||
|
{ colKey: 'tutor', title: '导员姓名', align: 'center' }
|
||||||
|
])
|
||||||
|
// 表格分页数据
|
||||||
|
let pagination = {
|
||||||
|
defaultCurrent: 1,
|
||||||
|
defaultPageSize: 10,
|
||||||
|
total: 50
|
||||||
|
}
|
||||||
|
// 表格加载状态
|
||||||
|
const loading = ref(false)
|
||||||
|
//发送请求
|
||||||
|
const MitigateList = async () => {
|
||||||
|
const res = await APIMitigateList()
|
||||||
|
tableData.value = res.data.list
|
||||||
|
pagination.total = res.data.list.length
|
||||||
|
}
|
||||||
|
// 监听分页变化事件
|
||||||
|
const onPageChange = (Newpage, PreviousPagePrev) => {
|
||||||
|
loading.value = true
|
||||||
|
const timerId = setTimeout(() => {
|
||||||
|
loading.value = false
|
||||||
|
clearInterval(timerId)
|
||||||
|
}, 300)
|
||||||
|
}
|
||||||
|
//表单重置
|
||||||
|
const onReset = () => {
|
||||||
|
loading.value = true
|
||||||
|
const timerId = setTimeout(() => {
|
||||||
|
MitigateList()
|
||||||
|
loading.value = false
|
||||||
|
clearInterval(timerId)
|
||||||
|
}, 300)
|
||||||
|
}
|
||||||
|
//表单提交
|
||||||
|
const onSubmit = async () => {
|
||||||
|
const res = await APIMitigateFind(formData)
|
||||||
|
tableData.value = res
|
||||||
|
pagination.total = res.length
|
||||||
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
MitigateList()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.table {
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -50,9 +50,19 @@
|
||||||
/>
|
/>
|
||||||
</t-form-item>
|
</t-form-item>
|
||||||
</t-col>
|
</t-col>
|
||||||
|
|
||||||
<t-col :push="4" :span="2" style="margin-top: 0.2rem">
|
<t-col :push="4" :span="2" style="margin-top: 0.2rem">
|
||||||
<t-button type="submit" class="button">搜索</t-button>
|
<div
|
||||||
<t-button type="reset">重置</t-button>
|
style="
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 8vw;
|
||||||
|
margin-left: 5vw;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<t-button type="submit" class="button">搜索</t-button>
|
||||||
|
<t-button type="reset">重置</t-button>
|
||||||
|
</div>
|
||||||
</t-col>
|
</t-col>
|
||||||
</t-row>
|
</t-row>
|
||||||
</t-form>
|
</t-form>
|
||||||
|
@ -306,10 +316,6 @@ onMounted(() => {
|
||||||
height: 6rem;
|
height: 6rem;
|
||||||
padding-top: 0.5rem;
|
padding-top: 0.5rem;
|
||||||
}
|
}
|
||||||
.button {
|
|
||||||
margin-right: 1rem;
|
|
||||||
margin-left: 3rem;
|
|
||||||
}
|
|
||||||
.table {
|
.table {
|
||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
}
|
}
|
||||||
|
|
|
@ -135,11 +135,10 @@ const CLASS_NAME = [
|
||||||
]
|
]
|
||||||
//学生收费标准
|
//学生收费标准
|
||||||
let RATES_OPTIONS = reactive([
|
let RATES_OPTIONS = reactive([
|
||||||
{ label: '初级学生', value: '2000元' },
|
{ label: '机电工程系', value: '16800元' },
|
||||||
{ label: '中级学生', value: '3000元' },
|
{ label: '护理分院', value: '19800元' },
|
||||||
{ label: '高级学生', value: '4000元' },
|
{ label: '建筑系', value: '9800元' },
|
||||||
{ label: '老年学生', value: '5000元' },
|
{ label: '材料科学与工程系', value: '20000元' }
|
||||||
{ label: '神级学生', value: '6000元' }
|
|
||||||
])
|
])
|
||||||
//学生收费标准表头
|
//学生收费标准表头
|
||||||
const ratesColumns = [
|
const ratesColumns = [
|
||||||
|
@ -163,7 +162,7 @@ const formData = ref({
|
||||||
// 表格分页
|
// 表格分页
|
||||||
const pagination = ref({
|
const pagination = ref({
|
||||||
defaultPageSize: 5,
|
defaultPageSize: 5,
|
||||||
total: 5,
|
total: RATES_OPTIONS.length,
|
||||||
defaultCurrent: 1
|
defaultCurrent: 1
|
||||||
})
|
})
|
||||||
const visible = ref(false)
|
const visible = ref(false)
|
||||||
|
|
|
@ -32,8 +32,17 @@
|
||||||
</t-row>
|
</t-row>
|
||||||
<t-row style="margin-top: 0.5rem">
|
<t-row style="margin-top: 0.5rem">
|
||||||
<t-col :push="10" :span="2" style="margin-top: 0.2rem">
|
<t-col :push="10" :span="2" style="margin-top: 0.2rem">
|
||||||
<t-button type="submit" class="button">搜索</t-button>
|
<div
|
||||||
<t-button type="reset">重置</t-button>
|
style="
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 8vw;
|
||||||
|
margin-left: 4.5vw;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<t-button type="submit">搜索</t-button>
|
||||||
|
<t-button type="reset">重置</t-button>
|
||||||
|
</div>
|
||||||
</t-col>
|
</t-col>
|
||||||
</t-row>
|
</t-row>
|
||||||
</t-form>
|
</t-form>
|
||||||
|
@ -143,7 +152,12 @@ const handleRowClick = e => {
|
||||||
}
|
}
|
||||||
//表单重置
|
//表单重置
|
||||||
const onReset = () => {
|
const onReset = () => {
|
||||||
|
loading.value = true
|
||||||
ParagraphList()
|
ParagraphList()
|
||||||
|
const timerId = setTimeout(() => {
|
||||||
|
loading.value = false
|
||||||
|
clearInterval(timerId)
|
||||||
|
}, 300)
|
||||||
}
|
}
|
||||||
//表单提交
|
//表单提交
|
||||||
const onSubmit = async () => {
|
const onSubmit = async () => {
|
||||||
|
@ -183,10 +197,6 @@ onMounted(() => {
|
||||||
height: 6rem;
|
height: 6rem;
|
||||||
padding-top: 0.5rem;
|
padding-top: 0.5rem;
|
||||||
}
|
}
|
||||||
.button {
|
|
||||||
margin-right: 1rem;
|
|
||||||
margin-left: 3rem;
|
|
||||||
}
|
|
||||||
.table {
|
.table {
|
||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,63 +28,6 @@
|
||||||
>
|
>
|
||||||
</t-table>
|
</t-table>
|
||||||
</div>
|
</div>
|
||||||
<div class="table">
|
|
||||||
<div>减免明细表</div>
|
|
||||||
<t-table
|
|
||||||
row-key="id"
|
|
||||||
:data="mitigateTableData"
|
|
||||||
:columns="mitigateColumns"
|
|
||||||
:hover="true"
|
|
||||||
table-layout="auto"
|
|
||||||
:pagination="mitigatePagination"
|
|
||||||
:show-header="true"
|
|
||||||
cell-empty-content="-"
|
|
||||||
max-height="550"
|
|
||||||
lazy-load
|
|
||||||
@row-click="mitigateHandleRowClick"
|
|
||||||
@page-change="mitigateOnPageChange"
|
|
||||||
:loading="mitigateLoading"
|
|
||||||
>
|
|
||||||
</t-table>
|
|
||||||
</div>
|
|
||||||
<div class="table">
|
|
||||||
<div>退费明细表</div>
|
|
||||||
<t-table
|
|
||||||
row-key="id"
|
|
||||||
:data="refundTableData"
|
|
||||||
:columns="refundColumns"
|
|
||||||
:hover="true"
|
|
||||||
table-layout="auto"
|
|
||||||
:pagination="refundPagination"
|
|
||||||
:show-header="true"
|
|
||||||
cell-empty-content="-"
|
|
||||||
max-height="550"
|
|
||||||
lazy-load
|
|
||||||
@row-click="refundHandleRowClick"
|
|
||||||
@page-change="refundOnPageChange"
|
|
||||||
:loading="refundLoading"
|
|
||||||
>
|
|
||||||
</t-table>
|
|
||||||
</div>
|
|
||||||
<div class="table">
|
|
||||||
<div>学生欠费明细表</div>
|
|
||||||
<t-table
|
|
||||||
row-key="id"
|
|
||||||
:data="studentTableData"
|
|
||||||
:columns="studentColumns"
|
|
||||||
:hover="true"
|
|
||||||
table-layout="auto"
|
|
||||||
:pagination="studentPagination"
|
|
||||||
:show-header="true"
|
|
||||||
cell-empty-content="-"
|
|
||||||
max-height="550"
|
|
||||||
lazy-load
|
|
||||||
@row-click="studentHandleRowClick"
|
|
||||||
@page-change="studentOnPageChange"
|
|
||||||
:loading="tudentLoading"
|
|
||||||
>
|
|
||||||
</t-table>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
|
@ -150,158 +93,6 @@ const DailyList = async () => {
|
||||||
tableData.value = res.data.list
|
tableData.value = res.data.list
|
||||||
pagination.total = res.data.list.length
|
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(() => {
|
onMounted(() => {
|
||||||
DailyList()
|
DailyList()
|
||||||
})
|
})
|
||||||
|
|
145
src/pages/receivables-management/returnPremium.vue
Normal file
145
src/pages/receivables-management/returnPremium.vue
Normal file
|
@ -0,0 +1,145 @@
|
||||||
|
<template>
|
||||||
|
<div class="back-color">
|
||||||
|
<div class="form">
|
||||||
|
<t-form
|
||||||
|
:data="formData"
|
||||||
|
reset-type="initial"
|
||||||
|
colon
|
||||||
|
@reset="onReset"
|
||||||
|
@submit="onSubmit"
|
||||||
|
>
|
||||||
|
<t-row>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="学生姓名" name="name">
|
||||||
|
<t-input v-model="formData.name"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="学生学号" name="studentnumber">
|
||||||
|
<t-input v-model="formData.studentnumber"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="学生学院" name="college">
|
||||||
|
<t-input v-model="formData.college"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="导员姓名" name="tutor">
|
||||||
|
<t-input v-model="formData.tutor"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
</t-row>
|
||||||
|
<t-row style="margin-top: 0.5rem">
|
||||||
|
<t-col :push="10" :span="2" style="margin-top: 0.2rem">
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 8vw;
|
||||||
|
margin-left: 4.5vw;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<t-button type="submit">搜索</t-button>
|
||||||
|
<t-button type="reset">重置</t-button>
|
||||||
|
</div>
|
||||||
|
</t-col>
|
||||||
|
</t-row>
|
||||||
|
</t-form>
|
||||||
|
</div>
|
||||||
|
<div class="table">
|
||||||
|
<t-table
|
||||||
|
row-key="id"
|
||||||
|
:data="tableData"
|
||||||
|
:columns="columns"
|
||||||
|
:hover="true"
|
||||||
|
table-layout="auto"
|
||||||
|
:pagination="pagination"
|
||||||
|
:show-header="true"
|
||||||
|
cell-empty-content="-"
|
||||||
|
max-height="550"
|
||||||
|
lazy-load
|
||||||
|
@page-change="onPageChange"
|
||||||
|
:loading="loading"
|
||||||
|
>
|
||||||
|
</t-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, onMounted, reactive } from 'vue'
|
||||||
|
import {
|
||||||
|
APIPremiumList,
|
||||||
|
APIPremiumFind
|
||||||
|
} from '@/api/receivables-management/management'
|
||||||
|
// 表格数据
|
||||||
|
const tableData = ref([])
|
||||||
|
//表单数据
|
||||||
|
const formData = reactive({
|
||||||
|
name: '',
|
||||||
|
studentnumber: '',
|
||||||
|
college: '',
|
||||||
|
tutor: ''
|
||||||
|
})
|
||||||
|
// 表头
|
||||||
|
const columns = ref([
|
||||||
|
{ colKey: 'serial-number', title: '学生序号', align: 'center' },
|
||||||
|
{ colKey: 'name', title: '学生姓名', align: 'center' },
|
||||||
|
{ colKey: 'studentNumber', title: '学号', align: 'center' },
|
||||||
|
{ colKey: 'gender', title: '性别', align: 'center' },
|
||||||
|
{ colKey: 'age', title: '年龄', align: 'center' },
|
||||||
|
{ colKey: 'tuition', title: '退费金额', align: 'center' },
|
||||||
|
{ colKey: 'enrollmentyear', title: '入学年份', align: 'center' },
|
||||||
|
{ colKey: 'college', title: '所在学院', align: 'center' },
|
||||||
|
{ colKey: 'major', title: '所在专业', align: 'center' },
|
||||||
|
{ colKey: 'grade', title: '所在班级', align: 'center' },
|
||||||
|
{ colKey: 'tutor', title: '导员姓名', align: 'center' }
|
||||||
|
])
|
||||||
|
// 表格分页数据
|
||||||
|
let pagination = {
|
||||||
|
defaultCurrent: 1,
|
||||||
|
defaultPageSize: 10,
|
||||||
|
total: 50
|
||||||
|
}
|
||||||
|
// 表格加载状态
|
||||||
|
const loading = ref(false)
|
||||||
|
//发送请求
|
||||||
|
const PremiumList = async () => {
|
||||||
|
const res = await APIPremiumList()
|
||||||
|
tableData.value = res.data.list
|
||||||
|
pagination.total = res.data.list.length
|
||||||
|
}
|
||||||
|
// 监听分页变化事件
|
||||||
|
const onPageChange = (Newpage, PreviousPagePrev) => {
|
||||||
|
loading.value = true
|
||||||
|
const timerId = setTimeout(() => {
|
||||||
|
loading.value = false
|
||||||
|
clearInterval(timerId)
|
||||||
|
}, 300)
|
||||||
|
}
|
||||||
|
//表单重置
|
||||||
|
const onReset = () => {
|
||||||
|
loading.value = true
|
||||||
|
const timerId = setTimeout(() => {
|
||||||
|
PremiumList()
|
||||||
|
loading.value = false
|
||||||
|
clearInterval(timerId)
|
||||||
|
}, 300)
|
||||||
|
}
|
||||||
|
//表单提交
|
||||||
|
const onSubmit = async () => {
|
||||||
|
const data = await APIPremiumFind(formData)
|
||||||
|
tableData.value = data
|
||||||
|
pagination.total = data.length
|
||||||
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
PremiumList()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.table {
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
</style>
|
152
src/pages/receivables-management/studentInformation.vue
Normal file
152
src/pages/receivables-management/studentInformation.vue
Normal file
|
@ -0,0 +1,152 @@
|
||||||
|
<template>
|
||||||
|
<div class="back-color">
|
||||||
|
<div class="form">
|
||||||
|
<t-form
|
||||||
|
ref="form"
|
||||||
|
:data="formData"
|
||||||
|
reset-type="initial"
|
||||||
|
colon
|
||||||
|
@reset="onReset"
|
||||||
|
@submit="onSubmit"
|
||||||
|
>
|
||||||
|
<t-row>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="学生姓名" name="name">
|
||||||
|
<t-input v-model="formData.name"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="学生学号" name="studentnumber">
|
||||||
|
<t-input v-model="formData.studentnumber"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="所在部门" name="college">
|
||||||
|
<t-input v-model="formData.college"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
<t-col :span="3">
|
||||||
|
<t-form-item label="学生班级" name="grade">
|
||||||
|
<t-input v-model="formData.grade"></t-input>
|
||||||
|
</t-form-item>
|
||||||
|
</t-col>
|
||||||
|
</t-row>
|
||||||
|
<t-row style="margin-top: 0.5rem">
|
||||||
|
<t-col :span="3"> </t-col>
|
||||||
|
<t-col :span="3"> </t-col>
|
||||||
|
<t-col :push="4" :span="2" style="margin-top: 0.2rem">
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 8vw;
|
||||||
|
margin-left: 5vw;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<t-button type="submit" class="button">搜索</t-button>
|
||||||
|
<t-button type="reset">重置</t-button>
|
||||||
|
</div>
|
||||||
|
</t-col>
|
||||||
|
</t-row>
|
||||||
|
</t-form>
|
||||||
|
</div>
|
||||||
|
<div class="table">
|
||||||
|
<t-table
|
||||||
|
row-key="id"
|
||||||
|
:data="tableData"
|
||||||
|
:columns="columns"
|
||||||
|
:hover="true"
|
||||||
|
table-layout="auto"
|
||||||
|
:pagination="pagination"
|
||||||
|
:show-header="true"
|
||||||
|
cell-empty-content="-"
|
||||||
|
max-height="550"
|
||||||
|
lazy-load
|
||||||
|
@page-change="onPageChange"
|
||||||
|
:loading="loading"
|
||||||
|
>
|
||||||
|
</t-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, onMounted, reactive } from 'vue'
|
||||||
|
import {
|
||||||
|
APIMessageList,
|
||||||
|
APIMessageFind
|
||||||
|
} from '@/api/receivables-management/management'
|
||||||
|
// 表格数据
|
||||||
|
const tableData = ref([])
|
||||||
|
//表单数据
|
||||||
|
const formData = reactive({
|
||||||
|
name: '',
|
||||||
|
studentnumber: '',
|
||||||
|
college: '',
|
||||||
|
grade: ''
|
||||||
|
})
|
||||||
|
// 表头
|
||||||
|
const columns = ref([
|
||||||
|
{ colKey: 'serial-number', title: '学生序号', align: 'center' },
|
||||||
|
{ colKey: 'name', title: '学生姓名', align: 'center' },
|
||||||
|
{ colKey: 'studentNumber', title: '学号', align: 'center' },
|
||||||
|
{ colKey: 'gender', title: '性别', align: 'center' },
|
||||||
|
{ colKey: 'age', title: '年龄', align: 'center' },
|
||||||
|
{ colKey: 'nativePlace', title: '籍贯', align: 'center' },
|
||||||
|
{ colKey: 'nation', title: '民族' },
|
||||||
|
{ colKey: 'enrollmentyear', title: '入学年份', align: 'center' },
|
||||||
|
{ colKey: 'college', title: '所在学院', align: 'center' },
|
||||||
|
{ colKey: 'major', title: '所在专业', align: 'center' },
|
||||||
|
{ colKey: 'grade', title: '所在班级', align: 'center' },
|
||||||
|
{ colKey: 'tutor', title: '导员姓名', align: 'center' },
|
||||||
|
{ colKey: 'phone', title: '联系人电话', align: 'center' }
|
||||||
|
])
|
||||||
|
// 表格分页数据
|
||||||
|
let pagination = {
|
||||||
|
defaultCurrent: 1,
|
||||||
|
defaultPageSize: 10,
|
||||||
|
total: 50
|
||||||
|
}
|
||||||
|
// 表格加载状态
|
||||||
|
const loading = ref(false)
|
||||||
|
//发送请求
|
||||||
|
const MessageList = async () => {
|
||||||
|
const res = await APIMessageList()
|
||||||
|
tableData.value = res.data.list
|
||||||
|
pagination.total = res.data.list.length
|
||||||
|
}
|
||||||
|
// 监听分页变化事件
|
||||||
|
const onPageChange = (Newpage, PreviousPagePrev) => {
|
||||||
|
loading.value = true
|
||||||
|
const timerId = setTimeout(() => {
|
||||||
|
loading.value = false
|
||||||
|
clearInterval(timerId)
|
||||||
|
}, 300)
|
||||||
|
}
|
||||||
|
//表单提交
|
||||||
|
const onSubmit = async () => {
|
||||||
|
const res = await APIMessageFind(formData)
|
||||||
|
tableData.value = Array.from(res)
|
||||||
|
pagination.total = res.length
|
||||||
|
}
|
||||||
|
//表单重置
|
||||||
|
const onReset = () => {
|
||||||
|
loading.value = true
|
||||||
|
MessageList()
|
||||||
|
const timerId = setTimeout(() => {
|
||||||
|
loading.value = false
|
||||||
|
clearInterval(timerId)
|
||||||
|
}, 300)
|
||||||
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
MessageList()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.form {
|
||||||
|
background-color: #fff;
|
||||||
|
height: 6rem;
|
||||||
|
padding-top: 0.5rem;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -22,10 +22,17 @@
|
||||||
</t-form-item>
|
</t-form-item>
|
||||||
</t-col>
|
</t-col>
|
||||||
<t-col :push="4" :span="2">
|
<t-col :push="4" :span="2">
|
||||||
<t-button type="submit" class="button" style="margin-left: -0.5rem"
|
<div
|
||||||
>搜索</t-button
|
style="
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 8vw;
|
||||||
|
margin-left: 5vw;
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<t-button type="reset" style="margin-left: 1.5rem">重置</t-button>
|
<t-button type="submit">搜索</t-button>
|
||||||
|
<t-button type="reset">重置</t-button>
|
||||||
|
</div>
|
||||||
</t-col>
|
</t-col>
|
||||||
</t-row>
|
</t-row>
|
||||||
</t-form>
|
</t-form>
|
||||||
|
|
|
@ -55,6 +55,30 @@ const ReceivablesManagement = [
|
||||||
name: "FacultyAnalysis",
|
name: "FacultyAnalysis",
|
||||||
component: () => import("@/pages/receivables-management/facultyAnalysis.vue"),
|
component: () => import("@/pages/receivables-management/facultyAnalysis.vue"),
|
||||||
meta: { title: "部门分析表", },
|
meta: { title: "部门分析表", },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/student-information",
|
||||||
|
name: "StudentInformation",
|
||||||
|
component: () => import("@/pages/receivables-management/studentInformation.vue"),
|
||||||
|
meta: { title: "学生信息统计表", },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/mitigate",
|
||||||
|
name: "Mitigate",
|
||||||
|
component: () => import("@/pages/receivables-management/Mitigate.vue"),
|
||||||
|
meta: { title: "学生减免明细表", },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/return-premium",
|
||||||
|
name: "ReturnPremium",
|
||||||
|
component: () => import("@/pages/receivables-management/returnPremium.vue"),
|
||||||
|
meta: { title: "学生退费明细表", },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/rrrearage",
|
||||||
|
name: "Arrearage",
|
||||||
|
component: () => import("@/pages/receivables-management/Arrearage.vue"),
|
||||||
|
meta: { title: "学生欠费明细表", },
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue
Block a user