diff --git a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApplyController.java b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApplyController.java index 4c7f20d7..91cba7fc 100644 --- a/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/club/controller/apply/ClubUserJoinApplyController.java @@ -75,6 +75,7 @@ public class ClubUserJoinApplyController { Sql sql = Sqls.create(""" SELECT cua.*, + club.clubName, u.loginname AS loginName, u.username AS userName, u.sex, @@ -85,6 +86,7 @@ public class ClubUserJoinApplyController { u.academicDegree FROM club_user_apply cua + LEFT JOIN sys_club club ON club.id = cua.clubId LEFT JOIN vw_user u ON u.id = cua.userId WHERE cua.id = @id """).setParam("id", id); @@ -149,6 +151,7 @@ public class ClubUserJoinApplyController { Dict dict = Dict.create(); dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId); dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode()); + dict.set("clubId", clubUserApply.getClubId()); flowCommonService.executeTask(dict); return Result.success(); } diff --git a/src/main/resources/static/assets/platform/css/h5.css b/src/main/resources/static/assets/platform/css/h5.css index 7a73287d..4d86f31f 100644 --- a/src/main/resources/static/assets/platform/css/h5.css +++ b/src/main/resources/static/assets/platform/css/h5.css @@ -132,14 +132,13 @@ body { } .list-card { - margin: 20px 10px; + margin: 10px; background: #FFFFFF; border-radius: 10px; - display: flex; - padding: 15px; - column-gap: 10px; + padding: 10px; border-bottom: 1px solid #ededed; box-sizing: border-box; + box-shadow: 0 8px 12px #ebedf0; } .list-card:not(:last-child){ @@ -162,6 +161,9 @@ body { .list-card-body{ flex: 1; } +.list-card-body .van-cell{ + padding: 8px 16px; +} .list-card-footer{ display: flex; @@ -170,3 +172,88 @@ body { margin-top: 10px; flex-wrap: wrap; } + +.list-card-footer .van-button { + border-radius: 8px; + height: 28px; + padding: 0 12px; +} + +.form-container { + padding: 0 16px; + font-family: "PingFang SC", sans-serif; +} + +/* 分段标题样式 */ +.form-section { + border-radius: 12px; + overflow: hidden; + box-shadow: 0 8px 12px #ebedf0; +} + +/* 弹出选择器样式 */ +.picker-style { + background-color: #f5f5f5; + border-top-left-radius: 12px; + border-top-right-radius: 12px; +} + +/* 输入文本区域样式 */ +.van-field__control { + font-size: 14px; + color: #333; +} +.van-field__control input, +.van-field__control textarea { + font-size: 14px; + color: #333; + border-radius: 6px; + padding: 8px 12px; + background-color: #f9f9f9; +} +/* 提交按钮样式 */ +.submit-btn { + margin: 20px 16px 30px; + border-radius: 24px; + overflow: hidden; +} +.submit-many-btn { + margin: 20px 16px 30px; + border-radius: 24px; + overflow: hidden; + display: flex; + justify-content: space-evenly; +} +.submit-btn .van-button { + height: 48px; + font-size: 16px; + font-weight: bold; +} +.submit-many-btn .van-button { + height: 48px; + font-size: 16px; + font-weight: bold; +} +.van-cell-group__title { + font-weight: bold; + color: #1867B0; + display: inline-block; /* 确保伪元素正常排列 */ +} +.van-cell-group__title::before { + content: ''; + display: inline-block; + width: 4px; + height: 1em; /* 高度随字体大小变化,更自适应 */ + background-color: #1867B0; + border-radius: 2px; + margin-right: 8px; + vertical-align: middle; /* 垂直居中对齐 */ + position: relative; + top: -1px; +} +.more-text .van-field__label{ + width: 100%; +} +.more-text { + display: inline-block; +} diff --git a/src/main/resources/static/components/plugins/sysEnum/EnumTag.vue b/src/main/resources/static/components/plugins/sysEnum/EnumTag.vue index 1bd92fd3..0d48a8b8 100644 --- a/src/main/resources/static/components/plugins/sysEnum/EnumTag.vue +++ b/src/main/resources/static/components/plugins/sysEnum/EnumTag.vue @@ -1,12 +1,19 @@ diff --git a/src/main/resources/static/components/plugins/sysUpload/h5Index.vue b/src/main/resources/static/components/plugins/sysUpload/h5Index.vue index 0e56c9dc..1640b206 100644 --- a/src/main/resources/static/components/plugins/sysUpload/h5Index.vue +++ b/src/main/resources/static/components/plugins/sysUpload/h5Index.vue @@ -105,6 +105,7 @@ module.exports = { } }) } else { + val = JSON.parse(val) this.fileList = val.map((v) => { return { ...v, diff --git a/src/main/resources/views/layouts/platform_h5.html b/src/main/resources/views/layouts/platform_h5.html index 357ddf28..3d143391 100644 --- a/src/main/resources/views/layouts/platform_h5.html +++ b/src/main/resources/views/layouts/platform_h5.html @@ -364,6 +364,7 @@ Vue.component("svg-icon", httpVueLoader("/components/plugins/sysSvgIcon/index.vue?v=" + new Date().getTime())) Vue.component("year-van-dropdown-item", httpVueLoader("/components/plugins/vantMore/yearVanDropDownItem.vue?v=" + new Date().getTime())) Vue.component("van-text-dialog", httpVueLoader("/components/plugins/vantMore/vantTextDialog.vue?v=" + new Date().getTime())) + Vue.component("enum-tag", httpVueLoader("/components/plugins/sysEnum/EnumTag.vue?v=" + new Date().getTime())) diff --git a/src/main/resources/views/platform/zhghh5/club/apply/index.html b/src/main/resources/views/platform/zhghh5/club/apply/index.html index 0ba7a242..90c36fc4 100644 --- a/src/main/resources/views/platform/zhghh5/club/apply/index.html +++ b/src/main/resources/views/platform/zhghh5/club/apply/index.html @@ -8,47 +8,6 @@ layout("/layouts/platform_h5.html"){ height: 100vh; overflow-y: auto; } - - .form-container { - padding: 0 16px; - font-family: "PingFang SC", sans-serif; - } - - /* 分段标题样式 */ - .form-section { - border-radius: 12px; - overflow: hidden; - } - - /* 协会选择字段样式 */ - .club-field .van-field__label { - width: 90px !important; - } - .club-field .van-cell__value { - color: #333; - } - - /* 弹出选择器样式 */ - .picker-style { - background-color: #f5f5f5; - border-top-left-radius: 12px; - border-top-right-radius: 12px; - } - - /* 输入文本区域样式 */ - .van-field__control { - font-size: 14px; - color: #333; - } - .van-field__control input, - .van-field__control textarea { - font-size: 14px; - color: #333; - border-radius: 6px; - padding: 8px 12px; - background-color: #f9f9f9; - } - /* 同意条款样式 */ .agree-section { padding: 16px; @@ -61,28 +20,6 @@ layout("/layouts/platform_h5.html"){ line-height: 1.5; color: #666; } - - /* 提交按钮样式 */ - .submit-btn { - margin: 20px 16px 30px; - background: linear-gradient(to right, #4a90e2, #5ab1ef); - border-radius: 24px; - overflow: hidden; - } - .submit-btn .van-button { - height: 48px; - font-size: 16px; - font-weight: bold; - } - .van-cell-group__title { - font-weight: bold; - } - .more-text .van-field__label{ - width: 100%; - } - .more-text { - display: inline-block; - }
@@ -90,7 +27,7 @@ layout("/layouts/platform_h5.html"){ - + -
- 提交申请 +
+ 保存申请 + 提交申请 + 提交申请
@@ -204,6 +143,8 @@ layout("/layouts/platform_h5.html"){ components: {}, data() { return { + bizId: GetQueryString("bizId"), + taskId: GetQueryString("taskId"), formData: { clubId: "", clubName: "", @@ -230,13 +171,55 @@ layout("/layouts/platform_h5.html"){ } }, methods: { - onClubConfirm(value, index) { - this.formData.clubId = this.clubOptions[index].id; - this.formData.clubName = value; - this.showClubPopup = false; - - // 检查是否已申请该协会 - this.checkApplyClub(this.formData.clubId); + onSave() { + this.$dialog.confirm({ + title: "提示", + message: "您确定保存吗?" + }).then(() => { + this.$axios.post('/platform/club/join/apply/save', {data: JSON.stringify(this.formData)}).then(res => { + if (res.code === 0) { + this.$toast(res.msg); + this.$pjaxReplace("/platform/h5/club/mine") + } + }) + }) + }, + async onSubmit() { + if (!this.isAgree) { + this.$toast.fail("请先阅读并同意协议"); + return; + } + await this.$refs.formRef.validate() + this.$dialog.confirm({ + title: "提示", + message: "您确定要提交申请吗?" + }).then(() => { + this.$axios.post("/platform/club/join/apply/submit", this.formData).then(res => { + if (res.code === 0) { + this.$toast(res.msg); + this.$pjaxReplace("/platform/h5/club/mine") + } + }); + }); + }, + onFinishTask() { + this.$refs.formRef.validate((valid) => { + if (valid) { + if (!this.isAgree) { + this.$message.warning("请先阅读并同意协议") + return + } + this.$axios.post('/platform/club/join/apply/submitAgain', { + data: JSON.stringify(this.formData), + taskId: GetQueryString("taskId") + }).then(res => { + if (res.code === 0) { + this.$toast(res.msg); + this.$pjaxReplace("/platform/h5/club/mine") + } + }) + } + }) }, checkApplyClub(clubId) { this.$axios.post("/platform/club/join/apply/checkApplyClub", { clubId }).then(res => { @@ -247,6 +230,14 @@ layout("/layouts/platform_h5.html"){ } }); }, + onClubConfirm(value, index) { + this.formData.clubId = this.clubOptions[index].id; + this.formData.clubName = value; + this.showClubPopup = false; + + // 检查是否已申请该协会 + this.checkApplyClub(this.formData.clubId); + }, listClub() { this.$axios.post("/platform/club/common/listClub").then(res => { if (res.code === 0) { @@ -255,34 +246,36 @@ layout("/layouts/platform_h5.html"){ }); }, init() { - const user = this.$store.state.user; - this.formData.userId = user.id; - this.formData.userName = user.username; - this.formData.loginName = user.loginname; - this.formData.unitName = user.unit ? user.unit.name : null; - this.formData.unionName = user.union ? user.union.name : null; - this.formData.sex = user.sex; - this.formData.education = user.education; - this.formData.technicalTitle = user.technicalTitle; - this.formData.governmentPosition = user.governmentPosition; - }, - doSubmit() { - if (!this.isAgree) { - this.$toast.fail("请先阅读并同意协议"); - return; + this.bizId = GetQueryString("bizId") + if (GetQueryString("clubId")) { + this.$set(this.formData, "clubId", GetQueryString("clubId")) } - this.$dialog.confirm({ - title: "提示", - message: "您确定要提交申请吗?" - }).then(() => { - this.$axios.post("/platform/club/join/apply/submit", this.formData).then(res => { + if (this.bizId) { + this.$axios.post("/platform/club/join/apply/info", { id: this.bizId }).then((res) => { if (res.code === 0) { - this.$toast(res.msg); - this.$pjaxReplace("/platform/club/join/mine") + this.formData = res.data + this.isAgree = true } - }); - }); - } + }) + } else { + const user = this.$store.state.user + this.$set(this.formData, "userId", user.id) + this.$set(this.formData, "userName", user.username) + this.$set(this.formData, "loginName", user.loginname) + this.$set(this.formData, "unitId", user.unit ? user.unit.id : null) + this.$set(this.formData, "unitName", user.unit ? user.unit.name : null) + this.$set(this.formData, "unionId", user.union ? user.union.id : null) + this.$set(this.formData, "unionName", user.union ? user.union.name : null) + this.$set(this.formData, "sex", user.sex) + this.$set(this.formData, "birthday", "${@auth.getPrincipalProperty('birthday'),'yyyy-MM-dd'}") + this.$set(this.formData, "nation", user.nation) + this.$set(this.formData, "political", user.political) + this.$set(this.formData, "education", user.education) + this.$set(this.formData, "technicalTitle", user.technicalTitle) + this.$set(this.formData, "position", user.position) + this.$set(this.formData, "academicDegree", user.academicDegree) + } + }, }, created() { this.listClub(); diff --git a/src/main/resources/views/platform/zhghh5/club/common/clubUserJoin.js b/src/main/resources/views/platform/zhghh5/club/common/clubUserJoin.js index aac5346d..7d0f43d8 100644 --- a/src/main/resources/views/platform/zhghh5/club/common/clubUserJoin.js +++ b/src/main/resources/views/platform/zhghh5/club/common/clubUserJoin.js @@ -39,8 +39,8 @@ const clubUserJoin = { } }, methods: { - onOpen(id) { - this.$axios.post("/platform/club/join/common/info", { id }).then((res) => { + onOpen(row) { + this.$axios.post("/platform/club/join/mine/info", { id: row.id }).then((res) => { if (res.code === 0) { this.viewData = res.data } diff --git a/src/main/resources/views/platform/zhghh5/club/mine/index.html b/src/main/resources/views/platform/zhghh5/club/mine/index.html index ce04da4c..987865d3 100644 --- a/src/main/resources/views/platform/zhghh5/club/mine/index.html +++ b/src/main/resources/views/platform/zhghh5/club/mine/index.html @@ -10,7 +10,7 @@ layout("/layouts/platform_h5.html"){
- + @@ -18,30 +18,26 @@ layout("/layouts/platform_h5.html"){
-
-
+
+
- - - 查看 - 编辑 - - 撤销 - - - 删除 - + + +
+
@@ -59,7 +55,7 @@ layout("/layouts/platform_h5.html"){