This commit is contained in:
@jyuhsin
2025-02-20 17:20:25 +08:00
parent 39c4581bad
commit c39be37904
2 changed files with 239 additions and 1 deletions
@@ -49,13 +49,17 @@ public class MemberChangeMineController {
@Inject
private SysLocalProcessService sysLocalProcessService;
@At("")
@Ok("beetl:/platform/member/change/mine/index.html")
@RequiresPermissions("member.change.mine")
public void index() {
}
@At("/h5")
@Ok("beetl:/mobile/member/change/mine/index.html")
@RequiresPermissions("member.change.mine")
public void h5Index() {
}
@At
@RequiresPermissions("member.change.mine")
@@ -0,0 +1,234 @@
<!--#
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.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>
</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"></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: {
unionId: '',
unitId: '',
personType: '',
},
changeTypeData: [],
unitOptions: [],
unionOptions: [],
personTypeOptions: [],
}
},
components: {
'member-change-info': MEMBER_CHANGE_INFO,
},
methods: {
openView(row) {
this.openType = 'view'
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/mine/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>
<!--#
}
#-->