Files
UNION_NSI/target/classes/views/mobile/club/clubAudit.html
T
2026-09-08 19:49:21 +08:00

378 lines
12 KiB
HTML

<!--#
layout("/mobile/platform.html"){
#-->
<style>
.van-index-bar__sidebar {
display: none;
}
.van-doc-card {
margin: 14px;
padding: 12px 12px 12px 12px;
background-color: #fff;
border-radius: 10px;
box-shadow: 0 8px 12px #ebedf0;
line-height: 20px;
font-size: 13px;
position: relative;
}
.van-divider {
margin: 6px 0 6px 0px;
border-color: lightgray;
}
.van-doc-card .van-button--small {
border-radius: 8px;
width: 60px !important;
height: 28px;
}
.van-col {
line-height: 24px;
}
.title_span {
font-size: 16px;
font-weight: bold;
position: absolute;
left: -1px;
top: 11px;
color: #1867b0;
}
.title {
font-size: 13px;
font-weight: bold;
flex: 1;
overflow: hidden;
white-space: nowrap;
}
.cus_overflow {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.van-dropdown-menu__item {
flex: auto;
}
.userPopup {
height: 90%;
background-color: #f6f7f9;
font-size: 14px;
}
.audit_icon {
font-size: 24px;
position: absolute;
font-weight: bolder;
right: 0;
top: 60px;
}
.userPopup .van-cell {
padding: 10px 0px;
}
.van-radio-group {
width: 100%;
justify-content: center;
margin: 10px;
}
.van-cell-group__title {
padding: 5px 0 5px 0;
}
</style>
<div id="app" v-cloak>
<m-page-loading v-if="mLoading"></m-page-loading>
<!--top栏-->
<van-nav-bar
title="社团审核"
left-arrow
placeholder
fixed
@click-left="history.go(-1)"
safe-area-inset-top
></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.radioType" :options="auditOptions"
@change="doSearch"></van-dropdown-item>
<van-dropdown-item v-model="pageForm.clubId" :options="clubOptions"
@change="doSearch"></van-dropdown-item>
<van-dropdown-item v-model="pageForm.userType" :options="userTypeOptions"
@change="doSearch"></van-dropdown-item>
</van-dropdown-menu>
</div>
<!--列表-->
<div style="margin-top: 116px">
<van-list
v-model="loading"
:finished="finished" :immediate-check="false"
:finished-text="tableData.length>0?'没有更多了':''"
@load="onLoad">
<div class="van-doc-card" v-for="o in tableData">
<div @click="openView(o.id)">
<div style="display: flex; justify-content: space-between">
<div style="width: 74%">
<div class="van-ellipsis title">
<span class="title_span">|</span>
<span>{{o.username}}</span>
</div>
</div>
<div style="color: #1867b0;">
</div>
</div>
<van-divider></van-divider>
<div style="margin-top: 10px">
<van-row>
<van-col span="24">
<span style="color: grey">社团名称:</span>
<span>{{o.clubname}}</span>
</van-col>
</van-row>
<van-row>
<van-col span="24">
<span style="color: grey">&emsp;&emsp;号:</span>
<span>{{o.loginname}}</span>
</van-col>
</van-row>
<van-row>
<van-col span="24">
<span style="color: grey">所属单位:</span>
<span>{{o.unitname}}</span>
</van-col>
</van-row>
<van-row>
<van-col span="24">
<span style="color: grey">申请时间:</span>
<span>{{o.join_time}}</span>
</van-col>
</van-row>
</div>
<div style="display: flex; justify-content: flex-end; margin-top: 4px">
<div>
<van-button @click.stop="openView(o)"
type="primary" size="small" color="#1867b0"
style="margin-right: 8px; width: auto;">
查看
</van-button>
<van-button @click.stop="openAudit(o)"
v-if="o.status == 1 || o.status == 3"
type="primary" size="small" color="#1867b0"
style="margin-right: 8px; width: auto;">
审核
</van-button>
</div>
</div>
</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 v-model="infoShow" position="right" :style="{width: '100%', height: '100%' }">
<van-nav-bar
title="详细信息"
left-arrow
placeholder
fixed
@click-left="infoShow = false"
safe-area-inset-top
></van-nav-bar>
<club-user-apply-info ref="applyInfo" :handle="handle">
<template #handle>
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
社团审核
</div>
</div>
<van-form>
<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="请输入审核意见"
></van-field>
<van-field label="审核签字" required style="flex-flow: column">
<template #label>
<div class="mb10">审核签字</div>
</template>
<template #input>
<mobile-sign ref="signature" :my_sign.sync="formData.auditSign"></mobile-sign>
</template>
</van-field>
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
<van-col span="12">
<van-button :color="themeColor" plain block @click="doReview(false)">拒 绝
</van-button>
</van-col>
<van-col span="12">
<van-button :color="themeColor" block @click="doReview(true)">通 过
</van-button>
</van-col>
</van-row>
</van-form>
</template>
</club-user-apply-info>
</van-popup>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
handle: false,
clubOptions: [],
userTypeOptions: [],
auditOptions: [
{text: '全部', value: 1},
{text: '已审核', value: 2},
{text: '未审核', value: 3},
],
pageForm: {
radioType: 3
},
infoShow: false,
formData: {},
}
},
components: {
'club-user-apply-info': httpVueLoader('/components/mobile/club/mobileClubUserApplyInfo.vue?v=1.0.1'),
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
},
methods: {
openAudit(row) {
this.formData = {
id: row.id,
auditTime: moment().format('YYYY-MM-DD'),
username: "${@shiro.getPrincipalProperty('username')}",
auditOpinion: null,
auditSign: ""
}
this.infoShow = true
this.handle = true
this.$nextTick(() => {
this.$refs.applyInfo.getInfo(row.id)
})
},
openView(row) {
this.infoShow = true
this.handle = false
this.$nextTick(() => {
this.$refs.applyInfo.getInfo(row.id)
})
},
async doReview(flag) {
if (!this.formData.auditOpinion) {
vant.Toast('请填写审核意见');
return
}
if (this.$refs.signature.checkNull()) {
vant.Toast('请签字')
return
}
this.$refs.signature.submitSign()
this.formData.flag = flag
const resp = await $.post("/platform/sys/club/sh/check", this.formData)
if (resp.code === 0) {
this.doSearch()
this.infoShow = false
}
vant.Toast(resp.msg)
},
doSearch() {
this.pageForm.pageNumber = 1
this.tableData = []
this.finished = false
this.onLoad()
},
async onLoad() {
this.loading = true
$.post('/platform/sys/club/sh/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 getMyMangeClub() {
const {data} = await $.get("/platform/sys/club/users/getMyMangeClub")
return data
},
},
async created() {
const data = await this.getMyMangeClub()
data.forEach(item => {
this.clubOptions.push({text: item.name, value: item.id})
})
this.clubOptions.unshift({text: '全部社团'})
const userType = await getDictOptions('UserType')
userType.forEach(item => {
this.userTypeOptions.push({text: item.name, value: item.code})
})
this.userTypeOptions.unshift({text: '人员类型'})
this.onLoad()
}
})
</script>
<!--#
}
#-->