This commit is contained in:
guochunsi
2026-01-14 18:32:09 +08:00
parent 6055033289
commit 8166fa31e0
33 changed files with 3926 additions and 3383 deletions

View File

@@ -1,7 +1,7 @@
<template>
<div class="mod-config">
<basic-container>
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" ref="searchForm">
<el-form :inline="true" :model="dataForm" @keyup.enter="getDataList()" ref="searchForm">
<el-form-item label="招生计划" prop="groupId">
<el-select v-model="dataForm.groupId" filterable clearable placeholder="请选择招生计划" size="small"
@change="chanMajor" style="width: 150px;">
@@ -233,7 +233,7 @@
<el-select v-model="dataForm.interview" filterable clearable placeholder="请选择面试结果" size="small"
style="width: 120px;">
<el-option
v-for="item in global.INTERVIEW_DIC"
v-for="item in interviewDicList"
:key="item.value"
:label="item.label"
:value="item.value">
@@ -245,7 +245,7 @@
<el-select v-model="dataForm.zlsh" filterable clearable placeholder="请选择资料审核状态" size="small"
style="width: 120px;">
<el-option
v-for="item in global.ZLSH"
v-for="item in zlshList"
:key="item.value"
:label="item.label"
:value="item.value">
@@ -301,7 +301,7 @@
header-align="center"
align="center"
label="操作">
<template slot-scope="scope">
<template #default="scope">
<el-button type="text" size="small" icon="el-icon-view" @click="addOrUpdateHandle(scope.row.id,0)">查看
</el-button>
<el-button v-if="permissions.recruit_recruitstudentsignup_edit" type="text" size="small"
@@ -377,7 +377,7 @@
align="left"
width="250"
label="资料检测">
<template slot-scope="scope">
<template #default="scope">
<div v-if="scope.row.isOut=='0'">
<span >资料审核状态:</span>
<span style="color: #b4bccc" v-if="scope.row.zlsh=='0'">未填写</span>
@@ -400,29 +400,24 @@
header-align="center"
align="left"
label="录取专业">
<template slot-scope="scope">
<template #default="scope">
<span>录取状态:</span>
<span v-if="scope.row.auditStatus==0"
style="color: orange">{{ global.getLabelValue(auditStatusList, scope.row.auditStatus) }}</span>
style="color: orange">{{ getLabelValue(auditStatusList, scope.row.auditStatus) }}</span>
<span v-if="scope.row.auditStatus==20"
style="color: green">{{ global.getLabelValue(auditStatusList, scope.row.auditStatus) }}</span>
style="color: green">{{ getLabelValue(auditStatusList, scope.row.auditStatus) }}</span>
<span v-if="scope.row.auditStatus==-20"
style="color: red">{{ global.getLabelValue(auditStatusList, scope.row.auditStatus) }}</span>
style="color: red">{{ getLabelValue(auditStatusList, scope.row.auditStatus) }}</span>
<br/>
<div v-if="scope.row.auditStatus==20">
录取专业:
{{
global.getLabelValueByPropes2(planMajorList, scope.row.confirmedMajor, {
'key': 'zydm',
'value': 'zymc'
})
}} <br/>
{{ getMajorLabelWithYears(planMajorList, scope.row.confirmedMajor, { key: 'zydm', value: 'zymc' }) }}<br/>
</div>
<div v-if="scope.row.auditStatus==20">
录取时间:{{ dateFormat(scope.row.auditTime, "yyyy-MM-dd HH:mm:ss") }}
</div>
<div v-if="scope.row.degreeOfEducation == '3'">
面试结果:{{ global.getLabelValue(global.INTERVIEW_DIC, scope.row.interview) }}
面试结果:{{ getLabelValue(interviewDicList, scope.row.interview) }}
<span v-if="scope.row.interview == '-1' && scope.row.interviewReason"
style="color: #ff9900">({{ scope.row.interviewReason }})</span>
</div>
@@ -446,13 +441,10 @@
width="120"
label="学院(经办人)">
<template slot-scope="scope">
<span v-if="scope.row.auditStatus==20">{{
global.getLabelValueByPropes(deptList, scope.row.xy, {
'key': 'deptCode',
'value': 'deptName'
})
}}</span> <br/>
<template #default="scope">
<span v-if="scope.row.auditStatus==20">
{{ getLabelValueByProps(deptList, scope.row.xy, { key: 'deptCode', value: 'deptName' }) }}
</span> <br/>
<span v-if="scope.row.auditStatus==20">
({{scope.row.auditorName}})
</span>
@@ -466,7 +458,7 @@
align="center"
width="90"
label="缴费状态">
<template slot-scope="scope">
<template #default="scope">
{{ getStatus(scope.row.paiedOffline) }}
</template>
</el-table-column>
@@ -476,7 +468,7 @@
align="center"
width="90"
label="推送状态">
<template slot-scope="scope">
<template #default="scope">
<span v-if="scope.row.pushed==0" style="color: red">{{ getPushed(scope.row.pushed) }}</span>
<span v-if="scope.row.pushed==1" style="color: green">{{ getPushed(scope.row.pushed) }}</span>
</template>
@@ -504,61 +496,15 @@
<update v-if="updateVisible" ref="update" @refreshDataList="getDataList"></update>
<el-dialog title="支付二维码" :visible.sync="dialogFormVisible" width="800px" height="80%"
@close="dialogFormVisible=false">
<el-table :data="tableData" border>
<el-table-column label="唯一号" prop="serialNumber" align="center"></el-table-column>
<el-table-column label="姓名" prop="name" align="center"></el-table-column>
<el-table-column label="家长手机号" prop="parentTelOne" align="center"></el-table-column>
<el-table-column label="操作" prop="" align="center">
<template slot-scope="scope">
<el-button @click="updateFS()" icon="el-icon-search" type="danger" size="small">立即查询</el-button>
</template>
</el-table-column>
</el-table>
<div style="padding-top: 20px;">
<div id="payQrcode1" style="display: inline-block;">
{{ payQrcode1Msg }}
</div>
<vue-qr :text="payQrcode1" :size="200" v-if="showPrise1" style="display: inline-block"></vue-qr>
<!-- 支付二维码弹窗 -->
<pay-qrcode-dialog ref="payQrcodeDialogRef" @refresh="getDataList"></pay-qrcode-dialog>
<div id="payQrcode2" style="display: inline-block">
{{ payQrcode2Msg }}
</div>
<vue-qr :text="payQrcode2" :size="200" v-if="showPrise2" style="display: inline-block"></vue-qr>
<div id="payQrcode3" style="display: inline-block">
{{ payQrcode3Msg }}
</div>
<vue-qr :text="payQrcode3" :size="200" v-if="showPrise3" style="display: inline-block"></vue-qr>
</div>
<span style="color: red;padding-top: 20px;">** 此界面为查询学生缴款二维码,如有收不到微信推送,或手机号填错的,可直接在此扫码支付,支付成功后,请手动点击"立即查询"按钮,查询该生的缴费情况;因财政收费系统有一定的滞后性,如点击"立即查询"后任显示未交费,请稍后再继续查询,或重新点击"立即查询"按钮 **</span>
</el-dialog>
<el-dialog title="延迟缴费" :visible.sync="delayPayTimeVisible" width="300px" height="50%"
@close="delayPayTimeVisible=false">
<el-date-picker v-model="delayPayTime" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
filterable clearable type="datetime"></el-date-picker>
<div slot="footer" class="dialog-footer">
<el-button @click="delayPayTimeVisible=false">关 闭</el-button>
<el-button @click="updateInfo" type="primary">保存</el-button>
</div>
</el-dialog>
<!-- 延迟缴费弹窗 -->
<delay-pay-time-dialog ref="delayPayTimeDialogRef" @refresh="getDataList"></delay-pay-time-dialog>
<el-dialog title="录取通知书" :visible.sync="lqtzsVisible" width="80%" height="50%"
@close="lqtzsVisible=false">
<div style="height: 60vh">
<iframe id="iframeid" :src="pdfPath" ref="iframe" frameborder="0" style="width:100%;height:100%;"></iframe>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="lqtzsVisible=false">关 闭</el-button>
<el-button @click="suerLQTZ" v-if="permissions.sureLQTZ && lqtzsShow" type="primary">确认已发放</el-button>
</div>
</el-dialog>
<!-- 录取通知书弹窗 -->
<admission-notice-dialog ref="admissionNoticeDialogRef" :permissions="permissions" @refresh="getDataList"></admission-notice-dialog>
<dorm-f-w v-if="dormFWRefVisible" ref="dormFWRef"></dorm-f-w>
<show-map v-if="baiduMapVisible" ref="baiduMapRef"></show-map>
@@ -568,41 +514,41 @@
</template>
<script>
import {list} from '@/api/recruit/recruitstudentplangroup'
import {list} from '/@/api/recruit/recruitstudentplangroup'
import {
delObj,
exportZip,
fetchList,
leaveSchool,
rePush,
updateInfo,
yjOut,
toWord,
sureLQTZ,
oneClassAndStuNo,
tbStuWork,
sendImg,
pushCity
} from '@/api/recruit/recruitstudentsignup'
} from '/@/api/recruit/recruitstudentsignup'
import {defineAsyncComponent} from 'vue'
// import {formatDate} from "element-ui/src/utils/date-util";
import global from '@/components/tools/commondict'
import {getDeptList} from "@/api/basic/basicclass";
import {list as planMajor} from "@/api/recruit/recruitplanmajor";
import {getTypeValue} from "@/api/admin/dict";
import {getUserListByRole} from "@/api/admin/user";
import {ROLE_CODE} from "@/config/global";
import {updateFs} from "@/api/finance/financenormalstu";
import {showLoading, hideLoading} from '@/api/asset/loading';
import {queryTeacherBaseByNo} from "@/api/professional/teacherbase";
// import global from '@/components/tools/commondict' // global 已废弃
import { getLabelValue, getLabelValueByProps, getMajorLabelWithYears } from '/@/utils/dictLabel'
import {getDeptList} from "/@/api/basic/basicclass";
import {list as planMajor} from "/@/api/recruit/recruitplanmajor";
import {getTypeValue, getDictsByTypes} from "/@/api/admin/dict";
import {getUserListByRole} from "/@/api/admin/user";
import {ROLE_CODE} from "/@/config/global";
import {showLoading, hideLoading} from "/@/api/asset/loading";
import {queryTeacherBaseByNo} from "/@/api/professional/teacherbase";
const TableForm = defineAsyncComponent(() => import('./detaiform.vue'))
const MajorChange = defineAsyncComponent(() => import('./majorChange.vue'))
const Update = defineAsyncComponent(() => import('./update.vue'))
const DormFW = defineAsyncComponent(() => import('./dormFW.vue'))
const ShowMap = defineAsyncComponent(() => import('./showMap.vue'))
const InterviewForm = defineAsyncComponent(() => import('@/views/recruit/recruitstudentsignup/interviewForm.vue'))
const InterviewForm = defineAsyncComponent(() => import('/@/views/recruit/recruitstudentsignup/interviewForm.vue'))
const PayQrcodeDialog = defineAsyncComponent(() => import('./PayQrcodeDialog.vue'))
const DelayPayTimeDialog = defineAsyncComponent(() => import('./DelayPayTimeDialog.vue'))
const AdmissionNoticeDialog = defineAsyncComponent(() => import('./AdmissionNoticeDialog.vue'))
export default {
data() {
@@ -630,11 +576,9 @@ export default {
cityExamType: ""
},
id: "",
pdfPath: "",
delayPayTime: "",
auditorList: [],
isBackTzList: [{label: "未发放", value: "0"}, {label: "已发放", value: "1"}],
paystatusList: [{label: "已缴费", value: "10"}, {label: "未缴费", value: "0"}, {label: "部分缴费", value: "5"}],
paystatusList: [],
global: global,
planList: [],
eduList: [],
@@ -645,34 +589,22 @@ export default {
pushedList: [{label: "未推送", value: "0"}, {label: "已推送", value: "1"}],
isOutFwList: [{label: "待确认", value: "0"}, {label: "范围内", value: "1"}, {label: "范围外", value: "2"}],
isOutList: [{label: "学校", value: "0"}, {label: "市平台", value: "1"}],
interviewDicList: [],
zlshList: [],
deptList: [],
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
lqtzsShow: false,
dataListLoading: false,
addOrUpdateVisible: false,
majorChangeVisible: false,
lqtzsVisible: false,
updateVisible: false,
startDatePicker: this.beginDate(),
endDatePicker: this.processDate(),
payQrcode1: "",
showPrise1: false,
payQrcode1Msg: "",
payQrcode2: "",
payQrcode2Msg: "",
showPrise2: false,
payQrcode3: "",
payQrcode3Msg: "",
showPrise3: false,
dialogFormVisible: false,
delayPayTimeVisible: false,
dormFWRefVisible: false,
baiduMapVisible: false,
tableData: [],
teacherList:[]
}
},
@@ -682,7 +614,10 @@ export default {
MajorChange,
Update,
DormFW,
ShowMap
ShowMap,
PayQrcodeDialog,
DelayPayTimeDialog,
AdmissionNoticeDialog
},
created() {
this.init();
@@ -690,6 +625,9 @@ export default {
computed: {
},
methods: {
getLabelValue,
getLabelValueByProps,
getMajorLabelWithYears,
dateFormat(date, format) {
// return formatDate(date, format)
},
@@ -921,6 +859,12 @@ export default {
getTypeValue('finance_student_source').then(res => {
this.eduList = res.data
})
// 批量获取字典数据:面试结果、资料审核状态、缴费状态
getDictsByTypes(['interview_dic', 'recruit_zlsh', 'recruit_pay_status']).then((res) => {
this.interviewDicList = res.data.interview_dic || []
this.zlshList = res.data.recruit_zlsh || []
this.paystatusList = res.data.recruit_pay_status || []
})
//所有经办人
getUserListByRole(ROLE_CODE.ROLE_RECRUIT_SECOND).then(res => {
this.auditorList = res.data;
@@ -1057,17 +1001,9 @@ export default {
}
},
lqtz(row) {
this.id = row.id;
this.pdfPath = "";
if (row.isBackTz == '0') {
this.lqtzsShow = true;
} else {
this.lqtzsShow = false;
}
toWord(row).then(res => {
this.pdfPath = "/recruit/file/previewPdf?filePath=" + encodeURIComponent(res.data);
this.lqtzsVisible = true;
});
this.$nextTick(() => {
this.$refs.admissionNoticeDialogRef?.init(row)
})
},
infoTable(row) {
window.open("printRecruitedStu.html?appId=" + row.id);
@@ -1085,20 +1021,6 @@ export default {
this.getDataList()
})
},
suerLQTZ() {
let _this = this;
this.$confirm('是否确认已打印并发放本通知书?请谨慎操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function () {
return sureLQTZ({id: _this.id})
}).then(data => {
this.$message.success('保存成功')
this.lqtzsVisible = false;
this.getDataList()
})
},
rePush(row) {
this.$confirm('是否确认重新推送本条数据?请谨慎操作', '提示', {
confirmButtonText: '确定',
@@ -1112,77 +1034,14 @@ export default {
})
},
delayPayTimeSet(row) {
this.delayPayTime = '';
this.id = row.id;
if (row.delayPaymentTime) {
this.delayPayTime = row.delayPaymentTime;
}
this.delayPayTimeVisible = true;
},
updateInfo() {
let _this = this;
this.$confirm('是否确认进度延迟收费操作?请谨慎操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function () {
return updateInfo({delayPaymentTime: _this.delayPayTime, id: _this.id})
}).then(data => {
this.delayPayTimeVisible = false;
this.$message.success('延迟收费修改成功')
this.getDataList()
this.$nextTick(() => {
this.$refs.delayPayTimeDialogRef?.init(row)
})
},
updateFS() {
updateFs({"serialNumber": this.tableData[0].serialNumber.substring(1, this.tableData[0].serialNumber.length)}).then(res => {
this.$notify.success('已提交查询请求请等待1分钟后重新查询')
this.dialogFormVisible = false
this.getDataList()
});
},
showPayCode(row) {
this.showPrise1 = false;
this.showPrise2 = false;
this.showPrise3 = false;
//置空
this.payQrcode1 = "";
this.payQrcode2 = "";
this.payQrcode3 = "";
if (row.clfPayCode == "" || row.clfPayCode == undefined) {
this.payQrcode1Msg = ""
this.showPrise1 = false;
} else {
this.payQrcode1Msg = "材料费、代办费";
this.showPrise1 = true;
this.payQrcode1 = 'https://jscz.govpay.ccb.com/online/fsjf?PyF_BillNo=' + row.clfPayCode + '&Verf_CD=blank&Admn_Rgon_Cd=320400';
}
if (row.xfPayCode == "" || row.xfPayCode == undefined) {
this.payQrcode2Msg = ""
this.showPrise2 = false;
} else {
this.payQrcode2Msg = "学费";
this.showPrise2 = true;
this.payQrcode2 = 'https://jscz.govpay.ccb.com/online/fsjf?PyF_BillNo=' + row.xfPayCode + '&Verf_CD=blank&Admn_Rgon_Cd=320400';
}
if (row.zdbPayCode == "" || row.zdbPayCode == undefined) {
this.payQrcode3Msg = ""
this.showPrise3 = false;
} else {
this.payQrcode3Msg = "中德班学费";
this.showPrise3 = true;
this.payQrcode3 = 'https://jscz.govpay.ccb.com/online/fsjf?PyF_BillNo=' + row.zdbPayCode + '&Verf_CD=blank&Admn_Rgon_Cd=320400';
}
this.tableData = [];
this.tableData.push(row);
this.dialogFormVisible = true;
this.$nextTick(() => {
this.$refs.payQrcodeDialogRef?.init(row)
})
},
interviewForm(row) {
this.$refs.interviewFormRef.init(row)