From e735896a68d8c1742859a06d7bc1c7c1bb61f57d Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期四, 23 一月 2025 14:08:52 +0800 Subject: [PATCH] 新增页面 --- src/views/specialOperationsPay/notCoalPay/index.vue | 267 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 261 insertions(+), 6 deletions(-) diff --git a/src/views/specialOperationsPay/notCoalPay/index.vue b/src/views/specialOperationsPay/notCoalPay/index.vue index cf82b1e..fc8b607 100644 --- a/src/views/specialOperationsPay/notCoalPay/index.vue +++ b/src/views/specialOperationsPay/notCoalPay/index.vue @@ -1,10 +1,265 @@ -<script setup> - -</script> - <template> + <div class="app-container"> + <div> + <el-button + size="medium" + style="margin-bottom: 10px;background-color: #0FC7F0;color: white" + @click="handleAdd('add',{})" + v-if="isAhthority" + >录入批次 + </el-button> + <el-date-picker + style="margin-left: 30px;width: 300px" + size="small" + v-model="dateValue" + @change="changeDate" + type="daterange" + format="yyyy-MM-dd" + value-format="yyyy-MM-dd" + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期"> + </el-date-picker> + <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" size="small" :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 + size="small" + type="primary" + style="margin-bottom: 10px" + @click="resetQuery()" + >重置 + </el-button> + </div> + <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"> + <span v-if="scope.row.payPersonType == 1">已开启</span> + <span v-if="scope.row.payPersonType == 2" style="color:red">已关闭</span> + <el-button type="text" style="color:lightcoral" @click="updatePayType(scope.row)" 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 v-if="isAhthority" size="mini" type="text" style="color: #1890ff" @click="handleViewStu(scope.row)">学员管理</el-button> +<!-- <el-button v-if="isAhthority" size="mini" type="text" style="color: #1890ff" @click="handleBatchPay(scope.row,'')">批量缴费</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> + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + <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> -<style scoped lang="scss"> +<script> +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"; -</style> +export default { + name: "nCoalPay", + dicts: [], + components: {addDialog, stuDialog, batchPay}, + data() { + return { + isDark: true, + loading: false, + single: true, + multiple: true, + showSearch: true, + addForm: false, + total: 0, + areaList: [], + deptOptions: [], + dateValue: [], + payList: [], + queryParams: { + pageNum: 1, + pageSize: 10, + districtCode: '', + deptId: '', + params: { + startTime: '', + endTime: '' + } + }, + isAhthority: false + }; + }, + created() { + 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.loading = false; + 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; + } + }) + }, + + getDeptList() { + deptTreeSelect().then(response => { + this.deptOptions = response.data + }) + }, + + openUrl(url) { + window.open(url, '_blank') + }, + //行政区划 + async getDistrict() { + const res = await getAreaList() + if (res.code == 200) { + this.areaList = res.data + } + }, + + changeDate(val) { + console.log('val', val) + }, + handleAdd(type, data) { + this.$refs.addDialogRef.openDialog(type, data, this.areaList,this.deptOptions); + }, + handleViewStu(val) { + this.$refs.stuDialogRef.openDialog(val.id); + }, + handleBatchPay(val) { + this.$refs.batchPayRef.openDialog(val); + }, + handleQuery() { + this.getList(); + }, + resetQuery() { + this.queryParams = { + pageNum: 1, + pageSize: 10, + districtCode: '', + deptId: '', + params: { + startTime: '', + endTime: '' + } + } + this.dateValue = [] + this.getList(); + }, + updatePayType(row){ + 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(() => { + + }); + } + } +}; +</script> -- Gitblit v1.9.2