Files
UNION_NJUST/target/classes/views/platform/zgfw/lxy/HdXghsh.html
T
2026-09-23 09:38:39 +08:00

780 lines
35 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>
input[type="file"] {
display: none
}
.w-e-text-container {
height: 250px !important;
}
.v-box .el-card__header {
padding: 5px 15px;
}
.el-select-dropdown {
z-index: 99999999 !important;
}
.el-loading-mask {
z-index: 99999999 !important;
}
.el-picker-panel {
z-index: 99999999 !important;
}
.demo-table-expand .el-form-item {
margin-right: 0;
margin-bottom: 0;
width: 50%;
}
.el-textarea__inner {
width: 600px;
text-align: center;
}
</style>
<div id="app" v-cloak>
<el-row class="transition-row">
<!--主table-->
<transition name="el-zoom-in-center">
<div class="transition-item" v-show="showGh==true">
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker
placeholder="选择年度"
type="year"
v-model="ghPageForm.year"
value-format="yyyy">
</el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-select @change="pageData" clearable filterable placeholder="请选择活动"
v-model="ghPageForm.hdid">
<el-option
:key="item.id"
:label="item.name"
:value="item.id"
v-for="item in lxyHd">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-input @keyup.enter.native="doSearch" clearable placeholder="请输入工会名称"
v-model="ghPageForm.searchKeyword"></el-input>
</div>
<div class="btn-group tool-button mt5">
<el-button @click="doSearchGh" icon="el-icon-search" type="primary"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-radio-group @change="doSearchGh" v-model="ghPageForm.isAudit">
<el-radio-button :label="1">全部</el-radio-button>
<el-radio-button :label="2">已审核</el-radio-button>
<el-radio-button :label="3">未审核</el-radio-button>
</el-radio-group>
<el-button @click="yjTg" type="primary">一键通过</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="ghTableData" @selection-change="handleSelectionChangeGh" @sort-change="pageOrder"
ref="multipleTableGh" row-key="ghid"
style="width: 100%" v-loading="tabLoading">
<el-table-column
:reserve-selection="true"
type="selection"
width="55">
</el-table-column>
<el-table-column align="center" header-align="center" label="活动名称"
prop="name">
<template scope="scope">
<el-link @click="lxy_app.openView(scope.row.id)" type="primary">
{{scope.row.name}}
</el-link>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="部门工会"
prop="unionname" show-overflow-tooltip>
<template scope="scope">
<span>({{scope.row.unioncode}}){{scope.row.unionname}}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="活动场地" prop="hdcd"
show-overflow-tooltip></el-table-column>
<el-table-column align="center" header-align="center" label="联系人及联系方式" prop="fglyname"
show-overflow-tooltip></el-table-column>
<!-- <el-table-column label="活动时间" prop="hdsj" header-align="center" sortable width="200px"
align="center">
<template scope="scope">
{{scope.row.hdkssj}} 至 {{scope.row.hdjssj}}
</template>
</el-table-column>
<el-table-column label="报名截止时间" prop="bmsj" header-align="center" sortable width="270px"
align="center">
<template scope="scope">
{{scope.row.bmkssj}} 至 {{scope.row.bmjzsj}}
</template>
</el-table-column>-->
<el-table-column align="center" header-align="center" label="分配名额"
prop="number">
<template scope="scope">
<span style="color: tomato">{{scope.row.number}}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="审核状态" prop="dsh"
show-overflow-tooltip>
<template scope="scope">
<el-tag type="info" v-if="scope.row.dsh>0">未审核</el-tag>
<el-tag type="success" v-else>已审核</el-tag>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="报名人员" prop="username"
show-overflow-tooltip></el-table-column>
<el-table-column align="center" fixed="right" header-align="center" label="操作" width="120px">
<template scope="scope">
<el-button @click="openSh(scope.row)" plain size="mini" type="primary">查看人员</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
:current-page="ghPageForm.pageNumber"
:page-size="ghPageForm.pageSize"
:page-sizes="[10, 20, 30, 50]"
:total="ghPageForm.totalCount"
@current-change="ghPageNumberChange"
@size-change="ghPageSizeChange"
layout="total, sizes, prev, pager, next">
</el-pagination>
</el-row>
</div>
</transition>
<!--审核部分-->
<transition name="el-zoom-in-center">
<div class="transition-item" v-show="showGh==false">
<el-card shadow="never">
<div class="btn-group tool-button mt5">
<div class="clearfix" slot="header">
<el-button @click="showGh=true" icon="el-icon-back" style="font-size: 18px" type="text">
返回
</el-button>
</div>
</div>
<div class="pull-right offscreen-right mt5">
<el-button @click="sh(5)" plain type="success">批量审核</el-button>
<!--<el-button type="danger" @click="sh(4)" plain>不通过</el-button>-->
</div>
<el-row class="el-table-container">
<el-table :data="bmTableData" @selection-change="handleSelectionChange" ref="multipleTableRy"
row-key="id"
style="width: 100%" tooltip-effect="dark">
<el-table-column :reserve-selection="true" :selectable='checkboxT' disabled type="selection"
width="55"></el-table-column>
<el-table-column align="center" header-align="center" label="序号" type="index" width="80">
<template scope="scope">
<span>{{ scope.$index + (pageForm.pageNumber - 1) * pageForm.pageSize + 1 }} </span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="工号"
prop="loginname"></el-table-column>
<el-table-column align="center" header-align="center" label="姓名"
prop="username"></el-table-column>
<el-table-column align="center" header-align="center" label="性别" prop="sex"
sortable></el-table-column>
<el-table-column align="center" header-align="center" label="年龄" prop="age"
sortable></el-table-column>
<el-table-column align="center" header-align="center" label="单位" prop="unitname"
sortable></el-table-column>
<el-table-column align="center" header-align="center" label="工会" prop="unionname"
sortable></el-table-column>
<el-table-column align="center" header-align="center" label="联系电话"
prop="mobile"></el-table-column>
<el-table-column align="center" header-align="center" label="报名状态" prop="bmzt">
<template scope="scope">
<span style="color: #E6A23C" v-if="scope.row.bmzt==1">待部门工会审核</span>
<span style="color: #F56C6C" v-if="scope.row.bmzt==2">部门工会审核未通过</span>
<span style="color: #E6A23C" v-if="scope.row.bmzt==3">待校工会审核</span>
<span style="color: #F56C6C" v-if="scope.row.bmzt==4">校工会审核未通过</span>
<span style="color: #67C23A" v-if="scope.row.bmzt==5">报名成功</span>
<span style="color: #E6A23C" v-if="scope.row.bmzt==6">待填写个人资料</span>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" header-align="center" label="操作"
width="150px">
<template scope="{row}">
<el-dropdown @command="dropdownCommand">
<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="{type:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item :command="{type:'delete',data:row}">
删除
</el-dropdown-item>
<el-dropdown-item :command="{type:'Review',data:row}"
:disabled="row.bmzt==5">
审核
</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-page="pageForm.pageNumber"
:page-size="pageForm.pageSize"
:page-sizes="[10, 20, 30, 50]"
:total="pageForm.totalCount"
@current-change="pageNumberChange"
@size-change="pageSizeChange"
layout="total, sizes, prev, pager, next">
</el-pagination>
</el-row>
</el-card>
</div>
</transition>
<el-dialog :close-on-click-modal="false" :visible.sync="viewDialogSh" custom-class="ViewDialogClass"
top="3%" width="60%">
<el-form label-position="right" label-width="120px" style="padding: 20px 0">
<vi-title title="个人信息"></vi-title>
<el-row gutter="20">
<el-col :span="8">
<el-form-item label="工号:">
{{ viewData.loginname }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="姓名:">
{{ viewData.username }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职务:">
{{ viewData.zw }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="人员类型:">
{{ viewData.rsbz }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性别:">
{{ viewData.sex }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="年龄:">
{{ viewData.age }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所在单位:">
{{ viewData.unitname }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="手机号:">
{{ viewData.mobile }}
</el-form-item>
</el-col>
</el-row>
<vi-title title="曾获荣誉"></vi-title>
<el-table :data="viewData.chry" show-header="false" size="mini" style="width: 100%">
<el-table-column align="center" header-align="center" label="获得时间" prop="hdsj"
width="250px">
<template slot-scope="{row}">
<el-date-picker format="yyyy-MM-dd" readonly type="date"
v-model="row.hdsj"></el-date-picker>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="曾获荣誉" prop="shry">
<template slot-scope="{row}">
<el-input readonly v-model="row.shry"></el-input>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="附件" width="120px">
<template slot-scope="{row}">
<div @click="dd3s.download(row.ryfj,row.ryfj)" class="file-down-span">
<i class="el-icon-download"></i>
</div>
<el-image :src="'${AppFileDomain!}'+row.ryfj" @click="dd3s.showpic(row.ryfj)"
fit="cover"
style="width: 100px;height: 100px;box-shadow: 0 0 5px rgb(200,200,200)"
v-if="dd3s.isPic(row.ryfj)">
</el-image>
<el-image src="***"
style="width: 100px;height: 100px;box-shadow: 0 0 5px rgb(200,200,200)"
v-else>
<div class="image-slot" slot="error"
style="width: 100%;height: 100%; display:flex;align-items: center;text-align: center">
<span style="font-size: 12px;color: rgb(180,180,180);width: 100%;text-align: center;overflow: hidden;padding: 0 10px;
text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical">{{row.ryfj}}</span>
</div>
</el-image>
</template>
</el-table-column>
</el-table>
<template v-if="viewData.files&&viewData.files.length">
<vi-title title="身份证复印件"></vi-title>
<div style="text-align: left;">
<div style="display: inline-block;width: 100px;margin-right:10px"
v-for="item in viewData.files">
<div @click="dd3s.download(item.filepath,item.filename)" class="file-down-span">
<i class="el-icon-download"></i>
</div>
<el-image :src="'${AppFileDomain!}'+item.filepath" @click="dd3s.showpic(item.filepath)"
fit="cover"
style="width: 100px;height: 100px;box-shadow: 0 0 5px rgb(200,200,200)"
v-if="dd3s.isPic(item.filepath)">
</el-image>
<el-image src="***"
style="width: 100px;height: 100px;box-shadow: 0 0 5px rgb(200,200,200)"
v-else>
<div class="image-slot" slot="error"
style="width: 100%;height: 100%; display:flex;align-items: center;text-align: center">
<span style="font-size: 12px;color: rgb(180,180,180);width: 100%;text-align: center;overflow: hidden;padding: 0 10px;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical">{{item.filename}}</span>
</div>
</el-image>
</div>
</div>
</template>
</el-form>
<span class="dialog-footer" slot="footer" v-if="this.viewData.num==2">
<el-button @click="grsh(4)" plain type="danger">不通过</el-button>
<el-button @click="grsh(5)" plain type="success">通 过</el-button>
</span>
</el-dialog>
</el-row>
</div>
<script>
const vue = new Vue({
el: '#app',
data() {
return {
tabKey: new Date().getTime(),
viewData: [],
lxyHd: [],
unions: [],
userOptions: [],
multipleSelection: [],
multipleSelectionGh: [],
viewDialogSh: false,
loading: false,
tabLoading: false,
userLoading: false,
showGh: true,
formData: {},
tableData: [],
bmTableData: [],
ghTableData: [],
pageForm: {
searchName: "name",
searchKeyword: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: "",
ghid: '',
hdid: ''
},
ghPageForm: {
isAudit: 1,
year: new Date().getFullYear() + "",
searchName: "un.unionname",
searchKeyword: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: "",
hdid: ""
},
}
},
methods: {
//查看审核人员
openSh(row) {
this.pageForm.pageNumber = 1
this.pageForm.hdid = row.hdid
this.pageForm.ghid = row.ghid
this.showGh = false
//已通过的不可勾选
this.$nextTick(() => {
this.toggleSelection()
})
this.refresh(this.pageForm.ghid, this.pageForm.hdid)
},
refresh(ghid, hdid) {
const param = {ghId: ghid, hdId: hdid, ...this.pageForm}
$.post(base + '/platform/zgfw/lxy/xghsh/findBm', param).then(res => {
if (res.code === 0) {
this.bmTableData = res.data.list
this.pageForm.totalCount = res.data.totalCount
}
})
// $.post(base + "/platform/zgfw/lxy/xghsh/findBm", param, (data) => {
// sublime.closeLoadingbar();
// this.tabLoading = false
// if (data.code == 0) {
// this.bmTableData = data.data;
// } else {
// this.$message({
// message: data.msg,
// type: 'error'
// });
// }
// }, "json");
},
checkboxT(row) {
if ([4, 5].includes(row.bmzt)) {
return false;
} else {
return true;
}
},
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data, 1)
} else if (type == 'Review') {
this.openView(data, 2)
} else if (type == 'delete') {
this.doDelete(data)
}
},
async doDelete(row) {
const confirm = await this.$confirm('确定要删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm === "confirm") {
const data = await $.get(base + "/platform/zgfw/lxy/xghsh/doDelete", {
id: row.id,
unionid: row.ghid,
hdid: row.hdid,
userid: row.uid
})
if (data.code == 0) {
this.$message({
message: '提交成功',
type: 'success'
});
await this.openSh(row)
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
}
},
async getLxyBmInfo(id) {
const {data} = await $.get(base + "/platform/zgfw/lxy/fghsh/getBmInfo", {id})
return data
},
async openView(row, num) {
this.viewData = await this.getLxyBmInfo(row.id)
this.viewData.num = num
this.pageForm.hdid = row.hdid
this.pageForm.uid = row.uid
this.viewData.unitname = row.unitname
this.viewDialogSh = true
},
yjTg() {
if (this.multipleSelectionGh.length == 0) {
this.$message({
message: '请选择工会!',
type: 'warning'
});
return
}
//从勾选的工会里面筛选出待审核数等于0的工会
const dshSelection = this.multipleSelectionGh.filter(v => v.dsh === 0)
if (dshSelection.length > 0) {
dshSelection.map(v => v.unionname)
this.$message.warning(dshSelection.map(v => v.unionname) + '的待审核人员数量为0!')
return
}
const loading = this.$loading({
lock: true,
text: '数据提交中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
let arr = []
this.multipleSelectionGh.map(v => {
if (v.dsh > 0) {
arr.push({ghid: v.ghid, hdid: v.hdid})
}
})
$.post(base + "/platform/zgfw/lxy/xghsh/yjSh", {maps: JSON.stringify(arr)}, (data) => {
loading.close()
if (data.code == 0) {
this.$message({
message: '提交成功',
type: 'success'
});
this.toggleSelectionGh()
this.openShGh({id: this.ghPageForm.hdid});
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
async sh(zt) {
if (this.multipleSelection.length == 0) {
this.$message({
message: '请选择人员!',
type: 'warning'
});
return
}
const confirm = await this.$confirm('确定要批量审核吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm === "confirm") {
const loading = this.$loading({
lock: true,
text: '数据提交中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
let arr = []
this.multipleSelection.map(v => {
arr.push(v.uid)
})
$.post(base + "/platform/zgfw/lxy/xghsh/sh", {
hdid: this.pageForm.hdid,
ghid: this.pageForm.ghid,
bmzt: zt,
users: JSON.stringify(arr)
}, (data) => {
loading.close()
if (data.code == 0) {
this.$message({
message: '提交成功',
type: 'success'
});
this.viewDialogSh = false
this.pageData()
this.toggleSelection()
this.refresh(this.pageForm.ghid, this.pageForm.hdid)
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
}
},
grsh(zt) {
const loading = this.$loading({
lock: true,
text: '数据提交中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
$.post(base + "/platform/zgfw/lxy/xghsh/grsh", {
hdid: this.pageForm.hdid,
ghid: this.pageForm.ghid,
userid: this.viewData.userid,
bmzt: zt,
}, (data) => {
loading.close()
if (data.code == 0) {
this.$message({
message: '提交成功',
type: 'success'
});
this.viewDialogSh = false
this.pageData()
this.toggleSelection()
this.refresh(this.pageForm.ghid, this.pageForm.hdid)
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
toggleSelection(rows) {
console.log(rows)
if (rows) {
rows.forEach(row => {
this.$refs.multipleTableRy.toggleRowSelection(row);
});
} else {
this.$refs.multipleTableRy.clearSelection();
}
},
toggleSelectionGh(rows) {
if (rows) {
rows.forEach(row => {
this.$refs.multipleTableGh.toggleRowSelection(row);
});
} else {
this.$refs.multipleTableGh.clearSelection();
}
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
handleSelectionChangeGh(val) {
this.multipleSelectionGh = val;
},
async userRemoteMethod(query) {
if (query) {
this.userLoading = true
const arr = await searchUser(query)
this.userOptions = this.userOptions.filter(v => {
return v.id == this.formData.hdfzr
}).concat(arr.filter(v => {
return v.id != this.formData.hdfzr
}));
this.userLoading = false
}
},
doSearch() {
this.tabKey = new Date().getTime()
this.pageForm.pageNumber = 1
this.pageData()
},
doSearchGh() {
this.tabKey = new Date().getTime()
this.ghPageForm.pageNumber = 1
this.openShGh({id: this.ghPageForm.hdid});
},
pageOrder(column) {//按字段排序
this.pageForm.pageOrderName = column.prop;
this.pageForm.pageOrderBy = column.order;
this.pageData();
},
pageNumberChange(val) {//页码更新操作
this.pageForm.pageNumber = val;
//this.pageData();
this.refresh(this.pageForm.ghid, this.pageForm.hdid)
},
pageSizeChange(val) {//分页大小更新操作
this.pageForm.pageSize = val;
this.refresh(this.pageForm.ghid, this.pageForm.hdid)
},
ghPageOrder(column) {//按字段排序
this.ghPageForm.pageOrderName = column.prop;
this.ghPageForm.pageOrderBy = column.order;
this.openShGh({id: this.ghPageForm.hdid});
},
ghPageNumberChange(val) {//页码更新操作
this.ghPageForm.pageNumber = val;
this.openShGh({id: this.ghPageForm.hdid});
},
ghPageSizeChange(val) {//分页大小更新操作
this.ghPageForm.pageSize = val;
this.openShGh({id: this.ghPageForm.hdid});
},
openShGh(row) {
this.ghPageForm.hdid = row.id
$.post(base + "/platform/zgfw/lxy/xghsh/pageData", this.ghPageForm, (data) => {
sublime.closeLoadingbar();
this.tabLoading = false
if (data.code == 0) {
this.ghTableData = data.data.list;
this.ghPageForm.totalCount = data.data.totalCount;
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
pageData() {
sublime.showLoadingbar();
this.tabLoading = true
$.post(base + "/platform/zgfw/lxy/xghsh/pageData", this.ghPageForm, (data) => {
sublime.closeLoadingbar();
this.tabLoading = false
if (data.code == 0) {
this.ghTableData = data.data.list;
this.ghPageForm.totalCount = data.data.totalCount;
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
},
},
async created() {
this.unions = await getUnions()
this.lxyHd = await getNowLxyHd()
this.ghPageForm.hdid = this.lxyHd[0].id
this.pageData();
}
})
</script>
<!--#layout("/platform/zgfw/lxy/dialogView.html"){}#-->
<!--#
}
#-->