This commit is contained in:
@jyuhsin
2025-07-02 20:03:16 +08:00
parent 63bd4e0157
commit 44680d1abb
3 changed files with 196 additions and 5 deletions
@@ -87,7 +87,7 @@ layout("/layouts/platform_h5.html"){
<div id="app">
<!-- 导航栏 -->
<van-nav-bar title="文体协会会员申请" left-arrow @click-left="historyBack"></van-nav-bar>
<van-nav-bar title="文体协会会员申请" left-text="返回" left-arrow @click-left="historyBack"></van-nav-bar>
<!-- 表单容器 -->
<van-form @submit="doSubmit" ref="formRef" class="form-container">
@@ -0,0 +1,61 @@
const clubUserJoin = {
template:
/*language=HTML*/
`
<div>
<van-cell-group>
<van-cell>
<div slot="title" class="font-size4 bold">
申请信息
</div>
</van-cell>
<van-cell title="姓名">{{ viewData.userName }}</van-cell>
<van-cell title="工号">{{ viewData.loginName }}</van-cell>
<van-cell title="性别">{{ viewData.sex }}</van-cell>
<van-cell title="出生年月">{{ viewData.birthday }}</van-cell>
<van-cell title="联系电话">{{ viewData.mobile }}</van-cell>
<van-cell title="电子信箱">{{ viewData.email }}</van-cell>
<van-cell title="分工会">{{ viewData.unionName }}</van-cell>
<van-cell title="部门">{{ viewData.unitName }}</van-cell>
<van-cell title="职务">{{ viewData.governmentPosition }}</van-cell>
<van-cell title="职称">{{ viewData.technicalTitle }}</van-cell>
<van-cell title="学历">{{ viewData.education }}</van-cell>
<van-cell title="学位">{{ viewData.academicDegree }}</van-cell>
<van-cell class="more-text" title="同时参加其他协会情况">{{ viewData.sameTimeJoinOtherClubSituation }}</van-cell>
<van-cell class="more-text" title="文化、体育方面的活动经历、获奖情况">{{ viewData.awardsExperience }}</van-cell>
<van-cell class="more-text" title="照片" v-if="viewData.avatar">
<template slot="default">
<van-image :src="viewData.avatar"></van-image>
</template>
</van-cell>
</van-cell-group>
</div>
`,
data() {
return {
viewData: {},
activeName: "first",
isScrollNow: "0"
}
},
methods: {
onOpen(id) {
this.$axios.post("/platform/club/join/common/info", { id }).then((res) => {
if (res.code === 0) {
this.viewData = res.data
}
})
}
},
style: /*language=CSS*/ `
.more-text .van-field__label{
width: 100%;
}
.more-text {
display: inline-block;
}
.more-text .van-cell__value{
text-align: left;
}
`
}
@@ -3,27 +3,157 @@ layout("/layouts/platform_h5.html"){
#-->
<style scoped>
.van-cell__value {
min-width: 70%;
}
</style>
<div id="app">
<van-sticky>
<van-nav-bar title="我的申请" left-text="返回" left-arrow @click-left="$pjaxReplace('/platform/h5/home')"></van-nav-bar>
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
<van-dropdown-item :options="yearList" @change="doSearch" v-model="pageForm.year"></van-dropdown-item>
</van-dropdown-menu>
</van-sticky>
<div>
<van-list v-if="tableData.length>0" v-model="tableLoading" :finished="tableFinished" finished-text="没有更多了" @load="pageData">
<div class="table-list">
<div class="table-card" v-for="row in tableData" :key="row.id">
<van-cell title="姓名" :value="row.userName"></van-cell>
<van-cell title="工号" :value="row.loginName"></van-cell>
<van-cell title="协会名称" :value="row.clubName"></van-cell>
<van-cell title="申请模式" :value="row.mode ? '加入' : '退出'"></van-cell>
<van-cell title="申请时间" :value="row.applyDate"></van-cell>
<van-cell title="当前节点" :value="row.processInstanceNodeName"></van-cell>
<van-cell class="table-card-footer">
<van-button type="info" size="small" @click="onOpen(row)">查看</van-button>
<van-button @click="openEdit(row)" v-if="[10,40,70].includes(row.processInstanceNodeCode)" size="small">编辑</van-button>
<van-button
@click="openRevoke(row)"
v-if="[20].includes(row.processInstanceNodeCode) && !row.nextTaskIsComplete"
size="small"
type="danger"
>
撤销
</van-button>
<van-button v-if="[10].includes(row.processInstanceNodeCode)" @click="doDelete(row.id)" size="small" type="danger">
删除
</van-button>
</van-cell>
</div>
</div>
</van-list>
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
</div>
<van-popup :style="{ height: '100%',width: '100%'}" position="right" safe-area-inset-bottom v-model="viewShow">
<van-sticky>
<van-nav-bar @click-left="viewShow = false" left-arrow left-text="返回" title="详细信息"></van-nav-bar>
</van-sticky>
<div style="height: calc(100vh - 44px); overflow-y: auto">
<info ref="infoRef"></info>
</div>
</van-popup>
</div>
<script>
<!--#include('../common/clubUserJoin.js'){}#-->
const vue = new Vue({
el: "#app",
store,
components: {},
components: {
info: clubUserJoin
},
data() {
return {
viewShow: false,
yearList: [],
pageForm: {
pageNumber: 1,
pageSize: 10,
totalCount: 0,
year: "",
},
tableLoading: false,
tableFinished: false,
tableData: [],
}
},
methods: {
onOpen(row) {
this.viewShow = true
this.$nextTick(() => {
this.$refs.infoRef.onOpen(row.id)
})
},
doSearch() {
this.pageForm.pageNumber = 1
this.tableData = []
this.finished = false
this.pageData()
},
openRevoke(row) {
this.$dialog.confirm({
title: "提示",
message: "您确定要撤销申请吗?"
})
.then(() => {
this.$axios.post("/platform/club/join/mine/revokeApply", { id: row.id }).then((res) => {
if (res.code === 0) {
this.$toast.success(res.msg)
this.doSearch()
} else {
this.$toast.fail(res.msg)
}
})
})
.catch(() => {})
},
doDelete(row) {
this.$dialog.confirm({
title: "提示",
message: "确定要删除此申请吗?"
})
.then(() => {
this.$axios.post("/platform/club/join/mine/delete", { id: row.id }).then((res) => {
if (res.code === 0) {
this.$toast.success(res.msg)
this.doSearch()
} else {
this.$toast.fail(res.msg)
}
})
})
.catch(() => {})
},
pageData() {
this.tableLoading = true
this.$axios.post("/platform/club/join/mine/pageData", this.pageForm).then((res) => {
if (res.code === 0) {
this.tableData = this.tableData.concat(res.data.list)
this.pageForm.totalCount = res.data.totalCount
if (this.tableData.length >= this.pageForm.totalCount) {
this.tableFinished = true
} else {
this.pageForm.pageNumber++
}
this.tableLoading = false
} else {
this.$toast(res.msg)
}
})
},
initData() {
for (let i = new Date().getFullYear() - 10; i <= new Date().getFullYear(); i++) {
this.yearList.unshift({ value: i, text: i + "年" })
}
this.$set(this.pageForm, "year", this.yearList[0].value)
}
},
created() {
this.initData()
this.pageData()
}
})
</script>