diff --git a/src/main/java/com/budwk/app/sys/controller/SysSignatureController.java b/src/main/java/com/budwk/app/sys/controller/SysSignatureController.java index adbcab67..d0c7c8d9 100644 --- a/src/main/java/com/budwk/app/sys/controller/SysSignatureController.java +++ b/src/main/java/com/budwk/app/sys/controller/SysSignatureController.java @@ -131,7 +131,8 @@ public class SysSignatureController { @Aop(TransAop.READ_COMMITTED) public Result update(@Param("file") TempFile tempFile) { String url = sysFileService.uploadReturnUrl(SysFileEngineTypeEnum.MINIO.getValue(), tempFile); - Sys_user_signature sysUserSignature = dao.fetch(Sys_user_signature.class); + // 签字记录必须按当前登录用户读取,避免后续用户更新时覆盖其他用户的签字。 + Sys_user_signature sysUserSignature = dao.fetch(Sys_user_signature.class, Cnd.where(Sys_user_signature::getUserId, "=", SecurityUtil.getUserId())); if (ObjectUtil.isNull(sysUserSignature)) { sysUserSignature = new Sys_user_signature(); } diff --git a/src/main/resources/views/layouts/platform_h5.html b/src/main/resources/views/layouts/platform_h5.html index b5f16e09..be69f88f 100644 --- a/src/main/resources/views/layouts/platform_h5.html +++ b/src/main/resources/views/layouts/platform_h5.html @@ -257,10 +257,14 @@ window.customStyleList = document.querySelectorAll('style[id^="style-"]') }) $(document).on("pjax:complete", function () { + // PJAX 替换 #container 时可能已经移除旧样式节点,清理前需兼容节点脱离 DOM 的情况。 if (window.customStyleList) { window.customStyleList.forEach((style) => { - style.parentNode.removeChild(style) + if (style.parentNode) { + style.parentNode.removeChild(style) + } }) + window.customStyleList = null } NProgress.done() toggleShowBar() @@ -287,7 +291,7 @@ })() function pjaxReplace(url, data = null) { - $.pjax({ + return $.pjax({ url: url, container: "#container", maxCacheLength: 0, diff --git a/src/main/resources/views/platform/zhghh5/democratic/proposal/common/info.css b/src/main/resources/views/platform/zhghh5/democratic/proposal/common/info.css index 84de1605..26f9a31d 100644 --- a/src/main/resources/views/platform/zhghh5/democratic/proposal/common/info.css +++ b/src/main/resources/views/platform/zhghh5/democratic/proposal/common/info.css @@ -49,6 +49,63 @@ column-gap: 10px; } +/* 提案页面按需启用的圆角按钮与分页样式,不影响未声明对应 class 的组件。 */ +.proposal-soft-button, +.proposal-soft-pagination { + --proposal-soft-primary: #1989fa; +} + +/* 提案审核弹框的次要操作按钮统一使用柔和圆角,不包含阴影或漫反射效果。 */ +.proposal-rounded-button { + border-radius: 14px; +} + +.proposal-soft-pagination { + column-gap: 2px; +} + +.proposal-soft-button { + border-color: var(--proposal-soft-primary); + border-radius: 14px; + background-color: var(--proposal-soft-primary); +} + +/* 保持危险操作原有红色语义。 */ +.proposal-soft-button--danger { + border-color: #ff4d4f; + background-color: #ff4d4f; +} + +/* 保持退回类操作原有橙色语义。 */ +.proposal-soft-button--warning { + border-color: #ff976a; + background-color: #ff976a; +} + +.proposal-soft-pagination .van-pagination__item { + color: var(--proposal-soft-primary); + background-color: #f8fbff; + border-radius: 12px; + transition: color 0.2s ease, background-color 0.2s ease; +} + +.proposal-soft-pagination .van-pagination__item::after { + border-color: rgba(25, 137, 250, 0.16); + border-radius: inherit; +} + +.proposal-soft-pagination .van-pagination__item--active, +.proposal-soft-pagination .van-pagination__item:not(.van-pagination__item--disabled):active { + color: #fff; + background-color: var(--proposal-soft-primary); +} + +.proposal-soft-pagination .van-pagination__item--disabled, +.proposal-soft-pagination .van-pagination__item--disabled:active { + color: #646566; + background-color: #f7f8fa; +} + .proposal-action-icon { margin-right: 6px; font-size: 15px; diff --git a/src/main/resources/views/platform/zhghh5/democratic/proposal/common/task-popup.js b/src/main/resources/views/platform/zhghh5/democratic/proposal/common/task-popup.js index 2d5b4b3a..f2a1cf7f 100644 --- a/src/main/resources/views/platform/zhghh5/democratic/proposal/common/task-popup.js +++ b/src/main/resources/views/platform/zhghh5/democratic/proposal/common/task-popup.js @@ -28,9 +28,9 @@ const PROPOSAL_TASK_POPUP = {
- 退回不同意同意 + 退回不同意同意
- 退回(不审核)退回(审核)不同意同意 + 退回(不审核)退回(审核)不同意同意
-
退回答复同意答复
-
取消提交
+
退回答复同意答复
+
取消提交
- - - + + + +
选择答复单位
@@ -108,7 +109,19 @@ const PROPOSAL_TASK_POPUP = { toggleReplyUnit(item) { const ids=[...this.pendingReplyUnitIds]; const index=ids.indexOf(item.unitId); if (index>-1) ids.splice(index,1); else ids.push(item.unitId); this.$set(this,"pendingReplyUnitIds",ids) }, confirmReplyUnits() { this.$set(this.formData,"tf_secondReplyUnitIds",[...this.pendingReplyUnitIds]); this.closeLayer("reply-unit-picker") }, buildCaseCheckData() { const data={...this.formData}; const units=data.tf_caseCheckNeedSecondReply === 1 ? this.replyUnitOptions.filter((item) => data.tf_secondReplyUnitIds.indexOf(item.unitId)>-1) : []; const masters=units.filter((item) => item.isMaster); const slaves=units.filter((item) => !item.isMaster); data.tf_masterUnitIds=masters.map((item) => item.unitId); data.tf_masterUnitId=data.tf_masterUnitIds[0] || ""; data.tf_masterUnitNames=masters.map((item) => item.unitName); data.tf_masterUnitName=data.tf_masterUnitNames[0] || ""; data.tf_masterUnitNameStr=data.tf_masterUnitNames.join(","); data.tf_slaveUnitIds=slaves.map((item) => item.unitId); data.tf_slaveUnitNames=slaves.map((item) => item.unitName); data.tf_slaveUnitNameStr=data.tf_slaveUnitNames.join(","); return data }, - prepareSubmit(value) { this.$refs.formRef.validate().then(() => { this.$set(this,"pendingSubmitType",value); this.openLayer("submit-confirm") }).catch(() => {}) }, + prepareSubmit(value) { + // 各办理页面提交前统一校验意见字段;空白字符按未填写处理,提示后不再打开确认弹框。 + const opinionConfig = this.kind === "suggestion" + ? {field: "opinion", message: "请输入反馈意见"} + : this.kind === "unitReply" + ? {field: "tf_opinion", message: "请填写答复内容"} + : {field: "tf_opinion", message: "请填写审批意见"} + if (!(this.formData[opinionConfig.field] || "").trim()) { + this.$toast(opinionConfig.message) + return + } + this.$refs.formRef.validate().then(() => { this.$set(this,"pendingSubmitType",value); this.openLayer("submit-confirm") }).catch(() => {}) + }, /** 根据页面类型保留原接口和参数分支,成功后清理全部弹层历史并通知列表刷新。 */ submit() { this.$set(this,"formLoading",true) diff --git a/src/main/resources/views/platform/zhghh5/democratic/proposal/transact/caseCheck/index.html b/src/main/resources/views/platform/zhghh5/democratic/proposal/transact/caseCheck/index.html index 31d0731f..e8f6e30a 100644 --- a/src/main/resources/views/platform/zhghh5/democratic/proposal/transact/caseCheck/index.html +++ b/src/main/resources/views/platform/zhghh5/democratic/proposal/transact/caseCheck/index.html @@ -231,6 +231,7 @@ layout("/layouts/platform_h5.html"){
diff --git a/src/main/resources/views/platform/zhghh5/democratic/proposal/transact/commissioner/index.html b/src/main/resources/views/platform/zhghh5/democratic/proposal/transact/commissioner/index.html index a45fbb13..6bbcf050 100644 --- a/src/main/resources/views/platform/zhghh5/democratic/proposal/transact/commissioner/index.html +++ b/src/main/resources/views/platform/zhghh5/democratic/proposal/transact/commissioner/index.html @@ -2,31 +2,70 @@ layout("/layouts/platform_h5.html"){ #--> +
+
+
- + + @change="doSearch" @open="setFilterOpened(true)" @close="setFilterOpened(false)"> + - - - - +
+
+ +
暂无提案记录插画
暂无提案记录
当前筛选条件下暂时没有提案
@@ -53,6 +92,7 @@ layout("/layouts/platform_h5.html"){
+
@@ -86,7 +126,7 @@ layout("/layouts/platform_h5.html"){
取消 - 提交 + 提交
@@ -109,6 +149,7 @@ layout("/layouts/platform_h5.html"){ +