This commit is contained in:
Paidax
2024-07-26 10:26:18 +08:00
parent a82c0f6f1a
commit fc673e5e4e
7 changed files with 532 additions and 419 deletions
@@ -59,7 +59,7 @@ layout("/layouts/platform.html"){
<div class="search-item"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}">
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId"
@@ -188,7 +188,7 @@ layout("/layouts/platform.html"){
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
@@ -5,18 +5,6 @@ layout("/layouts/platform.html"){
<guava ref="guava">
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">年度:</div>
<div class="search-item-option">
<el-date-picker
style="width: 100%"
v-model="pageForm.year"
type="year"
value-format="yyyy"
placeholder="选择年度">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">任务:</div>
<div class="search-item-option">
@@ -29,7 +17,7 @@ layout("/layouts/platform.html"){
</div>
<div class="search-item"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}">
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId"
@@ -43,21 +31,9 @@ layout("/layouts/platform.html"){
</div>
</div>
<!-- <div class="search-item">
<div class="search-item-label">所属单位:</div>
<div class="search-item-option">
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
clearable="true"
filterable="true">
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
</div>-->
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
</div>
</div>
</el-card>
@@ -74,67 +50,6 @@ layout("/layouts/platform.html"){
@expand-change="tableColumnExpandChange"
v-loading="tableLoading" :size="tableSize" class="vi-table">
<el-table-column type="expand">
<template slot-scope="{row}">
<el-table :data="row.checkUsers" style="width: 100%">
<el-table-column label="姓名" prop="userName"
header-align="center"></el-table-column>
<el-table-column label="工号" prop="loginName"
header-align="center"></el-table-column>
<el-table-column label="所属单位" prop="unitname"
header-align="center">
<template scope="{row}">
{{row.unitname}}<span v-if="row.newUnitName">→{{row.newUnitName}}</span>
</template>
</el-table-column>
<el-table-column label="所在科室" prop="threeUnitName"
header-align="center">
<template scope="{row}">
{{row.threeUnitName}}<span
v-if="row.newThreeUnitName">→{{row.newThreeUnitName}}</span>
</template>
</el-table-column>
<el-table-column label="异动信息" header-align="center">
<el-table-column label="更新时间" prop="changeTime" min-width="145px"
header-align="center"
sortable
align="center" show-overflow-tooltip>
</el-table-column>
<el-table-column label="异动类型" prop="changeType"
header-align="center"
align="center" show-overflow-tooltip sortable>
<template scope="{row}">
<span style="color: #0e78c5">{{changeType[row.changeType]}}</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="会员" header-align="center" align="center"
prop="member"
show-overflow-tooltip sortable>
<template scope="{row}">
<span v-if="row.member==1" class="text-success ">
<i class="fa fa-circle ml5"></i> 是
</span>
<span v-else class="text-danger">
<i class="fa fa-circle ml5"></i> 否
</span>
</template>
</el-table-column>
<el-table-column label="操作" width="100px" header-align="center">
<template scope="{row:expandRow}">
<el-button size="mini" type="primary"
@click="openAudit(expandRow,true,row)">
审核
</el-button>
</template>
</el-table-column>
</el-table>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" type="index"
:index="indexMethod" label="序号"
width="80px"></el-table-column>
@@ -162,14 +77,14 @@ layout("/layouts/platform.html"){
</el-table-column>
<!--<el-table-column header-align="center" label="操作" width="200px">
<el-table-column header-align="center" label="操作" width="200px">
<template scope="{row}">
<el-button size="mini" type="primary" @click="openCheck(row)"
:disabled="!(row.apply||row.reApply)">
:disabled="!row.isFinish">
核对
</el-button>
</template>
</el-table-column>-->
</el-table-column>
</el-table>
</el-card>
@@ -184,7 +99,7 @@ layout("/layouts/platform.html"){
<mem-change-records :userid="info.userId"></mem-change-records>
</el-tab-pane>
<el-tab-pane label="院级工会审核" name="union">
<el-tab-pane label="分工会审核" name="union">
<el-form :model="formData" ref="form" :rules="formRules"
label-width="120px" label-suffix=":">
@@ -327,21 +242,6 @@ layout("/layouts/platform.html"){
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="新科室">
<el-select v-model="info.currentThreeUnitId"
style="width: 100%" filterable
clearable
placeholder="请选择单位">
<el-option
v-for="item in threeUnits"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</template>
@@ -406,11 +306,10 @@ layout("/layouts/platform.html"){
</el-tab-pane>
</el-tabs>
</template>
</guava>
<el-drawer
title="小组核对情况"
title="分工会核对情况"
:visible.sync="groupUnionDrawer"
direction="rtl" :size="'50%'">
<el-table :data="unionGroupData">
@@ -427,23 +326,117 @@ layout("/layouts/platform.html"){
<el-table-column prop="isFinish" label="是否核对">
<template scope="{row}">
<el-tag type="danger" v-if="!row.isFinish">未核对</el-tag>
<el-tag v-else type="success">已核对</el-tag>
</template>
</el-table-column>
</el-table>
</el-drawer>
<user-change-history ref="userChangeHistory">
<el-form class="demo-table-expand" :model="formData" ref="form"
:rules="formRules"
label-width="120px" label-suffix=":">
<div class="el-descriptions__header mt10">
<div class="el-descriptions__title">校工会审核</div>
<div class="el-descriptions__extra"></div>
</div>
<el-row gutter="20">
<el-col :span="12">
<el-form-item prop="username" label="审核人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="auditTime" label="审核时间">
<el-input v-model="formData.auditTime" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="opinion" label="审核意见">
<el-input type="textarea" v-model="formData.auditOpinion" rows="4"
maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
<el-row type="flex" justify="end">
<el-button @click="doAudit(false)" :loading="submitLoading">拒
绝
</el-button>
<el-button type="primary" @click="doAudit(true)"
:loading="submitLoading">通
过
</el-button>
</el-row>
</el-form>
</user-change-history>
<el-dialog title="异动人员确认" width="60%" :visible.sync="confirmDialog">
<el-table :data="changeUsers">
<el-table-column label="序号" type="index"
header-align="center"></el-table-column>
<el-table-column label="姓名" prop="userName"
header-align="center"></el-table-column>
<el-table-column label="工号" prop="loginName"
header-align="center"></el-table-column>
<el-table-column label="所属单位" prop="unitname"
header-align="center">
<template scope="{row}">
{{row.unitname}}
</template>
</el-table-column>
<el-table-column label="异动信息" header-align="center">
<el-table-column label="更新时间" prop="changeTime" min-width="145px"
header-align="center"
sortable
align="center" show-overflow-tooltip>
</el-table-column>
<el-table-column label="异动类型" prop="changeTypes" header-align="center"
align="center" show-overflow-tooltip sortable>
<template scope="{row}">
<span style="color: #0e78c5;cursor: pointer"
@click="openUserChangeInfo(row)">
{{getChangeTypes(row.changeTypes)}}
</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="会员" header-align="center" align="center"
prop="member"
show-overflow-tooltip sortable>
<template scope="{row}">
<span v-if="row.member==1" class="text-success ">
<i class="fa fa-circle ml5"></i> 是
</span>
<span v-else class="text-danger">
<i class="fa fa-circle ml5"></i> 否
</span>
</template>
</el-table-column>
<el-table-column label="操作" width="100px" header-align="center">
<template scope="{row}">
<el-button size="mini" type="primary"
@click="openAudit(row)">
审核
</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
components: {
'member': httpVueLoader('/components/member/MemberInfo.vue?v=1.0.3'),
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.0'),
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=1.0.2'),
'member': httpVueLoader('/components/member/MemberInfo.vue?v=' + new Date().getTime()),
'mem-change-records': httpVueLoader('/components/member/MemChangeRecords.vue?v=' + new Date().getTime()),
'user-change-history': httpVueLoader('/components/userChangeHistory/userChangeHistory.vue?v=' + new Date().getTime()),
},
data() {
return {
@@ -452,12 +445,10 @@ layout("/layouts/platform.html"){
unions: [],
units: [],
tableColumns: [
{prop: 'unioncode', label: '编号', sortable: true},
{prop: 'unionname', label: '分工会名称', sortable: true},
{prop: 'memberNum', label: '会员人数', sortable: true},
{prop: 'unionGroup', label: '小组核对情况', sortable: true},
// {prop: 'isFinish', label: '是否核对完成', sortable: true},
{prop: 'notCheckNum', label: '待核对人数', sortable: true},
{prop: 'isFinish', label: '分工会是否核对完成', sortable: true},
{prop: 'notCheckNum', label: '异动人数', sortable: true},
],
pageForm: {
year: new Date().getFullYear() + ''
@@ -471,9 +462,78 @@ layout("/layouts/platform.html"){
formData: {},
unitOptions: [],
currentTableRow: {},
changeUsers: [],
confirmDialog: false,
currentUnionId: null
}
},
methods: {
async openUserChangeInfo({hisId}) {
this.$refs.userChangeHistory.openUserChangeInfo(hisId)
},
async openCheck(row) {
const taskId = this.pageForm.taskId
const unionId = row.id
this.currentUnionId = row.id
const resp = await $.post(loc() + '/getNotCheckUsers', {taskId, unionId})
if (resp.code === 0) {
this.confirmDialog = true
this.changeUsers = resp.data
}
},
openAudit({hisId, id}) {
this.$refs.userChangeHistory.openUserChangeInfo(hisId)
this.$refs.userChangeHistory.slot = true
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
this.formData = {
recordId: id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
}
},
async doAudit(pass) {
this.formData.auditPass = pass
this.submitLoading = true
const resp = await $.post("/platform/member/change/audit/doAudit", this.formData)
this.submitLoading = false
if (resp.code === 0) {
this.$message.success(resp.msg)
this.$refs.userChangeHistory.changeInfoDialog = false
this.openCheck({id: this.currentUnionId})
this.pageData()
} else {
this.$message.warning(resp.msg)
}
},
getChangeTypes(changeTypes) {
if (changeTypes) {
const c = JSON.parse(changeTypes)
return c.map(v => {
return this.changeType[v]
}).join(',')
}
return null
},
async afterEdit(memData) {
if (!this.userId) {
await $.post(" /platform/member/info/make/joinMemberFamily", memData)
}
this.userId = ''
this.pageData()
this.$refs.guava.index()
},
async openGroupUnionDrawer(row) {
const {data} = await $.post(loc() + "/unionGroupData", {
unionId: row.id,
@@ -511,10 +571,7 @@ layout("/layouts/platform.html"){
return sums;
},
openCheck(row) {
this.userId = row.id
this.$refs.guava.edit()
},
async getMemberCheckTaskOptions() {
const resp = await $.get('/platform/member/check/task/getAllTask')
this.memberCheckTaskOptions = resp.data
@@ -524,7 +581,7 @@ layout("/layouts/platform.html"){
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
@@ -549,6 +606,7 @@ layout("/layouts/platform.html"){
}
},
async tableColumnExpandChange(row, expandedRows) {
this.currentTableRow = row
if (expandedRows.length) {
const {taskId} = this.pageForm
const {id: unionId} = row
@@ -558,56 +616,7 @@ layout("/layouts/platform.html"){
}
}
},
async openAudit(expandRow, audit, row) {
/* if (!row.isFinish) {
this.notifyWarning('待院工会完成核对后才可审核')
return
}*/
const resp = await $.get("/platform/member/common/findChangeApplyInfo", {id: expandRow.id})
if (resp.code === 0) {
const data = resp.data
data.audit = audit
data.currentUnionName = data.currentUnion ? data.currentUnion.unionname : null
this.info = data
if (audit) {
this.active = 'school'
} else {
this.active = 'info'
}
await this.unitChange(data.currentUnitId)
this.$refs.guava.edit()
if (this.$refs['form']) {
this.$refs['form'].resetFields()
}
this.formData = {
recordId: expandRow.id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
}
} else {
this.info = {}
this.notifyWarning(resp.msg)
}
},
async doAudit(pass) {
this.formData.currentUnitId = this.info.currentUnitId
this.formData.currentUnionId = this.info.currentUnionId
this.formData.currentThreeUnitId = this.info.currentThreeUnitId
this.formData.auditPass = pass
this.submitLoading = true
const resp = await $.post("/platform/member/change/audit/doAudit", this.formData)
this.submitLoading = false
if (resp.code === 0) {
//更新用户信息
this.info.userId = null
this.pageData()
this.$refs.guava.index()
} else {
this.notifyWarning(resp.msg)
}
},
async unitChange(v) {
const unit = this.unitOptions.find(x => x.id === v)
if (unit) {
@@ -639,4 +648,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
#-->
@@ -75,7 +75,7 @@ layout("/layouts/platform.html"){
<el-date-picker
v-model="formData.startTime"
type="datetime"
value-format="yyyy-MM-dd"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择开始时间">
</el-date-picker>
</el-form-item>
@@ -83,13 +83,13 @@ layout("/layouts/platform.html"){
<el-date-picker
v-model="formData.endTime"
type="datetime"
value-format="yyyy-MM-dd"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择结束时间">
</el-date-picker>
</el-form-item>
<el-form-item prop="createTaskMode" label="核对模式">
<el-radio-group v-model="formData.createTaskMode">
<el-radio-button :label="1">工会小组核对</el-radio-button>
<el-radio-button :label="1">分工会核对</el-radio-button>
<el-radio-button :label="2">个人核对</el-radio-button>
</el-radio-group>
</el-form-item>
@@ -191,4 +191,4 @@ layout("/layouts/platform.html"){
<!--#
}
#-->
#-->
@@ -5,18 +5,18 @@ layout("/layouts/platform.html"){
<guava ref="guava">
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">年度:</div>
<div class="search-item-option">
<el-date-picker
style="width: 100%"
v-model="pageForm.year"
type="year"
value-format="yyyy"
placeholder="选择年度">
</el-date-picker>
</div>
</div>
<!-- <div class="search-item">-->
<!-- <div class="search-item-label">年度:</div>-->
<!-- <div class="search-item-option">-->
<!-- <el-date-picker-->
<!-- style="width: 100%"-->
<!-- v-model="pageForm.year"-->
<!-- type="year"-->
<!-- value-format="yyyy"-->
<!-- placeholder="选择年度">-->
<!-- </el-date-picker>-->
<!-- </div>-->
<!-- </div>-->
<div class="search-item">
<div class="search-item-label">任务:</div>
<div class="search-item-option">
@@ -45,7 +45,7 @@ layout("/layouts/platform.html"){
</div>
<div class="search-item"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}">
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}">
<div class="search-item-label">所属工会:</div>
<div class="search-item-option">
<el-select placeholder="所属工会" v-model="pageForm.unionId"
@@ -60,7 +60,7 @@ layout("/layouts/platform.html"){
</div>
<div class="search-item"
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}">
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}">
<div class="search-item-label">组成单位:</div>
<div class="search-item-option">
<el-select placeholder="组成单位" v-model="pageForm.unitId" style="width: 100%;"
@@ -73,41 +73,55 @@ layout("/layouts/platform.html"){
</div>
</div>
<template v-if="isThreeUnit">
<div class="search-item">
<div class="search-item-label">工会小组:</div>
<div class="search-item-option">
<el-select v-model="pageForm.unionGroupId" style="width: 100%"
filterable
clearable
@change="getThreeUnits"
placeholder="请选择">
<el-option
v-for="item in unionGroups"
:key="item.id"
:label="item.groupName"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="search-item">
<div class="search-item-label">性&emsp;&emsp;别:</div>
<div class="search-item-option">
<el-select v-model="pageForm.sex" style="width: 100%" clearable
placeholder="请选择">
<el-option v-for="sex in sexOptions" :label="sex"
:value="sex"></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.threeUnitId" style="width: 100%" filterable
clearable
placeholder="请选择">
<el-option
v-for="item in threeUnits"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="search-item">
<div class="search-item-label">在职状态:</div>
<div class="search-item-option">
<dict-select v-model="pageForm.userStates"
style="width: 100%"
multiple
clearable
placeholder="在职状态"
code="userState"></dict-select>
</div>
</template>
</div>
<div class="search-item">
<div class="search-item-label">人员类型:</div>
<div class="search-item-option">
<dict-select v-model="pageForm.personTypes"
style="width: 100%"
multiple
clearable
placeholder="人员类型"
code="UserType"></dict-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">变更类型:</div>
<div class="search-item-option">
<enum-select v-model="pageForm.changeTypes"
enum="UserChangeType"
label="description"
multiple
value="code"
style="width: 100%"
clearable
placeholder="变更类型"
></enum-select>
</div>
</div>
<div class="search-query">
<el-button type="primary" icon="el-icon-search"
@@ -121,11 +135,11 @@ layout("/layouts/platform.html"){
<el-card shadow="never" class="mt10">
<table-tool label="人员列表" :app="this">
<template #func>
<!-- <span class="text-danger">人员信息是否异动:</span>-->
<el-select v-model="pageForm.isMember" @change="doSearch()"
<!-- <span class="text-danger">人员信息是否异动:</span>-->
<el-select v-model="pageForm.isMember" @change="doSearch();getNumData()"
:clearable="false" size="small"
style="width: 200px;margin-right: 5px">
<el-option label="全部会员" value=""></el-option>
<el-option label="全部" value=""></el-option>
<el-option label="是会员" value="1"></el-option>
<el-option label="不是会员" value="0"></el-option>
</el-select>
@@ -137,28 +151,28 @@ layout("/layouts/platform.html"){
<el-radio-button :label="0">无变化({{numData.notChangeNum}})</el-radio-button>
</el-radio-group>
<!-- <span class="text-danger">是否会员:</span>
<el-radio-group v-model="pageForm.isMember" @change="doSearch" class="mr5"
size="small">
<el-radio-button label="">全部({{numData.userSumNum}})</el-radio-button>
<el-radio-button label="1">是({{numData.memberNum}})</el-radio-button>
<el-radio-button label="0">否({{numData.notMemberNum}})</el-radio-button>
</el-radio-group>
-->
<!-- <span class="text-danger">是否会员:</span>
<el-radio-group v-model="pageForm.isMember" @change="doSearch" class="mr5"
size="small">
<el-radio-button label="">全部({{numData.userSumNum}})</el-radio-button>
<el-radio-button label="1">是({{numData.memberNum}})</el-radio-button>
<el-radio-button label="0">否({{numData.notMemberNum}})</el-radio-button>
</el-radio-group>
-->
<!-- <span v-if="!allowOperationTask" class="text-danger mr10">
该任务不在核对时间内,无法操作
</span>-->
<el-dropdown style="margin: 0 10px" @command="pushDropdownCommand">
<el-button type="primary" size="small" icon="el-icon-plus">
添加
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="{type:'select'}">选择加入
</el-dropdown-item>
<el-dropdown-item :command="{type:'add'}">新增用户
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!-- <el-dropdown style="margin: 0 10px" @command="pushDropdownCommand">-->
<!-- <el-button type="primary" size="small" icon="el-icon-plus">-->
<!-- 添加-->
<!-- </el-button>-->
<!-- <el-dropdown-menu slot="dropdown">-->
<!-- <el-dropdown-item :command="{type:'select'}">选择加入-->
<!-- </el-dropdown-item>-->
<!-- <el-dropdown-item :command="{type:'add'}">新增用户-->
<!-- </el-dropdown-item>-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
<el-button icon="el-icon-success" size="small" type="primary"
@click="submitCheck"
@@ -176,11 +190,11 @@ layout("/layouts/platform.html"){
size="small" @click="doExportByUnion">导出
</el-button>
<el-button :disabled="!checkUsers.length" type="primary" size="small"
icon="el-icon-edit"
@click="openUnitMove" class="ml5">
单位调整
</el-button>
<!-- <el-button :disabled="!checkUsers.length" type="primary" size="small"-->
<!-- icon="el-icon-edit"-->
<!-- @click="openUnitMove" class="ml5">-->
<!-- 单位调整-->
<!-- </el-button>-->
</template>
</table-tool>
@@ -189,7 +203,7 @@ layout("/layouts/platform.html"){
v-loading="tableLoading" :size="tableSize" class="vi-table" ref="table"
@selection-change="tableHandleSelectionChange">
<el-table-column type="selection" :reserve-selection="true"></el-table-column>
<!-- <el-table-column type="selection" :reserve-selection="true"></el-table-column>-->
<el-table-column align="center" header-align="center" type="index"
:index="indexMethod" label="序号"
@@ -211,10 +225,12 @@ layout("/layouts/platform.html"){
header-align="center" sortable
align="center" show-overflow-tooltip>
</el-table-column>
<el-table-column label="异动类型" prop="changeType" header-align="center"
<el-table-column label="异动类型" prop="changeTypes" header-align="center"
align="center" show-overflow-tooltip sortable>
<template scope="{row}">
<span style="color: #0e78c5">{{changeType[row.changeType]}}</span>
<span style="color: #0e78c5;cursor: pointer" @click="openUserChangeInfo(row)">
{{getChangeTypes(row.changeTypes)}}
</span>
</template>
</el-table-column>
</el-table-column>
@@ -254,114 +270,18 @@ layout("/layouts/platform.html"){
</el-card>
<template #edit>
<mem-change-apply ref="apply" :userid="userId" @submit="doSubmitChangeUser"
:welfare_member="true"
<mem-change-apply ref="apply" :userid="userId"
@submit="doSubmitChangeUser"
change_mode="check"></mem-change-apply>
</template>
<template #public>
<member ref="member" :id="userId" @save="afterEdit"></member>
</template>
<user-change-history ref="userChangeHistory"></user-change-history>
</guava>
<el-drawer
title="单位调整"
:visible.sync="unitMoveVisibile"
:before-close="handleClose" size="70%">
<el-row class="text-primary p20">
选择新单位
</el-row>
<el-row type="flex" :gutter="20" class="pl20 pr20">
<el-col :span="12">
<el-select placeholder="请选择新工会" v-model="unitMoveFormData.unionId"
style="width: 100%;"
clearable="true"
@change="moveUnionsChange"
filterable="true">
<el-option v-for="item in unitMoveUnions" :label="item.unionname"
:value="item.id"></el-option>
</el-select>
</el-col>
<el-col :span="12">
<el-select v-model="unitMoveFormData.unitId" style="width: 100%" filterable
clearable
@change="moveUnitChange"
placeholder="请选择新单位">
<el-option
v-for="item in unitMoveUnits"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="12">
<el-select v-model="unitMoveFormData.threeUnitId" clearable filterable
placeholder="请选择新科室"
style="width: 100%" @change="threeUnitChange">
<el-option
v-for="item in threeUnits"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="12">
<el-input :value="unitMoveFormData.unionGroupName" disabled
placeholder="新工会小组"></el-input>
</el-col>
</el-row>
<el-row class="mt10">
<el-table :data="checkUsers" style="width: 100%;padding: 20px" class="vi-table"
border
height="70vh">
<el-table-column show-overflow-tooltip align="center" header-align="center"
prop="loginname"
width="120"
label="工号"></el-table-column>
<el-table-column show-overflow-tooltip align="center" header-align="center"
prop="username"
width="120"
label="姓名"></el-table-column>
<el-table-column show-overflow-tooltip align="center" header-align="center"
prop="threeUnitName"
label="当前科室"></el-table-column>
<el-table-column show-overflow-tooltip align="center" header-align="center"
prop="unitname"
label="当前单位"></el-table-column>
<el-table-column show-overflow-tooltip align="center" header-align="center"
prop="unionname"
label="当前工会"></el-table-column>
<el-table-column show-overflow-tooltip align="center" header-align="center"
label="新科室">
<template slot-scope="{row}">
<span>{{unitMoveFormData.threeUnitName}}</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" header-align="center"
label="新单位">
<template slot-scope="{row}">
<span>{{unitMoveFormData.unitName}}</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" header-align="center"
label="新分工会">
<template slot-scope="{row}">
<span>{{unitMoveFormData.unionName}}</span>
</template>
</el-table-column>
</el-table>
</el-row>
<span style="position: absolute;bottom: 20px;right: 20px">
<el-button @click="unitMoveVisibile = false">取 消</el-button>
<el-button type="primary" @click="doUnitMove">确定</el-button>
</span>
</el-drawer>
<el-drawer
title="添加会员"
@@ -380,6 +300,7 @@ layout("/layouts/platform.html"){
</span>
</el-drawer>
<user-change-history ref="userChangeHistory"></user-change-history>
</div>
<script>
@@ -387,8 +308,9 @@ layout("/layouts/platform.html"){
el: '#app',
mixins: [initTableMixins],
components: {
'mem-change-apply': httpVueLoader('/components/member/MemChangeApply.vue?v=1.0.2'),
'member-user-select': httpVueLoader('/components/plugins/MemberUserTableSelect.vue?v=1.0.0'),
'mem-change-apply': httpVueLoader('/components/member/MemChangeApply.vue?v=' + new Date().getTime()),
'member-user-select': httpVueLoader('/components/plugins/MemberUserTableSelect.vue?v=' + new Date().getTime()),
'user-change-history': httpVueLoader('/components/userChangeHistory/userChangeHistory.vue?v=' + new Date().getTime()),
},
computed: {
allowOperationTask() {
@@ -420,10 +342,10 @@ layout("/layouts/platform.html"){
{prop: 'userState', label: '在职状态', sortable: true},
{prop: 'unionname', label: '所属工会', sortable: true},
{prop: 'unitname', label: '所属单位', sortable: true},
{prop: 'threeUnitName', label: '所在科室', sortable: true, checked: 0},
{prop: 'unionGroupName', label: '工会小组', sortable: true, checked: 0},
// {prop: 'threeUnitName', label: '所在科室', sortable: true},
// {prop: 'unionGroupName', label: '工会小组', sortable: true},
],
isThreeUnit:null,
pageForm: {
year: new Date().getFullYear() + '',
searchName: 'username',
@@ -432,7 +354,14 @@ layout("/layouts/platform.html"){
unionId: '',
unitId: '',
unionGroupId: '',
changeTypes: [],
personTypes: [],
changeOrigins: []
},
sexOptions: ['男', '女'],
memberCheckTaskOptions: [],
changeType: {},
userId: null,
@@ -460,6 +389,18 @@ layout("/layouts/platform.html"){
}
},
methods: {
async openUserChangeInfo({hisId, changeTypes}) {
this.$refs.userChangeHistory.openUserChangeInfo(hisId, changeTypes)
},
getChangeTypes(changeTypes) {
if (changeTypes) {
const c = JSON.parse(changeTypes)
return c.map(v => {
return this.changeType[v]
}).join(',')
}
return null
},
doExportByUnion() {
let props = {}
this.tableColumns.forEach(v => {
@@ -623,17 +564,17 @@ layout("/layouts/platform.html"){
* @returns {Promise<void>}
*/
async doSubmitChangeUser(formData) {
console.log(formData)
formData.taskId = this.pageForm.taskId
const resp = await $.post(loc() + '/doSubmitChangeUser', formData)
this.$refs.apply.closeLoading()
if (resp.code === 0) {
this.$message.success(resp.msg)
this.userId = null
this.$refs.guava.index()
this.pageData()
this.getNumData()
} else {
this.notifyWarning(resp.msg)
this.$message.warning(resp.msg)
}
},
@@ -641,8 +582,8 @@ layout("/layouts/platform.html"){
* 提交核对
*/
async submitCheck() {
if (!this.pageForm.unionGroupId) {
this.notifyWarning("请选择需要核对的工会小组!")
if (!this.pageForm.unionId) {
this.notifyWarning("请选择需要核对的分工会!")
return
}
const confirm = await this.$confirm('此操作会提交至校工会确认,请确认核对完成了吗?', '提示', {
@@ -671,7 +612,7 @@ layout("/layouts/platform.html"){
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') {
this.units = await getUnits(this.pageForm.unionId)
} else {
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
@@ -696,8 +637,8 @@ layout("/layouts/platform.html"){
}
},
async checkAgain() {
if (!this.pageForm.unionGroupId) {
this.notifyWarning("请选择需要重新核对的工会小组!")
if (!this.pageForm.unionId) {
this.notifyWarning("请选择需要重新核对的工会!")
return
}
const confirm = await this.$confirm('您确定要重新核对吗?', '提示', {
@@ -714,28 +655,44 @@ layout("/layouts/platform.html"){
}
},
async getNumData() {
const resp = await $.post(loc() + '/getButtonNum', this.pageForm)
const pageForm = clone(this.pageForm)
pageForm.userStates = JSON.stringify(pageForm.userStates)
pageForm.personTypes = JSON.stringify(pageForm.personTypes)
pageForm.changeTypes = JSON.stringify(pageForm.changeTypes)
pageForm.changeOrigins = JSON.stringify(pageForm.changeOrigins)
const resp = await $.post(loc() + '/getButtonNum', pageForm)
if (resp.code === 0) {
this.numData = resp.data
} else {
this.notifyWarning(resp.msg)
}
}
},
pageData() {
sublime.showLoadingbar();
this.tableLoading = true
const pageForm = clone(this.pageForm)
pageForm.userStates = JSON.stringify(pageForm.userStates)
pageForm.personTypes = JSON.stringify(pageForm.personTypes)
pageForm.changeTypes = JSON.stringify(pageForm.changeTypes)
pageForm.changeOrigins = JSON.stringify(pageForm.changeOrigins)
$.post(loc() + '/pageData', pageForm, (data) => {
sublime.closeLoadingbar();
this.tableLoading = false
if (data.code === 0) {
this.tableData = data.data.list;
this.pageForm.totalCount = data.data.totalCount;
} else {
this.$message.error(data.msg);
}
}, "json");
},
},
async created() {
this.isThreeUnit = await getConfigKey('isThreeUnit') === 'true'
if (this.isThreeUnit) {
this.tableColumns.forEach(v => {
if (["threeUnitName", "unionGroupName"].includes(v.prop)) {
v.checked = 1
}
})
}
await this.getMemberCheckTaskOptions()
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('H03')||@shiro.hasRole('A06')}" === 'false') {
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('H03')||@shiro.hasRole('SchoolUnionMemberAdmin')}" === 'false') {
this.unions = await getUnions(null, true)
this.is_ghxzzz = true
this.$set(this.pageForm, "unionId", this.unions[0].id)