This commit is contained in:
2026-09-09 16:16:22 +08:00
parent ebffbab428
commit ba3a985c40
3749 changed files with 29 additions and 608551 deletions
@@ -1,360 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<div id="app" v-cloak>
<van-nav-bar title="会员申请" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
<van-form ref="form" @submit="doSubmit" validate-trigger="onSubmit"
class="mt5"
scroll-to-error
input-align="right"
:show-error-message="false">
<van-cell-group inset>
<van-field label="姓名" value="${@shiro.getPrincipalProperty('username')}"
left-icon="contact"
readonly></van-field>
<van-field label="姓名" value="${@shiro.getPrincipalProperty('loginname')}"
left-icon="contact"
readonly></van-field>
<van-field label="性别" v-model="formData.sex" readonly
@click="sexPicker = true"
placeholder="请选择性别"
clickable
left-icon="ellipsis"></van-field>
<van-popup v-model="sexPicker" position="bottom">
<van-picker
show-toolbar
:columns="['男','女']"
@confirm="(val)=>{this.formData.sex = val;sexPicker=false}"
@cancel="sexPicker = false"
></van-picker>
</van-popup>
<van-field label="出生日期" v-model="formData.birthday" clickable
left-icon="comment-o"
@click="birthdayPicker = true" placeholder="请选择出生日期"
:rules="[{ required:true, message: '请选择出生日期' }]"></van-field>
<van-popup v-model="birthdayPicker" position="bottom">
<van-datetime-picker
v-model="birthday"
type="data"
title="选择出生日期"
@confirm="onBirthdayConfirm"
@cancel="startTimePicker = false"
></van-datetime-picker>
</van-popup>
<van-field label="出生地点" v-model="formData.birthPlace" placeholder="请填写出生地点"
:rules="[{ required:true, message: '请填写出生地点' }]"
left-icon="label-o"></van-field>
<van-field label="民族" v-model="formData.nation" clickable
left-icon="bar-chart-o"
@click="nationPicker = true" placeholder="请选择民族"
:rules="[{ required:true, message: '请选择民族' }]"></van-field>
<van-popup v-model="nationPicker" position="bottom">
<van-picker
show-toolbar
:columns="nationColumns"
@confirm="(v)=>{formData.nation = v;nationPicker = false}"
@cancel="nationPicker = false"
></van-picker>
</van-popup>
<van-field label="工资" v-model="formData.wage" placeholder="请填写工资"
:rules="[{ required:true, message: '请填写工资' }]"
left-icon="balance-o"></van-field>
<van-field label="政治面貌" v-model="formData.political" placeholder="请填写政治面貌"
left-icon="label-o"
:rules="[{ required:true, message: '请填写政治面貌' }]"></van-field>
<van-field label="学历" v-model="formData.education" readonly clickable
left-icon="coupon-o"
@click="educationPicker = true" placeholder="请选择学历"
:rules="[{ required:true, message: '请选择学历' }]"></van-field>
<van-popup v-model="educationPicker" position="bottom">
<van-picker
show-toolbar
:columns="educationColumns"
@confirm="(v)=>{formData.education = v;educationPicker = false}"
@cancel="educationPicker = false"
></van-picker>
</van-popup>
<van-field label="所属单位" value="${@shiro.getPrincipalProperty('unit').getName()}"
left-icon="cluster-o"
readonly></van-field>
<!-- <van-field label="学位" v-model="formData.academicDegree" readonly clickable-->
<!-- left-icon="comment-o"-->
<!-- @click="academicDegreePicker = true" placeholder="请选择学位"-->
<!-- :rules="[{ required:true, message: '请选择学位' }]"></van-field>-->
<!-- <van-popup v-model="academicDegreePicker" position="bottom">-->
<!-- <van-picker-->
<!-- show-toolbar-->
<!-- :columns="academicDegreeColumns"-->
<!-- @confirm="(v)=>{formData.academicDegree = v;academicDegreePicker = false}"-->
<!-- @cancel="academicDegreePicker = false"-->
<!-- ></van-picker>-->
<van-field label="职务" v-model="formData.position" placeholder="请填写职务"
left-icon="star-o"
:rules="[{ required:true, message: '请填写职务' }]"></van-field>
<van-field label="籍贯" v-model="formData.hometown" placeholder="请填写籍贯"
left-icon="home-o"
:rules="[{ required:true, message: '请填写籍贯' }]"></van-field>
<!-- <van-field label="身份证" v-model="formData.idcard" placeholder="请填写身份证号码"-->
<!-- left-icon="idcard"-->
<!-- :rules="[{ required:true, message: '请填写身份证号码' }]"></van-field>-->
<!-- <van-field label="联系电话" v-model="formData.mobile" type="tel" placeholder="请填写联系电话"-->
<!-- left-icon="phone-o"-->
<!-- :rules="[{ required:true, message: '请填写联系电话' }]"></van-field>-->
</van-cell-group>
<!-- <van-cell-group inset class="mt10">-->
<!-- <van-field label="户口所在地" v-model="formData.registeredResidence" placeholder="请填写户口所在地"-->
<!-- left-icon="wap-home-o"-->
<!-- :rules="[{ required:true, message: '请填写户口所在地' }]"></van-field>-->
<!--&lt;!&ndash; <van-field label="现居住地" v-model="formData.homeAddress" placeholder="请填写现居住地"&ndash;&gt;-->
<!--&lt;!&ndash; left-icon="home-o"&ndash;&gt;-->
<!--&lt;!&ndash; :rules="[{ required:true, message: '请填写现居住地' }]"></van-field>&ndash;&gt;-->
<!-- <van-field label="工作单位" value="${@shiro.getPrincipalProperty('unit').getName()}"-->
<!-- left-icon="cluster-o"-->
<!-- readonly></van-field>-->
<!-- <van-field label="职务" v-model="formData.position" placeholder="请填写职务"-->
<!-- left-icon="debit-pay"-->
<!-- :rules="[{ required:true, message: '请填写职务' }]"></van-field>-->
<!-- </van-cell-group>-->
<van-cell-group inset class="mt10 up_down">
<div class="van-cell">
<div style="display: flex">
<div class="van-field__left-icon">
<i class="van-icon van-icon-notes-o"></i>
</div>
<div class="van-cell__title van-field__label">
<span>个人工作简历</span>
</div>
</div>
<van-divider></van-divider>
<van-field
v-model="formData.vita"
:rules="[{ required:true, message: '请填写个人工作简历' }]"
style="padding: 0"
input-align="left"
autosize
rows="4"
autosize
type="textarea"
maxlength="200"
placeholder="请输入个人工作简历"
show-word-limit
></van-field>
</div>
</van-cell-group>
<van-cell-group inset class="mt10 up_down">
<div class="van-cell">
<div class="van-cell__title van-field__label" style="display: flex;justify-content: space-between">
<div style="display: flex;">
<div class="van-field__left-icon">
<i class="van-icon van-icon-friends-o"></i>
</div>
<div class="van-cell__title van-field__label" style="width: auto">
<span>家庭主要成员及联系方式</span>
</div>
</div>
<van-button v-if="family && family.length>0 && family.length<3" style="width: 40px"
icon="plus" type="primary" round size="mini"
@click="family.push({})"
native-type="button"></van-button>
</div>
<van-divider></van-divider>
<template v-if="family && family.length>0">
<div v-for="o,i in family" class="mt5">
<div style="font-weight: 700;display: flex;justify-content: space-between">
<span>成员{{toChinesNum(i+1)}}</span>
<van-button style="width: 40px"
icon="minus" type="danger" round size="mini"
@click="family.splice(i,1)"
native-type="button"></van-button>
</div>
<van-field label="关系" v-model="o.relation" placeholder="请填写与本人关系"
:rules="[{ required:true, message: '请填写与本人关系' }]"></van-field>
<van-field label="姓名" v-model="o.name" placeholder="请填写姓名"
:rules="[{ required:true, message: '请填写姓名' }]"></van-field>
<van-field label="联系方式" v-model="o.mobile" type="tel" placeholder="请填写联系方式"
:rules="[{ required:true, message: '请填写联系方式' }]"></van-field>
</div>
</template>
<template v-else>
<div style="padding: 50px;text-align: center">
<van-button style="width: 50px"
icon="plus" type="primary" round size="mini"
@click="family.push({})"
native-type="button"></van-button>
</div>
</template>
</div>
</van-cell-group>
<!-- <van-cell-group inset class="mt10 up_down">-->
<!-- <div class="van-cell">-->
<!-- <div style="display: flex">-->
<!-- <div class="van-field__left-icon">-->
<!-- <i class="van-icon van-icon-award-o"></i>-->
<!-- </div>-->
<!-- <div class="van-cell__title van-field__label">-->
<!-- <span>特长</span>-->
<!-- </div>-->
<!-- </div>-->
<!-- <van-divider></van-divider>-->
<!-- <van-field-->
<!-- v-model="formData.specialSkill"-->
<!-- :rules="[{ required:true, message: '请填写个人特长' }]"-->
<!-- style="padding: 0"-->
<!-- input-align="left"-->
<!-- autosize-->
<!-- rows="4"-->
<!-- autosize-->
<!-- type="textarea"-->
<!-- maxlength="200"-->
<!-- placeholder="请填写个人特长"-->
<!-- show-word-limit-->
<!-- ></van-field>-->
<!-- </div>-->
<!-- </van-cell-group>-->
<div style="margin: 20px 20px 10px;">
<van-button native-type="submit" style="border-radius: 10px" block type="info" :color="themeColor">
提 交
</van-button>
</div>
</van-form>
</div>
<script>
const political = []
var vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
sexPicker: false,
applyRecords: [],
formData: {},
nationPicker: false,
educationPicker: false,
academicDegreePicker: false,
family: [],
educationColumns: [
'博士研究生', '硕士研究生', '本科', '专科', '中专中技', '高中', '初中以下'
],
academicDegreeColumns: [
'学士', '硕士', '博士'
],
nationColumns: [],
memberStatusColumn: {
MEMBER: 1,
APPLYING: 2,
NOTMEBMER: 3,
},
memberStatus: null,
birthdayPicker:false,
birthday:null
}
},
methods: {
async doSubmit() {
const formData = clone(this.formData)
formData.family = JSON.stringify(this.family)
const resp = await $.post("/platform/member/apply/submit/doEdit", formData)
const data = await $.get("/platform/member/apply/submit/doApply", {memberStates: 1})
setTimeout(() => {
this.$toast.success('提交成功');
setTimeout(() => {
location.replace('/mobile/index')
}, 300)
}, 500)
},
addFamily() {
this.family.push({})
},
onBirthdayConfirm(time) {
this.formData.birthday = moment(time).format('YYYY-MM-DD');
this.birthdayPicker = false;
},
},
async created() {
// this.$set(this.formData, "isMember", "${@shiro.getPrincipalProperty('member')}")
// this.$set(this.formData, "sex", "${@shiro.getPrincipalProperty('sex')}")
// this.$set(this.formData, "position", "${@shiro.getPrincipalProperty('position')}")
// this.$set(this.formData, "nation", "${@shiro.getPrincipalProperty('nation')}")
// this.$set(this.formData, "mobile", "${@shiro.getPrincipalProperty('mobile')}")
// this.$set(this.formData, "political", "${@shiro.getPrincipalProperty('political')}")
// this.$set(this.formData, "id", "${@shiro.getPrincipalProperty('id')}")
// this.$set(this.formData, "education", "${@shiro.getPrincipalProperty('education')}")
// this.$set(this.formData, "academicDegree", "${@shiro.getPrincipalProperty('academicDegree')}")
// this.$set(this.formData, "idcard", "${@shiro.getPrincipalProperty('idcard')}")
// this.$set(this.formData, "registeredResidence", "${@shiro.getPrincipalProperty('registeredResidence')}")
// this.$set(this.formData, "homeAddress", "${@shiro.getPrincipalProperty('homeAddress')}")
// this.$set(this.formData, "vita", "${@shiro.getPrincipalProperty('vita')}")
// this.$set(this.formData, "specialSkill", "${@shiro.getPrincipalProperty('specialSkill')}")
// this.$set(this.formData, "birthPlace", "${@shiro.getPrincipalProperty('birthPlace')}")
// const {data} = await $.get("/mobile/member/getAllNation");
/* this.nationColumns = data.map(v => {
return v.mzmc
}) */
const resp = await $.get("/platform/member/apply/submit/unionInfo")
if(resp.code === 0){
this.formData = resp.data
this.$set(this.formData, "family", resp.data.family ? JSON.parse(resp.data.family) : [])
}
this.applyRecords = resp.data.records
if (resp.data.member === 1) {
this.memberStatus = this.memberStatusColumn.MEMBER
} else {
if (resp.data.record != null) {
this.memberStatus = this.memberStatusColumn.APPLYING
} else {
this.memberStatus = this.memberStatusColumn.NOTMEBMER
}
}
this.nationColumns = nation
}
})
</script>
<style>
.up_down > .van-cell {
flex-flow: column;
}
.up_down > .van-cell > .van-field__label {
width: 100%;
}
.van-cell, .van-picker button, .submit .van-button--normal {
font-size: 16px;
}
.van-divider {
margin: 10px 0;
}
</style>
<!--#
}
#-->
@@ -1,65 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<style>
</style>
<div id="app" v-cloak>
<m-page-loading v-if="mLoading"></m-page-loading>
<van-nav-bar title="会员申请" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
<div style="padding: 16px 10px;">
<div v-for="o in applyRecords" class="list-card" @click="view(o)">
<van-cell-group inset>
<van-cell :border="false">
<div style="display: flex;align-items: center">
<van-icon name="records" :color="themeColor" size="25"></van-icon>
<span :style="{color:themeColor}" style="font-size: 16px">会员申请</span>
</div>
</van-cell>
<van-cell :border="false" title="申&ensp;请&ensp;人">{{o.username}}</van-cell>
<van-cell :border="false" title="申请时间">{{o.applyTime|date}}</van-cell>
<van-cell :border="false" title="所在工会">{{o.unionname}}</van-cell>
<van-cell :border="false" title="审核状态">
<span :style="'color:'+o.stateColor">{{ o.stateName }}</span>
</van-cell>
</van-cell-group>
</div>
</div>
<van-empty v-if="mLoading==false&&applyRecords.length==0" class="custom-image" image="/none.svg"
description="暂无数据">
</van-empty>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
applyRecords: []
}
},
methods: {
async view(o) {
const {id, userId} = o
window.location.href = '/mobile/member/detail?record_id=' + id + '&user_id=' + userId
}
},
async created() {
this.mLoading = true
setTimeout(async () => {
const resp = await $.get("/platform/member/apply/submit/unionInfo")
this.applyRecords = resp.data.records
this.mLoading = false
}, 600)
}
})
</script>
<!--#
}
#-->
@@ -1,130 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<style>
</style>
<div id="app" v-cloak>
<m-page-loading v-if="mLoading"></m-page-loading>
<van-nav-bar title="会员审核" left-arrow placeholder fixed
@click-left="history.back()"></van-nav-bar>
<div class="search-fixed">
<van-dropdown-menu active-color="#1989fa">
<van-dropdown-item v-model="pageForm.year" @change="yearChange"
:options="yearList"></van-dropdown-item>
<van-dropdown-item v-model="pageForm.isAudit" @change="yearChange"
:options="auditList"></van-dropdown-item>
</van-dropdown-menu>
</div>
<div style="margin: 70px auto 0">
<van-list
v-model="loading"
:finished="finished"
:finished-text="tableData.length>0?'没有更多了':''"
@load="onLoad">
<div v-for="o in tableData" class="list-card" @click="openView(o)">
<van-cell-group inset>
<van-cell :border="false" title="申&ensp;请&ensp;人:">
{{o.username}}{{o.loginname}}
</van-cell>
<van-cell :border="false" title="申请时间:">{{o.applyTime|date}}</van-cell>
<van-cell :border="false" title="所在工会:">{{o.unionname}}</van-cell>
<van-cell :border="false" title="人员类型:">{{o.personType}}</van-cell>
<van-cell :border="false" title="审核状态">
<span :style="'color:'+o.stateColor">{{ o.stateName }}</span>
</van-cell>
</van-cell-group>
</div>
</van-list>
<van-empty v-if="mLoading==false&&tableData.length==0" class="custom-image"
image="/none.svg"
description="暂无数据">
</van-empty>
</div>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
mLoading: false,
yearList: [],
auditList: [
{text: '未审核', value: false},
{text: '已审核', value: true},
],
handle: true,
pageForm: {
year: new Date().getFullYear(),
isAudit: false,
},
}
},
components: {
'member-menber-info': httpVueLoader('/components/mobile/member/MobileMemberInfo.vue?v=' + new Date().getTime()),
},
methods: {
yearChange() {
this.pageForm.pageNumber = 1
this.tableData = []
this.finished = false
this.onLoad()
},
onLoad() {
this.loading = true
$.post(loc() + '/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
})
},
/* pageData() {
this.mLoading = true
setTimeout(async () => {
$.get(loc() + '/pageData', this.pageForm, (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.mLoading = false
}, 600)
},*/
openView(o) {
window.location.href = '/mobile/member/audit/findOne?stateId=' + o.stateId + '&record_id=' + o.id + '&user_id=' + o.userId
},
},
async created() {
let nowYear = new Date().getFullYear()
for (let i = nowYear; i >= nowYear - 9; i--) {
this.yearList.push({text: i, value: i})
}
}
})
</script>
<!--#
}
#-->
@@ -1,208 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<style>
.chart-card {
background-color: #FFFFFF;
margin: 10px;
}
.flex-box {
background-color: #FFFFFF;
}
</style>
<div id="app" v-clock>
<van-row gutter="20" style="margin: 0 10px 10px 10px;padding-top: 20px;">
<van-col span="8">
<div class="flex-box" style="justify-content: space-between;padding: 15px">
<svg t="1634176912094" class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="712" width="32" height="32">
<path d="M327.6 682.7c-31.8-31.5-49.7-74.4-49.7-119.3V385.3c0-33.5 9.8-64.7 26.8-91-7.8-1.9-15.7-2.9-23.7-2.9H154.3c-56.6 0-102.9 46.9-102.9 104v163.7c0 38.8 21.5 74.4 55.7 92.3v319.9h83l30.6-202.5 30.6 202.5h76.4V682.7z m304.1-18.5c36.3-18.8 61.2-57.1 61.2-100.8V385.3c0-62.2-50.4-113.2-112-113.2h-138c-61.6 0-112 50.9-112 113.2v178.1c0 43.6 24.7 81.6 60.6 100.5V1012H482l33.3-220.3 33.3 220.3h83.1V664.2zM515.1 12c65.2 0 118 53.4 118 119.3 0 65.8-52.8 119.3-118 119.3s-118-53.4-118-119.3c0-66.1 52.8-119.3 118-119.3z m182.2 670.7v288.8h76.4L804.3 769l30.6 202.5H918V651.7c33-17.4 55.6-52.3 55.6-92.3V395.6c0-57.2-46.4-104-103-104H744.1c-8.2 0-16.2 1-23.7 2.9 17.6 27.1 26.9 58.7 26.8 91v178.1c0 45.4-18.5 88.2-49.9 119.1zM804.6 52.4c-60 0-108.5 49-108.5 109.5s48.5 109.6 108.5 109.6c59.8 0 108.3-49 108.3-109.6 0-60.6-48.5-109.5-108.3-109.5z m-584.1 0c59.8 0 108.5 49 108.5 109.5s-48.5 109.6-108.5 109.6c-59.9 0-108.3-49-108.3-109.6-0.1-60.6 48.4-109.5 108.3-109.5z"
fill="#e0620d" p-id="713"></path>
</svg>
<div class="text-center" style="font-size: 11px">
总会员
<span>
{{memberNumberMap.totalCount}}
</span>
</div>
</div>
</van-col>
<van-col span="8">
<div class="flex-box" style="justify-content: space-between;padding: 15px">
<svg t="1634178080836" class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="8757" width="32" height="32">
<path d="M579.2 646.5H445.1c-14.4 0-26.2-11.8-26.2-26.2V436.7c0-14.4 11.8-26.2 26.2-26.2h134.1c14.4 0 26.2 11.8 26.2 26.2v183.6c0 14.4-11.8 26.2-26.2 26.2z"
fill="#F7C9A4" p-id="8758"></path>
<path d="M840.7 959.1V779c0-83.9-147.8-139.5-328.4-139.5-180.6 0-328.4 55.6-328.4 139.5v180.1h656.8z"
fill="#E8E8DD" p-id="8759"></path>
<path d="M381.5 420.5h-53.7c-26.5 0-48.1-21.7-48.1-48.1 0-26.5 21.7-48.1 48.1-48.1h53.7c26.5 0 48.1 21.7 48.1 48.1 0 26.4-21.7 48.1-48.1 48.1zM687 415.9h-53.7c-26.5 0-48.1-21.7-48.1-48.1 0-26.5 21.7-48.1 48.1-48.1H687c26.5 0 48.1 21.7 48.1 48.1 0.1 26.4-21.6 48.1-48.1 48.1z"
fill="#F7C9A4" p-id="8760"></path>
<path d="M800.7 959.1V779c0-83.9-81.2-139.5-288.4-139.5-202.6 0-288.4 55.6-288.4 139.5v180.1h576.8z"
fill="#F2F2F1" p-id="8761"></path>
<path d="M512.1 549.1c-95.4 0-173.5-55.2-173.5-156.2V258.7c0-101 78.1-183.7 173.5-183.7s173.5 82.7 173.5 183.8v134.1c0 101-78.1 156.2-173.5 156.2z"
fill="#FFD9B6" p-id="8762"></path>
<path d="M409 353.3a19.2 23.8 0 1 0 38.4 0 19.2 23.8 0 1 0-38.4 0Z" fill="#694B4B"
p-id="8763"></path>
<path d="M576 353.3a19.2 23.8 0 1 0 38.4 0 19.2 23.8 0 1 0-38.4 0Z" fill="#694B4B"
p-id="8764"></path>
<path d="M339.6 959.1v-112c0-7.7-6.3-14-14-14s-14 6.3-14 14V959h28zM711.3 959.1v-112c0-7.7-6.3-14-14-14s-14 6.3-14 14V959h28z"
fill="#E5E5DB" p-id="8765"></path>
<path d="M577.8 649.5H447.3c-8.6 12.2-8.6 32.2 0 44.5l49.5 70.2c8.6 12.2 22.8 12.2 31.4 0l49.5-70.2c8.7-12.3 8.7-32.3 0.1-44.5z"
fill="#0AC2FD" p-id="8766"></path>
<path d="M700.4 82.6h-243c-28.9 0-54 19.7-65.8 48.1-37.5 3.3-63.4 40-63.4 84.2l11.4 119.4H397c2.6 0 4.8-2.2 4.8-4.9v-65.1c0-3.1 2.2-5.7 4.9-5.7l212 20.8c2.7 0 4.9 2.6 4.9 5.7v40.5c0 3.7 2.9 6.7 6.5 6.7l45.4 2h7.1c19.4 0 36.3-230.3 36.3-230.3 1.3-12.5-8.3-21.4-18.5-21.4z"
fill="#F7CCA5" p-id="8767"></path>
<path d="M712.1 62.6h-254c-29.3 0-54.7 19.3-66.6 47.2-38 3.3-68.1 39.1-68.1 82.4l14 117.3H379c2.7 0 4.8-2.2 4.8-4.8v-63.8c0-3.1 2.2-5.6 5-5.6l246.8 22.3c2.7 0 5 2.5 5 5.6V303c0 3.6 2.9 6.5 6.6 6.5h46.1c12.3 0 37.6-225.9 37.6-225.9 1.1-12.3-8.5-21-18.8-21z"
fill="#694B4B" p-id="8768"></path>
<path d="M511.3 648.5l-36.5 79.4c-6.5 10.3-13.6 21.2-24.1 11.7l-103.4-75.7c-7.9-7.9-15.9-13.9-12.8-23.6l32.3-54.2c3.1-9.7 14-15 24.1-11.7L498.5 625c10.2 3.2 15.9 13.8 12.8 23.5z"
fill="#E8E8DD" p-id="8769"></path>
<path d="M513.2 647.9l35.9 79.6c6.4 10.4 13.4 21.3 24.1 11.9l103.9-75c7.9-7.8 16-13.8 12.9-23.5l-21-51.4c-3.1-9.7-13.9-15.1-24.1-11.9L526 624.3c-10 3.3-15.9 13.9-12.8 23.6z"
fill="#E8E8DD" p-id="8770"></path>
<path d="M549.3 959.7h-73.9c-7.7 0-14-3-14-6.7l30-206c0-3.7 6.3-6.7 14-6.7h13.9c7.7 0 14 3 14 6.7l30 206c0 3.7-6.3 6.7-14 6.7z"
fill="#0AC2FD" p-id="8771"></path>
<path d="M528.3 762.3h-33c-3 0-5.5-2.5-5.5-5.5s2.5-5.5 5.5-5.5h33c3 0 5.5 2.5 5.5 5.5s-2.5 5.5-5.5 5.5z"
fill="#079FDB" p-id="8772"></path>
</svg>
<div class="text-center" style="font-size: 11px">
男性会员
<span>
{{memberNumberMap.maleCount}}
</span>
</div>
</div>
</van-col>
<van-col span="8">
<div class="flex-box" style="justify-content: space-between;padding: 15px">
<svg t="1634178064546" class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="8382" width="32" height="32">
<path d="M668.501333 761.685333h-2.048a97.621333 97.621333 0 0 1-97.621333-97.621333v-43.52h-109.397333v43.52a97.621333 97.621333 0 0 1-97.621334 97.621333h-6.314666a136.533333 136.533333 0 0 0-136.533334 136.533334v29.013333h586.069334v-29.013333a136.533333 136.533333 0 0 0-136.533334-136.533334z"
fill="#FFE3BA" p-id="8383"></path>
<path d="M427.690667 735.914667a180.224 180.224 0 0 0 170.666666-1.365334 96.938667 96.938667 0 0 1-30.208-70.485333v-43.52h-108.714666v43.52a96.938667 96.938667 0 0 1-31.744 71.850667zM805.034667 870.4a232.106667 232.106667 0 0 1-93.525334 19.626667H312.490667A232.106667 232.106667 0 0 1 218.965333 870.4v56.149333h586.069334V870.4z"
fill="#FFC670" p-id="8384"></path>
<path d="M512 108.032a254.805333 254.805333 0 0 1 254.805333 254.976v265.898667a38.229333 38.229333 0 0 1-38.229333 38.229333H295.424a38.229333 38.229333 0 0 1-38.229333-38.229333V363.008A254.805333 254.805333 0 0 1 512 108.032z"
fill="#FFC670" p-id="8385"></path>
<path d="M512 552.106667a529.066667 529.066667 0 0 1-254.805333-63.488v140.288a38.229333 38.229333 0 0 0 38.229333 38.229333h433.152a38.229333 38.229333 0 0 0 38.229333-38.229333v-140.288A529.066667 529.066667 0 0 1 512 552.106667z"
fill="#FFB038" p-id="8386"></path>
<path d="M694.101333 304.64v221.866667A182.101333 182.101333 0 0 1 512 708.608a182.101333 182.101333 0 0 1-182.101333-182.101333v-149.674667a131.072 131.072 0 0 0 184.32-119.466667 131.242667 131.242667 0 0 0 113.834666 65.877334 129.706667 129.706667 0 0 0 66.048-17.92z"
fill="#FFF6E6" p-id="8387"></path>
<path d="M638.122667 321.706667v204.8a182.101333 182.101333 0 0 1-153.6 179.712 189.610667 189.610667 0 0 0 27.989333 2.389333 182.101333 182.101333 0 0 0 181.589333-182.101333v-221.866667a130.389333 130.389333 0 0 1-55.978666 17.066667z"
fill="#FFE3BA" p-id="8388"></path>
<path d="M666.453333 750.933333H648.533333c0 73.557333-59.562667 116.053333-133.12 116.053334h-7.850666c-73.557333 0-133.12-42.496-133.12-116.053334H358.4a136.533333 136.533333 0 0 0-58.538667 13.141334v163.328h426.666667v-163.498667a136.533333 136.533333 0 0 0-60.074667-12.970667z"
fill="#F6716F" p-id="8389"></path>
<path d="M724.992 870.4A232.106667 232.106667 0 0 1 631.466667 890.709333H392.533333A232.106667 232.106667 0 0 1 299.008 870.4v56.149333h426.666667V870.4z"
fill="#F0504D" p-id="8390"></path>
<path d="M593.92 107.52a36.864 36.864 0 0 0 5.973333 57.002667l69.12 45.397333 27.306667-27.306667-45.397333-69.290666a37.034667 37.034667 0 0 0-57.002667-5.802667zM770.901333 285.354667a36.864 36.864 0 0 0-5.802666-57.002667l-68.266667-45.397333-27.306667 27.306666 45.397334 69.12a36.693333 36.693333 0 0 0 55.978666 5.973334z"
fill="#F6716F" p-id="8391"></path>
<path d="M631.466667 201.250133l55.381333-55.3984 46.08 46.097067-55.381333 55.3984z" fill="#FCFEFF"
p-id="8392"></path>
<path d="M877.397333 910.165333h-55.296v-11.946666a153.6 153.6 0 0 0-80.042666-134.485334 17.066667 17.066667 0 0 0-9.898667-15.36 153.6 153.6 0 0 0-65.706667-14.506666H648.533333a17.066667 17.066667 0 0 0-12.117333 5.12A81.92 81.92 0 0 1 597.333333 705.877333a212.992 212.992 0 0 0 35.328-21.674666h95.402667a55.466667 55.466667 0 0 0 55.296-55.296V363.008a277.504 277.504 0 0 0-6.826667-60.757333c2.048-1.536 4.096-3.072 5.973334-4.778667a54.101333 54.101333 0 0 0-8.533334-83.456l-25.429333-17.066667a17.066667 17.066667 0 0 0-4.096-17.066666L699.733333 133.802667a17.066667 17.066667 0 0 0-17.066666-4.096l-17.066667-25.6a53.930667 53.930667 0 0 0-83.285333-8.704 38.058667 38.058667 0 0 0-3.242667 4.096 271.189333 271.189333 0 0 0-338.944 263.509333v265.898667a55.466667 55.466667 0 0 0 55.296 55.296h95.402667a199.509333 199.509333 0 0 0 38.570666 23.210666 80.042667 80.042667 0 0 1-41.472 32.597334A17.066667 17.066667 0 0 0 375.466667 733.866667h-17.066667a153.6 153.6 0 0 0-65.706667 14.677333 17.066667 17.066667 0 0 0-9.898666 15.530667v2.218666a145.408 145.408 0 0 0-80.042667 129.365334v14.677333H146.602667a17.066667 17.066667 0 0 0 0 34.133333h730.794666a17.066667 17.066667 0 0 0 0-34.133333z m-595.456 0h-47.786666v-14.677333a112.64 112.64 0 0 1 47.786666-91.818667z m473.770667-667.477333a18.944 18.944 0 0 1 8.874667 14.506667 20.48 20.48 0 0 1-21.674667 21.845333 20.309333 20.309333 0 0 1-14.677333-8.874667l-19.456-29.696 17.066666-17.066666z m-68.266667-72.533333l22.016 22.016-31.914666 31.232-22.016-22.016z m-64.682666-56.32a20.650667 20.650667 0 0 1 14.677333 8.874666l19.456 29.696-17.066667 17.066667L609.28 150.186667a18.944 18.944 0 0 1-8.874667-13.653334 20.309333 20.309333 0 0 1 21.674667-22.698666zM295.424 650.069333a21.162667 21.162667 0 0 1-21.162667-21.162666V363.008A238.933333 238.933333 0 0 1 512 125.098667a242.346667 242.346667 0 0 1 54.442667 6.485333 55.125333 55.125333 0 0 0 0 7.509333 53.418667 53.418667 0 0 0 24.064 39.594667l25.088 17.066667a17.066667 17.066667 0 0 0 3.754666 18.090666L665.6 259.584a17.066667 17.066667 0 0 0 17.066667 3.925333l17.066666 25.258667a53.248 53.248 0 0 0 39.594667 24.064 25.6 25.6 0 0 0 5.12 0 233.984 233.984 0 0 1 5.290667 50.176v265.898667a21.162667 21.162667 0 0 1-21.162667 21.162666h-60.586667a198.656 198.656 0 0 0 43.178667-123.562666V313.002667a17.066667 17.066667 0 0 0-8.704-14.677334 17.066667 17.066667 0 0 0-17.066667 0A114.005333 114.005333 0 0 1 529.066667 256a17.066667 17.066667 0 0 0-31.914667 8.874667 114.176 114.176 0 0 1-160.256 104.448 17.066667 17.066667 0 0 0-24.064 15.530666v141.141334a198.656 198.656 0 0 0 43.178667 123.562666z m51.2-123.562666V409.6a150.698667 150.698667 0 0 0 36.010667 4.437333A148.138667 148.138667 0 0 0 525.312 307.2a148.821333 148.821333 0 0 0 102.4 41.301333 144.896 144.896 0 0 0 48.981333-8.362666v187.733333a165.034667 165.034667 0 0 1-330.069333 0z m115.2 192.682666a199.338667 199.338667 0 0 0 49.834667 6.485334 191.829333 191.829333 0 0 0 53.589333-7.68 115.712 115.712 0 0 0 64.170667 54.613333c-11.093333 53.077333-62.634667 77.141333-113.834667 77.141333h-7.850667c-51.2 0-102.4-23.722667-113.493333-75.946666a115.029333 115.029333 0 0 0 67.925333-54.613334z m245.76 190.976h-392.533333v-134.826666A119.466667 119.466667 0 0 1 358.4 768c8.362667 68.266667 67.242667 116.053333 149.162667 116.053333h7.850666C597.333333 883.882667 656.725333 836.266667 665.6 768h1.365333a119.466667 119.466667 0 0 1 41.472 7.509333z m80.042667 0h-45.568v-105.813333a119.466667 119.466667 0 0 1 45.909333 93.866667z"
fill="#3D3D63" p-id="8393"></path>
<path d="M587.776 586.581333a17.066667 17.066667 0 0 0-31.402667-13.824 48.298667 48.298667 0 0 1-88.746666 0 17.066667 17.066667 0 0 0-31.402667 13.824 82.773333 82.773333 0 0 0 151.552 0zM453.290667 454.826667v-19.797334a17.066667 17.066667 0 0 0-34.133334 0v19.797334a17.066667 17.066667 0 0 0 34.133334 0zM587.776 471.893333a17.066667 17.066667 0 0 0 17.066667-17.066666v-19.797334a17.066667 17.066667 0 1 0-34.133334 0v19.797334a17.066667 17.066667 0 0 0 17.066667 17.066666z"
fill="#3D3D63" p-id="8394"></path>
</svg>
<div class="text-center" style="font-size: 11px">
女性会员
<span>
{{memberNumberMap.femaleCount}}
</span>
</div>
</div>
</van-col>
</van-row>
<div class="chart-card">
<div class="van-sidebar-item van-sidebar-item--select ml15 p10">
人员类型
</div>
<canvas id="personType" style="width: 100%" height="350"></canvas>
</div>
<div class="chart-card">
<div class="van-sidebar-item van-sidebar-item--select ml15 p10">
增长趋势
</div>
<canvas id="memberTrend" style="width: 100%" height="350"></canvas>
</div>
</div>
<script src="https://gw.alipayobjects.com/os/lib/antv/f2/3.7.0/dist/f2.min.js"></script>
<script>
var vue = new Vue({
el: '#app',
data() {
return {
memberNumberMap: {}
}
},
methods: {
async getMemberNumber() {
const {data} = await $.get('/mobile/member/dashBoard/memberNumber')
this.memberNumberMap = data
},
async growthTrend() {
const {data} = await $.get('/mobile/member/dashBoard/growthTrend')
const chart = new F2.Chart({
id: 'memberTrend',
pixelRatio: window.devicePixelRatio
})
chart.source(data)
chart.scale({
label: {
range: [ 0, 1 ]
},
value: {
tickCount: 5,
min: 0
}
})
// chart.axis('label', {
// label: {
// rotate: -1,
// textAlign: 'end',
// textBaseline: 'middle'
// }
// })
chart.area().position('label*value').color('l(90) 0:#1890FF 1:#f7f7f7').shape('smooth')
chart.line().position('label*value').color('l(90) 0:#1890FF 1:#f7f7f7').shape('smooth')
chart.render()
},
async getPersonTypeMember() {
const {data} = await $.get('/platform/member/inquire/board/personTypeMember')
const chart = new F2.Chart({
id: 'personType',
pixelRatio: window.devicePixelRatio
})
chart.source(data)
chart.interval().position('label*value').color('label')
chart.axis('label', {
label: {
rotate: -1,
textAlign: 'end',
textBaseline: 'middle'
}
})
chart.render();
}
},
mounted() {
this.getPersonTypeMember()
this.getMemberNumber()
this.growthTrend()
}
})
</script>
<!--#
}
#-->
@@ -1,49 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<div id="app" v-cloak>
<m-page-loading v-if="mLoading"></m-page-loading>
<!-- <van-nav-bar title="详细信息" left-arrow left-text="返回" placeholder fixed @click-left="location.href = document.referrer"></van-nav-bar>-->
<van-nav-bar title="详细信息" left-arrow placeholder fixed @click-left="history.back()"></van-nav-bar>
<mobile-member-info ref="minfo"></mobile-member-info>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
unionAudit: {},
schoolAudit: {},
personTypes: ["事业编制", "事业编制人事代理", "非事业编制人事代理", "校聘人才派遣", "人才/劳务派遣(天目湖校区)", "溧阳事业编制(天目湖校区)"],
}
},
components: {
'mobile-member-info': httpVueLoader('/components/mobile/member/MobileMemberInfo.vue?v=' + new Date().getTime()),
},
methods: {},
async created() {
this.mLoading = true
const record_id = GetQueryString("record_id")
const user_id = GetQueryString("user_id")
const userId = "${@shiro.getPrincipalProperty('id')}"
const personType = "${@shiro.getPrincipalProperty('personType')}"
setTimeout(() => {
this.$refs.minfo.getUserInfo(user_id ? user_id : userId)
this.$refs.minfo.getAuditInfo(record_id)
}, 500)
this.mLoading = false
/* if (personType === "" || !this.personTypes.includes(personType)) {
console.log(11)
this.$toast.fail('您不具备申请会员的条件,具体事宜请咨询校工会');
}*/
}
})
</script>
<!--#
}
#-->
@@ -1,376 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<div id="app" v-cloak>
<van-nav-bar @click-left="history.back()" fixed left-arrow placeholder
title="修改个人信息"></van-nav-bar>
<van-form :show-error-message="true" @submit="doSubmit" class="mt5"
input-align="right"
ref="form"
scroll-to-error
validate-trigger="onSubmit">
<van-cell-group inset>
<van-field label="工号" left-icon="contact"
readonly
value="${@shiro.getPrincipalProperty('loginname')}"></van-field>
<van-field label="姓名" left-icon="contact"
readonly
value="${@shiro.getPrincipalProperty('username')}"></van-field>
<van-field clickable label="性别"
left-icon="ellipsis"
placeholder="请选择性别"
readonly
v-model="formData.sex"></van-field>
<van-popup position="bottom" v-model="sexPicker">
<van-picker
:columns="['男','女']"
@cancel="sexPicker = false"
@confirm="(val)=>{this.formData.sex = val;sexPicker=false}"
show-toolbar
></van-picker>
</van-popup>
<van-field @click="marriagePicker=true" label="婚否" left-icon="ellipsis"
readonly placeholder="请选择婚否" v-model="formData.marriage"></van-field>
<van-popup position="bottom" v-model="marriagePicker">
<van-picker
:columns="['已婚','未婚']"
@cancel="marriagePicker = false"
@confirm="(val)=>{formData.marriage = val;marriagePicker=false}"
show-toolbar
></van-picker>
</van-popup>
<!--临时屏蔽-->
<template v-if="false">
<van-field :rules="[{ required:true, message: '请选择民族' }]" clickable label="民族"
left-icon="bar-chart-o"
placeholder="请选择民族" readonly
v-model="formData.nation"></van-field>
<van-popup position="bottom" v-model="nationPicker">
<van-picker
:columns="nationColumns"
@cancel="nationPicker = false"
@confirm="(v)=>{formData.nation = v;nationPicker = false}"
show-toolbar
></van-picker>
</van-popup>
<van-field clickable
label="学历"
left-icon="coupon-o"
placeholder="请选择学历" readonly
v-model="formData.education"></van-field>
<van-popup position="bottom" v-model="educationPicker">
<van-picker
:columns="educationColumns"
@cancel="educationPicker = false"
@confirm="(v)=>{formData.education = v;educationPicker = false}"
show-toolbar
></van-picker>
</van-popup>
<van-field clickable
label="学位"
left-icon="comment-o"
placeholder="请选择学位" readonly
v-model="formData.academicDegree"></van-field>
<van-popup position="bottom" v-model="academicDegreePicker">
<van-picker
:columns="academicDegreeColumns"
@cancel="academicDegreePicker = false"
@confirm="(v)=>{formData.academicDegree = v;academicDegreePicker = false}"
show-toolbar
></van-picker>
</van-popup>
<van-field label="政治面貌" left-icon="label-o"
placeholder="请填写政治面貌" readonly
v-model="formData.political"></van-field>
</template>
<!-- <van-field @click="idTypePicker=true" label="有效证件类型" left-icon="label-o"-->
<!-- placeholder="请选择有效证件类型"-->
<!-- readonly v-model="formData.idType">-->
<!-- </van-field>-->
<van-popup position="bottom" v-model="idTypePicker">
<van-picker
:columns="idTypeColumns"
@cancel="idTypePicker = false"
@confirm="(v)=>{formData.idType = v;idTypePicker = false}"
show-toolbar
></van-picker>
</van-popup>
<van-field label="证件号"
left-icon="idcard"
placeholder="请填写身份证号码"
v-model="formData.idcard"></van-field>
<van-field label="联系电话"
left-icon="phone-o"
placeholder="请填写联系电话"
:rules="[{ pattern :/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, message: '请输入正确的手机号' }]"
type="tel"
v-model="formData.mobile"></van-field>
</van-cell-group>
<van-cell-group class="mt10" inset>
<!-- <van-field label="户口所在地" left-icon="wap-home-o"-->
<!-- placeholder="请填写户口所在地" readonly-->
<!-- v-model="formData.registeredResidence"></van-field>-->
<!-- <van-field label="现居住地" left-icon="home-o"-->
<!-- placeholder="请填写现居住地" readonly-->
<!-- v-model="formData.homeAddress"></van-field>-->
<van-field label="工作单位" left-icon="cluster-o"
readonly
value="${@shiro.getPrincipalProperty('unit').getName()}"></van-field>
<van-field label="分工会" left-icon="cluster-o"
readonly
value="${@shiro.getPrincipalProperty('union').getUnionname()}"></van-field>
<!-- <van-field label="职务" left-icon="debit-pay"-->
<!-- placeholder="请填写职务" readonly-->
<!-- v-model="formData.position"></van-field>-->
</van-cell-group>
<!-- <van-cell-group class="mt10 up_down" inset>
<div class="van-cell">
<div class="van-cell__title van-field__label" style="display: flex;justify-content: space-between">
<div style="display: flex;">
<div class="van-field__left-icon">
<i class="van-icon van-icon-friends-o"></i>
</div>
<div class="van-cell__title van-field__label" style="width: auto">
<span>家庭主要成员及联系方式</span>
</div>
</div>
<van-button @click="family.push({})" icon="plus"
native-type="button" round size="mini" style="width: 40px"
type="primary"
v-if="family && family.length>0 && family.length<3"></van-button>
</div>
<van-divider></van-divider>
<template v-if="family && family.length>0">
<div class="mt5" v-for="o,i in family">
<div style="font-weight: 700;display: flex;justify-content: space-between">
<span>成员{{toChinesNum(i+1)}}</span>
<van-button @click="family.splice(i,1)"
icon="minus" native-type="button" round size="mini"
style="width: 40px"
type="danger"></van-button>
</div>
<van-field :rules="[{ required:true, message: '请填写与本人关系' }]" label="关系" placeholder="请填写与本人关系"
v-model="o.relation"></van-field>
<van-field :rules="[{ required:true, message: '请填写姓名' }]" label="姓名" placeholder="请填写姓名"
v-model="o.name"></van-field>
<van-field :rules="[{ required:true, message: '请填写联系方式' }]" label="联系方式" placeholder="请填写联系方式"
type="tel"
v-model="o.mobile"></van-field>
</div>
</template>
<template v-else>
<div style="padding: 50px;text-align: center">
<van-button @click="family.push({})"
icon="plus" native-type="button" round size="mini"
style="width: 50px"
type="primary"></van-button>
</div>
</template>
</div>
</van-cell-group>-->
<!-- <van-cell-group class="mt10 up_down" inset>
<div class="van-cell">
<div style="display: flex">
<div class="van-field__left-icon">
<i class="van-icon van-icon-notes-o"></i>
</div>
<div class="van-cell__title van-field__label">
<span>个人工作简历</span>
</div>
</div>
<van-divider></van-divider>
<van-field
autosize
readonly
autosize
input-align="left"
maxlength="200"
placeholder="请输入个人工作简历"
rows="4"
show-word-limit
style="padding: 0"
type="textarea"
v-model="formData.vita"
></van-field>
</div>
</van-cell-group>
<van-cell-group class="mt10 up_down" inset>
<div class="van-cell">
<div style="display: flex">
<div class="van-field__left-icon">
<i class="van-icon van-icon-award-o"></i>
</div>
<div class="van-cell__title van-field__label">
<span>特长</span>
</div>
</div>
<van-divider></van-divider>
<van-field
autosize
autosize
readonly
input-align="left"
maxlength="200"
placeholder="请填写个人特长"
rows="4"
show-word-limit
style="padding: 0"
type="textarea"
v-model="formData.specialSkill"
></van-field>
</div>
</van-cell-group>-->
<div style="margin: 20px 20px 10px;">
<van-button :color="themeColor" block native-type="submit" style="border-radius: 10px"
type="info">
提 交
</van-button>
</div>
</van-form>
</div>
<script>
const political = []
var vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
sexPicker: false,
marriagePicker: false,
applyRecords: [],
formData: {},
nationPicker: false,
educationPicker: false,
academicDegreePicker: false,
family: [],
educationColumns: [
'博士研究生', '硕士研究生', '本科', '专科', '中专中技', '高中', '初中以下'
],
academicDegreeColumns: [
'学士', '硕士', '博士'
],
nationColumns: [],
memberStatusColumn: {
MEMBER: 1,
APPLYING: 2,
NOTMEBMER: 3,
},
memberStatus: null,
idTypePicker: false,
idTypeColumns: []
}
},
methods: {
async doSubmit() {
const confirm = await vant.Dialog.confirm({
title: '温馨提醒',
message: GetQueryString("taskId") ? '您的手机号信息已核对,确认提交?' : '您确定要提交吗?',
})
if (confirm === "confirm") {
const formData = clone(this.formData)
formData.taskId = GetQueryString("taskId") ? GetQueryString("taskId") : null
formData.family = JSON.stringify(this.family)
const resp = await $.post("/platform/member/apply/submit/doEdit", formData)
setTimeout(() => {
this.$toast.success('提交成功');
setTimeout(() => {
history.back()
// location.replace('/mobile/index')
}, 300)
}, 500)
}
},
addFamily() {
this.family.push({})
}
},
async created() {
const resp = await $.get("/platform/member/apply/submit/unionInfo")
this.applyRecords = resp.data.records
if (resp.data.member === 1) {
this.memberStatus = this.memberStatusColumn.MEMBER
} else {
if (resp.data.record != null) {
this.memberStatus = this.memberStatusColumn.APPLYING
} else {
this.memberStatus = this.memberStatusColumn.NOTMEBMER
}
}
this.$set(this.formData, "isMember", "${@shiro.getPrincipalProperty('member')}")
this.$set(this.formData, "sex", "${@shiro.getPrincipalProperty('sex')}")
this.$set(this.formData, "marriage", resp.data.marriage)
this.$set(this.formData, "position", "${@shiro.getPrincipalProperty('position')}")
this.$set(this.formData, "nation", "${@shiro.getPrincipalProperty('nation')}")
this.$set(this.formData, "mobile", resp.data.mobile)
this.$set(this.formData, "political", "${@shiro.getPrincipalProperty('political')}")
this.$set(this.formData, "id", "${@shiro.getPrincipalProperty('id')}")
this.$set(this.formData, "education", "${@shiro.getPrincipalProperty('education')}")
this.$set(this.formData, "academicDegree", "${@shiro.getPrincipalProperty('academicDegree')}")
this.$set(this.formData, "idcard", resp.data.idcard)
this.$set(this.formData, "idType", resp.data.idType)
this.$set(this.formData, "registeredResidence", "${@shiro.getPrincipalProperty('registeredResidence')}")
this.$set(this.formData, "homeAddress", "${@shiro.getPrincipalProperty('homeAddress')}")
this.$set(this.formData, "vita", "${@shiro.getPrincipalProperty('vita')}")
this.$set(this.formData, "specialSkill", "${@shiro.getPrincipalProperty('specialSkill')}")
const {data} = await $.get("/mobile/member/getAllNation");
this.nationColumns = data.map(v => {
return v.mzmc
})
const idTypeRespData = await getDictByCode("idType")
console.log(idTypeRespData)
this.idTypeColumns = idTypeRespData.map(v => {
return v.name
})
// console.log(idTypeColumns)
}
})
</script>
<style>
.up_down > .van-cell {
flex-flow: column;
}
.up_down > .van-cell > .van-field__label {
width: 100%;
}
.van-cell, .van-picker button, .submit .van-button--normal {
font-size: 16px;
}
.van-divider {
margin: 10px 0;
}
</style>
<!--#
}
#-->
@@ -1,228 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<style>
.van-dropdown-menu__bar {
border-top: none;
border-bottom: none;
}
.van-dropdown-menu__item {
flex: auto;
}
.infoPop {
width: 100%;
height: 100%;
}
.list-card .van-cell {
padding: 3px 16px;
}
.list-card {
margin-bottom: 10px;
}
</style>
<div id="app" v-clock>
<van-nav-bar
@click-left="history.go(-1)"
fixed
left-arrow
placeholder
safe-area-inset-top
title="会员查询"
></van-nav-bar>
<div class="search-fixed">
<van-search
@search="doSearch"
@input="doSearch"
:show-action="true"
maxlength="10"
placeholder="请输入工号或者姓名进行查询"
shape="round"
v-model="pageForm.searchKeyword">
</van-search>
<van-dropdown-menu>
<van-dropdown-item :options="unionList" @change="unionChange"
v-model="pageForm.unionId"></van-dropdown-item>
<van-dropdown-item :options="unitList" @change="doSearch"
v-model="pageForm.unitId"></van-dropdown-item>
</van-dropdown-menu>
</div>
<div style="margin-top: 112px;">
<van-list
:finished="finished"
:finished-text="tableData.length>0?'没有更多了':''"
:immediate-check="false"
@load="pageData"
v-model="loading">
<div class="list-card" v-for="o in tableData">
<van-cell-group @click="viewInfo(o.id)" inset>
<van-cell :border="false" title="姓名">
<div style="display: flex;align-items: center">
<span :style="{color:themeColor}" class="van-ellipsis"
style="font-size: 16px">{{o.username}}</span>
</div>
</van-cell>
<van-cell :border="false" title="工号">{{o.loginname}}</van-cell>
<van-cell :border="false" title="性别">{{o.sex}}</van-cell>
<van-cell :border="false" title="出生年月">{{o.birthday}}</van-cell>
<!-- <van-cell :border="false" title="人员类型">{{o.personType}}</van-cell>-->
<van-cell :border="false" title="联系电话">{{o.mobile}}</van-cell>
<van-cell :border="false" title="所属工会">{{o.unionname}}</van-cell>
</van-cell-group>
</div>
</van-list>
<van-empty v-if="tableData.length === 0" description="暂无数据"></van-empty>
</div>
<div :style="{color:themeColor}"
style="text-align: right;position: fixed;bottom: 20px;right: 20px">
<van-button :color="themeColor" hairline size="mini" type="primary">
总:{{pageForm.totalCount}}人
</van-button>
</div>
<van-popup class="infoPop" v-model="infoShow" position="right">
<van-nav-bar @click-left="infoShow = false" fixed left-arrow placeholder safe-area-inset-top
title="会员详细信息"></van-nav-bar>
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
基本信息
</div>
</div>
<van-cell-group>
<van-cell title="姓名">{{ viewData.username }}</van-cell>
<van-cell title="性别">{{ viewData.sex }}</van-cell>
<van-cell title="年龄">{{ viewData.birthday }}</van-cell>
<van-cell title="民族">{{ viewData.mz }}</van-cell>
<van-cell title="文化程度">{{ viewData.xl }}</van-cell>
<van-cell title="政治面貌">{{ viewData.zzmm }}</van-cell>
<van-cell title="部门">{{ viewData.unitname }}</van-cell>
<van-cell title="职称">{{ viewData.zc }}</van-cell>
<van-cell title="职务">{{ viewData.zw }}</van-cell>
</van-cell-group>
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
个人简历
</div>
</div>
<van-cell-group>
<van-cell>
<template>
<div v-html="viewData.grjl" v-if="viewData.grjl!=null"></div>
<div v-else>暂无</div>
</template>
</van-cell>
</van-cell-group>
</van-popup>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
infoShow: false,
pageForm: {
unionId: '',
unitId: '',
pageNumber: 1,
pageSize: 10
},
unionList: [],
unitList: [],
viewData: {},
}
},
methods: {
async unionChange() {
await this.flushUnits()
this.doSearch()
},
doSearch() {
this.pageForm.pageNumber = 1
this.tableData = []
this.finished = false
this.pageData()
},
async pageData() {
this.loading = true
const {data} = await $.get('/mobile/member/getMemberData', this.pageForm)
setTimeout(() => {
this.tableData = this.tableData.concat(data.list)
if (this.tableData.length === data.totalCount) {
this.finished = true
} else {
this.pageForm.pageNumber++
}
this.loading = false
this.pageForm.totalCount = data.totalCount
}, 300)
},
async viewInfo(id) {
const resp = await $.post('/mobile/member/viewInfo', {id: id})
if (resp.code === 0) {
this.viewData = resp.data
this.infoShow = true
}
},
async initUnion() {
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
this.unionList = await getUnionList(null)
} else {
this.unionList = await getUnionList("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
this.unionList.forEach(v => {
v.text = v.unionname
v.value = v.id
})
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
this.unionList.unshift({text: "全部工会", value: null})
}
if (this.unionList && this.unionList.length > 0) {
this.$set(this.pageForm, "unionId", this.unionList[0].value)
}
},
async initUnit(unionId) {
this.unitList = await getUnits(unionId)
this.unitList.forEach(v => {
v.text = v.name
v.value = v.id
})
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true' && this.pageForm.unionId === null) {
this.unitList.unshift({text: "全部单位", value: null})
}
if (this.unitList && this.unitList.length > 0) {
this.$set(this.pageForm, "unitId", this.unitList[0].value)
}
},
async flushUnits() {
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
await this.initUnit(this.pageForm.unionId)
} else {
await this.initUnit("${@shiro.getPrincipalProperty('unit').getUnionid()}")
}
},
},
async created() {
this.mLoading = true
await this.initUnion()
await this.flushUnits()
this.pageData()
}
})
</script>
<!--#
}
#-->
@@ -1,112 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<div id="app" v-cloak>
<van-nav-bar title="会员审核" left-arrow placeholder fixed
@click-left="history.back()"></van-nav-bar>
<member-menber-info ref="info" :id="id" title="校工会审核" :handle="handle">
<template #handle>
<div class="van-cell-group__title mt20">
<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"
rows="1"
autosize
label="审核意见"
type="textarea"
placeholder="请输入审核意见"
></van-field>
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
<van-col span="12">
<van-button :color="themeColor" plain block @click="doAudit(false)">拒 绝
</van-button>
</van-col>
<van-col span="12">
<van-button :color="themeColor" block @click="doAudit(true)">通 过
</van-button>
</van-col>
</van-row>
</van-form>
</template>
</member-menber-info>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
handle: true,
id: "",
formData: {},
}
},
components: {
'member-menber-info': httpVueLoader('/components/mobile/member/MobileMemberInfo.vue?v=' + new Date().getTime()),
},
methods: {
async doAudit(pass) {
if (!this.formData.auditOpinion) {
this.$toast.fail('请填写审核意见');
return
}
this.formData.auditPass = pass
const resp = await $.post("/platform/member/apply/audit/doAudit", this.formData)
if(resp.code===0){
this.$toast.success('审核成功');
setTimeout(() => {
location.href = '/mobile/member/audit'
}, 1000)
}else{
this.$toast.fail('审核失败');
}
},
},
async created() {
const record_id = GetQueryString("record_id")
const user_id = GetQueryString("user_id")
setTimeout(() => {
this.$refs.info.getUserInfo(user_id)
this.$refs.info.getAuditInfo(record_id)
}, 500)
this.formData = {
recordId: record_id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
auditOpinion: null
}
}
})
</script>
<!--#
}
#-->
@@ -1,274 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<div id="app" v-cloak>
<m-page-loading v-if="mLoading"></m-page-loading>
<van-nav-bar title="会员审核" left-arrow placeholder fixed
@click-left="history.back()"></van-nav-bar>
<div class="search-fixed">
<van-dropdown-menu active-color="#1989fa">
<van-dropdown-item v-model="pageForm.year" @change="yearChange"
:options="yearList"></van-dropdown-item>
<van-dropdown-item v-model="pageForm.audit" @change="yearChange"
:options="auditList"></van-dropdown-item>
</van-dropdown-menu>
</div>
<div style="margin: 70px auto 0">
<van-list
v-model="loading"
:finished="finished"
:finished-text="tableData.length>0?'没有更多了':''"
@load="onLoad">
<div v-for="o in tableData" class="list-card" @click="openView(o)">
<van-cell-group inset>
<van-cell :border="false" title="申&ensp;请&ensp;人:">
{{o.username}}{{o.loginname}}
</van-cell>
<van-cell :border="false" title="申请时间:">{{o.applyTime|date}}</van-cell>
<van-cell :border="false" title="所在工会:">{{o.unionname}}</van-cell>
<van-cell :border="false" title="申请方式:"> {{changeOrigin[o.applyOrigin]}}
</van-cell>
<van-cell :border="false" title="审核状态">
<span :style="'color:'+o.stateColor">{{ o.stateName }}</span>
</van-cell>
<div style="text-align: right;margin-bottom: 10px;margin-right: 10px;margin-top: -35px;">
<van-button :color="themeColor" plain round size="small"
type="primary"
@click.stop="openView(o)" style="width: 60px">
{{o.stateId===60?'审核':'查看'}}
</van-button>
</div>
</van-cell-group>
</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="popupShow" position="right" :style="{ height: '100%', width: '100%'}">
<van-nav-bar title="校工会审核"
left-arrow
placeholder
fixed
@click-left="yearChange();popupShow=false"></van-nav-bar>
<member-menber-change-info ref="info" title="校工会审核" :handle="handle">
<template #handle>
<div class="van-cell-group__title mt20">
<div class="van-sidebar-item van-sidebar-item--select">
校工会审核
</div>
</div>
<van-form>
<template v-if="info.originUnit">
<van-field
label="原科室"
name="username"
readonly
:value="info.originThreeUnit.name"
></van-field>
<van-field
label="原单位"
name="username"
readonly
:value="info.originUnit.name"
></van-field>
<van-field
label="原工会"
name="username"
readonly
:value="info.originUnion.unionname"
></van-field>
<van-field
label="新单位"
name="username"
readonly
:value="info.currentUnit.name"
></van-field>
<van-field
label="新科室"
name="username"
readonly
:value="info.currentThreeUnit.name"
></van-field>
<van-field
label="新工会"
name="username"
readonly
:value="info.currentUnion.unionname"
></van-field>
</template>
<van-field
label="审核人员"
name="username"
readonly
value="${@shiro.getPrincipalProperty('username')}"
></van-field>
<van-field v-model="formData.auditTime" label="审核时间" readonly></van-field>
<van-field required
v-model="formData.auditOpinion"
rows="1"
autosize
label="审核意见"
type="textarea"
placeholder="请输入审核意见"
></van-field>
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
<van-col span="12">
<van-button :color="themeColor" plain block @click="doAudit(false)">拒 绝
</van-button>
</van-col>
<van-col span="12">
<van-button :color="themeColor" block @click="doAudit(true)">通 过
</van-button>
</van-col>
</van-row>
</van-form>
</template>
</member-menber-change-info>
</van-popup>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
handle: true,
popupShow: false,
mLoading: false,
yearList: [],
auditList: [
{text: '全部', value: 0},
{text: '已审核', value: 1},
{text: '未审核', value: 2},
],
info: {
originUnion: {},
currentUnion: {}
},
pageForm: {
source: 2,
year: new Date().getFullYear(),
audit: 2,
},
changeOriginL: [],
}
},
components: {
'member-menber-change-info': httpVueLoader('/components/mobile/member/MobileMemberChangeInfo.vue?v=' + new Date().getTime()),
},
methods: {
yearChange() {
this.pageForm.pageNumber = 1
this.tableData = []
this.finished = false
this.onLoad()
},
onLoad() {
this.loading = true
$.post('/platform/member/change/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 doAudit(pass) {
if (!this.formData.auditOpinion) {
this.$toast.fail('请填写审核意见');
return
}
vant.Dialog.confirm({
title: '提醒',
message: '确定要审核吗?',
}).then(async () => {
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.yearChange()
this.popupShow = false
vant.Toast.success(resp.msg);
} else {
vant.Toast.fail(resp.msg);
}
}).catch(() => {
// on cancel
});
},
openView(o) {
this.handle = o.stateId === 60
this.formData = {
recordId: o.id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
auditOpinion: null
}
this.popupShow = true
this.$nextTick(() => {
this.$refs.info.getUserInfo(o.userId)
this.$refs.info.getAuditInfo(o.id)
setTimeout(() => {
this.info = this.$refs.info.info
}, 500)
})
},
async getChangeOrigin() {
const changeOrigin = {}
const changeOriginOptions = await getEnumOptions("MemberChangeOrigin")
changeOriginOptions.forEach(v => {
changeOrigin[v.code] = v.description
})
return changeOrigin
},
},
async created() {
this.changeOrigin = await this.getChangeOrigin()
let nowYear = new Date().getFullYear()
for (let i = nowYear; i >= nowYear - 9; i--) {
this.yearList.push({text: i, value: i})
}
}
})
</script>
<!--#
}
#-->
@@ -1,114 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<div id="app" v-cloak>
<van-nav-bar fixed left-arrow placeholder title="会员审核"
@click-left="history.back()"></van-nav-bar>
<member-menber-info ref="info" :id="id" title="院级工会审核" :handle="handle">
<template #handle>
<div class="van-cell-group__title mt20">
<div class="van-sidebar-item van-sidebar-item--select">
院级工会审核
</div>
</div>
<van-form>
<van-field
label="审核人员"
name="username"
readonly
value="${@shiro.getPrincipalProperty('username')}"
></van-field>
<van-field v-model="formData.auditTime" label="审核时间" readonly></van-field>
<van-field required
v-model="formData.auditOpinion"
rows="1"
autosize
label="审核意见"
type="textarea"
placeholder="请输入审核意见"
></van-field>
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
<van-col span="12">
<van-button :color="themeColor" plain block @click="doAudit(false)">拒 绝
</van-button>
</van-col>
<van-col span="12">
<van-button :color="themeColor" block @click="doAudit(true)">通 过
</van-button>
</van-col>
</van-row>
</van-form>
</template>
</member-menber-info>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
handle: true,
id: "",
formData: {},
}
},
components: {
'member-menber-info': httpVueLoader('/components/mobile/member/MobileMemberInfo.vue?v=' + new Date().getTime()),
},
methods: {
async doAudit(pass) {
if (!this.formData.auditOpinion) {
this.$toast.fail('请填写审核意见');
return
}
this.formData.auditPass = pass
const resp = await $.post("/platform/member/apply/audit/doAudit", this.formData)
if(resp.code===0){
this.$toast.success('审核成功');
setTimeout(() => {
location.href = '/mobile/member/audit'
}, 1000)
}else{
this.$toast.fail('审核失败')
}
},
},
async created() {
const record_id = GetQueryString("record_id")
const user_id = GetQueryString("user_id")
setTimeout(() => {
this.$refs.info.getUserInfo(user_id)
this.$refs.info.getAuditInfo(record_id)
}, 500)
this.formData = {
recordId: record_id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
auditOpinion: null
}
}
})
</script>
<!--#
}
#-->
@@ -1,274 +0,0 @@
<!--#
layout("/mobile/platform.html"){
#-->
<div id="app" v-cloak>
<m-page-loading v-if="mLoading"></m-page-loading>
<van-nav-bar title="会员审核" left-arrow placeholder fixed
@click-left="history.back()"></van-nav-bar>
<div class="search-fixed">
<van-dropdown-menu active-color="#1989fa">
<van-dropdown-item v-model="pageForm.year" @change="yearChange"
:options="yearList"></van-dropdown-item>
<van-dropdown-item v-model="pageForm.audit" @change="yearChange"
:options="auditList"></van-dropdown-item>
</van-dropdown-menu>
</div>
<div style="margin: 70px auto 0">
<van-list
v-model="loading"
:finished="finished"
:finished-text="tableData.length>0?'没有更多了':''"
@load="onLoad">
<div v-for="o in tableData" class="list-card" @click="openView(o)">
<van-cell-group inset>
<van-cell :border="false" title="申&ensp;请&ensp;人:">
{{o.username}}{{o.loginname}}
</van-cell>
<van-cell :border="false" title="申请时间:">{{o.applyTime|date}}</van-cell>
<van-cell :border="false" title="所在工会:">{{o.unionname}}</van-cell>
<van-cell :border="false" title="申请方式:"> {{changeOrigin[o.applyOrigin]}}
</van-cell>
<van-cell :border="false" title="审核状态">
<span :style="'color:'+o.stateColor">{{ o.stateName }}</span>
</van-cell>
<div style="text-align: right;margin-bottom: 10px;margin-right: 10px;margin-top: -35px;">
<van-button :color="themeColor" plain round size="small"
type="primary"
@click.stop="openView(o)" style="width: 60px">
{{o.stateId===50?'审核':'查看'}}
</van-button>
</div>
</van-cell-group>
</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="popupShow" position="right" :style="{ height: '100%', width: '100%'}">
<van-nav-bar title="分工会审核"
left-arrow
placeholder
fixed
@click-left="yearChange();popupShow=false"></van-nav-bar>
<member-menber-change-info ref="info" title="分工会审核" :handle="handle">
<template #handle>
<div class="van-cell-group__title mt20">
<div class="van-sidebar-item van-sidebar-item--select">
分工会审核
</div>
</div>
<van-form>
<template v-if="info.originUnit">
<van-field
label="原科室"
name="username"
readonly
:value="info.originThreeUnit.name"
></van-field>
<van-field
label="原单位"
name="username"
readonly
:value="info.originUnit.name"
></van-field>
<van-field
label="原工会"
name="username"
readonly
:value="info.originUnion.unionname"
></van-field>
<van-field
label="新单位"
name="username"
readonly
:value="info.currentUnit.name"
></van-field>
<van-field
label="新科室"
name="username"
readonly
:value="info.currentThreeUnit.name"
></van-field>
<van-field
label="新工会"
name="username"
readonly
:value="info.currentUnion.unionname"
></van-field>
</template>
<van-field
label="审核人员"
name="username"
readonly
value="${@shiro.getPrincipalProperty('username')}"
></van-field>
<van-field v-model="formData.auditTime" label="审核时间" readonly></van-field>
<van-field required
v-model="formData.auditOpinion"
rows="1"
autosize
label="审核意见"
type="textarea"
placeholder="请输入审核意见"
></van-field>
<van-row gutter="20" style="margin-top: 30px;padding: 0 25px">
<van-col span="12">
<van-button :color="themeColor" plain block @click="doAudit(false)">拒 绝
</van-button>
</van-col>
<van-col span="12">
<van-button :color="themeColor" block @click="doAudit(true)">通 过
</van-button>
</van-col>
</van-row>
</van-form>
</template>
</member-menber-change-info>
</van-popup>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [mobileMixins],
data() {
return {
handle: true,
popupShow: false,
mLoading: false,
yearList: [],
auditList: [
{text: '全部', value: 0},
{text: '已审核', value: 1},
{text: '未审核', value: 2},
],
info: {
originUnion: {},
currentUnion: {}
},
pageForm: {
source: 1,
year: new Date().getFullYear(),
audit: 2,
},
changeOriginL: [],
}
},
components: {
'member-menber-change-info': httpVueLoader('/components/mobile/member/MobileMemberChangeInfo.vue?v=' + new Date().getTime()),
},
methods: {
yearChange() {
this.pageForm.pageNumber = 1
this.tableData = []
this.finished = false
this.onLoad()
},
onLoad() {
this.loading = true
$.post('/platform/member/change/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 doAudit(pass) {
if (!this.formData.auditOpinion) {
this.$toast.fail('请填写审核意见');
return
}
vant.Dialog.confirm({
title: '提醒',
message: '确定要审核吗?',
}).then(async () => {
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.yearChange()
this.popupShow = false
vant.Toast.success(resp.msg);
} else {
vant.Toast.fail(resp.msg);
}
}).catch(() => {
// on cancel
});
},
openView(o) {
this.handle = o.stateId === 50
this.formData = {
recordId: o.id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
auditOpinion: null
}
this.popupShow = true
this.$nextTick(() => {
this.$refs.info.getUserInfo(o.userId)
this.$refs.info.getAuditInfo(o.id)
setTimeout(() => {
this.info = this.$refs.info.info
}, 500)
})
},
async getChangeOrigin() {
const changeOrigin = {}
const changeOriginOptions = await getEnumOptions("MemberChangeOrigin")
changeOriginOptions.forEach(v => {
changeOrigin[v.code] = v.description
})
return changeOrigin
},
},
async created() {
this.changeOrigin = await this.getChangeOrigin()
let nowYear = new Date().getFullYear()
for (let i = nowYear; i >= nowYear - 9; i--) {
this.yearList.push({text: i, value: i})
}
}
})
</script>
<!--#
}
#-->