From 43913ae3a04f240e6b8d5f7929cb70b3c73e9d65 Mon Sep 17 00:00:00 2001 From: "@jyuhsin" <729757837@qq.com> Date: Mon, 22 Dec 2025 17:05:23 +0800 Subject: [PATCH] commit --- .../app/web/commons/proc/CspProcessor.java | 2 +- .../ActivityDeclareMineController.java | 406 +++++++++--------- src/main/resources/views/layouts/v4/apps.html | 39 +- .../views/layouts/v4/baseLayout.html | 16 +- src/main/resources/views/layouts/v4/serv.html | 43 +- .../views/platform/sys/h5upload.html | 4 + .../teachercongress/delegate/push/index.html | 12 + .../teachercongress/delegate/push/write.js | 284 ++++++------ .../delegate/push/zcAudit.html | 5 + 9 files changed, 431 insertions(+), 380 deletions(-) diff --git a/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java b/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java index 7d9d9f6..286c764 100644 --- a/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java +++ b/src/main/java/com/budwk/app/web/commons/proc/CspProcessor.java @@ -30,7 +30,7 @@ public class CspProcessor extends AbstractProcessor { "style-src * 'unsafe-inline' data:; " + "img-src 'self' data: https:; " + "font-src * data: https:; " + - "connect-src 'self' https:; " + + "connect-src 'self' https: webpack:; " + "frame-ancestors 'self'; " + "object-src 'self';"; diff --git a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/controller/ActivityDeclareMineController.java b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/controller/ActivityDeclareMineController.java index ebf6413..b3b9321 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/controller/ActivityDeclareMineController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/declarereimbursement/declare/controller/ActivityDeclareMineController.java @@ -37,6 +37,7 @@ import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.SqlExpressionGroup; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; @@ -65,232 +66,235 @@ import java.util.*; @At("/platform/activityDeclare/mine") public class ActivityDeclareMineController { - @Inject - private Dao dao; - @Inject - private FlowEngine flowEngine; - @Inject - private SysOfficeTemplateUtil sysOfficeTemplateUtil; - @Inject - private ActivityDeclareService activityDeclareService; + @Inject + private Dao dao; + @Inject + private FlowEngine flowEngine; + @Inject + private SysOfficeTemplateUtil sysOfficeTemplateUtil; + @Inject + private ActivityDeclareService activityDeclareService; - @At("") - @SaCheckPermission("activityDeclare.mine") - @Ok("beetl:/platform/zhgh/activity/declarereimbursement/declare/mine/index.html") - public void index() { - } + @At("") + @SaCheckPermission("activityDeclare.mine") + @Ok("beetl:/platform/zhgh/activity/declarereimbursement/declare/mine/index.html") + public void index() { + } - @At - @ApiOperation("活动申报,我的申请列表") - @SaCheckPermission("activityDeclare.mine") - public Result pageData(CommonPageParam pageParam) { - Sql sql = Sqls.create(""" - SELECT - info.id, - info.userName, - info.mobile, - info.loginName, - info.applyTime, - info.activityName, - info.activityAddress, - info.planStartTime, - info.planEndTime, - info.declareUnitName, - info.activityType, - info.activityContent, - info.activityNumber, - ins.id AS instanceId, - ins.businessNo, - ins.state instanceState, - ins.variable instanceVariable, - ins.processDefineId instanceProcessDefineId, - t.id taskId, - t.taskName AS taskKey, - t.displayName taskName, - t.taskType, - t.performType taskPerformType, - t.taskState, - t.finishTime, - t.taskParentId, - t.variable taskVariable, - IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke, - (select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId - FROM - activity_declare_info info - LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id - LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10 - LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id - $condition - """); - Cnd cnd = Cnd.NEW(); - pageParam.buildSearch(cnd, "info."); - if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name())) { - if (AuthUtil.hasRole(RoleConstant.BRANCH_UNION_CHAIRMAN.name())) { - cnd.and("info.unionId", "=", SecurityUtil.getUnionId()); - } else { - cnd.and("info.userId", "=", SecurityUtil.getUserId()); - } - } - if (StrUtil.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) { - cnd.desc("info.applyTime"); - } else { - cnd.orderBy("info." + pageParam.getPageOrderName(), PageUtil.getOrder(pageParam.getPageOrderBy())); - } - sql.setCondition(cnd); - Pagination pagination = activityDeclareService.listPageMap(pageParam.getPageNumber(), pageParam.getPageSize(), sql); - return Result.success().addData(pagination); - } + @At + @ApiOperation("活动申报,我的申请列表") + @SaCheckPermission("activityDeclare.mine") + public Result pageData(CommonPageParam pageParam) { + Sql sql = Sqls.create(""" + SELECT + info.id, + info.userName, + info.mobile, + info.loginName, + info.applyTime, + info.activityName, + info.activityAddress, + info.planStartTime, + info.planEndTime, + info.declareUnitName, + info.activityType, + info.activityContent, + info.activityNumber, + ins.id AS instanceId, + ins.businessNo, + ins.state instanceState, + ins.variable instanceVariable, + ins.processDefineId instanceProcessDefineId, + t.id taskId, + t.taskName AS taskKey, + t.displayName taskName, + t.taskType, + t.performType taskPerformType, + t.taskState, + t.finishTime, + t.taskParentId, + t.variable taskVariable, + IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke, + (select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId + FROM + activity_declare_info info + LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id + LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10 + LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id + $condition + """); + Cnd cnd = Cnd.NEW(); + pageParam.buildSearch(cnd, "info."); + if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name())) { + SqlExpressionGroup group = new SqlExpressionGroup(); + if (AuthUtil.hasRoleOr(RoleConstant.BRANCH_UNION_CHAIRMAN.name(), RoleConstant.BRANCH_UNION_WENTI_SPORTS.name())) { + group.or("info.unionId", "=", SecurityUtil.getUnionId()); + } + if (AuthUtil.hasRole(RoleConstant.CLUB_PRESIDENT.name(), RoleConstant.CLUB_OPERATOR.name())) { + group.or("info.userId", "=", SecurityUtil.getUserId()); + } + cnd.and(group); + } + if (StrUtil.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) { + cnd.desc("info.applyTime"); + } else { + cnd.orderBy("info." + pageParam.getPageOrderName(), PageUtil.getOrder(pageParam.getPageOrderBy())); + } + sql.setCondition(cnd); + Pagination pagination = activityDeclareService.listPageMap(pageParam.getPageNumber(), pageParam.getPageSize(), sql); + return Result.success().addData(pagination); + } - @At - @ApiOperation("活动申报,查看活动申报") - @SaCheckPermission("activityDeclare") - public Result findOne(@Valid String id) { - ActivityDeclareInfo info = dao.fetch(ActivityDeclareInfo.class, id); - return Result.success().addData(info); - } + @At + @ApiOperation("活动申报,查看活动申报") + @SaCheckPermission("activityDeclare") + public Result findOne(@Valid String id) { + ActivityDeclareInfo info = dao.fetch(ActivityDeclareInfo.class, id); + return Result.success().addData(info); + } - @At - @ApiOperation("删除活动申报") - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("activityDeclare.mine") - @SLog(tag = "活动申报", msg = "删除活动申报id: ${args[0]}") - public Result onDelete(@Valid String id) { - dao.clear(ActivityDeclareInfo.class, Cnd.where("id", "=", id)); - // 删除流程相关 - flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); + @At + @ApiOperation("删除活动申报") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("activityDeclare.mine") + @SLog(tag = "活动申报", msg = "删除活动申报id: ${args[0]}") + public Result onDelete(@Valid String id) { + dao.clear(ActivityDeclareInfo.class, Cnd.where("id", "=", id)); + // 删除流程相关 + flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id); - // 如果有报销的流程,也一并删除 - ActivityReimbursementInfo reimbursementInfo = dao.fetch(ActivityReimbursementInfo.class, Cnd.where("declareId", "=", id)); - if (Lang.isNotEmpty(reimbursementInfo)) { - dao.clear(ActivityReimbursementInfo.class, Cnd.where("id", "=", reimbursementInfo.getId())); - // 删除流程相关 - flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(reimbursementInfo.getId()); - } - return Result.success(); - } + // 如果有报销的流程,也一并删除 + ActivityReimbursementInfo reimbursementInfo = dao.fetch(ActivityReimbursementInfo.class, Cnd.where("declareId", "=", id)); + if (Lang.isNotEmpty(reimbursementInfo)) { + dao.clear(ActivityReimbursementInfo.class, Cnd.where("id", "=", reimbursementInfo.getId())); + // 删除流程相关 + flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(reimbursementInfo.getId()); + } + return Result.success(); + } - @At - @Ok("void") - @SaCheckPermission("activityDeclare.mine") - @SLog(tag = "活动申报", msg = "导出活动申报表") - public void doExportDeclare(@Valid String id, HttpServletResponse response) { - HashMap docData = new HashMap<>(); + @At + @Ok("void") + @SaCheckPermission("activityDeclare.mine") + @SLog(tag = "活动申报", msg = "导出活动申报表") + public void doExportDeclare(@Valid String id, HttpServletResponse response) { + HashMap docData = new HashMap<>(); - Sql sql = Sqls.create(""" - SELECT - info.*, - ins.id AS instanceId - FROM - `activity_declare_info` info - LEFT JOIN wf_process_instance ins ON ins.businessNo = info.id - WHERE - ins.state = 20 AND info.id = @id - """).setParam("id", id); - sql.setCallback(Sqls.callback.map()); - dao.execute(sql); - NutMap info = (NutMap) sql.getResult(); + Sql sql = Sqls.create(""" + SELECT + info.*, + ins.id AS instanceId + FROM + `activity_declare_info` info + LEFT JOIN wf_process_instance ins ON ins.businessNo = info.id + WHERE + ins.state = 20 AND info.id = @id + """).setParam("id", id); + sql.setCallback(Sqls.callback.map()); + dao.execute(sql); + NutMap info = (NutMap) sql.getResult(); - String activityContent = info.getString("activityContent"); - info.put("activityContent", sysOfficeTemplateUtil.convertRichTextToDocText(activityContent)); + String activityContent = info.getString("activityContent"); + info.put("activityContent", sysOfficeTemplateUtil.convertRichTextToDocText(activityContent)); - docData.put("schoolName", Globals.AppName); - docData.put("info", info); + docData.put("schoolName", Globals.AppName); + docData.put("info", info); - List doneTaskVos = new ArrayList<>(); - List doneTaskList = flowEngine.processTaskService().getDoneTaskList(info.getLong("instanceId"), null); - for (ProcessTask doneTask : doneTaskList) { - ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId()); - doneTaskVos.add(taskVO); - } + List doneTaskVos = new ArrayList<>(); + List doneTaskList = flowEngine.processTaskService().getDoneTaskList(info.getLong("instanceId"), null); + for (ProcessTask doneTask : doneTaskList) { + ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId()); + doneTaskVos.add(taskVO); + } - // 分工会审核 - doneTaskVos.stream().filter(task -> "分工会审核".equals(task.getDisplayName())) - .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) - .ifPresent(v -> { - Dict taskFormData = v.getTaskFormData(); - HashMap approval = new HashMap<>(); + // 分工会审核 + doneTaskVos.stream().filter(task -> "分工会审核".equals(task.getDisplayName())) + .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) + .ifPresent(v -> { + Dict taskFormData = v.getTaskFormData(); + HashMap approval = new HashMap<>(); - approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); - approval.put("user", taskFormData.getStr("tf_userName")); - if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { - approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); - } - approval.put("opinion", taskFormData.getStr("tf_opinion")); - docData.put("fgh", approval); - }); + approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); + approval.put("user", taskFormData.getStr("tf_userName")); + if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { + approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); + } + approval.put("opinion", taskFormData.getStr("tf_opinion")); + docData.put("fgh", approval); + }); - // 协会负责人审核 - doneTaskVos.stream().filter(task -> "协会负责人审核".equals(task.getDisplayName())) - .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) - .ifPresent(v -> { - Dict taskFormData = v.getTaskFormData(); - HashMap approval = new HashMap<>(); + // 协会负责人审核 + doneTaskVos.stream().filter(task -> "协会负责人审核".equals(task.getDisplayName())) + .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) + .ifPresent(v -> { + Dict taskFormData = v.getTaskFormData(); + HashMap approval = new HashMap<>(); - approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); - approval.put("user", taskFormData.getStr("tf_userName")); - if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { - approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); - } - approval.put("opinion", taskFormData.getStr("tf_opinion")); - docData.put("xh", approval); - }); + approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); + approval.put("user", taskFormData.getStr("tf_userName")); + if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { + approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); + } + approval.put("opinion", taskFormData.getStr("tf_opinion")); + docData.put("xh", approval); + }); - // 校工会负责人审核 - doneTaskVos.stream().filter(task -> "校工会负责人审核".equals(task.getDisplayName())) - .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) - .ifPresent(v -> { - Dict taskFormData = v.getTaskFormData(); - HashMap approval = new HashMap<>(); + // 校工会负责人审核 + doneTaskVos.stream().filter(task -> "校工会负责人审核".equals(task.getDisplayName())) + .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) + .ifPresent(v -> { + Dict taskFormData = v.getTaskFormData(); + HashMap approval = new HashMap<>(); - approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); - approval.put("user", taskFormData.getStr("tf_userName")); - if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { - approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); - } - approval.put("opinion", taskFormData.getStr("tf_opinion")); - docData.put("xfzr", approval); - }); + approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); + approval.put("user", taskFormData.getStr("tf_userName")); + if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { + approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); + } + approval.put("opinion", taskFormData.getStr("tf_opinion")); + docData.put("xfzr", approval); + }); - // 校工会主席审核 - doneTaskVos.stream().filter(task -> "校工会主席审核".equals(task.getDisplayName())) - .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) - .ifPresent(v -> { - Dict taskFormData = v.getTaskFormData(); - HashMap approval = new HashMap<>(); + // 校工会主席审核 + doneTaskVos.stream().filter(task -> "校工会主席审核".equals(task.getDisplayName())) + .max(Comparator.comparing(ProcessTaskVO::getCreatedAt)) + .ifPresent(v -> { + Dict taskFormData = v.getTaskFormData(); + HashMap approval = new HashMap<>(); - approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); - approval.put("user", taskFormData.getStr("tf_userName")); - if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { - approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); - } - approval.put("opinion", taskFormData.getStr("tf_opinion")); - docData.put("xzx", approval); - }); + approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日")); + approval.put("user", taskFormData.getStr("tf_userName")); + if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) { + approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign"))); + } + approval.put("opinion", taskFormData.getStr("tf_opinion")); + docData.put("xzx", approval); + }); - String budgetsStr = info.getString("budgets"); - List list = JSONUtil.parseArray(budgetsStr).toList(ActivityBudgetVO.class); - for (int i = 0; i < list.size(); i++) { - list.get(i).setRanking(i + 1); - } - docData.put("budgets", list); + String budgetsStr = info.getString("budgets"); + List list = JSONUtil.parseArray(budgetsStr).toList(ActivityBudgetVO.class); + for (int i = 0; i < list.size(); i++) { + list.get(i).setRanking(i + 1); + } + docData.put("budgets", list); - LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy(); - Configure config = Configure.builder() - .bind("budgets", policy) - .build(); + LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy(); + Configure config = Configure.builder() + .bind("budgets", policy) + .build(); - String fileName = Globals.AppName + "【" + info.getString("activityName") + "】申报表.docx"; + String fileName = Globals.AppName + "【" + info.getString("activityName") + "】申报表.docx"; - try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { - XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("activity_declare"), config).render(docData).writeAndClose(byteArrayOutputStream); - CommonDownloadUtil.download(fileName, byteArrayOutputStream.toByteArray(), response); - } catch (IOException e) { - log.error("活动申报表导出失败,id:{},错误信息:{}", id, e.getMessage()); - } - } + try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { + XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("activity_declare"), config).render(docData).writeAndClose(byteArrayOutputStream); + CommonDownloadUtil.download(fileName, byteArrayOutputStream.toByteArray(), response); + } catch (IOException e) { + log.error("活动申报表导出失败,id:{},错误信息:{}", id, e.getMessage()); + } + } } diff --git a/src/main/resources/views/layouts/v4/apps.html b/src/main/resources/views/layouts/v4/apps.html index 8a95f77..b434f49 100644 --- a/src/main/resources/views/layouts/v4/apps.html +++ b/src/main/resources/views/layouts/v4/apps.html @@ -67,15 +67,15 @@ layout("/layouts/v4/baseLayout.html"){ } .apps-header { - padding: 0 0 20px 0; + padding: 0 0 10px 0; border-bottom: 1px solid #eee; - margin-bottom: 20px; + margin-bottom: 10px; } .apps-search-container { display: flex; align-items: center; - margin-bottom: 20px; + /*margin-bottom: 20px;*/ } .apps-search { @@ -103,13 +103,16 @@ layout("/layouts/v4/baseLayout.html"){ } .apps-filter { - margin-top: 20px; + margin-top: 10px; + display: flex; + align-items: flex-end; } .apps-filter-title { color: #666; font-size: 14px; margin-bottom: 5px; + margin-right: 5px; } .apps-filter-tags { @@ -356,20 +359,20 @@ layout("/layouts/v4/baseLayout.html"){ - - - - - - - - - - - - - - +
+
首字母:
+
+
全部
+
+ {{ letter }} +
+
+
diff --git a/src/main/resources/views/layouts/v4/baseLayout.html b/src/main/resources/views/layouts/v4/baseLayout.html index 3a6ef79..56f649c 100644 --- a/src/main/resources/views/layouts/v4/baseLayout.html +++ b/src/main/resources/views/layouts/v4/baseLayout.html @@ -71,7 +71,7 @@ - l + @@ -80,7 +80,7 @@ - + @@ -351,6 +351,16 @@ Vue.prototype.$auth = commonUtil.authService() Vue.prototype.$axios = commonUtil.axiosService() Vue.prototype.$downLoad = commonUtil.downLoadService + + Vue.prototype.$processStatusMap = { + 10: {text: "进行中", class: "doing"}, + 20: {text: "已完成", class: "finished"}, + 30: {text: "已撤回", class: "withdraw"}, + 40: {text: "强行终止", class: "interrupt"}, + 45: {text: "已拒绝", class: "reject"}, + 50: {text: "挂起", class: "pending"}, + 99: {text: "已废弃", class: "abandon"} + } @@ -676,7 +686,7 @@ -
+
diff --git a/src/main/resources/views/layouts/v4/serv.html b/src/main/resources/views/layouts/v4/serv.html index 8205e17..8bcbe3b 100644 --- a/src/main/resources/views/layouts/v4/serv.html +++ b/src/main/resources/views/layouts/v4/serv.html @@ -63,15 +63,15 @@ layout("/layouts/v4/baseLayout.html"){ } .apps-header { - padding: 0 0 20px 0; + padding: 0 0 10px 0; border-bottom: 1px solid #eee; - margin-bottom: 20px; + margin-bottom: 10px; } .apps-search-container { display: flex; align-items: center; - margin-bottom: 20px; + /*margin-bottom: 20px;*/ } .apps-search { @@ -99,13 +99,16 @@ layout("/layouts/v4/baseLayout.html"){ } .apps-filter { - margin-top: 20px; + margin-top: 10px; + display: flex; + align-items: flex-end; } .apps-filter-title { color: #666; font-size: 14px; margin-bottom: 5px; + margin-right: 5px; } .apps-filter-tags { @@ -351,22 +354,22 @@ layout("/layouts/v4/baseLayout.html"){ - - - - - - - - - - - - - - - - +
+
首字母:
+
+
+ 全部 +
+
+ {{ letter }} +
+
+
diff --git a/src/main/resources/views/platform/sys/h5upload.html b/src/main/resources/views/platform/sys/h5upload.html index abaa201..17b2fa9 100644 --- a/src/main/resources/views/platform/sys/h5upload.html +++ b/src/main/resources/views/platform/sys/h5upload.html @@ -59,6 +59,10 @@
+

文件上传

+ + +
@@ -219,8 +226,13 @@ layout("/layouts/platform.html"){
+
diff --git a/src/main/resources/views/platform/zhgh/democratic/teachercongress/delegate/push/write.js b/src/main/resources/views/platform/zhgh/democratic/teachercongress/delegate/push/write.js index 33e9515..4ff5988 100644 --- a/src/main/resources/views/platform/zhgh/democratic/teachercongress/delegate/push/write.js +++ b/src/main/resources/views/platform/zhgh/democratic/teachercongress/delegate/push/write.js @@ -1,6 +1,6 @@ const write = { template: /*language=HTML*/ ` -
+
@@ -59,140 +59,132 @@ const write = { >

基本信息

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+
+ + + +
+
+ + + +
+
+ + + + + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+ + + + + + +
@@ -206,7 +198,7 @@ const write = {
-
保存草稿 提交信息 @@ -270,7 +262,12 @@ const write = { type: Boolean, required: false, default: false - } + }, + dialog: { + type: Boolean, + required: false, + default: null + }, }, data() { return { @@ -628,6 +625,19 @@ const write = { ::v-deep .hidden { display: none !important; } + + ::v-deep .custom-grid { + display: flex; + flex-wrap: wrap; + gap: 16px; + margin: 0 -8px 16px; + } + + ::v-deep .grid-item { + flex: 1 1 calc(50% - 16px); + min-width: 200px; /* 防止在窄屏过度压缩 */ + padding: 0 8px; + } ` } diff --git a/src/main/resources/views/platform/zhgh/democratic/teachercongress/delegate/push/zcAudit.html b/src/main/resources/views/platform/zhgh/democratic/teachercongress/delegate/push/zcAudit.html index 624df44..1f89ec6 100644 --- a/src/main/resources/views/platform/zhgh/democratic/teachercongress/delegate/push/zcAudit.html +++ b/src/main/resources/views/platform/zhgh/democratic/teachercongress/delegate/push/zcAudit.html @@ -142,8 +142,13 @@ layout("/layouts/platform.html"){
+