This commit is contained in:
@jyuhsin
2025-12-17 08:55:44 +08:00
parent f5b642c252
commit 34d1adba36
17 changed files with 364 additions and 337 deletions
@@ -40,7 +40,7 @@ layout("/layouts/platform.html"){
<el-table-column label="年度" prop="annual" header-align="center"
align="center">
</el-table-column>
<el-table-column label="分工会名称" prop="unionname" header-align="center"
<el-table-column label="分工会名称" prop="unionName" header-align="center"
show-overflow-tooltip
align="center" sortable></el-table-column>
<el-table-column label="线上得分" prop="xgh_score" header-align="center"
@@ -53,7 +53,7 @@ layout("/layouts/platform.html"){
show-overflow-tooltip
align="center" sortable>
<template scope="scope">
<div>
<div v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')">
<div v-if="rowDataEdit && rowDataIndex==scope.$index">
<el-input placeholder="请输入线下得分"
autofocus
@@ -66,6 +66,9 @@ layout("/layouts/platform.html"){
<i class="el-icon-edit" style="color: #0a84ff"></i>
</div>
</div>
<div v-else>
{{scope.row.offLineScore}}
</div>
</template>
</el-table-column>
<el-table-column :label="'线下最终得分' + (examConfig.offLine ? '' + examConfig.offLine + '%' : '')" prop="offLineFinalScore" header-align="center"
@@ -47,10 +47,10 @@ layout("/layouts/platform.html"){
:width="column.width"
header-align="center"
show-overflow-tooltip>
<template scope="{row}" v-if="column.prop==='startTime'">
<template scope="{row}" v-if="column.prop=='startTime'">
<span>{{row.startDateTime}} - {{row.endDateTime}}</span>
</template>
<template scope="{row}" v-else-if="column.prop==='disabled'">
<template scope="{row}" v-else-if="column.prop=='disabled'">
<el-switch
v-model="row.disabled"
active-color="#13ce66"
@@ -2,6 +2,11 @@
layout("/layouts/platform.html"){
#-->
<style>
.el-table .warning-row {
background: oldlace;
}
</style>
<div id="app" v-cloak>
@@ -47,7 +52,7 @@ layout("/layouts/platform.html"){
</el-table-column>
<el-table-column label="年度" prop="annual" header-align="center"
width="300px" sortable
sortable
align="center">
<template scope="scope">
{{scope.row.annual}}
@@ -74,11 +79,15 @@ layout("/layouts/platform.html"){
show-overflow-tooltip v-if="examConfig.selfAssessment === true"
align="center"></el-table-column>
<el-table-column label="校工会评分" sortable prop="xgh_score"
<el-table-column label="您的评分" sortable prop="self_score"
header-align="center"
show-overflow-tooltip
align="center"></el-table-column>
<el-table-column label="校工会评分" sortable prop="xgh_score"
header-align="center"
show-overflow-tooltip
align="center"></el-table-column>
<el-table-column label="状态" prop="name" header-align="center"
align="center">
@@ -90,11 +99,14 @@ layout("/layouts/platform.html"){
</el-table-column>
<el-table-column align="center" header-align="center" label="操作"
fixed="right" width="120px">
fixed="right" width="160px">
<template scope="scope">
<el-button size="mini" :disabled="scope.row.state==3" type="primary"
@click="openShGh(scope.row)">评分
</el-button>
<el-button size="mini" type="primary" :disabled="scope.row.state==3"
@click="doSubmit(scope.row)">提交
</el-button>
</template>
</el-table-column>
</el-table>
@@ -123,81 +135,83 @@ layout("/layouts/platform.html"){
</el-descriptions>
<table-tool label="考核内容" class="mt10"></table-tool>
<el-form-item label="" label-width="0" v-for="nr,idx in formData.nrs">
<el-row type="flex" align="middle" justify="space-between">
<el-input v-model="nr.content" readonly maxlength="30" placeholder="请填写考核内容">
<template slot="prepend"><span>{{ idx + 1 }}</span></template>
</el-input>
</el-row>
<el-row style="margin-top: 20px">
<el-table :data="nr.bzs" style="width: 100%" border show-summary size="small" :summary-method="getSummaries">
<el-table-column align="center" header-align="center" label="序号"
type="index" width="60">
</el-table-column>
<el-form-item label="" label-width="0" v-for="nr,idx in formData.nrs" v-if="nr?.auditUser === $store.state.user.loginname">
<template>
<el-row type="flex" align="middle" justify="space-between">
<el-input v-model="nr.content" readonly maxlength="30" placeholder="请填写考核内容">
<template slot="prepend"><span>{{ idx + 1 }}</span></template>
</el-input>
</el-row>
<el-row style="margin-top: 20px">
<el-table :data="nr.bzs" style="width: 100%" border show-summary size="small" :summary-method="getSummaries"
:row-class-name="tableRowClassName">
<el-table-column align="center" header-align="center" label="序号"
type="index" width="60">
</el-table-column>
<el-table-column label="考核标准" disabled prop="inspection"
header-align="center" align="center">
<template scope="{row}">
<el-input v-model="row.inspection"
readonly placeholder="请填写考核标准"></el-input>
</template>
</el-table-column>
<el-table-column label="考核标准" disabled prop="inspection"
header-align="center" align="center">
<template scope="{row}">
<el-input v-model="row.inspection"
readonly placeholder="请填写考核标准"></el-input>
</template>
</el-table-column>
<el-table-column label="标准分" prop="score" header-align="center"
align="center">
<template scope="{row}">
<el-input v-model.number="row.score" readonly maxlength="4"
placeholder="请填写标准分"></el-input>
</template>
</el-table-column>
<el-table-column label="标准分" prop="score" header-align="center"
align="center">
<template scope="{row}">
<el-input v-model.number="row.score" readonly maxlength="4"
placeholder="请填写标准分"></el-input>
</template>
</el-table-column>
<el-table-column label="自评得分" prop="zpf" header-align="center"
align="center" v-if="examConfig.selfAssessment === true">
<template scope="{row}">
<el-input v-if="row.zpf" v-model.number="row.zpf"
maxlength="4"
readonly placeholder="请填写自评分"></el-input>
<el-table-column label="自评得分" prop="zpf" header-align="center"
align="center" v-if="examConfig.selfAssessment === true">
<template scope="{row}">
<el-input v-if="row.zpf" v-model.number="row.zpf"
maxlength="4"
readonly placeholder="请填写自评分"></el-input>
<el-input v-else value="暂无" maxlength="4"
readonly></el-input>
</template>
</el-table-column>
<el-input v-else value="暂无" maxlength="4"
readonly></el-input>
</template>
</el-table-column>
<el-table-column label="校工会评分" prop="schools" header-align="center"
align="center">
<template scope="{row}">
<el-input v-model.number="row.schools" maxlength="4"
placeholder="请填写评分"></el-input>
</template>
</el-table-column>
<el-table-column label="校工会评分" prop="schools" header-align="center"
align="center">
<template scope="{row}">
<el-input v-model="row.schools" maxlength="4"
placeholder="请填写评分" type="number"></el-input>
</template>
</el-table-column>
<el-table-column label="加、减原因" prop="addition" header-align="center"
align="center">
<template scope="{row}">
<el-input v-model.number="row.addition" maxlength="50"
placeholder="请填写加、减原因"></el-input>
</template>
</el-table-column>
<el-table-column label="加、减原因" prop="addition" header-align="center"
align="center">
<template scope="{row}">
<el-input v-model="row.addition" maxlength="50"
placeholder="请填写加、减原因"></el-input>
</template>
</el-table-column>
<el-table-column label="佐证材料数量" header-align="center" align="center" width="100" prop="fileCount">
<template scope="scope">
<el-table-column label="佐证材料数量" header-align="center" align="center" width="100" prop="fileCount">
<template scope="scope">
<span v-if="scope.row.zp?.files?.length > 0" class="text-success" style="font-weight: bolder; font-size: 16px">
{{ scope.row.zp?.files?.length || 0 }}</span>
<span v-else>0</span>
</template>
</el-table-column>
<el-table-column label="佐证材料" header-align="center" align="center" prop="files">
<template scope="{row, $index}">
<el-button type="primary" plain size="small"
@click="doView(nr.content,row.inspection,row, $index, idx)">
查看佐证材料
</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<span v-else>0</span>
</template>
</el-table-column>
<el-table-column label="佐证材料" header-align="center" align="center" prop="files">
<template scope="{row, $index}">
<el-button type="primary" plain size="small"
@click="doView(nr.content,row.inspection,row, $index, idx)">
查看佐证材料
</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
</template>
</el-form-item>
</el-form>
</template>
@@ -245,6 +259,7 @@ layout("/layouts/platform.html"){
window.vue = new Vue({
el: '#app',
store,
mixins: [initTableMixins],
data() {
return {
@@ -290,6 +305,12 @@ layout("/layouts/platform.html"){
'upload-materials': httpVueLoader('/components/module/kh/UploadMaterials.vue')
},
methods: {
tableRowClassName({row, rowIndex}) {
if(row.zp?.updateStatus === true) {
return 'warning-row';
}
return '';
},
addForm() {
this.formData.nrs[this.idx].bzs[this.index].zp = this.data
this.dialog = false
@@ -356,6 +377,24 @@ layout("/layouts/platform.html"){
loading.close()
})
},
doSubmit(row) {
this.$confirm('提交后不可修改,您确定要提交吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(()=>{
this.$axios
.post("/platform/ghkh/xghsh/submit", {id: row.record_id})
.then((resp) => {
if (resp.code === 0) {
this.$message.success(resp.msg)
this.doSearch()
} else {
this.$message.error(resp.msg)
}
})
})
},
doView(nr, bz, row, index, idx) {
this.dialog = true
this.viewRow = row
@@ -374,7 +413,7 @@ layout("/layouts/platform.html"){
sums[index] = '';
return;
} else if (column.property === 'fileCount') {
const zpfs = data.map(v => v['zp']['files']?.length || 0)
const zpfs = data.map(v => v.zp?.files?.length || 0)
sums[index] = zpfs.reduce((a, b) => {
return a + b;
}) + ' 个'
@@ -203,14 +203,14 @@ layout("/layouts/platform.html"){
</el-table-column>
<el-table-column label="单项分" prop="single_score" header-align="center" align="center"
v-if="examConfig.displaySingleItem === true" width="250px">
v-if="examConfig.displaySingleItem === true" width="120px">
<template scope="{row}">
<el-input v-model.number="row.single_score" readonly maxlength="4"></el-input>
</template>
</el-table-column>
<el-table-column label="标准分" prop="score" header-align="center" align="center"
width="250px">
width="120px">
<template scope="{row}">
<el-input v-model.number="row.score" readonly maxlength="4"
placeholder="请填写标准分"></el-input>
@@ -218,7 +218,7 @@ layout("/layouts/platform.html"){
</el-table-column>
<el-table-column label="自评得分" prop="zpf" header-align="center" align="center"
width="250px" v-if="examConfig.selfAssessment === true">
width="120px" v-if="examConfig.selfAssessment === true">
<template scope="{row}">
<el-input v-if="row.zpf" v-model.number="row.zpf" maxlength="4"
readonly placeholder="请填写自评分"></el-input>
@@ -227,6 +227,20 @@ layout("/layouts/platform.html"){
</template>
</el-table-column>
<el-table-column label="校工会评分" prop="schools" header-align="center"
align="center" width="120px">
<template scope="{row}">
{{ row.schools || '暂无评分' }}
</template>
</el-table-column>
<el-table-column label="加、减原因" prop="addition" header-align="center"
align="center" show-overflow-tooltip width="200">
<template scope="{row}">
{{ row.addition || '暂无原因' }}
</template>
</el-table-column>
<el-table-column label="佐证材料数量" header-align="center" align="center" width="100" prop="fileCount">
<template scope="scope">
<span v-if="scope.row.zp?.files?.length > 0" class="text-success" style="font-weight: bolder; font-size: 16px">
@@ -236,7 +250,7 @@ layout("/layouts/platform.html"){
</el-table-column>
<el-table-column label="佐证材料" header-align="center" align="center"
width="250px" prop="files">
width="200px" prop="files">
<template scope="{row}">
<el-button v-if="!row.isEvidence" plain size="small" type="info">此项无需佐证材料</el-button>
<el-button :type="row.zp?.files?.length > 0 ? 'success' : 'primary'"
@@ -543,17 +557,17 @@ layout("/layouts/platform.html"){
if (index === 0) {
sums[index] = '小计';
return;
} else if (['inspection', 'files'].includes(column.property)) {
} else if (['inspection', 'files', 'addition'].includes(column.property)) {
sums[index] = '';
return;
} else if (column.property === 'zp.zpf' && this.examConfig.selfAssessment === true) {
const zpfs = data.map(v => v['zp']['zpf'] || 0)
const zpfs = data.map(v => v.zp?.zpf || 0)
sums[index] = zpfs.reduce((a, b) => {
return a + b;
}) + ' 分'
return;
} else if (column.property === 'fileCount') {
const zpfs = data.map(v => v['zp']['files']?.length || 0)
const zpfs = data.map(v => v.zp?.files?.length || 0)
sums[index] = zpfs.reduce((a, b) => {
return a + b;
}) + ' 个'
@@ -628,12 +642,12 @@ layout("/layouts/platform.html"){
}
// 考核还没结束
if(this.$moment().isBefore(this.$moment(row.endDateTime))) {
if(row.state === 3) {
if(row.state === 2 || row.state === 3) {
this.$message.error("当前时间未在申诉期内,不能修改")
return
}
} else if(this.$moment().isAfter(this.$moment(row.endDateTime)) && this.$moment().isBefore(this.$moment(row.startApplyTime))) {
if(row.state === 3) {
if(row.state === 2 || row.state === 3) {
this.$message.error("当前时间未在申诉期内,不能修改")
return
}