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

433 lines
19 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.yearDatePickerItemLabel .el-select {
background-color: #f5f7fa;
color: #909399;
}
.yearDatePickerItemLabel .el-input__inner {
border-bottom-right-radius: unset;
border-top-right-radius: unset;
/*border-right: 0;*/
}
.yearDatePickerItemOption .el-input__inner {
border-bottom-left-radius: unset;
border-top-left-radius: unset;
border-left: 0;
}
</style>
<div id="app" v-cloak>
<guava ref="guava">
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label yearDatePickerItemLabel" style="width: 100%;margin-right: 0">
<el-select v-model="pageForm.yearType" placeholder="年度类型"
style="width: 100%;">
<el-option label="申报年度" value="sbyear"></el-option>
<el-option label="结题年度" value="jtyear"></el-option>
</el-select>
</div>
<div class="search-item-option yearDatePickerItemOption"
style="width: calc(100% - 160px);min-width:calc(100% - 160px)">
<el-date-picker
style="width: 100%"
v-model="pageForm.year"
type="year"
value-format="yyyy">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">项目名称:</div>
<div class="search-item-option">
<el-input v-model="pageForm.xmmc" placeholder="请输入项目名称查询" style="width: 100%;"></el-input>
</div>
</div>
<div class="search-item">
<div class="search-item-label">申报人:</div>
<div class="search-item-option">
<el-input v-model="pageForm.searchKeyword" placeholder="请输入内容" @keyup.enter.native="doSearch">
<el-select slot="prepend" v-model="pageForm.searchName" placeholder="查询类型"
style="width: 120px;">
<el-option label="申报人姓名" value="u.username"></el-option>
<el-option label="申报人工号" value="u.loginname"></el-option>
</el-select>
</el-input>
</div>
</div>
<div class="search-item">
<div class="search-item-label">院级工会:</div>
<div class="search-item-option">
<el-select v-model="pageForm.unionid" clearable filterable placeholder="请选择院级工会"
@change="getUnitList()"
style="width: 100%">
<el-option
v-for="item in unionList"
:key="item.id"
:label="item.unionname"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">单位:</div>
<div class="search-item-option">
<el-select v-model="pageForm.unitid" clearable filterable placeholder="请选择单位"
style="width: 100%">
<el-option
v-for="item in unitList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
<slot name="search-group">
<!--不同页面的查询条件自定义-->
</slot>
<div class="search-query">
<el-button icon="el-icon-search" type="primary" @click="doSearch"></el-button>
</div>
</div>
<!--<template v-show="!hasNotghdwUrl.includes(request)">
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.unionid" clearable filterable placeholder="请选择院级工会" @change="getUnitList()">
<el-option
v-for="item in unionList"
:key="item.id"
:label="item.unionname"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.unitid" clearable filterable placeholder="请选择单位">
<el-option
v-for="item in unitList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
</template>-->
</el-card>
<el-card class="mt10" shadow="never">
<table-tool :app="this" label="选题列表">
<template #func>
<el-radio-group @change="doSearch" class="mr10" size="small" v-model="pageForm.isAudit">
<el-radio-button :label="null">全部</el-radio-button>
<el-radio-button :label="true">已审核</el-radio-button>
<el-radio-button :label="false">未审核</el-radio-button>
</el-radio-group>
<el-dropdown @command="groupClick" size="small" split-button type="primary">
分配评委
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="batch">批量分组</el-dropdown-item>
<!-- <el-dropdown-item command="auto">自动分组</el-dropdown-item>-->
</el-dropdown-menu>
</el-dropdown>
</template>
</table-tool>
<el-table :data="tableData" @sort-change="pageOrder" ref="table">
<el-table-column
:selectable="(row)=>{return row.isaudit && row.state === 100 && row.pwhasauditcount === 0}"
type="selection"
width="55">
</el-table-column>
<el-table-column :index="indexMethod" align="center" header-align="center" label="序号" type="index"
width="80px"></el-table-column>
<el-table-column
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
align="center"
header-align="center"
show-overflow-tooltip
v-for="column in tableColumns"
></el-table-column>
<el-table-column label="操作" width="200px">
<template slot-scope="{row}">
<el-button size="mini" :type="row.state>92?null:'primary'"
@click="openView(row,row.state>92)">
{{row.state>92?'查看':'审核'}}
</el-button>
<el-button size="mini" type="danger" v-if="row.state===100"
@click="doRollBack(row)">撤回
</el-button>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<!-- <syr-table :smm.sync="smm" auditval="审核" ref="syrTable" request="/platfotm/syr/info/jtsqxjcs/pageData">
<template slot="operation">
<el-table-column label="操作" fixed="right" width="100">
<template slot-scope="{row}">
<el-button size="mini" :type="row.state>92?null:'primary'"
@click="openView(row,row.state>92)">
{{row.state>92?'查看':'审核'}}
</el-button>
</template>
</el-table-column>
</template>
</syr-table>-->
<template #edit>
<syr-info-new ref="auditInfo">
<template #handle>
<el-tab-pane label="校工会结题初审" name="jtcsxjsh">
<el-form :model="formData" label-suffix="" label-width="100px" ref="Form" :rules="rules">
<el-form-item label="审核人">
${@shiro.getPrincipalProperty('username')}
</el-form-item>
<el-form-item label="审核时间">
{{moment().format('YYYY-MM-DD')}}
</el-form-item>
<el-form-item label="同意结题" prop="jtxghcsIspass">
<el-radio-group v-model="formData.jtxghcsIspass" size="mini">
<el-radio :label="true" border></el-radio>
<el-radio :label="false" border></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="审核意见" prop="jtxghcsyj">
<el-input maxlength="300" rows="5" type="textarea"
v-model="formData.jtxghcsyj"></el-input>
</el-form-item>
<!-- <el-form-item label="签字" prop="jtfghcsQz">-->
<!-- <sign :qz.sync="formData.jtfghcsQz" prefix="syrjtyjsh"></sign>-->
<!-- </el-form-item>-->
</el-form>
<el-row class="mt20 text-center">
<el-button @click="$refs.guava.index()">取消</el-button>
<el-button @click="doHandle(true)" 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>
<el-dialog :close-on-click-modal="false" :visible.sync="distributionDialogVisible" title="批量分配评委" width="45%">
<vi-title title="勾选选题"></vi-title>
<el-table :data="tableSelection" max-height="300px">
<el-table-column header-align="center" label="序号" type="index" width="80px"></el-table-column>
<el-table-column header-align="center" label="项目名称" prop="xmmc"></el-table-column>
<el-table-column header-align="center" label="申报人" prop="username"></el-table-column>
</el-table>
<vi-title class="mt10" title="评委期数"></vi-title>
<el-select v-model="distributionPeriod" clearable filterable placeholder="请选择评委期数"
@change="getGroupNameOptions(distributionPeriod)"
style="width: 100%">
<el-option
v-for="item in periodOptions"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
<vi-title class="mt10" title="评委组别"></vi-title>
<el-radio-group size="small" v-model="distributionGroupName">
<el-radio :label="item" border v-for="item in groupNameOptions">{{item}}</el-radio>
</el-radio-group>
<!--<vi-title class="mt10" title="评委组别"></vi-title>
<el-radio-group size="small" v-model="distributionGroupName">
<el-radio :label="item" border v-for="item in groupNameOptions">{{item}}</el-radio>
</el-radio-group>-->
<div slot="footer">
<el-button @click="distributionDialogVisible = false">取消</el-button>
<el-button @click="doBatchDistribution" type="primary">确定</el-button>
</div>
</el-dialog>
</div>
<script>
let vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
smm: {
status: 'table'
},
formData: {
id: null,
jtxghcsIspass: true,
jtxghcsyj: null,
// jtfghcsQz: null
},
handleShow: false,
rules: {
jtxghcsIspass: [{required: true, message: '请选择是否同意结题', trigger: ['blur', 'change']}],
jtxghcsyj: [{required: true, message: '请输入审核意见', trigger: ['blur', 'change']}],
// jtfghcsQz: [{required: false, message: '请签字', trigger: ['blur', 'change']}],
},
distributionPeriod:null,
distributionGroupName: null,
distributionDialogVisible: false,
tableSelection: [],
groupNameOptions: [],
periodOptions:[],
pageForm: {
year: moment().format('YYYY'),
isAudit: false,
yearType: 'jtyear',
searchName: 'u.username'
},
unionList: [],
unitList: [],
tableColumns: [
{prop: 'xmmc', label: '项目名称'},
{prop: 'username', label: '申报人', sortable: true},
{prop: 'sex', label: '性别', sortable: true},
{prop: 'dwname', label: '申报单位', sortable: true},
{prop: 'ghname', label: '院级工会', sortable: true},
{prop: 'lxlevel', label: '立项资助金额', sortable: true},
{prop: 'statename', label: '状态', sortable: true},
{prop: 'sbrq', label: '申报日期', sortable: true},
{prop: 'period', label: '评委期数', sortable: true},
{prop: 'groupname', label: '评委分组', sortable: true}
],
}
},
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, row.state > 90 ? '9' : '1')
} else {
this.$refs.guava.edit()
this.$refs.auditInfo.openView(row.id, 'jtcsxjsh')
this.formData = {
id: row.id,
jtxghcsIspass: true,
jtxghcsyj: null,
jtfghcsQz: null
}
}
},
async doHandle(res) {
const valid = await this.$refs.Form.validate()
if (!valid) return
const resp = await $.post('/platfotm/syr/info/jtsqxjcs/doAudit', this.formData)
if (resp.code === 0) {
this.$refs.guava.index()
this.notifySuccess(resp.msg)
this.pageData();
}
},
groupClick(command) {
if ('batch' === command) {
const selection = this.$refs.table.selection
if (selection.length === 0) {
this.notifyWarning('请先勾选需要批量分配评委的选题')
return
}
this.tableSelection = selection
this.distributionGroupName = null
this.distributionDialogVisible = true
}
},
async doBatchDistribution() {
const distributionPeriod = this.distributionPeriod
const distributionGroupName = this.distributionGroupName
if (!distributionPeriod) {
this.notifyWarning('请选择需要分配的评委期数')
return
}
if (!distributionGroupName) {
this.notifyWarning('请选择需要分配的评委组别')
return
}
const projectIds = this.$refs.table.selection.map(v => v.id)
const resp = await $.post(loc() + '/doBatchDistribution', {
distributionPeriod,
distributionGroupName,
projectIds: JSON.stringify(projectIds)
})
if (resp.code === 0) {
this.notifySuccess(resp.msg)
this.tableSelection = []
this.distributionGroupName = null
this.distributionDialogVisible = false
this.$refs.table.clearSelection()
this.pageData()
} else {
this.notifyWarning(resp.msg)
}
},
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.pageData();
}
},
async getGroupNameOptions(distributionPeriod) {
const resp = await $.get('/platform/syr/basic/pwgl/getGroupNameOptions',{period:distributionPeriod})
if (resp.code === 0) {
this.groupNameOptions = resp.data
} else {
this.notifyWarning(resp.msg)
}
},
async getPeriodOptions() {
const resp = await $.get('/platform/syr/basic/pwgl/getPeriodOptions')
if (resp.code === 0) {
this.periodOptions = resp.data
} else {
this.notifyWarning(resp.msg)
}
},
},
async created() {
this.pageData()
this.unionList = await getUnions(null)
await this.getPeriodOptions();
//this.getGroupNameOptions()
}
})
</script>
<!--#
}
#-->