| | |
| | | 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 |
| | |
| | | "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", |
| | |
| | | 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 |
| | | }) |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | // 缴费列表 |
| | | export function getCoalPayList(data) { |
| | | export function getCoalPayList(query) { |
| | | return request({ |
| | | url: '/pay/coalPay/list', |
| | | method: 'post', |
| | | data: data |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | |
| | | 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 |
| | | }) |
| | | } |
| | |
| | | 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 |
| | |
| | | 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) |
| | |
| | | @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> |
| | |
| | | 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; |
| | | } |
| | | } |
| | | }; |
| | |
| | | <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" /> |
| | |
| | | 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, |
| | |
| | | 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 |
| | | } |
| | | }) |
| | | }, |
| | |
| | | |
| | | }, |
| | | 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); |
对比新文件 |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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"> |
| | |
| | | </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?'集体':'个人'}} |
| | |
| | | </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> |
| | |
| | | <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"/> |
| | |
| | | </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 { |
| | |
| | | }; |
| | | }, |
| | | 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) |
| | |
| | | } |
| | | }) |
| | | }, |
| | | 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: '确定', |
| | |
| | | <div class="app-container"> |
| | | <div> |
| | | <el-button |
| | | size="medium" |
| | | style="margin-bottom: 10px;background-color: #0FC7F0;color: white" |
| | | @click="handleAdd('add',{})" |
| | | v-if="isAhthority" |
| | |
| | | </el-button> |
| | | <el-date-picker |
| | | style="margin-left: 30px;width: 300px" |
| | | size="small" |
| | | v-model="dateValue" |
| | | @change="changeDate" |
| | | type="daterange" |
| | |
| | | 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()" |
| | |
| | | <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"> |
| | |
| | | this.getList() |
| | | }, |
| | | updatePayType(row){ |
| | | if(row.totalNum < 2){ |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: '批量缴费人数不能小于二人' |
| | | }) |
| | | return |
| | | } |
| | | this.$confirm('一旦关闭则无法重新开启个人缴费,必须批量缴完剩余所有学员。是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | |
| | | this.$message({ |
| | | type: 'success', |
| | | message: '删除成功!' |
| | | }); |
| | | }) |
| | | await this.getList() |
| | | }else{ |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.msg |
| | | }); |
| | | }) |
| | | } |
| | | }).catch(() => { |
| | | |
| | | }); |
| | | }) |
| | | }, |
| | | |
| | | handleDelete(row){ |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
| | |
| | | <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', |
| | |
| | | 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', |
| | |
| | | <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> |
| | |
| | | </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"> |
| | |
| | | </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?'集体':''}} |
| | |
| | | </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> |
| | |
| | | <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"/> |
| | |
| | | <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: {}, |
| | |
| | | }; |
| | | }, |
| | | 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 |
| | |
| | | const {id,nonCoalPayId,name,idCard,sex,phone} = data |
| | | this.dataForm = {id,nonCoalPayId,name,idCard,sex,phone} |
| | | } |
| | | console.log(this.dataForm,'form') |
| | | this.dialogStatus = type |
| | | }, |
| | | |
| | |
| | | } |
| | | }) |
| | | }, |
| | | 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: '确定', |
| | |
| | | <div class="app-container"> |
| | | <div> |
| | | <el-button |
| | | size="medium" |
| | | style="margin-right: 10px;background-color: #0FC7F0;color: white" |
| | | @click="handleAdd('add',{})" |
| | | v-if="isAhthority" |
| | |
| | | </el-button> |
| | | <el-date-picker |
| | | style="width: 300px" |
| | | size="small" |
| | | v-model="dateValue" |
| | | @change="changeDate" |
| | | type="daterange" |
| | |
| | | <!-- </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()" |
| | |
| | | <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"> |
| | |
| | | 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) => { |
| | |
| | | this.$refs.batchPayRef.openDialog(val,type); |
| | | }, |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1 |
| | | this.getList(); |
| | | }, |
| | | resetQuery() { |
| | |
| | | this.getList(); |
| | | }, |
| | | updatePayType(row){ |
| | | if(row.totalNum < 2){ |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: '批量缴费人数不能小于二人' |
| | | }) |
| | | return |
| | | } |
| | | this.$confirm('一旦关闭则无法重新开启个人缴费,必须批量缴完剩余所有学员。是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | |
| | | <!-- </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()" |
| | |
| | | </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"> |
| | |
| | | </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> |
| | |
| | | } |
| | | } |
| | | }, |
| | | checkTicket(){ |
| | | window.open('http://finpt.xjcz.gov.cn/fs-public/index.do') |
| | | }, |
| | | resetDataForm() { |
| | | this.dataForm = { |
| | | } |
| | |
| | | :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" |