This commit is contained in:
@jyuhsin
2024-12-19 09:15:27 +08:00
parent 3e4ed35a7c
commit ca102d285b
4 changed files with 40 additions and 284 deletions
@@ -1,5 +1,7 @@
package io.v.nutz.sys.controllers.platform.sys.club.regist;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.wizzer.framework.page.Pagination;
import io.v.nutz.base.annontation.ViReturn;
import io.v.nutz.base.utils.Roles;
@@ -112,8 +114,8 @@ public class ClubXghReplyController {
dao.insert(userRoles);
sysUserService.clearCache();
sysRoleService.clearCache();
club.setFoundTime(StrUtil.blankToDefault(sys_club.getFoundTime(), DateUtil.now()));
}
club.setFoundTime(sys_club.getFoundTime());
club.setSchoolReplyFile(sys_club.getSchoolReplyFile());
club.setXghAuditId(audit.getId());
dao.updateIgnoreNull(club);
@@ -248,4 +248,12 @@ module.exports = {
text-align: center !important;
}
.el-descriptions-item__label {
min-width: 200px !important;
}
.el-descriptions .is-bordered .el-descriptions-item__cell {
min-width: 200px !important;
}
</style>
@@ -199,239 +199,7 @@ layout("/layouts/platform.html"){
</template>
<template #view>
<el-tabs v-model="infoActive" id="join_tab">
<el-tab-pane name="first" label="协会信息">
<el-descriptions class="margin-top" title="" :column="3" border>
<el-descriptions-item :span="3">
<template slot="label">协会名称</template>
<div v-html="detailData.name"></div>
</el-descriptions-item>
<el-descriptions-item label="成立时间">
{{detailData.foundtime}}
</el-descriptions-item>
<el-descriptions-item label="协会编码">
{{detailData.code}}
</el-descriptions-item>
<el-descriptions-item label="协会类型">
{{detailData.typename}}
</el-descriptions-item>
<el-descriptions-item label="发起人">
{{detailData.sponsorname}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">报名联系人</template>
{{detailData.fzrname}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">所属单位</template>
{{detailData.fzr_unit_name}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">联系人电话</template>
{{detailData.concatpersonmobile}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">联系人邮箱</template>
{{detailData.concatpersonemail}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">会费标准</template>
{{detailData.dues_standard}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">当前人数</template>
{{detailData.cynum}}
</el-descriptions-item>
<el-descriptions-item :span="2"></el-descriptions-item>
<el-descriptions-item :span="3">
<template slot="label">协会介绍</template>
<div class="text-left" v-html="detailData.stjs"></div>
</el-descriptions-item>
<el-descriptions-item :span="3">
<template slot="label">协会宗旨</template>
<div class="text-left" v-html="detailData.stzz"></div>
</el-descriptions-item>
<el-descriptions-item span="3.5">
<template slot="label">钉钉二维码</template>
<file-upload v-if="detailData.qqgroupcode && detailData.qqgroupcode.length > 0"
:files="JSON.parse(detailData.qqgroupcode)"
:view="true"></file-upload>
</el-descriptions-item>
<!--<el-descriptions-item span="2">
<template slot="label">微信群二维码</template>
<file-upload v-if="detailData.wechatgroupcode && detailData.wechatgroupcode.length > 0"
:files="JSON.parse(detailData.wechatgroupcode)"
:view="true"></file-upload>
</el-descriptions-item>-->
<el-descriptions-item span="1.5">
<template slot="label">协会章程</template>
<file-upload v-if="detailData.rulesfile && detailData.rulesfile.length > 0"
:files="JSON.parse(detailData.rulesfile)"
:view="true"></file-upload>
</el-descriptions-item>
<el-descriptions-item span="2">
<template slot="label">年度活动计划</template>
<file-upload v-if="detailData.yearplanfile && detailData.yearplanfile.length > 0"
:files="JSON.parse(detailData.yearplanfile)"
:view="true"></file-upload>
</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<el-tab-pane v-if="viewType === 'join'" name="second" label="个人信息">
<el-form :model="formData" ref="form" :rules="formRules" label-position="top"
label-width="120px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="username" label="姓名">
<el-input v-model="formData.username" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="sex" label="性别">
<el-input v-model="formData.sex" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="birthday" label="出生年月">
<el-date-picker
v-model="formData.birthday"
type="date"
value-format="yyyy-MM-dd"
style="width: 100%"
placeholder="请选择出生年月">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="birthPlace" label="出生地">
<el-input v-model="formData.birthPlace"
placeholder="请填写出生地"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="education" label="文化程度">
<el-input v-model="formData.education" placeholder="请填写文化程度"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="hobby" label="爱好">
<el-input v-model="formData.hobby" placeholder="请填写爱好"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="unitName" label="工作部门">
<el-input v-model="formData.unitName" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="position" label="职务">
<el-input v-model="formData.position" placeholder="请填写职务"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="mobile" label="电话">
<el-input v-model="formData.mobile" placeholder="请填写电话"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="email" label="电子邮箱">
<el-input v-model="formData.email" placeholder="请填写电子邮箱"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="homeAddress" label="家庭住址">
<el-input v-model="formData.homeAddress" placeholder="请填写家庭住址"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="QQNumber" label="QQ">
<el-input v-model="formData.QQNumber" placeholder="请填写QQ"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="bodyHeight" label="身高">
<el-input v-model="formData.bodyHeight" placeholder="请填写身高"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="bodyWeight" label="体重">
<el-input v-model="formData.bodyWeight" placeholder="请填写体重"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="health" label="身体状况">
<el-input v-model="formData.health" placeholder="请填写身体状况"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="sport" label="经常从事的运动">
<el-input v-model="formData.sport" placeholder="请填写经常从事的运动"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item prop="medicalHistory" label="是否有过特殊病史">
<el-radio-group v-model="formData.medicalHistory">
<el-radio :label="true" border></el-radio>
<el-radio :label="false" border></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="joinActivity" label="是否愿意参加本协会的活动">
<el-radio-group v-model="formData.joinActivity">
<el-radio :label="true" border></el-radio>
<el-radio :label="false" border></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item prop="otherThing" label="是否有特别需要说明的问题(身体或心理)">
<el-input maxlength="500" v-model="formData.otherThing"
placeholder="如有,请填写特别需要说明的问题"
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item prop="remark" label="备注">
<el-input maxlength="100" v-model="formData.remark" placeholder="请填写备注"
type="textarea" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item prop="photo" label="两寸登记照">
<image-Upload :height="50" :limit="1" :file-type="['png', 'jpg']" :file-size="1"
v-model="formData.photo"></image-Upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button @click="doSubmit()" type="primary">申请加入</el-button>
</div>
</el-tab-pane>
</el-tabs>
<club-regist-info ref="info"></club-regist-info>
</template>
<template #edit>
@@ -682,8 +450,6 @@ layout("/layouts/platform.html"){
familyRelation: [{required: true, message: '必填', trigger: ['blur', 'change']}],
familyMobile: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
infoActive: 'first',
detailData: {},
activeName: 'false',
tableData: [],
pageForm: {
@@ -699,9 +465,11 @@ layout("/layouts/platform.html"){
hasJoinCount: 0,
noJoinCount: 0,
clickRow: {},
viewType: '',
}
},
components: {
'club-regist-info': httpVueLoader('/components/club/clubRegistInfo.vue'),
},
methods: {
async yearAudit(row) {
this.$confirm('您确定要提交今年的年审吗?', '提示', {
@@ -777,39 +545,12 @@ layout("/layouts/platform.html"){
});
},
openDetail(row, type) {
this.viewType = type
this.infoActive = type === 'view' ? 'first' : 'second'
if (type === 'join') {
this.formData = {
username: "${@shiro.getPrincipalProperty('username')}",
loginname: "${@shiro.getPrincipalProperty('loginname')}",
sex: "${@shiro.getPrincipalProperty('sex')}",
birthday: "${@shiro.getPrincipalProperty('birthday')}",
birthPlace: "${@shiro.getPrincipalProperty('birthPlace')}",
education: "${@shiro.getPrincipalProperty('education')}",
hobby: "${@shiro.getPrincipalProperty('hobby')}",
unitName: "${@shiro.getPrincipalProperty('unit').getName()}",
position: "${@shiro.getPrincipalProperty('position')}",
mobile: "${@shiro.getPrincipalProperty('mobile')}",
email: "${@shiro.getPrincipalProperty('email')}",
homeAddress: "${@shiro.getPrincipalProperty('homeAddress')}",
}
this.$nextTick(() => {
this.$refs.form.clearValidate()
})
}
this.clickRow = row
$.get(base + "/platform/sys/club/mange/findOne", {id: row.id}, (data) => {
if (data.code === 0) {
this.detailData = data.data
this.$refs.guava.view()
} else {
this.$message({
message: data.msg,
type: 'error'
});
}
}, "json");
const {id} = row
this.$refs.guava.view()
this.$nextTick(() => {
this.$refs.info.getInfo(id)
})
},
openApply(row) {
@@ -37,6 +37,19 @@ layout("/layouts/platform.html"){
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="协会类型" prop="type">
<el-select v-model="formData.type" style="width: 100%"
placeholder="请选择协会类型">
<el-option
v-for="item in typeOptions"
:key="item.id"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row gutter="30">
<el-col :span="12">
@@ -53,19 +66,7 @@ layout("/layouts/platform.html"){
</el-row>
<el-row gutter="30">
<el-col :span="12">
<el-form-item label="协会类型" prop="type">
<el-select v-model="formData.type" style="width: 100%"
placeholder="请选择协会类型">
<el-option
v-for="item in typeOptions"
:key="item.id"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
</el-col>
<!--<el-col :span="12">
<el-form-item label="会费标准" prop="dues_standard">
<el-input placeholder="请填写会费标准" v-model="formData.dues_standard"></el-input>
@@ -190,7 +191,7 @@ layout("/layouts/platform.html"){
<el-option
v-for="item in userOptions"
:key="item.id"
:label="item.username"
:label="item.username + ' - ' + item.unitname"
:value="item.id">
</el-option>
</el-select>
@@ -290,7 +291,7 @@ layout("/layouts/platform.html"){
<el-button v-if="activeName === '1'" type="primary" @click="activeName = '2'">下一步</el-button>
<el-button v-if="activeName === '2'" type="primary" @click="activeName = '3'">下一步</el-button>
<el-button type="primary" @click="doHandle(true)">保存</el-button>
<el-button type="primary" @click="doHandle(false)">提交</el-button>
<el-button :disabled="activeName !== '3'" type="primary" @click="doHandle(false)">提交</el-button>
</el-row>
</el-card>
</guava>
@@ -524,6 +525,10 @@ layout("/layouts/platform.html"){
this.$message.warning('请填写理事机构信息')
return
}
if (!flag && this.managePerson.length < 3) {
this.$message.warning('理事机构成员要求不少于3人')
return
}
const cloneData = clone(this.formData)
let array = []
if(this.formData.sponsor) {