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