Files
UNION_NSI/target/classes/views/platform/syr/info/pwjtps.html
T
2026-09-08 19:49:21 +08:00

234 lines
10 KiB
HTML

<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-radio-group {
vertical-align: unset !important;
}
</style>
<div id="app" v-clock>
<guava ref="guava">
<syr-table :smm.sync="smm" auditval="评审" ref="syrTable" request="/platfotm/syr/info/pwjtps/pageData"
yeartype="jtyear">
<template slot="operation">
<el-table-column label="操作" fixed="right" width="300">
<template slot-scope="{row}">
<!--如果是超管 根据状态来判断评委是否都评审完-->
<template v-if="hasAdminRole">
<el-button size="mini"
:type="row.state>100?null:'primary'"
@click="openView(row,row.state>100)">
{{row.state>100?'查看':'评审'}}
</el-button>
</template>
<!--如果是评委-->
<template v-else>
<el-button
:type="row.isps>0?null:'primary'"
@click="openView(row,row.isps>0)"
size="mini">
{{row.isps>0?'查看':'评审'}}
</el-button>
<el-button
:type="row.isps>0?'primary':''"
@click="openEdit(row)"
size="mini"
v-if="[100,110].includes(row.state)">
修改
</el-button>
</template>
<el-button size="mini" type="danger" v-if="row.state>100 && row.state<=110"
@click="doRollBack(row)">撤回
</el-button>
</template>
</el-table-column>
</template>
</syr-table>
<template #edit>
<syr-info-new ref="auditInfo">
<template slot="handle">
<el-tab-pane label="评委结题评审" name="pwjtps">
<el-form :model="formData" :rules="rules" label-width="100px" ref="Form">
<el-row type="flex">
<el-col>
<el-form-item label="评委" prop="pwid">
<span v-if="hasAdminRole">
<el-select v-model="formData.pwid">
<el-option v-for="u in userList"
:value="u.userid"
:key="u.userid"
:label="u.username + '-' +u.loginname">
</el-option>
</el-select>
</span>
<span v-else>
${@shiro.getPrincipalProperty('username')}
</span>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="审核时间">
{{moment().format('YYYY-MM-DD')}}
</el-form-item>
</el-col>
</el-row>
<el-row type="flex">
<el-col>
<el-form-item label="是否通过" prop="ispass">
<el-radio-group v-model="formData.ispass" size="mini">
<el-radio :label="true" border></el-radio>
<el-radio :label="false" border></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="是否优秀" prop="isgood" v-if="formData.ispass">
<el-radio-group v-model="formData.isgood" size="mini">
<el-radio :label="true" border></el-radio>
<el-radio :label="false" border></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="评审建议" prop="psjy">
<el-input maxlength="100" rows="5" type="textarea"
v-model="formData.psjy"></el-input>
</el-form-item>
<el-form-item label="签字" prop="pwjtqz">
<sign :qz.sync="formData.pwjtqz" prefix="pwjtqz"></sign>
</el-form-item>
</el-form>
<el-row class="mt20 text-center">
<el-button @click="$refs.guava.index()">返 回</el-button>
<el-button @click="doHandle" type="primary">提 交</el-button>
</el-row>
</el-tab-pane>
</template>
</syr-info-new>
</template>
<template #view>
<syr-info-new ref="viewInfo"></syr-info-new>
</template>
</guava>
</div>
<script>
let vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
isEdit: false,
smm: {
status: 'table'
},
formData: {},
handleShow: false,
userList: [],
rules: {
pwid: [{required: true, message: '请选择评委', trigger: ['blur', 'change']}],
psjy: [
{required: true, message: '请填写评审建议', trigger: ['blur', 'change']},
{max: 100, message: '最多填写100个字', trigger: ['blur', 'change']}],
ispass: [{required: true, message: '请选择是否通过', trigger: ['blur', 'change']}],
isgood: [{required: true, message: '请选择是否优秀', trigger: ['blur', 'change']}],
pwjtqz: [{required: true, message: '请签字', trigger: ['blur', 'change']}],
},
//拥有其它权限吗 校管 超管
hasAdminRole: false
}
},
components: {
'syr-table':
httpVueLoader('/components/syr/syrtable.vue'),
'syr-info':
httpVueLoader('/components/syr/syrinfo.vue'),
'syr-info-new':
httpVueLoader('/components/syr/SyrInfoNew.vue'),
}
,
methods: {
openView(row, isView) {
if (isView) {
this.$refs.guava.view()
this.$refs.viewInfo.openView(row.id, '9')
} else {
this.isEdit = false
this.$refs.guava.edit()
this.$refs.auditInfo.openView(row.id, 'pwjtps')
this.$set(this.formData, 'xmid', row.id)
this.$set(this.formData, 'ispass', null)
this.$set(this.formData, 'isgood', null)
this.$set(this.formData, 'psjy', null)
this.$set(this.formData, 'pwid', this.hasAdminRole ? '' : "${@shiro.getPrincipalProperty('id')}")
}
this.getWpsPwList(row.id)
},
async openEdit(row) {
this.isEdit = true
this.$refs.guava.edit()
this.$refs.auditInfo.openView(row.id, 'pwjtps')
const resp = await $.get(loc() + '/getJtpsInfo', {
xmId: row.id,
pwId: "${@shiro.getPrincipalProperty('id')}"
})
if (resp.code === 0) {
this.$set(this.formData, 'xmid', resp.data.xmid)
this.$set(this.formData, 'ispass', resp.data.ispass)
this.$set(this.formData, 'isgood', resp.data.isgood)
this.$set(this.formData, 'pssj', resp.data.pssj)
this.$set(this.formData, 'psjy', resp.data.psjy)
this.$set(this.formData, 'pwid', resp.data.pwid)
this.$set(this.formData, 'pwjtqz', resp.data.pwjtqz)
} else {
this.notifyWarning(resp.msg)
}
this.getWpsPwList(row.id)
/*console.log(resp.data)
this.formData = {
xmid: row.id,
isjylx: '1',
lxlevel: '2000',
psyj: '',
pwid: this.hasAdminRole ? '' : "${@shiro.getPrincipalProperty('id')}"
}*/
},
async doHandle() {
const valid = await this.$refs['Form'].validate()
if (!valid) return
const reqUrl = this.isEdit ? '/platfotm/syr/info/pwjtps/doEdit' : '/platfotm/syr/info/pwjtps/doHandle'
const resp = await $.post(reqUrl, this.formData)
if (resp.code === 0) {
this.$refs.guava.index()
this.notifySuccess(resp.msg)
this.$refs['syrTable'].doSearch()
}
}
,
async getWpsPwList(xmid) {
const {data} = await $.get('/platfotm/syr/info/pwjtps/getWpsPwList', {xmid: xmid})
this.userList = data
},
async doRollBack(row) {
const resp = await $.get('/platfotm/syr/info/yjsh/doRollBack', {id: row.id, state: row.state})
if (resp.code === 0) {
this.notifySuccess(resp.msg)
this.$refs['syrTable'].doSearch()
}
}
},
async created() {
if (${@shiro.hasRole('sysadmin')} || ${@shiro.hasRole('A06')}) {
this.hasAdminRole = true
}
}
})
</script>
<!--#
}
#-->