From db905ecd14f63dba9337b4f4715584ef2d7e8c7e Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期五, 07 三月 2025 14:45:00 +0800 Subject: [PATCH] 修改 --- src/views/specialOperationsPay/notCoalPay/index.vue | 277 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 185 insertions(+), 92 deletions(-) diff --git a/src/views/specialOperationsPay/notCoalPay/index.vue b/src/views/specialOperationsPay/notCoalPay/index.vue index 5500d37..6949c22 100644 --- a/src/views/specialOperationsPay/notCoalPay/index.vue +++ b/src/views/specialOperationsPay/notCoalPay/index.vue @@ -2,13 +2,13 @@ <div class="app-container"> <div> <el-button - size="medium" - style="margin-bottom: 10px;background-color: #0FC7F0;color: white" + style="margin-right: 10px;background-color: #0FC7F0;color: white" @click="handleAdd('add',{})" - >录入批次</el-button> + v-if="isAhthority" + >录入批次 + </el-button> <el-date-picker - style="margin-left: 30px;width: 300px" - size="small" + style="width: 300px" v-model="dateValue" @change="changeDate" type="daterange" @@ -18,49 +18,66 @@ start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker> - <el-select v-model="queryParams.institutionId" size="small" style="margin-left: 15px;" placeholder="请选择行政区划"> - <el-option - v-for="item in districtList" - :key="item.id" - :label="item.institutionalName" - :value="item.id"> - </el-option> - </el-select> - <el-select v-model="queryParams.institutionId" size="small" style="margin-left: 15px;" placeholder="请选择考试点"> - <el-option - v-for="item in examList" - :key="item.id" - :label="item.institutionalName" - :value="item.id"> - </el-option> - </el-select> +<!-- <el-select v-model="queryParams.districtCode" size="small" style="margin-left: 15px;margin-right: 15px" placeholder="行政区划">--> +<!-- <el-option--> +<!-- v-for="item in areaList"--> +<!-- :key="item.id"--> +<!-- :label="item.name"--> +<!-- :value="item.code">--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- <el-select v-model="queryParams.deptId" size="small" style="margin-left: 15px;" placeholder="请选择考试点">--> +<!-- <el-option--> +<!-- v-for="item in examList"--> +<!-- :key="item.siteId"--> +<!-- :label="item.siteName"--> +<!-- :value="item.siteId">--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- <treeselect v-model="queryParams.deptId" :options="deptOptions" :show-count="true" placeholder="请选择组织架构" />--> + <el-cascader v-model="queryParams.deptId" style="margin-left: 10px" :options="deptOptions" placeholder="组织架构" :props="{ expandTrigger: 'hover',checkStrictly: true,emitPath: false,value: 'id' }"></el-cascader> <el-button - size="small" type="primary" style="margin-bottom: 10px;margin-left: 20px" @click="handleQuery()" - >查询</el-button> + >查询 + </el-button> <el-button - size="small" type="primary" style="margin-bottom: 10px" @click="resetQuery()" - >重置</el-button> + >重置 + </el-button> </div> - <el-table v-loading="loading" :data="expertList" style="margin-top: 10px"> - <el-table-column label="序号" align="center" type="index" /> - <el-table-column label="提交时间" align="center" prop="createTime" /> - <el-table-column label="批次名称" align="center" prop="batchName" /> - <el-table-column label="考试点" align="center" prop="batchName" /> - <el-table-column label="所属地州" align="center" prop="batchName" /> - <el-table-column label="缴费类型" align="center" prop="batchName" /> - <el-table-column label="单人(元)" align="center" prop="batchName" /> - <el-table-column label="人数" align="center" prop="batchName" /> + <el-table v-loading="loading" :data="payList" style="margin-top: 10px"> + <el-table-column label="序号" align="center" type="index"/> + <el-table-column label="提交时间" align="center" prop="createTime"/> + <el-table-column label="批次名称" align="center" prop="batchName"/> + <el-table-column label="组织架构" align="center" prop="deptName"/> + <el-table-column label="行政管辖" align="center" prop="districtName"/> + <el-table-column label="缴费类型" align="center" prop="payType"> + <template #default="scope"> + {{scope.row.payType == 1?'初训理论':scope.row.payType == 2?'初训实操':scope.row.payType == 3?'初训理论与实操':scope.row.payType == 4?'复训理论':''}} + </template> + </el-table-column> + <el-table-column label="单人(元)" align="center" prop="amount"/> + <el-table-column label="人数" align="center"> + <template #default="scope"> + <span>{{scope.row.havePayNum}}</span>/{{scope.row.totalNum}} + </template> + </el-table-column> + <el-table-column label="缴费形式" align="center" prop="batchName"> + <template #default="scope"> + <el-tag type="success" v-if="scope.row.payPersonType == 1">个人</el-tag> + <el-tag v-if="scope.row.payPersonType == 2">批量</el-tag> + <el-button type="text" style="color:lightcoral;margin-left: 5px" @click="updatePayType(scope.row)" size="small" v-if="scope.row.payPersonType == 1">转批量</el-button> + </template> + </el-table-column> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180px"> - <template #default="scope" > - <el-button size="mini" type="text" style="color: #1890ff" @click="handleViewStu(scope.row)">学员管理</el-button> - <el-button size="mini" type="text" style="color: #1890ff" @click="handleViewCourse(scope.row,'')">批量缴费</el-button> - <el-button size="mini" type="text" style="color:lightcoral" @click="handleViewCourse(scope.row,'')">删除</el-button> + <template #default="scope"> + <el-button v-if="isAhthority" size="mini" type="text" style="color: #1890ff" @click="handleViewStu(scope.row)">学员管理</el-button> + <el-button v-if="isAhthority && scope.row.payPersonType == 2 && (scope.row.havePayNum < scope.row.totalNum)" size="mini" type="text" style="color: #1890ff" @click="handleBatchPay(scope.row,'add')">批量缴费</el-button> + <el-button v-if="isAhthority" size="mini" type="text" style="color:lightcoral" @click="handleDelete(scope.row)">删除</el-button> </template> </el-table-column> </el-table> @@ -71,108 +88,184 @@ :limit.sync="queryParams.pageSize" @pagination="getList" /> - <add-dialog ref="addDialogRef" @getList = "getList"></add-dialog> - <stu-dialog ref="stuDialogRef" @getList = "getList"></stu-dialog> + <add-dialog ref="addDialogRef" @getList="getList"></add-dialog> + <stu-dialog ref="stuDialogRef" @getList="getList"></stu-dialog> + <batch-pay ref="batchPayRef" @getList="getList"></batch-pay> </div> </template> <script> -import { delJobRegist } from '@/api/coalMine/jobRegist' -import { listPlat, listPlatSelect } from '@/api/onlineEducation/plat' -import { listCourse } from '@/api/onlineEducation/course' +import {delJobRegist} from '@/api/coalMine/jobRegist' +import {listPlat, listPlatSelect} from '@/api/onlineEducation/plat' +import {listCourse} from '@/api/onlineEducation/course' import addDialog from './components/addDialog.vue' import stuDialog from './components/studentDialog.vue' +import batchPay from "./components/batchPay.vue" +import {getExamPage} from "@/api/coalMine/placeManage/exam"; +import {getAreaList} from "@/api/coalMine/placeManage/train"; +import {delNonCoalPay, editPayTypeInfo, getNonCoalPayList} from "@/api/specialOperationsPay/notCoalPay"; +import store from "@/store"; +import {deptTreeSelect} from "@/api/system/user"; + export default { - name: "nPeopleManage", + name: "nCoalPay", dicts: [], - components: { addDialog,stuDialog }, + components: {addDialog, stuDialog, batchPay}, data() { return { - isDark:true, + isDark: true, loading: false, single: true, multiple: true, showSearch: true, addForm: false, total: 0, - districtList: [], - examList: [], + areaList: [], + deptOptions: [], dateValue: [], - expertList: [], + payList: [], queryParams: { pageNum: 1, pageSize: 10, - institutionId: '' + districtCode: '', + deptId: '', + params: { + startTime: '', + endTime: '' + } }, + isAhthority: false }; }, created() { - this.getDistrict(); - this.getList(); - this.getExam(); + const userInfo = store.getters && store.getters.userInfo + this.districtCode = userInfo.district.districtCode + if(userInfo.district.districtCode !== '65'){ + this.queryParams.districtCode = this.districtCode + }else{ + this.queryParams.districtCode = '' + } + this.getDistrict() + this.getList() + this.getDeptList() + const roles = store.getters && store.getters.roles + if (roles.includes('admin') || roles.includes('mkexam') || roles.includes('feimeiexam') ) { + this.isAhthority = true + } else { + this.isAhthority = false + } }, methods: { - getList(){ - this.loading = true; - this.expertList = [ - { - id: 1, - + getList() { + this.loading = true + this.queryParams.params.startTime = this.dateValue[0]?this.dateValue[0]:'' + this.queryParams.params.endTime = this.dateValue[1]?this.dateValue[1]:'' + getNonCoalPayList( this.queryParams).then((res) => { + if (res.code == 200) { + this.payList = res.rows + this.total = res.total + this.loading = false } - ] - this.total = 1 - this.loading = false; - // this.loading = true; - // listCourse( this.queryParams).then((res) => { - // if (res.code == 200) { - // this.expertList = res.rows.map(item => { - // return { - // ...item, - // courseNum: item.outline ? item.outline.length : '', - // } - // }) - // this.total = res.total - // this.loading = false; - // } - // }) + }) }, + + getDeptList() { + deptTreeSelect().then(response => { + this.deptOptions = response.data + }) + }, + openUrl(url) { - window.open(url,'_blank') + window.open(url, '_blank') }, //行政区划 - getDistrict() { + async getDistrict() { + const res = await getAreaList() + if (res.code == 200) { + this.areaList = res.data + } + }, + changeDate(val) { + console.log('val', val) }, - //考试点 - getExam() { - + handleAdd(type, data) { + this.$refs.addDialogRef.openDialog(type, data, this.areaList,this.deptOptions); }, - changeDate(val){ - console.log('val',val) + handleViewStu(val) { + this.$refs.stuDialogRef.openDialog(val.id); }, - handleAdd(type,data) { - this.$refs.addDialogRef.openDialog(type, data); + handleBatchPay(val,type) { + this.$refs.batchPayRef.openDialog(val,type); }, - handleViewStu(val){ - this.$refs.stuDialogRef.openDialog(val); - }, - handleQuery(){ + handleQuery() { + this.queryParams.pageNum = 1 this.getList(); }, - resetQuery(){ + resetQuery() { this.queryParams = { pageNum: 1, pageSize: 10, - institutionId: '' + districtCode: '', + deptId: '', + params: { + startTime: '', + endTime: '' + } } + this.dateValue = [] this.getList(); }, - check(val){ - this.$confirm('此操作将审核该条数据, 是否继续?', '提示', { + updatePayType(row){ + if(row.totalNum < 2){ + this.$message({ + type: 'warning', + message: '批量缴费人数不能小于二人' + }) + return + } + this.$confirm('一旦关闭则无法重新开启个人缴费,必须批量缴完剩余所有学员。是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(async () => { + const res = await editPayTypeInfo({id: row.id,payPersonType: 2}) + if(res.code == 200){ + this.$message({ + type: 'success', + message: '删除成功!' + }); + await this.getList() + }else{ + this.$message({ + type: 'warning', + message: res.msg + }); + } + }).catch(() => { + + }); + }, + + handleDelete(row){ + this.$confirm('此操作将永久删除该条数据, 是否继续?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(async () => { + const res = await delNonCoalPay(row.id) + if(res.code == 200){ + this.$message({ + type: 'success', + message: '删除成功!' + }); + await this.getList() + }else{ + this.$message({ + type: 'warning', + message: res.msg + }); + } }).catch(() => { }); -- Gitblit v1.9.2