Files
2026-09-08 19:49:21 +08:00

582 lines
31 KiB
HTML
Raw Permalink 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"){
#-->
<div id="app" v-cloak>
<transition name="el-zoom-in-center">
<div v-show="v=='index'" style="width: 100%;position: absolute;top: 0;left: 0">
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker
v-model="pageForm.year"
type="year"
placeholder="年份">
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-select placeholder="荣誉类型" v-model="pageForm.jtlx" @change="doSearch">
<el-option value="1" label="工会工作先进工作者"></el-option>
<el-option value="2" label="工会工作积极分子"></el-option>
<el-option value="3" label="教代会工作先进单位"></el-option>
<el-option value="4" label="工会工作先进单位"></el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" @click="doSearch" icon="el-icon-search"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<!--# if(@shiro.hasRole("sysadmin")){ #-->
<el-button size="medium" @click="openAdd"><i class="ti-plus"></i>录入历史数据</el-button>
<!--# } #-->
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" @sort-change='pageOrder'>
<el-table-column label="序号" type="index" header-align="center" align="center">
<template scope="scope">
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column v-for="item in tabcol" header-align="center" align="center" :prop="item.prop"
:label="item.label" :sortable="item.sortable"></el-table-column>
<el-table-column label="奖项类型" header-align="center" align="center" sortable>
<template scope="scope">
<template v-if="['3','4'].includes(pageForm.jtlx)">
<span v-if="scope.row.jtlx=='1'">教代会工作先进单位</span>
<span v-if="scope.row.jtlx=='2'">工会工作先进单位</span>
</template>
<template v-else-if="['1','2'].includes(pageForm.jtlx)">
<span v-if="scope.row.jtlx=='1'">工会工作先进工作者</span>
<span v-if="scope.row.jtlx=='2'">工会工作积极分子</span>
</template>
</template>
</el-table-column>
<el-table-column label="状态" header-align="center" align="center" sortable>
<template scope="scope">
<span v-if="scope.row.sqzt=='0'">未提交</span>
<span v-if="scope.row.sqzt=='1'">待部门工会审核</span>
<span v-if="scope.row.sqzt=='2'">部门工会审核不通过</span>
<span v-if="scope.row.sqzt=='3'">待院级党组织审核</span>
<span v-if="scope.row.sqzt=='4'">院级党组织审核不通过</span>
<span v-if="scope.row.sqzt=='5'">待校工会审批</span>
<span v-if="scope.row.sqzt=='6'">校工会审批不通过</span>
<span v-if="scope.row.sqzt=='7'">通过</span>
</template>
</el-table-column>
<el-table-column label="操作" header-align="center" align="center">
<template slot-scope="{row}">
<el-dropdown @command="({func, data})=>{func(data)}">
<el-button plain size="mini">
<i class="ti-settings"></i>
<span class="ti-angle-down"></span>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="{func:openView,data:row}">
查看
</el-dropdown-item>
<!--# if(@shiro.hasRole("sysadmin")||@shiro.hasRole("H04")){ #-->
<el-dropdown-item :command="{func:doDelete,data:row}">
删除
</el-dropdown-item>
<!--# } #-->
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-size="pageForm.pageSize"
layout="total, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
</div>
</transition>
<transition name="el-zoom-in-center">
<div v-show="v=='add'" style="width: 100%;position: absolute;top: 0;left: 0;bottom: 0;right: 0">
<el-card class="box-card v-box" shadow="never">
<div slot="header" class="clearfix">
<el-button icon="el-icon-back" type="text" @click="v='index'" style="font-size: 16px">返回
</el-button>
<el-button type="primary" v-if="v=='add'" style="float: right;"
@click="doAdd">
提 交
</el-button>
</div>
<div style="padding: 0 5%; height:calc(100vh - 150px);overflow-y: scroll">
<el-form :model="formData" ref="form" :rules="formRules" label-width="130px">
<el-form-item label="荣誉类型" prop="jtlx">
<el-radio v-model="formData.jtlx" label="1">工会工作先进工作者</el-radio>
<el-radio v-model="formData.jtlx" label="2">工会工作积极分子</el-radio>
<el-radio v-model="formData.jtlx" label="3">教代会工作先进单位</el-radio>
<el-radio v-model="formData.jtlx" label="4">工会工作先进单位</el-radio>
</el-form-item>
<template v-if="['1','2'].includes(formData.jtlx)">
<el-form-item label="姓名" prop="username">
<el-input maxlength="10" placeholder="姓名" v-model="formData.username"
type="text"></el-input>
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-radio v-model="formData.sex" label="男" border></el-radio>
<el-radio v-model="formData.sex" label="女" border></el-radio>
</el-form-item>
<el-form-item label="出生年月" prop="csrq">
<el-date-picker
v-model="formData.csrq"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="职务" prop="ghzw">
<el-input maxlength="10" placeholder="职务" v-model="formData.ghzw"
type="text"></el-input>
</el-form-item>
<el-form-item label="单位名称" prop="unitid">
<el-select v-model="formData.unitid" filterable>
<el-option v-for="item in unitlist" :value="item.id" :label="item.name"></el-option>
</el-select>
</el-form-item>
</template>
<template v-else-if="formData.jtlx==='3'">
<el-form-item label="申请单位" prop="jtbmdw">
<el-select v-model="formData.jtbmdw" filterable style="width: 100%"
@change="getUnitOrUnionLeaderInfo(formData.jtbmdw,true)">
<el-option v-for="item in unitlist2"
:value="item.id"
:label="item.unitName"></el-option>
</el-select>
</el-form-item>
<el-form-item label="负责人姓名" prop="unit_leader">
<el-input maxlength="10" placeholder="负责人姓名" v-model="formData.unit_leader"
type="text"></el-input>
</el-form-item>
<el-form-item label="负责人联系方式" prop="unit_leader_mobile">
<el-input maxlength="11" placeholder="联系方式" v-model="formData.unit_leader_mobile"
type="text" oninput="value=value.replace(/[^0-9]/g,'')"></el-input>
</el-form-item>
<el-form-item label="教代会届次" prop="jdhcs">
<el-select v-model="formData.jdhcs" filterable style="width: 100%">
<el-option v-for="item in meetingOptions" :value="item.jdhallname"
:label="item.jdhallname"></el-option>
</el-select>
</el-form-item>
</template>
<template v-else-if="formData.jtlx==='4'">
<el-form-item label="申请部门" prop="jtbmgh">
<el-select v-model="formData.jtbmgh" filterable style="width: 100%"
@change="getUnitOrUnionLeaderInfo(formData.jtbmgh,false)">
<el-option v-for="item in unionlist" :value="item.id"
:label="item.unionname"></el-option>
</el-select>
</el-form-item>
<el-form-item label="工会主席" prop="zxname">
<el-input maxlength="10" placeholder="工会主席" v-model="formData.zxname"
type="text"></el-input>
</el-form-item>
<el-form-item label="联系方式" prop="zxmobile">
<el-input maxlength="11" placeholder="联系方式" v-model="formData.zxmobile"
type="text" oninput="value=value.replace(/[^0-9]/g,'')"></el-input>
</el-form-item>
</template>
<el-form-item label="主要先进事迹" prop="zyxjsj">
<el-input
type="textarea"
:autosize="{ minRows: 6, maxRows: 6}"
placeholder="请输入主要先进事迹"
v-model="formData.zyxjsj"
maxlength="1000"
show-word-limit
>
</el-input>
</el-form-item>
<el-form-item prop="files" label="附&emsp;&emsp;件">
<file-upload :files.sync="formData.files"></file-upload>
</el-form-item>
</el-form>
</div>
</el-card>
</div>
</transition>
<transition name="el-zoom-in-center">
<div v-show="v=='view'"
style="width: 100%;position: absolute;top: 0;left: 0;bottom: 0;right: 0">
<el-card class="box-card v-box" shadow="never">
<div slot="header" class="clearfix">
<el-button icon="el-icon-back" type="text" @click="v='index'" style="font-size: 16px">返回
</el-button>
</div>
<div style="padding: 0 5%; height:calc(100vh - 150px);overflow-y: scroll">
<el-tabs v-model="active" tab-position="top">
<el-tab-pane label="基本信息" name="1">
<el-form v-if="pageForm.jtlx=='1'||pageForm.jtlx=='2'" :model="formData" ref="AddForm"
:rules="rules" label-width="130px" :disabled="v=='view'?true:false">
<el-form-item label="荣誉类型">
<el-radio v-model="formData.jtlx" label="1">工会工作先进工作者</el-radio>
<el-radio v-model="formData.jtlx" label="2">工会工作积极分子</el-radio>
</el-form-item>
<el-form-item label="姓名">
<span>{{formData.username}}</span>
</el-form-item>
<el-form-item label="性别">
<span>{{formData.sex}}</span>
</el-form-item>
<el-form-item label="出生年月">
<span>{{formData.csrq}}</span>
</el-form-item>
<el-form-item label="职务">
<span>{{formData.ghzw}}</span>
</el-form-item>
<el-form-item label="单位名称">
<span>{{formData.unitname}}</span>
</el-form-item>
<el-form-item label="主要先进事迹">
<span>{{formData.zyxjsj}}</span>
</el-form-item>
<el-form-item label="附件">
<file-upload :files.sync="formData.files" view></file-upload>
</el-form-item>
</el-form>
<el-form v-if="pageForm.jtlx=='3'||pageForm.jtlx=='4'" :model="formData" ref="AddForm"
:rules="rules" label-width="130px" :disabled="v=='view'?true:false">
<el-form-item label="荣誉类型">
<el-radio v-model="formData.jtlx" label="1">教代会工作先进单位</el-radio>
<el-radio v-model="formData.jtlx" label="2">工会工作先进单位</el-radio>
</el-form-item>
<el-form-item label="申请单位" v-if="formData.jtlx=='1'">
<span>{{formData.jtbmdwname}}</span>
</el-form-item>
<el-form-item label="负责人姓名" v-if="formData.jtlx=='1'">
<span>{{formData.unit_leader}}</span>
</el-form-item>
<el-form-item label="负责人联系方式" v-if="formData.jtlx=='1'">
<span>{{formData.unit_leader_mobile}}</span>
</el-form-item>
<el-form-item label="教代会届次" v-if="formData.jtlx=='1'">
<span>{{formData.jdhcs}}</span>
</el-form-item>
<el-form-item label="申请部门" v-if="formData.jtlx=='2'">
<span>{{formData.jtbmghname}}</span>
</el-form-item>
<el-form-item label="工会主席" v-if="formData.jtlx=='2'">
<span>{{formData.zxname}}</span>
</el-form-item>
<el-form-item label="联系方式" v-if="formData.jtlx=='2'">
<span>{{formData.zxmobile}}</span>
</el-form-item>
<el-form-item label="主要先进事迹">
<span>{{formData.zyxjsj}}</span>
</el-form-item>
<el-form-item label="附件">
<file-upload :files.sync="formData.files" view></file-upload>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane v-if="formData.bmghshr!=undefined&&formData.bmghshr!=null&&formData.bmghshr!=''"
label="部门工会审核信息" name="2">
<el-card>
<el-form label-width="100px" label-suffix="">
<el-row>
<el-form-item label="审核人">
{{formData.bmghshr}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="审核时间">
{{formData.bmghshsj}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="审核意见">
{{formData.bmghshyj}}
</el-form-item>
</el-row>
</el-form>
</el-card>
</el-tab-pane>
<el-tab-pane v-if="formData.yjdzzshr!=undefined&&formData.yjdzzshr!=null&&formData.yjdzzshr!=''"
label="院级党组织审核信息" name="3">
<el-card>
<el-form label-width="100px" label-suffix="">
<el-row>
<el-form-item label="审核人">
{{formData.yjdzzshr}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="审核时间">
{{formData.yjdzzshsj}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="审核意见">
{{formData.yjdzzshyj}}
</el-form-item>
</el-row>
</el-form>
</el-card>
</el-tab-pane>
<el-tab-pane v-if="formData.xghshr!=undefined&&formData.xghshr!=null&&formData.xghshr!=''"
label="校工会审核信息" name="4">
<el-card>
<el-form label-width="100px" label-suffix="">
<el-row>
<el-form-item label="审核人">
{{formData.xghshr}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="审核时间">
{{formData.xghshsj}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="审核意见">
{{formData.xghshyj}}
</el-form-item>
</el-row>
</el-form>
</el-card>
</el-tab-pane>
</el-tabs>
</div>
</el-card>
</div>
</transition>
</div>
<script>
window.vue = new Vue({
el: '#app',
components: {
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
},
data() {
return {
meetingOptions: [],
tableData: [],
addDialogVisible: false,
userList: [],
formData: {},
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
jtlx: "1",
keyword: "",
year: ""
},
rules: {
userid: [{required: true, message: '请先搜素并选择要新增的评委', trigger: ['blur', 'change']}]
},
unitlist: [],
unionlist: [],
tabcol: [
{prop: "username", label: "姓名"},
{prop: "sex", label: "性别", sortable: true},
{prop: "csrq", label: "出生年月", sortable: true},
{prop: "unitname", label: "单位名称", sortable: true}],
v: "index",
active: "1",
formRules: {
userid: [{required: true, message: '请先搜素并选择要新增的评委', trigger: ['blur', 'change']}],
username: [{required: true, message: '请填写姓名', trigger: ['blur', 'change']}],
sex: [{required: true, message: '请填写性别', trigger: ['blur', 'change']}],
csrq: [{required: true, message: '请填写出生年月', trigger: ['blur', 'change']}],
ghzw: [{required: true, message: '请填写职务', trigger: ['blur', 'change']}],
unitid: [{required: true, message: '请填写单位名称', trigger: ['blur', 'change']}],
zyxjsj: [{required: true, message: '请填写主要先进事迹', trigger: ['blur', 'change']}],
jtbmdw: [{required: true, message: '请填写申请单位', trigger: ['blur', 'change']}],
jdhcs: [{required: true, message: '请填写教代会届次', trigger: ['blur', 'change']}],
zwhcs: [{required: true, message: '请填写教代会执委会次数', trigger: ['blur', 'change']}],
jtbmghname: [{required: true, message: '请填写申请部门', trigger: ['blur', 'change']}],
zxname: [{required: true, message: '请填写工会主席', trigger: ['blur', 'change']}],
zxmobile: [{required: true, message: '请填写联系方式', trigger: ['blur', 'change']}],
},
}
},
methods: {
async getUnitOrUnionLeaderInfo(unitId, isUnit) {
if (isUnit) {
this.$set(this.formData, "unit_leader", "")
this.$set(this.formData, "unit_leader_mobile", "")
} else {
this.$set(this.formData, "zxname", "")
this.$set(this.formData, "zxmobile", "")
}
if (unitId) {
const response = await $.get('/platfotm/ry/jt/jtsq/unitOrUnionLeaderInfo', {unitId, isUnit})
if (response.code===0){
const {username, mobile} = response || {}
if (isUnit) {
this.$set(this.formData, "unit_leader", username)
this.$set(this.formData, "unit_leader_mobile", mobile)
} else {
this.$set(this.formData, "zxname", username)
this.$set(this.formData, "zxmobile", mobile)
}
}
}
},
doAdd() {
this.$refs['form'].validate(async valid => {
if (valid) {
const formData = clone(this.formData)
const postUrl = loc() + (['1', '2'].includes(formData.jtlx) ? '/doAddGr' : '/doAddJt')
formData.jtlx = formData.jtlx % 2 ? 1 : 2
formData.files = JSON.stringify(formData.files)
await POST(postUrl, formData)
this.addDialogVisible = false
this.doSearch()
this.v = 'index';
}
})
},
async openAdd() {
const formData = {jtlx: this.pageForm.jtlx, files: []}
this.v = 'add'
this.formData = formData
},
async pageData() {
this.tableData = [];
if (this.pageForm.jtlx === '1' || this.pageForm.jtlx === '2') {
this.tabcol = [
{prop: "username", label: "姓名"},
{prop: "sex", label: "性别", sortable: true},
{prop: "csrq", label: "出生年月", sortable: true},
{prop: "unitname", label: "单位名称", sortable: true}
]
}
if (this.pageForm.jtlx === '3') {
this.tabcol = [
{prop: "jtbmdwname", label: "申请单位", sortable: true},
{prop: "unit_leader", label: "负责人"},
{prop: "unit_leader_mobile", label: "负责人联系方式"},
{prop: "jdhcs", label: "教代会届次", sortable: true},
{prop: "sqsj", label: "申请时间", sortable: true}
]
}
if (this.pageForm.jtlx === '4') {
this.tabcol = [
{prop: "jtbmghname", label: "部门工会"},
{prop: "zxname", label: "工会主席"},
{prop: "zxmobile", label: "联系方式"},
{prop: "sqsj", label: "申请时间",sortable: true}
]
}
const {data} = await POST('/platfotm/ry/ryyl/pageData', this.pageForm, true)
this.tableData = data.list;
this.pageForm.totalCount = data.totalCount
}
,
pageNumberChange(val) {
this.pageForm.pageNumber = val
this.pageData()
}
,
doSearch() {
this.pageForm.pageNumber = 1
this.pageData()
}
,
pageOrder(column) {
this.pageForm.pageOrderName = column.prop
this.pageForm.pageOrderBy = column.order
this.pageData()
}
,
openEdit(scope) {
this.formData = scope;
this.v = 'edit';
}
,
doEdit(con) {
if (con) {
this.formData.sqzt = '7';
if (this.formData.bmghshyj == "") {
this.formData.bmghshyj = "通过";
}
} else {
this.formData.sqzt = '6';
if (this.formData.bmghshyj == "") {
this.$message.warning("审核意见不能为空!");
}
}
this.$refs['AddForm'].validate(async valid => {
if (valid) {
await POST('/platfotm/ry/ryyl/doEdit', this.formData)
this.v = 'index';
this.doSearch()
}
})
}
,
async getUnit() {
const {data} = await $.get("/platfotm/ry/gr/grsq/getUnit")
this.unitlist = data
}
,
openView(row) {
this.v = 'view';
this.formData = row;
}
,
doDelete(row) {
this.$confirm('确定删除这条申请记录吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
await POST('/platfotm/ry/ryyl/doDel', {id: row.id})
this.doSearch()
this.v = 'index';
}).catch(() => {
})
},
async getUnit2() {
const {data} = await $.get("/platfotm/ry/jt/jtsq/getUnit")
this.unitlist2 = data
},
},
async created() {
this.pageData();
this.unionlist = await getUnion()
this.getUnit();
this.meetingOptions = await getAllMeeting()
this.getUnit2()
}
})
</script>
<!--#
}
#-->