From 509f1d71c91242b11fd287cfcdeafe3d19b2d807 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Tue, 04 Mar 2025 11:11:46 +0800
Subject: [PATCH] 新增
---
src/views/specialOperationsPay/coalPay/components/studentDialog.vue | 96 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 84 insertions(+), 12 deletions(-)
diff --git a/src/views/specialOperationsPay/coalPay/components/studentDialog.vue b/src/views/specialOperationsPay/coalPay/components/studentDialog.vue
index 28a7602..d1f8f2e 100644
--- a/src/views/specialOperationsPay/coalPay/components/studentDialog.vue
+++ b/src/views/specialOperationsPay/coalPay/components/studentDialog.vue
@@ -24,12 +24,12 @@
<el-row :gutter="24">
<el-col :span="12" v-if="stuInfo.payType === 1 || stuInfo.payType === 3 || stuInfo.payType === 4">
<el-form-item label="理论类别:">
- <span>{{stuInfo.coalCategoryList.find(i=>i.categoryType == 1).subjectName}}</span>
+ <span>{{stuInfo.coalCategoryList.find(i => i.categoryType == 1) && stuInfo.coalCategoryList.find(i => i.categoryType == 1).subjectName }}</span>
</el-form-item>
</el-col>
<el-col :span="12" v-if="stuInfo.payType === 2 || stuInfo.payType === 3">
<el-form-item label="实操类别:">
- <span>{{stuInfo.coalCategoryList.find(i=>i.categoryType == 2).subjectName}}</span>
+ <span>{{stuInfo.coalCategoryList.find(i => i.categoryType == 2) && stuInfo.coalCategoryList.find(i => i.categoryType == 2).subjectName }}</span>
</el-form-item>
</el-col>
</el-row>
@@ -75,18 +75,21 @@
</el-form>
<!-- 表格-->
- <div style="margin: 20px 15px;display: flex">
- <el-button size="small" type="primary" @click="handleAddStu('add',{})">添加学员</el-button>
- <el-button size="small" type="primary" @click="importDialog = true">批量导入</el-button>
+ <div style="margin: 20px 15px;display: flex;justify-content: space-between">
+ <div>
+ <el-button size="small" type="primary" @click="handleAddStu('add',{})">添加学员</el-button>
+ <el-button size="small" type="primary" @click="importDialog = true">批量导入</el-button>
+ </div>
+ <el-button type="text" @click="exportExcel">导出清单</el-button>
</div>
- <el-table v-loading="loading" :data="stuList">
+ <el-table v-loading="loading" :data="stuList" id="table_excel">
<el-table-column label="序号" align="center" type="index" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="身份证号" align="center" prop="idCard" />
<el-table-column label="手机号" align="center" prop="phone" />
<el-table-column label="性别" align="center" prop="sex">
<template #default="scope">
- {{scope.row.sex == 0?'男':scope.row.sex == 1?'女':'未知'}}
+ {{(parseInt(scope.row.idCard.substr(16, 1))) % 2 === 0 ? "女" : "男"}}
</template>
</el-table-column>
<el-table-column label="财政缴款码" align="center" prop="payCode">
@@ -96,9 +99,11 @@
</el-table-column>
<el-table-column label="是否已缴" align="center" prop="payStatus">
<template #default="scope">
- {{scope.row.payStatus == 0?'未缴':scope.row.payStatus == 1?'已缴':'未缴'}}
+ <span v-if="scope.row.payStatus == 1" style="color: green">已缴</span>
+ <span v-else style="color: red">未缴</span>
</template>
</el-table-column>
+ <el-table-column label="培训机构" align="center" prop="train" />
<el-table-column label="类别" align="center" prop="payType">
<template #default="scope">
{{scope.row.payType == 1?'个人':scope.row.payType == 2?'集体':'个人'}}
@@ -106,9 +111,10 @@
</el-table-column>
<el-table-column label="操作" align="center">
<template #default="scope">
- <el-button size="mini" type="text" v-if="scope.row.payStatus == 1" style="color: #1890ff">查看票据</el-button>
- <el-button size="mini" type="text" style="color: #1890ff" @click="handleAddStu('edit',scope.row)">修改</el-button>
- <el-button size="mini" type="text" style="color:lightcoral" @click="handleDelete(scope.row)">删除</el-button>
+ <el-button size="mini" type="text" v-if="scope.row.payStatus == 1" style="color: #1890ff" @click="checkTicket">查看票据</el-button>
+ <el-button size="mini" type="text" v-if="scope.row.payStatus == 0" style="color: #1890ff" @click="goPay(scope.row)">去缴费</el-button>
+ <el-button size="mini" type="text" style="color: #1890ff" v-if="!(scope.row.payCode && scope.row.payCode!=='')" @click="handleAddStu('edit',scope.row)">修改</el-button>
+ <el-button size="mini" type="text" style="color:lightcoral" v-if="!(scope.row.payCode && scope.row.payCode!=='')" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -137,6 +143,9 @@
<el-radio :label="0">男</el-radio>
<el-radio :label="1">女</el-radio>
</el-radio-group>
+ </el-form-item>
+ <el-form-item label="培训机构:">
+ <el-input v-model.trim="dataForm.train"/>
</el-form-item>
<el-form-item label="身份证号:" prop="idCard">
<el-input v-model.trim="dataForm.idCard"/>
@@ -202,7 +211,15 @@
</template>
<script>
import {verifyIdCard, verifySimplePhone} from "@/utils/validate";
-import {addCoalPayStu, delCoalPayStu, editCoalPayStu, getCoalPayStudentList} from "@/api/specialOperationsPay/coalPay";
+import {
+ addCoalPayStu,
+ coalPersonPay,
+ delCoalPayStu,
+ editCoalPayStu,
+ getCoalPayStudentList
+} from "@/api/specialOperationsPay/coalPay";
+import * as XLSX from 'xlsx';
+import { saveAs } from 'file-saver';
import exampleFile from '@/assets/studentInfo.xlsx'
import {getToken} from "@/utils/auth";
export default {
@@ -262,6 +279,38 @@
};
},
methods: {
+ exportExcel() {
+ var xlsxParam = { raw: true }
+ let tables = document.getElementById('table_excel')
+ let clonedTable = tables.cloneNode(true); // 深度克隆
+ // 删除克隆表格中的最后一列
+ const allRows = clonedTable.querySelectorAll('tr');
+ allRows.forEach((row,index) => {
+ const cells = row.querySelectorAll('th,td');
+ if (cells.length > 0) {
+ if(index == 0){
+ row.removeChild(cells[cells.length - 2]); // 表头行要特殊处理
+ }else{
+ row.removeChild(cells[cells.length - 1]); // 移除最后一个单元格
+ }
+ }
+ })
+ let table_book = this.$XLSX.utils.table_to_book(clonedTable, xlsxParam);
+ const table_write = this.$XLSX.write(table_book, {
+ bookType: 'xlsx',
+ bookSST: true,
+ type: 'array'
+ });
+ try {
+ this.$FileSaver.saveAs(
+ new Blob([table_write], { type: 'application/octet-stream' }),
+ `${this.stuInfo.batchName}批次学员缴费清单.xlsx`
+ );
+ } catch (e) {
+ if (typeof console !== 'undefined') console.log(e, table_write);
+ }
+ return table_write
+ },
openDialog(val) {
this.stuInfo = val
this.getStuList(this.stuInfo.id)
@@ -401,6 +450,29 @@
}
})
},
+ checkTicket(){
+ window.open('http://finpt.xjcz.gov.cn/fs-public/index.do')
+ },
+ async goPay(item){
+ if(item.payCode && item.payCode !== ''){
+ window.open(`http://finpt.xjcz.gov.cn/fs-public/billQuery/findByOrderId.do?orderId=${item.orderId}&deviceType=1`)
+ }else{
+ const query = {
+ coalPayId: item.coalPayId,
+ studentId: item.id
+ }
+ const res = await coalPersonPay(query)
+ if(res.code == 200) {
+ window.open(`http://finpt.xjcz.gov.cn/fs-public/billQuery/findByOrderId.do?orderId=${res.msg}&deviceType=1`)
+ }else{
+ this.payLoading = false
+ this.$message({
+ type:'warning',
+ message: res.msg
+ })
+ }
+ }
+ },
handleDelete(row){
this.$confirm('此操作将永久删除该条数据, 是否继续?', '提示', {
confirmButtonText: '确定',
--
Gitblit v1.9.2