From 509f1d71c91242b11fd287cfcdeafe3d19b2d807 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期二, 04 三月 2025 11:11:46 +0800
Subject: [PATCH] 新增
---
src/views/specialOperationsPay/coalPay/index.vue | 27
src/views/specialOperationsPay/notCoalPay/components/studentDialog.vue | 93 ++++
src/views/system/dept/index.vue | 8
src/views/specialOperationsPay/notCoalPay/components/batchPay.vue | 23 +
src/api/specialOperationsPay/coalPay.js | 28 +
src/views/onlineEducation/count/index.vue | 35 +
src/views/onlineEducation/learnRecord/index.vue | 80 ++++
src/views/specialOperationsPay/notCoalCalculate/index.vue | 202 ++++++++++++
.env.development | 12
src/assets/studentInfo.xlsx | 0
src/views/specialOperationsPay/coalCalculate/index.vue | 167 ++++++++++
src/views/specialOperationsPay/coalPay/components/studentDialog.vue | 96 +++++
src/views/specialOperationsPay/singlePage/index.vue | 7
src/main.js | 8
src/views/specialOperationsPay/notCoalWorkType/index.vue | 2
src/views/specialOperationsPay/notCoalPay/index.vue | 23
package.json | 3
src/views/specialOperationsPay/notCoalCalculate/components/detailDialog.vue | 138 ++++++++
18 files changed, 863 insertions(+), 89 deletions(-)
diff --git a/.env.development b/.env.development
index f6cfc0f..9819f85 100644
--- a/.env.development
+++ b/.env.development
@@ -5,18 +5,18 @@
ENV = 'development'
# 若依管理系统/开发环境
-#黄镇
-#VUE_APP_BASE_API = 'http://192.168.0.47:8085/api'
+#新线上
+#VUE_APP_BASE_API = 'http://117.190.86.66:8581/api'
#董
-#VUE_APP_BASE_API = 'http://192.168.2.24:8085/api'
+VUE_APP_BASE_API = 'http://192.168.2.24:8085/api'
-#孔
-#VUE_APP_BASE_API = 'http://192.168.2.15:8085/api'
+#贺
+#VUE_APP_BASE_API = 'http://192.168.2.11:8085/api'
#线上
-VUE_APP_BASE_API = 'http://106.15.95.149:8086/api'
+#VUE_APP_BASE_API = 'http://106.15.95.149:8086/api'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
diff --git a/package.json b/package.json
index 66bd619..98e6085 100644
--- a/package.json
+++ b/package.json
@@ -64,7 +64,8 @@
"vue-print-nb": "^1.7.5",
"vue-router": "3.4.9",
"vuedraggable": "2.24.3",
- "vuex": "3.6.0"
+ "vuex": "3.6.0",
+ "xlsx": "^0.18.5"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.4.6",
diff --git a/src/api/specialOperationsPay/coalPay.js b/src/api/specialOperationsPay/coalPay.js
index 3cef0f0..a1522ad 100644
--- a/src/api/specialOperationsPay/coalPay.js
+++ b/src/api/specialOperationsPay/coalPay.js
@@ -1,11 +1,11 @@
import request from '@/utils/request'
// 数据分页
-export function getCoalPayCategory(data) {
+export function getCoalPayCategory(query) {
return request({
url: '/pay/coalCategory/list',
- method: 'post',
- data: data
+ method: 'get',
+ params: query
})
}
@@ -37,11 +37,11 @@
}
// 缴费列表
-export function getCoalPayList(data) {
+export function getCoalPayList(query) {
return request({
url: '/pay/coalPay/list',
- method: 'post',
- data: data
+ method: 'get',
+ params: query
})
}
@@ -157,3 +157,19 @@
params: query
})
}
+
+export function coalCount(query) {
+ return request({
+ url: '/pay/coalCategory/count',
+ method: 'get',
+ params: query
+ })
+}
+
+export function notCoalCount(query) {
+ return request({
+ url: '/pay/nonCoalCategory/count',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/src/assets/studentInfo.xlsx b/src/assets/studentInfo.xlsx
index dd1c715..ce51d17 100644
--- a/src/assets/studentInfo.xlsx
+++ b/src/assets/studentInfo.xlsx
Binary files differ
diff --git a/src/main.js b/src/main.js
index 3625db9..1a8a6f8 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,6 +40,11 @@
import '@/utils/filter'
import '@/utils/validate'
import Print from 'vue-print-nb'
+import FileSaver from 'file-saver'
+import * as XLSX from 'xlsx';
+//import XLSX from 'xlsx' //无效导入,XLSX是undefined
+
+// 将excel表格模板设置全局
// 全局方法挂载
Vue.prototype.getDicts = getDicts
@@ -51,7 +56,8 @@
Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.download = download
Vue.prototype.handleTree = handleTree
-
+Vue.prototype.$FileSaver = FileSaver
+Vue.prototype.$XLSX = XLSX
// 全局组件挂载
Vue.component('DictTag', DictTag)
Vue.component('Pagination', Pagination)
diff --git a/src/views/onlineEducation/count/index.vue b/src/views/onlineEducation/count/index.vue
index b9ee916..ba55738 100644
--- a/src/views/onlineEducation/count/index.vue
+++ b/src/views/onlineEducation/count/index.vue
@@ -51,13 +51,13 @@
@click="resetQuery()"
>重置</el-button>
</div>
- <el-table v-loading="loading" :data="expertList">
+ <el-table v-loading="loading" :data="expertList" show-summary :summary-method="getSummaries">
<el-table-column label="平台" align="center" prop="institutionName" />
<el-table-column label="培训总人数" align="center" prop="studentCount" />
<el-table-column label="培训学时达标人数" align="center" prop="finishCount" />
<el-table-column label="学时合格率" align="center" prop="classHourRate" />
- <el-table-column label="考试总人数" align="center" prop="eaxmStudentCount" />
- <el-table-column label="考试合格人数" align="center" prop="passCount" />
+ <el-table-column label="自测考试总人数" align="center" prop="eaxmStudentCount" />
+ <el-table-column label="自测考试合格人数" align="center" prop="passCount" />
<el-table-column label="考试合格率" align="center" prop="passRate">
<template #default="scope">
<span>{{scope.row.passRate}}%</span>
@@ -195,8 +195,33 @@
this.time = []
this.getList()
},
- handleAdd(){
-
+ getSummaries(param) {
+ const { columns, data } = param
+ const sums = [];
+ columns.forEach((column, index) => {
+ if (index === 0) {
+ sums[index] = '总计';
+ return
+ }
+ if (index === columns.length - 1) {
+ sums[index] = '--';
+ return
+ }
+ const values = data.map(item => Number(item[column.property]))
+ if (!values.every(value => isNaN(value))) {
+ sums[index] = values.reduce((prev, curr) => {
+ const value = Number(curr);
+ if (!isNaN(value)) {
+ return prev + curr;
+ } else {
+ return prev;
+ }
+ }, 0)
+ } else {
+ sums[index] = '--';
+ }
+ })
+ return sums;
}
}
};
diff --git a/src/views/onlineEducation/learnRecord/index.vue b/src/views/onlineEducation/learnRecord/index.vue
index 23d7d25..c998cc2 100644
--- a/src/views/onlineEducation/learnRecord/index.vue
+++ b/src/views/onlineEducation/learnRecord/index.vue
@@ -1,10 +1,49 @@
<template>
<div class="app-container">
- <el-radio-group v-model="queryParams.status" style="margin-bottom: 10px;" @change="changeTimeStatus">
+ <el-radio-group v-model="queryParams.status" @change="changeTimeStatus" style="margin-bottom: 10px">
<el-radio-button label="0">全部</el-radio-button>
<el-radio-button label="2">异常记录</el-radio-button>
<el-radio-button label="1">正常记录</el-radio-button>
</el-radio-group>
+ <div style="margin-bottom: 10px">
+ <el-select v-model="queryParams.institutionId" placeholder="请选择平台" style="margin-right: 10px">
+ <el-option
+ v-for="item in platformList"
+ :key="item.id"
+ :label="item.institutionalName"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ <el-input
+ v-model="queryParams.idcard"
+ placeholder="请输入身份证号"
+ clearable
+ style="width: 300px;margin-right: 10px"
+ />
+ <el-date-picker
+ v-model="dateValue"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ type="datetimerange"
+ range-separator="-"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期"
+ style="width: 380px"
+ ></el-date-picker>
+ <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="expertList" :row-class-name="tableAddClass">
<el-table-column label="记录编号" align="center" prop="id" />
<el-table-column label="身份证号" align="center" prop="idcard" :show-overflow-tooltip="true" />
@@ -45,13 +84,13 @@
import detailDialog from './components/detailDialog.vue'
import { listRecord, listStudent } from '@/api/onlineEducation/student'
import Cookies from 'js-cookie'
+import {listPlatSelect} from "@/api/onlineEducation/plat";
export default {
name: "nPeopleManage",
dicts: [],
components: { detailDialog},
data() {
return {
-
loading: false,
single: true,
multiple: true,
@@ -60,24 +99,40 @@
total: 0,
expertTypes: [],
expertList: [],
+ platformList: [],
+ dateValue: [],
queryParams: {
pageNum: 1,
pageSize: 10,
status: 0,
+ institutionId: null,
+ idcard: '',
+ startTime: '',
+ endTime: ''
},
};
},
created() {
- this.getList();
+ this.getList()
+ this.getPlat()
},
methods: {
getList(){
- this.loading = true;
+ this.loading = true
+ this.queryParams.startTime = this.dateValue[0]?this.dateValue[0]:''
+ this.queryParams.endTime = this.dateValue[1]?this.dateValue[1]:''
listRecord( this.queryParams).then((res) => {
if (res.code == 200) {
this.expertList = res.rows
this.total = res.total
- this.loading = false;
+ this.loading = false
+ }
+ })
+ },
+ getPlat() {
+ listPlatSelect().then((res) => {
+ if (res.code == 200) {
+ this.platformList = res.data
}
})
},
@@ -94,10 +149,21 @@
},
handleQuery(){
-
+ this.queryParams.pageNum = 1
+ this.getList();
},
resetQuery(){
-
+ this.queryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ status: 0,
+ institutionId: null,
+ idcard: '',
+ startTime: '',
+ endTime: ''
+ }
+ this.dateValue = []
+ this.getList()
},
handleView(data){
this.$refs.detailDialogRef.openDialog(data);
diff --git a/src/views/specialOperationsPay/coalCalculate/index.vue b/src/views/specialOperationsPay/coalCalculate/index.vue
new file mode 100644
index 0000000..19fa9bb
--- /dev/null
+++ b/src/views/specialOperationsPay/coalCalculate/index.vue
@@ -0,0 +1,167 @@
+<template>
+ <div class="app-container">
+ <div>
+ <el-date-picker
+ v-model="queryParams.year"
+ type="year"
+ style="width: 300px"
+ value-format="yyyy"
+ placeholder="选择年">
+ </el-date-picker>
+ <el-select v-model="queryParams.quarter" placeholder="请选择季度" style="width: 300px;margin-left: 5px" clearable>
+ <el-option
+ v-for="item in quarterList"
+ :key="item.id"
+ :label="item.label"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ <el-cascader v-model="queryParams.deptId" :show-all-levels="false" style="margin-left: 10px" filterable :options="deptOptions"
+ placeholder="组织架构"
+ :props="{ emitPath: false,value:'deptId',label: 'deptName' }"></el-cascader>
+ <el-button
+ type="primary"
+ style="margin-left: 20px"
+ @click="handleQuery()"
+ >查询
+ </el-button>
+ <el-button
+ type="primary"
+ @click="resetQuery()"
+ >重置
+ </el-button>
+ <!-- <el-select v-model="queryParams.districtCode" placeholder="所辖行政区划" style="width: 100%;">-->
+ <!-- <el-option-->
+ <!-- v-for="item in areaList"-->
+ <!-- :key="item.id"-->
+ <!-- :label="item.name"-->
+ <!-- :value="item.code">-->
+ <!-- </el-option>-->
+ <!-- </el-select>-->
+ </div>
+
+ <el-table v-loading="loading" :data="dataList" style="margin-top: 20px" :row-class-name="tableAddClass">
+ <el-table-column label="工种类别" align="center" prop="subjectName"></el-table-column>
+ <el-table-column label="缴费人次" align="center" prop="num" :show-overflow-tooltip="true"/>
+ <el-table-column label="缴费标准" align="center" prop="amount">
+ <template #default="scope">
+ {{ scope.row.amount }}元/人次
+ </template>
+ </el-table-column>
+ <el-table-column label="总额" align="center" prop="totalMoney"/>
+ <el-table-column label="上缴费中央" align="center" prop="turnContent"/>
+ <el-table-column label="自治区级" align="center" prop="autonomy"/>
+ <!-- <el-table-column label="地(州、市级)" align="center" prop="describe" />-->
+ </el-table>
+ <pagination
+ v-show="total>0"
+ :total="total"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getList"
+ />
+ </div>
+</template>
+
+<script>
+import {
+ coalCount
+} from '@/api/specialOperationsPay/coalPay'
+import Cookies from 'js-cookie'
+import {listDept} from "@/api/system/dept";
+
+export default {
+ name: "coalCalculate",
+ dicts: [],
+ components: {},
+ data() {
+ return {
+ loading: false,
+ single: true,
+ multiple: true,
+ showSearch: true,
+ dataList: [],
+ deptOptions: [],
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ year: '',
+ quarter: null,
+ deptId: null
+ },
+ total: 0,
+ quarterList: [
+ {
+ id: 1,
+ label: '第一季度'
+ },
+ {
+ id: 2,
+ label: '第二季度'
+ },
+ {
+ id: 3,
+ label: '第三季度'
+ },
+ {
+ id: 4,
+ label: '第四季度'
+ }
+ ]
+ };
+ },
+ created() {
+ this.getList()
+ this.getDeptTree()
+ },
+ methods: {
+ getList() {
+ this.loading = true;
+ coalCount(this.queryParams).then((res) => {
+ if (res.code == 200) {
+ this.dataList = res.rows
+ this.total = res.total
+ this.loading = false
+ }
+ })
+ },
+ getDeptTree() {
+ listDept({
+ deptName: undefined,
+ status: undefined
+ }).then(response => {
+ this.deptOptions = this.handleTree(response.data, "deptId")
+ })
+ },
+ changeStatus(val) {
+ this.getList()
+ },
+ tableAddClass({row, rowIndex}) {
+ if (row.difference < row.duration) {
+ return "tr-red";
+ }
+ return "";
+ },
+
+ handleQuery() {
+ this.getList();
+ },
+ resetQuery() {
+ this.queryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ year: '',
+ quarter: null,
+ deptId: null
+ }
+ this.getList()
+ },
+ }
+};
+</script>
+
+<style scoped>
+.app-container /deep/ .el-table .tr-red {
+ color: red !important;
+}
+</style>
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: '确定',
diff --git a/src/views/specialOperationsPay/coalPay/index.vue b/src/views/specialOperationsPay/coalPay/index.vue
index 14c0a56..eca8d17 100644
--- a/src/views/specialOperationsPay/coalPay/index.vue
+++ b/src/views/specialOperationsPay/coalPay/index.vue
@@ -2,7 +2,6 @@
<div class="app-container">
<div>
<el-button
- size="medium"
style="margin-bottom: 10px;background-color: #0FC7F0;color: white"
@click="handleAdd('add',{})"
v-if="isAhthority"
@@ -10,7 +9,6 @@
</el-button>
<el-date-picker
style="margin-left: 30px;width: 300px"
- size="small"
v-model="dateValue"
@change="changeDate"
type="daterange"
@@ -20,16 +18,14 @@
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
- <el-cascader v-model="queryParams.deptId" size="small" style="margin-left: 15px" :options="deptOptions" placeholder="组织架构" :props="{ expandTrigger: 'hover',checkStrictly: true,emitPath: false,value: 'id' }"></el-cascader>
+ <el-cascader v-model="queryParams.deptId" style="margin-left: 15px" :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()"
@@ -53,11 +49,11 @@
<span>{{scope.row.havePayNum}}</span>/{{scope.row.totalNum}}
</template>
</el-table-column>
- <el-table-column label="学员个人缴费" align="center" prop="batchName">
+ <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>
+ <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" size="small" @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">
@@ -186,6 +182,13 @@
this.getList()
},
updatePayType(row){
+ if(row.totalNum < 2){
+ this.$message({
+ type: 'warning',
+ message: '批量缴费人数不能小于二人'
+ })
+ return
+ }
this.$confirm('一旦关闭则无法重新开启个人缴费,必须批量缴完剩余所有学员。是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@@ -196,17 +199,17 @@
this.$message({
type: 'success',
message: '删除成功!'
- });
+ })
await this.getList()
}else{
this.$message({
type: 'warning',
message: res.msg
- });
+ })
}
}).catch(() => {
- });
+ })
},
handleDelete(row){
diff --git a/src/views/specialOperationsPay/notCoalCalculate/components/detailDialog.vue b/src/views/specialOperationsPay/notCoalCalculate/components/detailDialog.vue
new file mode 100644
index 0000000..671eeb2
--- /dev/null
+++ b/src/views/specialOperationsPay/notCoalCalculate/components/detailDialog.vue
@@ -0,0 +1,138 @@
+<template>
+ <el-dialog
+ :title="title"
+ :visible.sync="dialogVisible"
+ :modal-append-to-body="false"
+ :close-on-click-modal="false"
+ width="450px"
+ :before-close="handleClose"
+ >
+ <el-form ref="dataForm" :model="dataForm" :rules="rules" label-position="right" label-width="150px" style="padding-right: 50px" element-loading-text="保存中...">
+ <el-form-item label="类别:" prop="categoryType">
+ <el-radio-group v-model="dataForm.categoryType">
+ <el-radio :label="1">理论</el-radio>
+ <el-radio :label="2">实操</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="科目名称:" prop="subjectName">
+ <el-input v-model.trim="dataForm.subjectName"/>
+ </el-form-item>
+ <el-form-item label="金额:" prop="amount">
+ <el-input v-model.trim.number="dataForm.amount">
+ <template #append>元</template>
+ </el-input>
+ </el-form-item>
+ <el-form-item label="业务代码:" prop="businessCode">
+ <el-input v-model.trim="dataForm.businessCode"/>
+ </el-form-item>
+ <el-form-item label="描述:" prop="describe">
+ <el-input v-model.trim="dataForm.describe"/>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="handleClose">取 消</el-button>
+ <el-button type="primary" @click="onSubmit">确 定</el-button>
+ </span>
+ </el-dialog>
+</template>
+
+<script >
+import { addPlat, updatePlat } from '@/api/onlineEducation/plat'
+import { verifySimplePhone } from '@/utils/validate'
+import {addCoalPayCategory, updateCoalPayCategory} from "@/api/specialOperationsPay/coalPay";
+
+export default {
+ name: 'detailDialog',
+ components: {
+ },
+ data() {
+ return {
+ dialogVisible: false,
+ title: '',
+ rules: {
+ categoryType: [{ required: true, message: '请选择类别', trigger: 'blur' }],
+ subjectName: [{ required: true, message: '请输入科目名称', trigger: 'blur' }],
+ amount: [{ required: true, message: '请输入金额', trigger: 'blur' }]
+ },
+ dataForm: {},
+
+ }
+ },
+ created() {
+
+ },
+ methods: {
+ openDialog (type, data) {
+ this.resetDataForm()
+ this.dialogVisible = true
+ this.title = type == 'add'?'新增':'编辑'
+ if(this.title == '编辑') {
+ const {id,categoryType,subjectName,amount,describe} = data
+ this.dataForm = {id,categoryType,subjectName,amount,describe}
+ }
+ this.$nextTick(() => {
+ this.$refs['dataForm'].clearValidate()
+ })
+ },
+ handleClose() {
+ this.dialogVisible = false;
+ this.$emit("getList");
+ },
+ onSubmit() {
+ this.$refs["dataForm"].validate( async valid => {
+ if (valid) {
+ if(this.title == '新增'){
+ console.log("this.dataForm",this.dataForm)
+ const res = await addCoalPayCategory(this.dataForm);
+ if(res.code == 200) {
+ this.$emit("getList");
+ this.dialogVisible = false;
+ this.$message({
+ type:'success',
+ message: '新增成功'
+ })
+ }else{
+ this.$message({
+ type:'warning',
+ message: res.msg
+ })
+ }
+ }else {
+ const res = await updateCoalPayCategory(this.dataForm);
+ if(res.code == 200) {
+ this.$emit("getList");
+ this.dialogVisible = false;
+ this.$message({
+ type:'success',
+ message: '编辑成功'
+ })
+ }else{
+ this.$message({
+ type:'warning',
+ message: res.msg
+ })
+ }
+ }
+ }
+ })
+
+ },
+ resetDataForm() {
+ this.dataForm = {
+ }
+ },
+ }
+}
+
+</script>
+<style scoped>
+.infoTitle{
+ margin-top:-10px;
+ margin-bottom:20px;
+ display: flex;
+ justify-content: space-around;
+ font-weight: 800;
+ font-size: 16px
+}
+
+</style>
diff --git a/src/views/specialOperationsPay/notCoalCalculate/index.vue b/src/views/specialOperationsPay/notCoalCalculate/index.vue
new file mode 100644
index 0000000..b3a1a5d
--- /dev/null
+++ b/src/views/specialOperationsPay/notCoalCalculate/index.vue
@@ -0,0 +1,202 @@
+<template>
+ <div class="app-container">
+ <div>
+ <el-date-picker
+ v-model="queryParams.year"
+ type="year"
+ style="width: 300px"
+ value-format="yyyy"
+ placeholder="选择年">
+ </el-date-picker>
+ <el-select v-model="queryParams.quarter" placeholder="请选择季度" style="width: 300px;margin-left: 5px" clearable>
+ <el-option
+ v-for="item in quarterList"
+ :key="item.id"
+ :label="item.label"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ <el-select v-model="queryParams.districtCode" placeholder="所辖行政区划" @change="changeDeptList" style="width: 300px;margin-left: 5px">
+ <el-option
+ v-for="item in areaList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.code">
+ </el-option>
+ </el-select>
+ <el-cascader v-model="queryParams.deptId" style="margin-left: 10px" :show-all-levels="false" filterable :options="deptList" placeholder="组织架构"
+ :props="{ emitPath: false,value:'deptId',label: 'deptName' }"></el-cascader>
+ <el-button
+ type="primary"
+ style="margin-left: 20px"
+ @click="handleQuery()"
+ >查询
+ </el-button>
+ <el-button
+ type="primary"
+ @click="resetQuery()"
+ >重置
+ </el-button>
+ </div>
+
+ <el-table v-loading="loading" :data="dataList" style="margin-top: 20px" :row-class-name="tableAddClass">
+ <el-table-column label="工种类别" align="center" prop="subjectName"></el-table-column>
+ <el-table-column label="缴费人次" align="center" prop="num" :show-overflow-tooltip="true"/>
+ <el-table-column label="缴费标准" align="center" prop="amount">
+ <template #default="scope">
+ {{ scope.row.amount }}元/人次
+ </template>
+ </el-table-column>
+ <el-table-column label="总额" align="center" prop="totalMoney"/>
+ <el-table-column label="上缴费中央" align="center" prop="turnContent"/>
+ <el-table-column label="自治区级" align="center" prop="autonomy"/>
+ <el-table-column label="地(州、市级)" align="center" prop="prefecuture"/>
+ </el-table>
+ <pagination
+ v-show="total>0"
+ :total="total"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getList"
+ />
+ </div>
+</template>
+
+<script>
+import {
+ notCoalCount
+} from '@/api/specialOperationsPay/coalPay'
+import Cookies from 'js-cookie'
+import {getAreaList} from "@/api/coalMine/placeManage/train";
+import {deptTreeSelect} from "@/api/system/user";
+import {listDept} from "@/api/system/dept";
+
+export default {
+ name: "notCoalCalculate",
+ dicts: [],
+ components: {},
+ data() {
+ return {
+ loading: false,
+ single: true,
+ multiple: true,
+ showSearch: true,
+ dataList: [],
+ areaList: [],
+ deptOptions: [],
+ deptList: [],
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ year: '',
+ quarter: null,
+ districtCode: '',
+ deptId: null
+ },
+ total: 0,
+ quarterList: [
+ {
+ id: 1,
+ label: '第一季度'
+ },
+ {
+ id: 2,
+ label: '第二季度'
+ },
+ {
+ id: 3,
+ label: '第三季度'
+ },
+ {
+ id: 4,
+ label: '第四季度'
+ }
+ ]
+ };
+ },
+ created() {
+ this.getList()
+ this.getArea()
+ this.getDeptTree()
+ },
+ methods: {
+ getList() {
+ this.loading = true
+ notCoalCount(this.queryParams).then((res) => {
+ if (res.code == 200) {
+ this.dataList = res.rows
+ this.total = res.total
+ this.loading = false
+ }
+ })
+ },
+ async getArea() {
+ const res = await getAreaList();
+ if (res.code == 200) {
+ this.areaList = res.data;
+ }
+ },
+ getDeptTree() {
+ listDept({
+ deptName: undefined,
+ status: undefined
+ }).then(response => {
+ this.deptOptions = this.handleTree(response.data, "deptId")
+ this.deptList = this.deptOptions
+ })
+ },
+ changeStatus(val) {
+ this.getList()
+ },
+ changeDeptList(){
+ const code = this.queryParams.districtCode
+ if(this.getListByCode(this.deptOptions,code)){
+ this.deptList = this.getListByCode(this.deptOptions,code)
+ }else{
+ this.deptList = this.deptOptions
+ }
+ },
+ tableAddClass({row, rowIndex}) {
+ if (row.difference < row.duration) {
+ return "tr-red";
+ }
+ return "";
+ },
+
+ handleQuery() {
+ this.getList();
+ },
+ resetQuery() {
+ this.queryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ year: '',
+ quarter: null,
+ districtCode: '',
+ deptId: null
+ }
+ this.getList()
+ },
+ getListByCode(tree,code){
+ for(let i of tree){
+ if(i.districtCode == code){
+ return i.children
+ }
+ if(i.children){
+ const foundList = this.getListByCode(i.children,code)
+ if(foundList){
+ return foundList
+ }
+ }
+ }
+ return null
+ }
+ }
+};
+</script>
+
+<style scoped>
+.app-container /deep/ .el-table .tr-red {
+ color: red !important;
+}
+</style>
diff --git a/src/views/specialOperationsPay/notCoalPay/components/batchPay.vue b/src/views/specialOperationsPay/notCoalPay/components/batchPay.vue
index 0adfc96..e6f16d5 100644
--- a/src/views/specialOperationsPay/notCoalPay/components/batchPay.vue
+++ b/src/views/specialOperationsPay/notCoalPay/components/batchPay.vue
@@ -30,7 +30,7 @@
<script >
import { verifySimplePhone } from '@/utils/validate'
import {coalTeamPay} from "@/api/specialOperationsPay/coalPay";
-import {nonCoalTeamPay} from "@/api/specialOperationsPay/notCoalPay";
+import {nonCoalPersonPay, nonCoalTeamPay} from "@/api/specialOperationsPay/notCoalPay";
export default {
name: 'batchPay',
@@ -76,12 +76,21 @@
if(this.dialogStatus == 'add'){
const res = await nonCoalTeamPay(this.dataForm);
if(res.code == 200) {
- this.$emit("getList");
- this.dialogVisible = false;
- this.$message({
- type:'success',
- message: '提交成功'
- })
+ this.$emit("getList")
+ this.dialogVisible = false
+ const query = {
+ id: this.dataForm.id,
+ payType: 2
+ }
+ const res = await nonCoalPersonPay(query)
+ if(res.code == 200) {
+ window.open(`http://finpt.xjcz.gov.cn/fs-public/billQuery/findByOrderId.do?orderId=${res.msg}&deviceType=1`)
+ }else{
+ this.$message({
+ type:'warning',
+ message: res.msg
+ })
+ }
}else{
this.$message({
type:'warning',
diff --git a/src/views/specialOperationsPay/notCoalPay/components/studentDialog.vue b/src/views/specialOperationsPay/notCoalPay/components/studentDialog.vue
index d9872de..fff6fdf 100644
--- a/src/views/specialOperationsPay/notCoalPay/components/studentDialog.vue
+++ b/src/views/specialOperationsPay/notCoalPay/components/studentDialog.vue
@@ -26,12 +26,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.nonCoalPayCategoryList.find(i=>i.categoryType == 1).subjectName}}</span>
+ <span>{{stuInfo.nonCoalPayCategoryList.find(i => i.categoryType == 1) && stuInfo.nonCoalPayCategoryList.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.nonCoalPayCategoryList.find(i=>i.categoryType == 2).subjectName}}</span>
+ <span>{{stuInfo.nonCoalPayCategoryList.find(i => i.categoryType == 2) && stuInfo.nonCoalPayCategoryList.find(i => i.categoryType == 2).subjectName }}</span>
</el-form-item>
</el-col>
</el-row>
@@ -77,18 +77,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">
@@ -98,9 +101,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?'集体':''}}
@@ -108,9 +113,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>
@@ -139,6 +145,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"/>
@@ -205,15 +214,18 @@
<script>
-import {verifyIdCard, verifySimplePhone} from "@/utils/validate";
+import {verifyIdCard, verifySimplePhone} from "@/utils/validate"
+import * as XLSX from 'xlsx';
+import { saveAs } from 'file-saver';
import {
addNonCoalStu, delNonCalStu, delNonCoalPay,
editNonCoalStu,
getNonCoalPayStudents,
- getPayTypeInfo
+ getPayTypeInfo, nonCoalPersonPay
} from "@/api/specialOperationsPay/notCoalPay";
import exampleFile from '@/assets/studentInfo.xlsx'
import {getToken} from "@/utils/auth";
+import {coalPersonPay} from "@/api/specialOperationsPay/coalPay";
export default {
name: 'addStu',
components: {},
@@ -270,6 +282,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(id) {
this.getStuList(id)
this.id = id
@@ -292,7 +336,6 @@
const {id,nonCoalPayId,name,idCard,sex,phone} = data
this.dataForm = {id,nonCoalPayId,name,idCard,sex,phone}
}
- console.log(this.dataForm,'form')
this.dialogStatus = type
},
@@ -395,6 +438,28 @@
}
})
},
+ 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 = {
+ id: item.id,
+ payType: 1
+ }
+ const res = await nonCoalPersonPay(query)
+ if(res.code == 200) {
+ window.open(`http://finpt.xjcz.gov.cn/fs-public/billQuery/findByOrderId.do?orderId=${res.msg}&deviceType=1`)
+ }else{
+ this.$message({
+ type:'warning',
+ message: res.msg
+ })
+ }
+ }
+ },
handleDelete(row){
this.$confirm('此操作将永久删除该条数据, 是否继续?', '提示', {
confirmButtonText: '确定',
diff --git a/src/views/specialOperationsPay/notCoalPay/index.vue b/src/views/specialOperationsPay/notCoalPay/index.vue
index 1a54724..224d544 100644
--- a/src/views/specialOperationsPay/notCoalPay/index.vue
+++ b/src/views/specialOperationsPay/notCoalPay/index.vue
@@ -2,7 +2,6 @@
<div class="app-container">
<div>
<el-button
- size="medium"
style="margin-right: 10px;background-color: #0FC7F0;color: white"
@click="handleAdd('add',{})"
v-if="isAhthority"
@@ -10,7 +9,6 @@
</el-button>
<el-date-picker
style="width: 300px"
- size="small"
v-model="dateValue"
@change="changeDate"
type="daterange"
@@ -37,16 +35,14 @@
<!-- </el-option>-->
<!-- </el-select>-->
<!-- <treeselect v-model="queryParams.deptId" :options="deptOptions" :show-count="true" placeholder="请选择组织架构" />-->
- <el-cascader v-model="queryParams.deptId" size="small" style="margin-left: 10px" :options="deptOptions" placeholder="组织架构" :props="{ expandTrigger: 'hover',checkStrictly: true,emitPath: false,value: 'id' }"></el-cascader>
+ <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
- size="small"
type="primary"
style="margin-bottom: 10px"
@click="resetQuery()"
@@ -70,11 +66,11 @@
<span>{{scope.row.havePayNum}}</span>/{{scope.row.totalNum}}
</template>
</el-table-column>
- <el-table-column label="学员个人缴费" align="center" prop="batchName">
+ <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>
+ <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">
@@ -162,7 +158,6 @@
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) => {
@@ -204,6 +199,7 @@
this.$refs.batchPayRef.openDialog(val,type);
},
handleQuery() {
+ this.queryParams.pageNum = 1
this.getList();
},
resetQuery() {
@@ -221,6 +217,13 @@
this.getList();
},
updatePayType(row){
+ if(row.totalNum < 2){
+ this.$message({
+ type: 'warning',
+ message: '批量缴费人数不能小于二人'
+ })
+ return
+ }
this.$confirm('一旦关闭则无法重新开启个人缴费,必须批量缴完剩余所有学员。是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
diff --git a/src/views/specialOperationsPay/notCoalWorkType/index.vue b/src/views/specialOperationsPay/notCoalWorkType/index.vue
index c458da1..a73de84 100644
--- a/src/views/specialOperationsPay/notCoalWorkType/index.vue
+++ b/src/views/specialOperationsPay/notCoalWorkType/index.vue
@@ -22,14 +22,12 @@
<!-- </el-option>-->
<!-- </el-select>-->
<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()"
diff --git a/src/views/specialOperationsPay/singlePage/index.vue b/src/views/specialOperationsPay/singlePage/index.vue
index 339f274..010e7df 100644
--- a/src/views/specialOperationsPay/singlePage/index.vue
+++ b/src/views/specialOperationsPay/singlePage/index.vue
@@ -65,7 +65,7 @@
</div>
<div>总计应缴:<span class="cardCont">{{ item.amount }}元</span></div>
<el-button style="margin-top: 5px" type="primary" size="small" v-if="item.payStatus == 0" @click="goPay(item)">去缴费</el-button>
- <el-button style="margin-top: 5px" type="success" size="small" v-if="item.payStatus == 1" @click="checkTicket(item)">查看票据</el-button>
+ <el-button style="margin-top: 5px" type="success" size="small" v-if="item.payStatus == 1" @click="checkTicket()">查看票据</el-button>
</div>
</div>
<div v-else class="feeList">
@@ -87,7 +87,7 @@
</div>
<div>总计应缴:<span class="cardCont" v-if="item.coalPays">{{ item.coalPays.amount }}元</span></div>
<el-button style="margin-top: 5px" type="primary" size="small" v-if="item.payStatus == 0" @click="goPay(item)">去缴费</el-button>
- <el-button style="margin-top: 5px" type="success" size="small" v-if="item.payStatus == 1" @click="checkTicket(item)">查看票据</el-button>
+ <el-button style="margin-top: 5px" type="success" size="small" v-if="item.payStatus == 1" @click="checkTicket()">查看票据</el-button>
</div>
</div>
</div>
@@ -327,6 +327,9 @@
}
}
},
+ checkTicket(){
+ window.open('http://finpt.xjcz.gov.cn/fs-public/index.do')
+ },
resetDataForm() {
this.dataForm = {
}
diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue
index 46d38d1..acd5c4c 100644
--- a/src/views/system/dept/index.vue
+++ b/src/views/system/dept/index.vue
@@ -57,18 +57,18 @@
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
>
<el-table-column prop="deptName" label="组织架构名称"></el-table-column>
- <el-table-column prop="orderNum" label="排序" width="200"></el-table-column>
- <el-table-column prop="status" label="状态" width="200">
+ <el-table-column prop="orderNum" label="排序" width="50"></el-table-column>
+ <el-table-column prop="status" label="状态" width="70">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
</template>
</el-table-column>
- <el-table-column label="创建时间" align="center" prop="createTime" width="200">
+ <el-table-column label="创建时间" align="center" prop="createTime" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
- <el-table-column label="操作" align="center" class-name="small-padding" width="200">
+ <el-table-column label="操作" align="center" class-name="small-padding" width="160">
<template slot-scope="scope">
<el-button
size="mini"
--
Gitblit v1.9.2