commit
This commit is contained in:
+5
@@ -52,6 +52,11 @@ public class MemberChangeBranchUnionAuditController {
|
|||||||
public void index() {
|
public void index() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@At("/h5")
|
||||||
|
@Ok("beetl:/mobile/member/change/branchUnionAudit/index.html")
|
||||||
|
@RequiresPermissions("member.change.branchUnion.audit")
|
||||||
|
public void h5Index() {
|
||||||
|
}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@RequiresPermissions("member.change.branchUnion.audit")
|
@RequiresPermissions("member.change.branchUnion.audit")
|
||||||
|
|||||||
+5
-1
@@ -46,13 +46,17 @@ public class MemberChangeSchoolUnionAuditController {
|
|||||||
@Inject
|
@Inject
|
||||||
private SysLocalProcessService localProcessService;
|
private SysLocalProcessService localProcessService;
|
||||||
|
|
||||||
|
|
||||||
@At("")
|
@At("")
|
||||||
@Ok("beetl:/platform/member/change/schoolUnionAudit/index.html")
|
@Ok("beetl:/platform/member/change/schoolUnionAudit/index.html")
|
||||||
@RequiresPermissions("member.change.schoolUnion.audit")
|
@RequiresPermissions("member.change.schoolUnion.audit")
|
||||||
public void index() {
|
public void index() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@At("/h5")
|
||||||
|
@Ok("beetl:/mobile/member/change/schoolUnionAudit/index.html")
|
||||||
|
@RequiresPermissions("member.change.schoolUnion.audit")
|
||||||
|
public void h5Index() {
|
||||||
|
}
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@RequiresPermissions("member.change.schoolUnion.audit")
|
@RequiresPermissions("member.change.schoolUnion.audit")
|
||||||
|
|||||||
@@ -0,0 +1,340 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/mobile/platform.html"){
|
||||||
|
#-->
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.van-doc-card {
|
||||||
|
margin: 14px;
|
||||||
|
padding: 12px;
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 10px;
|
||||||
|
box-shadow: 0 8px 12px #ebedf0;
|
||||||
|
line-height: 20px;
|
||||||
|
font-size: 12px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.flex {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
margin-top: 10px;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
.label_content{
|
||||||
|
color: grey;
|
||||||
|
}
|
||||||
|
.title_content {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.van-doc-card .van-button--small {
|
||||||
|
min-width: 60px;
|
||||||
|
height: 26px;
|
||||||
|
padding: 0 8px;
|
||||||
|
font-size: 12px;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
.footer_content {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.van-popup {
|
||||||
|
background-color: #F9F9F9;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div id="app" v-cloak>
|
||||||
|
|
||||||
|
<van-nav-bar title="会员变更分工会审核" left-arrow placeholder fixed
|
||||||
|
@click-left="history.back()"></van-nav-bar>
|
||||||
|
|
||||||
|
<div class="search-fixed">
|
||||||
|
<van-search
|
||||||
|
v-model="pageForm.searchKeyword"
|
||||||
|
shape="round"
|
||||||
|
maxlength="10"
|
||||||
|
@search="doSearch"
|
||||||
|
placeholder="请输入姓名或工号进行查询"
|
||||||
|
>
|
||||||
|
</van-search>
|
||||||
|
<van-dropdown-menu>
|
||||||
|
<van-dropdown-item v-model="pageForm.audit" :options="auditOptions"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
<van-dropdown-item v-model="pageForm.unitId" :options="unitOptions"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
<van-dropdown-item v-model="pageForm.unionId" :options="unionOptions"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
<van-dropdown-item v-model="pageForm.personType" :options="personTypeOptions"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
</van-dropdown-menu>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="margin-top: 120px">
|
||||||
|
<van-list
|
||||||
|
v-model="loading"
|
||||||
|
:finished="finished"
|
||||||
|
:finished-text="tableData.length>0?'没有更多了':''"
|
||||||
|
@load="onLoad">
|
||||||
|
|
||||||
|
<div class="van-doc-card" v-for="o in tableData">
|
||||||
|
<div class="title_content flex">
|
||||||
|
<div>{{o.username + '-' + o.loginname}}</div>
|
||||||
|
<div style="color: #0e5996">{{o.stateName}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<div>
|
||||||
|
<span class="label_content">人员类型:</span>
|
||||||
|
<span>{{o.personType}}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span class="label_content">所属单位:</span>
|
||||||
|
<span>{{o.unitName}}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span class="label_content">所属工会:</span>
|
||||||
|
<span>{{o.unionName}}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span class="label_content">申请时间:</span>
|
||||||
|
<span>{{o.applyDateTime}}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span class="label_content">变更类型:</span>
|
||||||
|
<span @click.stop="openView(o)" style="color: #0e5996">
|
||||||
|
{{getChangeTypes(o.changeTypes)}}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer_content">
|
||||||
|
<van-button @click.stop="openView(o)" color="#1867b0" size="small" type="primary">
|
||||||
|
查看
|
||||||
|
</van-button>
|
||||||
|
<van-button v-if="o.applyStateId === 10020"
|
||||||
|
@click.stop="openAudit(o)" color="#1867b0" size="small" type="primary">
|
||||||
|
审核
|
||||||
|
</van-button>
|
||||||
|
<van-button v-if="[10030, 10050].includes(o.applyStateId)"
|
||||||
|
@click.stop="doRevoke(o)" size="small" type="danger">
|
||||||
|
撤回
|
||||||
|
</van-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</van-list>
|
||||||
|
<van-empty
|
||||||
|
v-if="mLoading==false&&tableData.length==0"
|
||||||
|
class="custom-image"
|
||||||
|
image="/none.svg"
|
||||||
|
description="暂无数据"
|
||||||
|
></van-empty>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<van-popup :style="{ height: '100%',width: '100%'}" position="right" safe-area-inset-bottom
|
||||||
|
v-model="memberChangeInfoPopup">
|
||||||
|
<van-nav-bar @click-left="memberChangeInfoPopup=false" left-arrow
|
||||||
|
title="操作详情"></van-nav-bar>
|
||||||
|
<member-change-info ref="memberChangeInfoRef" :type="openType">
|
||||||
|
<template #extra>
|
||||||
|
<van-tab name="99" title="分工会审核" v-if="openType === 'audit'">
|
||||||
|
<van-form ref="approvalFormRef" :show-error-message="false">
|
||||||
|
<van-field
|
||||||
|
readonly
|
||||||
|
value="${@shiro.getPrincipalProperty('username')}"
|
||||||
|
name="username"
|
||||||
|
label="审核人"
|
||||||
|
></van-field>
|
||||||
|
|
||||||
|
<van-field v-model="formData.auditTime" label="审核时间" readonly></van-field>
|
||||||
|
|
||||||
|
<van-field v-model="formData.auditOpinion"
|
||||||
|
required
|
||||||
|
rows="1"
|
||||||
|
autosize
|
||||||
|
label="审核意见"
|
||||||
|
type="textarea"
|
||||||
|
placeholder="请输入审核意见"
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
></van-field>
|
||||||
|
</van-form>
|
||||||
|
|
||||||
|
<div style="display: flex;justify-content: center;" class="audit mt10">
|
||||||
|
<van-button type="danger" @click="doApproval(2)" size="small">
|
||||||
|
退回重新申请
|
||||||
|
</van-button>
|
||||||
|
<van-button color="#1867b0" @click="doApproval(0)" size="small">
|
||||||
|
拒绝申请
|
||||||
|
</van-button>
|
||||||
|
<van-button color="#1867b0" @click="doApproval(1)" size="small">
|
||||||
|
同意申请
|
||||||
|
</van-button>
|
||||||
|
</div>
|
||||||
|
</van-tab>
|
||||||
|
</template>
|
||||||
|
</member-change-info>
|
||||||
|
</van-popup>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
<!--#include("../common/memberChangeInfo.js"){}#-->
|
||||||
|
|
||||||
|
const vue = new Vue({
|
||||||
|
el: '#app',
|
||||||
|
mixins: [mobileMixins],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
openType: 'view',
|
||||||
|
memberChangeInfoPopup: false,
|
||||||
|
pageForm: {
|
||||||
|
audit: false,
|
||||||
|
unionId: '',
|
||||||
|
unitId: '',
|
||||||
|
personType: '',
|
||||||
|
},
|
||||||
|
changeTypeData: [],
|
||||||
|
unitOptions: [],
|
||||||
|
unionOptions: [],
|
||||||
|
personTypeOptions: [],
|
||||||
|
formData: {},
|
||||||
|
auditOptions: [
|
||||||
|
{text: '未审核', value: false},
|
||||||
|
{text: '已审核', value: true},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
'member-change-info': MEMBER_CHANGE_INFO,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async doRevoke(row) {
|
||||||
|
const confirm = await vant.Dialog.confirm({
|
||||||
|
title: '提示',
|
||||||
|
message: '确定要撤回该申请吗?',
|
||||||
|
})
|
||||||
|
if (confirm === 'confirm') {
|
||||||
|
const resp = await $.post('/platform/member/change/branchUnion/audit/doRevoke', {id: row.id})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
vant.Toast(resp.msg)
|
||||||
|
this.doSearch()
|
||||||
|
} else {
|
||||||
|
vant.Toast(resp.msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async doApproval(approvalType) {
|
||||||
|
this.$refs.approvalFormRef.validate().then(async () => {
|
||||||
|
let msg = '确定要通过此条申请吗?'
|
||||||
|
if (approvalType === 0) {
|
||||||
|
msg = '拒绝后不可撤回,确定要拒绝此条申请吗?'
|
||||||
|
} else if (approvalType === 2) {
|
||||||
|
msg = '确定要退回此条申请吗?'
|
||||||
|
}
|
||||||
|
const confirm = await vant.Dialog.confirm({
|
||||||
|
title: '提示',
|
||||||
|
message: msg,
|
||||||
|
})
|
||||||
|
if (confirm === 'confirm') {
|
||||||
|
this.formData.auditType = approvalType
|
||||||
|
const resp = await $.post('/platform/member/change/branchUnion/audit/approval', {
|
||||||
|
audit: JSON.stringify(this.formData),
|
||||||
|
id: this.formData.id
|
||||||
|
})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
vant.Toast(resp.msg)
|
||||||
|
this.memberChangeInfoPopup = false
|
||||||
|
this.doSearch()
|
||||||
|
} else {
|
||||||
|
vant.Toast(resp.msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
openView(row) {
|
||||||
|
this.openType = 'view'
|
||||||
|
this.memberChangeInfoPopup = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.memberChangeInfoRef.onOpen(row.id)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
openAudit(row) {
|
||||||
|
this.openType = 'audit'
|
||||||
|
this.formData.id = row.id
|
||||||
|
this.formData.username = "${@shiro.getPrincipalProperty('username')}"
|
||||||
|
this.formData.auditTime = moment().format('YYYY-MM-DD HH:mm:ss')
|
||||||
|
this.memberChangeInfoPopup = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.memberChangeInfoRef.onOpen(row.id)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getChangeTypes(changeTypes){
|
||||||
|
const changeTypesList = JSON.parse(changeTypes)
|
||||||
|
if (changeTypesList) {
|
||||||
|
if (!changeTypesList || changeTypesList.length === 0 || !this.changeTypeData || this.changeTypeData.length === 0) return null
|
||||||
|
return changeTypesList
|
||||||
|
.map((v) => {
|
||||||
|
return this.changeTypeData.find((item) => item.type === v).changeTypeName
|
||||||
|
})
|
||||||
|
.join(",")
|
||||||
|
}
|
||||||
|
return null
|
||||||
|
},
|
||||||
|
doSearch() {
|
||||||
|
this.pageForm.pageNumber = 1
|
||||||
|
this.tableData = []
|
||||||
|
this.finished = false
|
||||||
|
this.onLoad()
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.loading = true
|
||||||
|
$.post('/platform/member/change/branchUnion/audit/pageData', this.pageForm).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.tableData = this.tableData.concat(res.data.list)
|
||||||
|
if (this.tableData.length === res.data.totalCount) {
|
||||||
|
this.finished = true
|
||||||
|
} else {
|
||||||
|
this.pageForm.pageNumber++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async getUnionList(){
|
||||||
|
const {data} = await $.get("/platform/vi/common/unions")
|
||||||
|
data.forEach(v => {
|
||||||
|
v.text = v.unionname
|
||||||
|
v.value = v.id
|
||||||
|
})
|
||||||
|
data.unshift({text: "全部工会", value: ''})
|
||||||
|
this.unionOptions = data
|
||||||
|
},
|
||||||
|
async getUnitList(unionId) {
|
||||||
|
const {data} = await $.get("/platform/vi/common/units", {unionId})
|
||||||
|
data.forEach(v => {
|
||||||
|
v.text = v.name
|
||||||
|
v.value = v.id
|
||||||
|
})
|
||||||
|
data.unshift({text: "全部单位", value: ''})
|
||||||
|
this.unitOptions = data
|
||||||
|
},
|
||||||
|
async getPersonTypeList() {
|
||||||
|
const data = await getDictOptions("PERSON_TYPE")
|
||||||
|
data.forEach(v => {
|
||||||
|
v.text = v.name
|
||||||
|
v.value = v.code
|
||||||
|
})
|
||||||
|
data.unshift({text: "全部类型", value: ''})
|
||||||
|
this.personTypeOptions = data
|
||||||
|
},
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
this.changeTypeData = await getEnumOptions("MemberChangeType")
|
||||||
|
await this.getUnionList()
|
||||||
|
await this.getUnitList()
|
||||||
|
await this.getPersonTypeList()
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
@@ -0,0 +1,125 @@
|
|||||||
|
const MEMBER_CHANGE_INFO = {
|
||||||
|
template: /*language=HTML*/ `
|
||||||
|
<div class="change_info">
|
||||||
|
<van-tabs v-model="active" :ellipsis="false">
|
||||||
|
<van-tab title="基础信息" class="mb10">
|
||||||
|
<van-cell-group>
|
||||||
|
<van-cell title="工号" :value="viewData.loginname" />
|
||||||
|
<van-cell title="姓名" :value="viewData.username" />
|
||||||
|
<van-cell title="性别" :value="viewData.sex" />
|
||||||
|
<van-cell title="民族" :value="viewData.nation" />
|
||||||
|
<van-cell title="出生日期" :value="viewData.birthday ? moment(viewData.birthday).format('YYYY年MM月DD日') : '暂无'" />
|
||||||
|
<van-cell title="政治面貌" :value="viewData.political" />
|
||||||
|
<van-cell title="学历" :value="viewData.education" />
|
||||||
|
<van-cell title="学位" :value="viewData.academicDegree" />
|
||||||
|
<van-cell title="党政职务" :value="viewData.position" />
|
||||||
|
<van-cell title="工作单位" :value="viewData.unitname" />
|
||||||
|
<van-cell title="所属工会" :value="viewData.unionname" />
|
||||||
|
<van-cell title="所属校区" :value="viewData.campus" />
|
||||||
|
<van-cell title="身份证号码" :value="viewData.idCard" />
|
||||||
|
<van-cell title="联系电话" :value="viewData.mobile" />
|
||||||
|
<van-cell title="电子邮箱" :value="viewData.email" />
|
||||||
|
<van-cell title="在职状态" :value="viewData.userState" />
|
||||||
|
<van-cell title="人员类型" :value="viewData.personType" />
|
||||||
|
<van-cell title="人员性质" :value="viewData.preparedBy" />
|
||||||
|
<van-cell title="会员状态" :value="viewData.member ? '会员' : '非会员'" />
|
||||||
|
<van-cell title="福利会员状态" :value="viewData.welfareMember ? '福利会员' : '非福利会员'" />
|
||||||
|
<van-cell title="个人简况">
|
||||||
|
<div v-if="viewData.vita" class="text-left" v-html="viewData.vita"></div>
|
||||||
|
<span v-else>无数据</span>
|
||||||
|
</van-cell>
|
||||||
|
</van-cell-group>
|
||||||
|
</van-tab>
|
||||||
|
<van-tab title="变更信息" class="mb10">
|
||||||
|
<div v-if="viewData.changeInfos.length > 0" v-for="(row,index) in viewData.changeInfos">
|
||||||
|
<div class="van-sidebar-item van-sidebar-item--select" style="font-size: 18px">
|
||||||
|
{{ index + 1 }}
|
||||||
|
</div>
|
||||||
|
<van-cell-group>
|
||||||
|
<van-cell title="变更字段" :value="row.fieldName" />
|
||||||
|
<van-cell title="原数据">
|
||||||
|
<div v-html="row.sourceValue"></div>
|
||||||
|
</van-cell>
|
||||||
|
<van-cell title="新数据">
|
||||||
|
<div v-html="row.newValue"></div>
|
||||||
|
</van-cell>
|
||||||
|
</van-cell-group>
|
||||||
|
</div>
|
||||||
|
<van-empty
|
||||||
|
v-if="viewData.changeInfos.length === 0"
|
||||||
|
class="custom-image"
|
||||||
|
image="/none.svg"
|
||||||
|
description="暂无数据"
|
||||||
|
></van-empty>
|
||||||
|
</van-tab>
|
||||||
|
<van-tab title="分工会审核信息" v-if="viewData.branchAudit">
|
||||||
|
<van-cell-group>
|
||||||
|
<van-cell title="审核人员" :value="viewData.branchAudit.username" />
|
||||||
|
<van-cell title="审核时间" :value="viewData.branchAudit.auditTime" />
|
||||||
|
<van-cell title="审核意见" :value="viewData.branchAudit.auditOpinion" />
|
||||||
|
</van-cell-group>
|
||||||
|
</van-tab>
|
||||||
|
<van-tab title="校工会审核信息" v-if="viewData.schoolAudit">
|
||||||
|
<van-cell-group>
|
||||||
|
<van-cell title="审核人员" :value="viewData.schoolAudit.username" />
|
||||||
|
<van-cell title="审核时间" :value="viewData.schoolAudit.auditTime" />
|
||||||
|
<van-cell title="审核意见" :value="viewData.schoolAudit.auditOpinion" />
|
||||||
|
</van-cell-group>
|
||||||
|
</van-tab>
|
||||||
|
<slot name="extra"></slot>
|
||||||
|
</van-tabs>
|
||||||
|
</div>
|
||||||
|
`,
|
||||||
|
mixins: [mobileMixins],
|
||||||
|
props: {
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
default: 'view'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return{
|
||||||
|
active: 0,
|
||||||
|
viewData: {
|
||||||
|
changeInfos: [],
|
||||||
|
schoolAudit: {},
|
||||||
|
branchAudit: {}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async onOpen(id){
|
||||||
|
if(this.type === 'audit') {
|
||||||
|
this.active = '99'
|
||||||
|
}
|
||||||
|
const resp = await $.post('/platform/member/change/mine/findMemberChangeRecord', {id})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
this.viewData = resp.data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
style: /*language=CSS*/`
|
||||||
|
.change_info .van-empty {
|
||||||
|
background-color: transparent !important;
|
||||||
|
position: relative !important;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 0 !important;
|
||||||
|
top: 0 !important;
|
||||||
|
left: 0 !important;
|
||||||
|
transform: none !important;
|
||||||
|
}
|
||||||
|
.audit .van-button--small {
|
||||||
|
min-width: 60px !important;
|
||||||
|
height: 30px !important;
|
||||||
|
padding: 0 8px !important;
|
||||||
|
font-size: 12px !important;
|
||||||
|
border-radius: 6px !important;
|
||||||
|
margin-right: 10px !important;
|
||||||
|
}
|
||||||
|
`
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,340 @@
|
|||||||
|
<!--#
|
||||||
|
layout("/mobile/platform.html"){
|
||||||
|
#-->
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.van-doc-card {
|
||||||
|
margin: 14px;
|
||||||
|
padding: 12px;
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 10px;
|
||||||
|
box-shadow: 0 8px 12px #ebedf0;
|
||||||
|
line-height: 20px;
|
||||||
|
font-size: 12px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.flex {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
margin-top: 10px;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
.label_content{
|
||||||
|
color: grey;
|
||||||
|
}
|
||||||
|
.title_content {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.van-doc-card .van-button--small {
|
||||||
|
min-width: 60px;
|
||||||
|
height: 26px;
|
||||||
|
padding: 0 8px;
|
||||||
|
font-size: 12px;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
.footer_content {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.van-popup {
|
||||||
|
background-color: #F9F9F9;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div id="app" v-cloak>
|
||||||
|
|
||||||
|
<van-nav-bar title="会员变更校工会审核" left-arrow placeholder fixed
|
||||||
|
@click-left="history.back()"></van-nav-bar>
|
||||||
|
|
||||||
|
<div class="search-fixed">
|
||||||
|
<van-search
|
||||||
|
v-model="pageForm.searchKeyword"
|
||||||
|
shape="round"
|
||||||
|
maxlength="10"
|
||||||
|
@search="doSearch"
|
||||||
|
placeholder="请输入姓名或工号进行查询"
|
||||||
|
>
|
||||||
|
</van-search>
|
||||||
|
<van-dropdown-menu>
|
||||||
|
<van-dropdown-item v-model="pageForm.audit" :options="auditOptions"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
<van-dropdown-item v-model="pageForm.unitId" :options="unitOptions"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
<van-dropdown-item v-model="pageForm.unionId" :options="unionOptions"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
<van-dropdown-item v-model="pageForm.personType" :options="personTypeOptions"
|
||||||
|
@change="doSearch"></van-dropdown-item>
|
||||||
|
</van-dropdown-menu>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="margin-top: 120px">
|
||||||
|
<van-list
|
||||||
|
v-model="loading"
|
||||||
|
:finished="finished"
|
||||||
|
:finished-text="tableData.length>0?'没有更多了':''"
|
||||||
|
@load="onLoad">
|
||||||
|
|
||||||
|
<div class="van-doc-card" v-for="o in tableData">
|
||||||
|
<div class="title_content flex">
|
||||||
|
<div>{{o.username + '-' + o.loginname}}</div>
|
||||||
|
<div style="color: #0e5996">{{o.stateName}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
|
<div>
|
||||||
|
<span class="label_content">人员类型:</span>
|
||||||
|
<span>{{o.personType}}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span class="label_content">所属单位:</span>
|
||||||
|
<span>{{o.unitName}}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span class="label_content">所属工会:</span>
|
||||||
|
<span>{{o.unionName}}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span class="label_content">申请时间:</span>
|
||||||
|
<span>{{o.applyDateTime}}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span class="label_content">变更类型:</span>
|
||||||
|
<span @click.stop="openView(o)" style="color: #0e5996">
|
||||||
|
{{getChangeTypes(o.changeTypes)}}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer_content">
|
||||||
|
<van-button @click.stop="openView(o)" color="#1867b0" size="small" type="primary">
|
||||||
|
查看
|
||||||
|
</van-button>
|
||||||
|
<van-button v-if="o.applyStateId === 10050"
|
||||||
|
@click.stop="openAudit(o)" color="#1867b0" size="small" type="primary">
|
||||||
|
审核
|
||||||
|
</van-button>
|
||||||
|
<van-button v-if="[10060].includes(o.applyStateId)"
|
||||||
|
@click.stop="doRevoke(o)" size="small" type="danger">
|
||||||
|
撤回
|
||||||
|
</van-button>
|
||||||
|
</div>`1
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</van-list>
|
||||||
|
<van-empty
|
||||||
|
v-if="mLoading==false&&tableData.length==0"
|
||||||
|
class="custom-image"
|
||||||
|
image="/none.svg"
|
||||||
|
description="暂无数据"
|
||||||
|
></van-empty>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<van-popup :style="{ height: '100%',width: '100%'}" position="right" safe-area-inset-bottom
|
||||||
|
v-model="memberChangeInfoPopup">
|
||||||
|
<van-nav-bar @click-left="memberChangeInfoPopup=false" left-arrow
|
||||||
|
title="操作详情"></van-nav-bar>
|
||||||
|
<member-change-info ref="memberChangeInfoRef" :type="openType">
|
||||||
|
<template #extra>
|
||||||
|
<van-tab name="99" title="校工会审核" v-if="openType === 'audit'">
|
||||||
|
<van-form ref="approvalFormRef" :show-error-message="false">
|
||||||
|
<van-field
|
||||||
|
readonly
|
||||||
|
value="${@shiro.getPrincipalProperty('username')}"
|
||||||
|
name="username"
|
||||||
|
label="审核人"
|
||||||
|
></van-field>
|
||||||
|
|
||||||
|
<van-field v-model="formData.auditTime" label="审核时间" readonly></van-field>
|
||||||
|
|
||||||
|
<van-field v-model="formData.auditOpinion"
|
||||||
|
required
|
||||||
|
rows="1"
|
||||||
|
autosize
|
||||||
|
label="审核意见"
|
||||||
|
type="textarea"
|
||||||
|
placeholder="请输入审核意见"
|
||||||
|
:rules="[{ required: true }]"
|
||||||
|
></van-field>
|
||||||
|
</van-form>
|
||||||
|
|
||||||
|
<div style="display: flex;justify-content: center;" class="audit mt10">
|
||||||
|
<van-button type="danger" @click="doApproval(2)" size="small">
|
||||||
|
退回重新申请
|
||||||
|
</van-button>
|
||||||
|
<van-button color="#1867b0" @click="doApproval(0)" size="small">
|
||||||
|
拒绝申请
|
||||||
|
</van-button>
|
||||||
|
<van-button color="#1867b0" @click="doApproval(1)" size="small">
|
||||||
|
同意申请
|
||||||
|
</van-button>
|
||||||
|
</div>
|
||||||
|
</van-tab>
|
||||||
|
</template>
|
||||||
|
</member-change-info>
|
||||||
|
</van-popup>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
<!--#include("../common/memberChangeInfo.js"){}#-->
|
||||||
|
|
||||||
|
const vue = new Vue({
|
||||||
|
el: '#app',
|
||||||
|
mixins: [mobileMixins],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
openType: 'view',
|
||||||
|
memberChangeInfoPopup: false,
|
||||||
|
pageForm: {
|
||||||
|
audit: false,
|
||||||
|
unionId: '',
|
||||||
|
unitId: '',
|
||||||
|
personType: '',
|
||||||
|
},
|
||||||
|
changeTypeData: [],
|
||||||
|
unitOptions: [],
|
||||||
|
unionOptions: [],
|
||||||
|
personTypeOptions: [],
|
||||||
|
formData: {},
|
||||||
|
auditOptions: [
|
||||||
|
{text: '未审核', value: false},
|
||||||
|
{text: '已审核', value: true},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
'member-change-info': MEMBER_CHANGE_INFO,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async doRevoke(row) {
|
||||||
|
const confirm = await vant.Dialog.confirm({
|
||||||
|
title: '提示',
|
||||||
|
message: '确定要撤回该申请吗?',
|
||||||
|
})
|
||||||
|
if (confirm === 'confirm') {
|
||||||
|
const resp = await $.post('/platform/member/change/schoolUnion/audit/doRevoke', {id: row.id})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
vant.Toast(resp.msg)
|
||||||
|
this.doSearch()
|
||||||
|
} else {
|
||||||
|
vant.Toast(resp.msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async doApproval(approvalType) {
|
||||||
|
this.$refs.approvalFormRef.validate().then(async () => {
|
||||||
|
let msg = '确定要通过此条申请吗?'
|
||||||
|
if (approvalType === 0) {
|
||||||
|
msg = '拒绝后不可撤回,确定要拒绝此条申请吗?'
|
||||||
|
} else if (approvalType === 2) {
|
||||||
|
msg = '确定要退回此条申请吗?'
|
||||||
|
}
|
||||||
|
const confirm = await vant.Dialog.confirm({
|
||||||
|
title: '提示',
|
||||||
|
message: msg,
|
||||||
|
})
|
||||||
|
if (confirm === 'confirm') {
|
||||||
|
this.formData.auditType = approvalType
|
||||||
|
const resp = await $.post('/platform/member/change/schoolUnion/audit/approval', {
|
||||||
|
audit: JSON.stringify(this.formData),
|
||||||
|
id: this.formData.id
|
||||||
|
})
|
||||||
|
if (resp.code === 0) {
|
||||||
|
vant.Toast(resp.msg)
|
||||||
|
this.memberChangeInfoPopup = false
|
||||||
|
this.doSearch()
|
||||||
|
} else {
|
||||||
|
vant.Toast(resp.msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
openView(row) {
|
||||||
|
this.openType = 'view'
|
||||||
|
this.memberChangeInfoPopup = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.memberChangeInfoRef.onOpen(row.id)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
openAudit(row) {
|
||||||
|
this.openType = 'audit'
|
||||||
|
this.formData.id = row.id
|
||||||
|
this.formData.username = "${@shiro.getPrincipalProperty('username')}"
|
||||||
|
this.formData.auditTime = moment().format('YYYY-MM-DD HH:mm:ss')
|
||||||
|
this.memberChangeInfoPopup = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.memberChangeInfoRef.onOpen(row.id)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getChangeTypes(changeTypes){
|
||||||
|
const changeTypesList = JSON.parse(changeTypes)
|
||||||
|
if (changeTypesList) {
|
||||||
|
if (!changeTypesList || changeTypesList.length === 0 || !this.changeTypeData || this.changeTypeData.length === 0) return null
|
||||||
|
return changeTypesList
|
||||||
|
.map((v) => {
|
||||||
|
return this.changeTypeData.find((item) => item.type === v).changeTypeName
|
||||||
|
})
|
||||||
|
.join(",")
|
||||||
|
}
|
||||||
|
return null
|
||||||
|
},
|
||||||
|
doSearch() {
|
||||||
|
this.pageForm.pageNumber = 1
|
||||||
|
this.tableData = []
|
||||||
|
this.finished = false
|
||||||
|
this.onLoad()
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.loading = true
|
||||||
|
$.post('/platform/member/change/schoolUnion/audit/pageData', this.pageForm).then(res => {
|
||||||
|
if (res.code === 0) {
|
||||||
|
this.tableData = this.tableData.concat(res.data.list)
|
||||||
|
if (this.tableData.length === res.data.totalCount) {
|
||||||
|
this.finished = true
|
||||||
|
} else {
|
||||||
|
this.pageForm.pageNumber++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async getUnionList(){
|
||||||
|
const {data} = await $.get("/platform/vi/common/unions")
|
||||||
|
data.forEach(v => {
|
||||||
|
v.text = v.unionname
|
||||||
|
v.value = v.id
|
||||||
|
})
|
||||||
|
data.unshift({text: "全部工会", value: ''})
|
||||||
|
this.unionOptions = data
|
||||||
|
},
|
||||||
|
async getUnitList(unionId) {
|
||||||
|
const {data} = await $.get("/platform/vi/common/units", {unionId})
|
||||||
|
data.forEach(v => {
|
||||||
|
v.text = v.name
|
||||||
|
v.value = v.id
|
||||||
|
})
|
||||||
|
data.unshift({text: "全部单位", value: ''})
|
||||||
|
this.unitOptions = data
|
||||||
|
},
|
||||||
|
async getPersonTypeList() {
|
||||||
|
const data = await getDictOptions("PERSON_TYPE")
|
||||||
|
data.forEach(v => {
|
||||||
|
v.text = v.name
|
||||||
|
v.value = v.code
|
||||||
|
})
|
||||||
|
data.unshift({text: "全部类型", value: ''})
|
||||||
|
this.personTypeOptions = data
|
||||||
|
},
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
this.changeTypeData = await getEnumOptions("MemberChangeType")
|
||||||
|
await this.getUnionList()
|
||||||
|
await this.getUnitList()
|
||||||
|
await this.getPersonTypeList()
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<!--#
|
||||||
|
}
|
||||||
|
#-->
|
||||||
Reference in New Issue
Block a user