diff --git a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealAcceptController.java b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealAcceptController.java index 3528389..033ad8e 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealAcceptController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealAcceptController.java @@ -1,6 +1,7 @@ package com.budwk.app.zhgh.democratic.appeal.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaMode; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.lang.Dict; @@ -49,8 +50,14 @@ public class AppealAcceptController { public void index() { } + @At("/h5") + @Ok("beetl:/platform/zhghh5/democratic/appeal/accept/index.html") + @SaCheckPermission("h5.appeal.accept") + public void h5Index() { + } + @At - @SaCheckPermission("appeal.accept") + @SaCheckPermission(value = {"appeal.accept", "h5.appeal.accept"}, mode = SaMode.OR) public Result pageData(Integer pageNumber, Integer pageSize, String searchKeyword, String appealTypeId, Integer year, boolean approval) { Sql sql = listSql(); @@ -68,7 +75,7 @@ public class AppealAcceptController { } @At - @SaCheckPermission("appeal.accept") + @SaCheckPermission(value = {"appeal.accept", "h5.appeal.accept"}, mode = SaMode.OR) @ApiOperation("查询受理任务") public Result queryTask(@Param("taskId") Long taskId) { Sql sql = listSql(); @@ -77,7 +84,7 @@ public class AppealAcceptController { } @At - @SaCheckPermission("appeal.accept") + @SaCheckPermission(value = {"appeal.accept", "h5.appeal.accept"}, mode = SaMode.OR) @ApiOperation("受理申诉") @Aop(TransAop.READ_COMMITTED) @SLog(tag = "申诉管理-受理", msg = "受理申诉") diff --git a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealExecuteController.java b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealExecuteController.java index 82fa51a..697b8db 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealExecuteController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealExecuteController.java @@ -1,6 +1,7 @@ package com.budwk.app.zhgh.democratic.appeal.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaMode; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.lang.Dict; @@ -49,8 +50,14 @@ public class AppealExecuteController { public void index() { } + @At("/h5") + @Ok("beetl:/platform/zhghh5/democratic/appeal/execute/index.html") + @SaCheckPermission("h5.appeal.execute") + public void h5Index() { + } + @At - @SaCheckPermission("appeal.execute") + @SaCheckPermission(value = {"appeal.execute", "h5.appeal.execute"}, mode = SaMode.OR) public Result pageData(Integer pageNumber, Integer pageSize, String searchKeyword, String appealTypeId, Integer year, boolean approval) { Sql sql = listSql(); @@ -68,7 +75,7 @@ public class AppealExecuteController { } @At - @SaCheckPermission("appeal.execute") + @SaCheckPermission(value = {"appeal.execute", "h5.appeal.execute"}, mode = SaMode.OR) @ApiOperation("查询执行任务") public Result queryTask(@Param("taskId") Long taskId) { Sql sql = listSql(); @@ -77,7 +84,7 @@ public class AppealExecuteController { } @At - @SaCheckPermission("appeal.execute") + @SaCheckPermission(value = {"appeal.execute", "h5.appeal.execute"}, mode = SaMode.OR) @ApiOperation("提交执行情况") @Aop(TransAop.READ_COMMITTED) @SLog(tag = "申诉管理-执行", msg = "提交执行情况") diff --git a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealH5Controller.java b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealH5Controller.java new file mode 100644 index 0000000..247e97c --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealH5Controller.java @@ -0,0 +1,19 @@ +package com.budwk.app.zhgh.democratic.appeal.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import io.swagger.annotations.Api; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; + +@IocBean +@At("/platform/appeal") +@Api("申诉管理-H5入口") +public class AppealH5Controller { + + @At("/h5") + @Ok("beetl:/platform/zhghh5/democratic/appeal/index.html") + @SaCheckPermission("h5.appeal") + public void h5Index() { + } +} diff --git a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealMineController.java b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealMineController.java index d9b718f..3759e1d 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealMineController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealMineController.java @@ -1,6 +1,7 @@ package com.budwk.app.zhgh.democratic.appeal.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaMode; import cn.hutool.core.util.StrUtil; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; @@ -38,8 +39,14 @@ public class AppealMineController { public void index() { } + @At("/h5") + @Ok("beetl:/platform/zhghh5/democratic/appeal/mine/index.html") + @SaCheckPermission("h5.appeal.mine") + public void h5Index() { + } + @At - @SaCheckPermission("appeal.mine") + @SaCheckPermission(value = {"appeal.mine", "h5.appeal.mine"}, mode = SaMode.OR) public Result pageData(Integer pageNumber, Integer pageSize, String searchKeyword, String appealTypeId, Integer year) { Sql sql = Sqls.create(""" SELECT @@ -72,7 +79,7 @@ public class AppealMineController { } @At - @SaCheckPermission("appeal.mine") + @SaCheckPermission(value = {"appeal.mine", "h5.appeal.mine"}, mode = SaMode.OR) @Aop(TransAop.READ_COMMITTED) @ApiOperation("删除申诉") public Result delete(@Param("id") String id) { diff --git a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealWriteController.java b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealWriteController.java index f6482a9..a6f20ed 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealWriteController.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/appeal/controller/AppealWriteController.java @@ -1,6 +1,7 @@ package com.budwk.app.zhgh.democratic.appeal.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaMode; import cn.hutool.core.lang.Dict; import cn.hutool.core.util.StrUtil; import com.budwk.app.base.annotation.SLog; @@ -57,8 +58,14 @@ public class AppealWriteController { public void index() { } + @At("/h5") + @Ok("beetl:/platform/zhghh5/democratic/appeal/write/index.html") + @SaCheckPermission("h5.appeal.write") + public void h5Index() { + } + @At - @SaCheckPermission("appeal.write") + @SaCheckPermission(value = {"appeal.write", "h5.appeal.write"}, mode = SaMode.OR) @ApiOperation("当前用户信息") public Result currentUserInfo() { View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", SecurityUtil.getUserId())); @@ -85,14 +92,14 @@ public class AppealWriteController { } @At - @SaCheckPermission("appeal.write") + @SaCheckPermission(value = {"appeal.write", "h5.appeal.write"}, mode = SaMode.OR) @ApiOperation("获取申诉信息") public Result info(@Param("id") String id) { return Result.success(appealInfoService.fetch(id)); } @At - @SaCheckPermission("appeal.write") + @SaCheckPermission(value = {"appeal.write", "h5.appeal.write"}, mode = SaMode.OR) @ApiOperation("保存申诉") @SLog(tag = "申诉管理-提交申诉", msg = "保存申诉") public Result save(@Param("data") AppealInfo appealInfo) { @@ -102,7 +109,7 @@ public class AppealWriteController { } @At - @SaCheckPermission("appeal.write") + @SaCheckPermission(value = {"appeal.write", "h5.appeal.write"}, mode = SaMode.OR) @ApiOperation("提交申诉") @Aop(TransAop.READ_COMMITTED) @SLog(tag = "申诉管理-提交申诉", msg = "提交申诉") @@ -130,7 +137,7 @@ public class AppealWriteController { } @At - @SaCheckPermission("appeal.write") + @SaCheckPermission(value = {"appeal.write", "h5.appeal.write"}, mode = SaMode.OR) @ApiOperation("重新提交申诉") @Aop(TransAop.READ_COMMITTED) @SLog(tag = "申诉管理-提交申诉", msg = "重新提交申诉") diff --git a/src/main/resources/db/appeal/init_appeal.sql b/src/main/resources/db/appeal/init_appeal.sql new file mode 100644 index 0000000..e80787e --- /dev/null +++ b/src/main/resources/db/appeal/init_appeal.sql @@ -0,0 +1,330 @@ +-- 申诉管理初始化脚本 +-- 说明:本脚本依赖系统基础表 sys_menu、sys_role 已存在;如 sys_role_menu 不存在会自动创建。 + +SET @now := CAST(UNIX_TIMESTAMP(NOW()) * 1000 AS UNSIGNED); + +CREATE TABLE IF NOT EXISTS `appeal_type` ( + `id` varchar(32) NOT NULL COMMENT 'ID', + `name` varchar(100) DEFAULT NULL COMMENT '类型名称', + `sort` int DEFAULT 0 COMMENT '排序', + `enabled` tinyint(1) DEFAULT 1 COMMENT '是否启用', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', + `createdAt` bigint DEFAULT NULL COMMENT '创建时间', + `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', + `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', + `delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (`id`), + KEY `INDEX_APPEAL_TYPE_ENABLED` (`enabled`), + KEY `INDEX_APPEAL_TYPE_SORT` (`sort`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='申诉类型'; + +CREATE TABLE IF NOT EXISTS `appeal_info` ( + `id` varchar(32) NOT NULL COMMENT 'ID', + `userId` varchar(32) DEFAULT NULL COMMENT '申诉人ID', + `userName` varchar(50) DEFAULT NULL COMMENT '申诉人姓名', + `loginName` varchar(50) DEFAULT NULL COMMENT '申诉人工号', + `sex` varchar(20) DEFAULT NULL COMMENT '性别', + `birthday` date DEFAULT NULL COMMENT '出生年月', + `political` varchar(100) DEFAULT NULL COMMENT '政治面貌', + `unitId` varchar(32) DEFAULT NULL COMMENT '所在单位ID', + `unitName` varchar(100) DEFAULT NULL COMMENT '所在单位', + `positionName` varchar(100) DEFAULT NULL COMMENT '岗位', + `address` varchar(300) DEFAULT NULL COMMENT '住址', + `mobile` varchar(100) DEFAULT NULL COMMENT '联系方式', + `appealTypeId` varchar(32) DEFAULT NULL COMMENT '申诉类型ID', + `appealTypeName` varchar(100) DEFAULT NULL COMMENT '申诉类型名称', + `defendantUnitId` varchar(32) DEFAULT NULL COMMENT '被申诉单位ID', + `defendantUnitName` varchar(100) DEFAULT NULL COMMENT '被申诉单位', + `defendantAddress` varchar(300) DEFAULT NULL COMMENT '被申诉单位地址', + `defendantContact` varchar(100) DEFAULT NULL COMMENT '被申诉单位联系方式', + `title` varchar(200) DEFAULT NULL COMMENT '申诉标题', + `appealMatter` text COMMENT '申诉事项', + `reason` text COMMENT '申诉理由', + `request` text COMMENT '申诉要求', + `applyDate` date DEFAULT NULL COMMENT '申请日期', + `signature` varchar(255) DEFAULT NULL COMMENT '申诉人签名', + `files` json COMMENT '附件', + `state` varchar(50) DEFAULT NULL COMMENT '业务状态', + `acceptUserId` varchar(32) DEFAULT NULL COMMENT '受理人ID', + `acceptUserName` varchar(50) DEFAULT NULL COMMENT '受理人姓名', + `acceptTime` datetime DEFAULT NULL COMMENT '受理时间', + `decisionContent` text COMMENT '处理决定', + `legalBasis` text COMMENT '事实理由及适用依据', + `decisionDate` date DEFAULT NULL COMMENT '作出决定日期', + `decisionFiles` json COMMENT '决定书附件', + `executeUserId` varchar(32) DEFAULT NULL COMMENT '执行人ID', + `executeUserName` varchar(50) DEFAULT NULL COMMENT '执行人姓名', + `executeTime` datetime DEFAULT NULL COMMENT '执行时间', + `executeContent` text COMMENT '执行情况', + `executeFiles` json COMMENT '执行附件', + `createdBy` varchar(32) DEFAULT NULL COMMENT '创建人', + `createdAt` bigint DEFAULT NULL COMMENT '创建时间', + `updatedBy` varchar(32) DEFAULT NULL COMMENT '修改人', + `updatedAt` bigint DEFAULT NULL COMMENT '修改时间', + `delFlag` tinyint(1) DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (`id`), + KEY `INDEX_APPEAL_INFO_USER` (`userId`), + KEY `INDEX_APPEAL_INFO_UNIT` (`unitId`), + KEY `INDEX_APPEAL_INFO_TYPE` (`appealTypeId`), + KEY `INDEX_APPEAL_INFO_DEFENDANT_UNIT` (`defendantUnitId`), + KEY `INDEX_APPEAL_INFO_STATE` (`state`), + KEY `INDEX_APPEAL_INFO_APPLY_DATE` (`applyDate`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='教职工申诉'; + +CREATE TABLE IF NOT EXISTS `sys_role_menu` ( + `roleId` varchar(32) NOT NULL, + `menuId` varchar(32) NOT NULL, + KEY `INDEX_SYS_ROLE_MENU_ROLE` (`roleId`), + KEY `INDEX_SYS_ROLE_MENU_MENU` (`menuId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色菜单关系'; + +INSERT INTO `sys_role` (`id`, `name`, `code`, `aliasName`, `disabled`, `unitid`, `note`, `sort`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) +SELECT 'a0e9c002000000000000000000000001', '申诉处理委员会成员', 'APPEAL_COMMITTEE_MEMBER', 'AppealCommitteeMember', 0, NULL, '申诉受理环节处理角色', 60, '', @now, '', @now, 0 +FROM DUAL +WHERE NOT EXISTS (SELECT 1 FROM `sys_role` WHERE `code` = 'APPEAL_COMMITTEE_MEMBER'); + +INSERT INTO `sys_menu` (`id`, `parentId`, `path`, `name`, `aliasName`, `type`, `href`, `target`, `icon`, `showit`, `disabled`, `permission`, `note`, `location`, `hasChildren`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`, `platform`) +SELECT 'a0e9c001000000000000000000000001', '', '9901', '申诉管理', 'Appeal', 'menu', '', '', 'ti-comments', 1, 0, 'appeal', NULL, 9901, 1, '', @now, '', @now, 0, 'PC' +FROM DUAL +WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal' OR `path` = '9901'); + +INSERT INTO `sys_menu` (`id`, `parentId`, `path`, `name`, `aliasName`, `type`, `href`, `target`, `icon`, `showit`, `disabled`, `permission`, `note`, `location`, `hasChildren`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`, `platform`) +SELECT 'a0e9c001000000000000000000000002', parent.`id`, '99010001', '申诉类型', 'AppealType', 'menu', '/platform/appeal/type', 'data-pjax', '', 1, 0, 'appeal.type', NULL, 990101, 0, '', @now, '', @now, 0, 'PC' +FROM `sys_menu` parent +WHERE parent.`permission` = 'appeal' + AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal.type' OR `path` = '99010001'); + +INSERT INTO `sys_menu` (`id`, `parentId`, `path`, `name`, `aliasName`, `type`, `href`, `target`, `icon`, `showit`, `disabled`, `permission`, `note`, `location`, `hasChildren`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`, `platform`) +SELECT 'a0e9c001000000000000000000000003', parent.`id`, '99010002', '提交申诉', 'AppealWrite', 'menu', '/platform/appeal/write', 'data-pjax', '', 1, 0, 'appeal.write', NULL, 990102, 0, '', @now, '', @now, 0, 'PC' +FROM `sys_menu` parent +WHERE parent.`permission` = 'appeal' + AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal.write' OR `path` = '99010002'); + +INSERT INTO `sys_menu` (`id`, `parentId`, `path`, `name`, `aliasName`, `type`, `href`, `target`, `icon`, `showit`, `disabled`, `permission`, `note`, `location`, `hasChildren`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`, `platform`) +SELECT 'a0e9c001000000000000000000000004', parent.`id`, '99010003', '我的申诉', 'AppealMine', 'menu', '/platform/appeal/mine', 'data-pjax', '', 1, 0, 'appeal.mine', NULL, 990103, 0, '', @now, '', @now, 0, 'PC' +FROM `sys_menu` parent +WHERE parent.`permission` = 'appeal' + AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal.mine' OR `path` = '99010003'); + +INSERT INTO `sys_menu` (`id`, `parentId`, `path`, `name`, `aliasName`, `type`, `href`, `target`, `icon`, `showit`, `disabled`, `permission`, `note`, `location`, `hasChildren`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`, `platform`) +SELECT 'a0e9c001000000000000000000000005', parent.`id`, '99010004', '申诉受理', 'AppealAccept', 'menu', '/platform/appeal/accept', 'data-pjax', '', 1, 0, 'appeal.accept', NULL, 990104, 0, '', @now, '', @now, 0, 'PC' +FROM `sys_menu` parent +WHERE parent.`permission` = 'appeal' + AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal.accept' OR `path` = '99010004'); + +INSERT INTO `sys_menu` (`id`, `parentId`, `path`, `name`, `aliasName`, `type`, `href`, `target`, `icon`, `showit`, `disabled`, `permission`, `note`, `location`, `hasChildren`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`, `platform`) +SELECT 'a0e9c001000000000000000000000006', parent.`id`, '99010005', '申诉执行', 'AppealExecute', 'menu', '/platform/appeal/execute', 'data-pjax', '', 1, 0, 'appeal.execute', NULL, 990105, 0, '', @now, '', @now, 0, 'PC' +FROM `sys_menu` parent +WHERE parent.`permission` = 'appeal' + AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal.execute' OR `path` = '99010005'); + +INSERT INTO `sys_menu` (`id`, `parentId`, `path`, `name`, `aliasName`, `type`, `href`, `target`, `icon`, `showit`, `disabled`, `permission`, `note`, `location`, `hasChildren`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`, `platform`) +SELECT 'a0e9c001000000000000000000000007', parent.`id`, '99010006', '查询统计', 'AppealQuery', 'menu', '/platform/appeal/query', 'data-pjax', '', 1, 0, 'appeal.query', NULL, 990106, 0, '', @now, '', @now, 0, 'PC' +FROM `sys_menu` parent +WHERE parent.`permission` = 'appeal' + AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'appeal.query' OR `path` = '99010006'); + +UPDATE `sys_menu` +SET `platform` = 'PC' +WHERE `permission` IN ('appeal', 'appeal.type', 'appeal.write', 'appeal.mine', 'appeal.accept', 'appeal.execute', 'appeal.query') + AND (`platform` IS NULL OR `platform` = ''); + +INSERT INTO `appeal_type` (`id`, `name`, `sort`, `enabled`, `remark`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) +SELECT 'a0e9c003000000000000000000000001', '处分', 1, 1, NULL, '', @now, '', @now, 0 +FROM DUAL +WHERE NOT EXISTS (SELECT 1 FROM `appeal_type` WHERE `name` = '处分'); + +INSERT INTO `appeal_type` (`id`, `name`, `sort`, `enabled`, `remark`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) +SELECT 'a0e9c003000000000000000000000002', '岗位聘用', 2, 1, NULL, '', @now, '', @now, 0 +FROM DUAL +WHERE NOT EXISTS (SELECT 1 FROM `appeal_type` WHERE `name` = '岗位聘用'); + +INSERT INTO `appeal_type` (`id`, `name`, `sort`, `enabled`, `remark`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) +SELECT 'a0e9c003000000000000000000000003', '撤销奖励', 3, 1, NULL, '', @now, '', @now, 0 +FROM DUAL +WHERE NOT EXISTS (SELECT 1 FROM `appeal_type` WHERE `name` = '撤销奖励'); + +INSERT INTO `appeal_type` (`id`, `name`, `sort`, `enabled`, `remark`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) +SELECT 'a0e9c003000000000000000000000004', '考核结果定为基本合格或不合格', 4, 1, NULL, '', @now, '', @now, 0 +FROM DUAL +WHERE NOT EXISTS (SELECT 1 FROM `appeal_type` WHERE `name` = '考核结果定为基本合格或不合格'); + +INSERT INTO `appeal_type` (`id`, `name`, `sort`, `enabled`, `remark`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) +SELECT 'a0e9c003000000000000000000000005', '未按国家规定确定或扣减工资福利待遇', 5, 1, NULL, '', @now, '', @now, 0 +FROM DUAL +WHERE NOT EXISTS (SELECT 1 FROM `appeal_type` WHERE `name` = '未按国家规定确定或扣减工资福利待遇'); + +INSERT INTO `appeal_type` (`id`, `name`, `sort`, `enabled`, `remark`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) +SELECT 'a0e9c003000000000000000000000006', '法律法规和规章制度规定可以提出申诉的其他事项', 6, 1, NULL, '', @now, '', @now, 0 +FROM DUAL +WHERE NOT EXISTS (SELECT 1 FROM `appeal_type` WHERE `name` = '法律法规和规章制度规定可以提出申诉的其他事项'); + +/* todo 系统上线时手动录入工作流程 +INSERT INTO `wf_process_category` (`id`, `name`, `picIcon`, `icon`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) +SELECT 'a0e9c004000000000000000000000001', '申诉管理', NULL, 'ti-comments', '', @now, '', @now, 0 +FROM DUAL +WHERE NOT EXISTS (SELECT 1 FROM `wf_process_category` WHERE `id` = 'a0e9c004000000000000000000000001' OR `name` = '申诉管理'); + +SET @appeal_flow_json := '{ + "name": "SSGL", + "displayName": "申诉管理", + "type": "appeal", + "category": "a0e9c004000000000000000000000001", + "description": "教职工申诉审核流程", + "instanceUrl": "/platform/appeal/write", + "instanceViewUrl": "/platform/appeal/mine", + "nodes": [ + { + "id": "startTask", + "type": "snaker:start", + "x": 120, + "y": 160, + "text": {"value": "提交申诉"}, + "properties": {"width": 90, "height": 50} + }, + { + "id": "appealAccept", + "type": "snaker:task", + "x": 330, + "y": 160, + "text": {"value": "受理"}, + "properties": { + "width": 120, + "height": 60, + "form": "/platform/appeal/accept", + "taskType": 0, + "performType": 0, + "assignmentHandler": "com.budwk.app.flow.handler.FlowAppealCommitteeAssignmentHandler" + } + }, + { + "id": "appealExecute", + "type": "snaker:task", + "x": 560, + "y": 160, + "text": {"value": "执行"}, + "properties": { + "width": 120, + "height": 60, + "form": "/platform/appeal/execute", + "taskType": 0, + "performType": 0, + "assignmentHandler": "com.budwk.app.flow.handler.FlowAppealDefendantUnitAssignmentHandler" + } + }, + { + "id": "endTask", + "type": "snaker:end", + "x": 780, + "y": 160, + "text": {"value": "结束"}, + "properties": {"width": 90, "height": 50} + } + ], + "edges": [ + { + "id": "edge_start_accept", + "type": "polyline", + "sourceNodeId": "startTask", + "targetNodeId": "appealAccept", + "properties": {}, + "text": {"value": ""}, + "startPoint": {"x": 165, "y": 160}, + "endPoint": {"x": 270, "y": 160}, + "pointsList": [{"x": 165, "y": 160}, {"x": 270, "y": 160}] + }, + { + "id": "edge_accept_execute", + "type": "polyline", + "sourceNodeId": "appealAccept", + "targetNodeId": "appealExecute", + "properties": {"expr": "#submitType==1"}, + "text": {"value": "受理"}, + "startPoint": {"x": 390, "y": 160}, + "endPoint": {"x": 500, "y": 160}, + "pointsList": [{"x": 390, "y": 160}, {"x": 500, "y": 160}] + }, + { + "id": "edge_accept_end", + "type": "polyline", + "sourceNodeId": "appealAccept", + "targetNodeId": "endTask", + "properties": {"expr": "#submitType==2"}, + "text": {"value": "不予受理"}, + "startPoint": {"x": 330, "y": 220}, + "endPoint": {"x": 780, "y": 220}, + "pointsList": [{"x": 330, "y": 220}, {"x": 780, "y": 220}, {"x": 780, "y": 185}] + }, + { + "id": "edge_execute_end", + "type": "polyline", + "sourceNodeId": "appealExecute", + "targetNodeId": "endTask", + "properties": {}, + "text": {"value": ""}, + "startPoint": {"x": 620, "y": 160}, + "endPoint": {"x": 735, "y": 160}, + "pointsList": [{"x": 620, "y": 160}, {"x": 735, "y": 160}] + } + ] +}'; + +INSERT INTO `wf_process_define` (`name`, `displayName`, `type`, `category`, `instanceUrl`, `instanceViewUrl`, `icon`, `state`, `content`, `version`, `pinyinName`, `description`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) +SELECT 'SSGL', '申诉管理', 'appeal', 'a0e9c004000000000000000000000001', '/platform/appeal/write', '/platform/appeal/mine', 'ti-comments', 1, @appeal_flow_json, 1, 'S', '教职工申诉审核流程', '', @now, '', @now, 0 +FROM DUAL +WHERE NOT EXISTS (SELECT 1 FROM `wf_process_define` WHERE `name` = 'SSGL'); + +UPDATE `wf_process_define` +SET `state` = 1, + `type` = 'appeal', + `category` = 'a0e9c004000000000000000000000001', + `pinyinName` = 'S', + `icon` = 'ti-comments', + `updatedAt` = @now +WHERE `name` = 'SSGL' + AND (`state` IS NULL OR `state` <> 1 OR IFNULL(`type`, '') <> 'appeal' OR IFNULL(`category`, '') <> 'a0e9c004000000000000000000000001' OR IFNULL(`pinyinName`, '') <> 'S' OR IFNULL(`icon`, '') <> 'ti-comments'); + +UPDATE `wf_process_define` +SET `content` = @appeal_flow_json, + `displayName` = IFNULL(`displayName`, '申诉管理'), + `instanceUrl` = IFNULL(`instanceUrl`, '/platform/appeal/write'), + `instanceViewUrl` = IFNULL(`instanceViewUrl`, '/platform/appeal/mine'), + `updatedAt` = @now +WHERE `name` = 'SSGL' + AND (`content` IS NULL OR `content` = '');*/ +/* +INSERT INTO `sys_role_menu` (`roleId`, `menuId`) +SELECT r.`id`, m.`id` +FROM `sys_role` r +JOIN `sys_menu` m ON m.`permission` IN ('appeal', 'appeal.write', 'appeal.mine') +WHERE r.`code` = 'MEMBER' + AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`); + +INSERT INTO `sys_role_menu` (`roleId`, `menuId`) +SELECT r.`id`, m.`id` +FROM `sys_role` r +JOIN `sys_menu` m ON m.`permission` IN ('appeal', 'appeal.accept', 'appeal.query') +WHERE r.`code` = 'APPEAL_COMMITTEE_MEMBER' + AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`); + +INSERT INTO `sys_role_menu` (`roleId`, `menuId`) +SELECT r.`id`, m.`id` +FROM `sys_role` r +JOIN `sys_menu` m ON m.`permission` IN ('appeal', 'appeal.execute', 'appeal.query') +WHERE r.`code` = 'BRANCH_UNION_ADMIN' + AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`); + +INSERT INTO `sys_role_menu` (`roleId`, `menuId`) +SELECT r.`id`, m.`id` +FROM `sys_role` r +JOIN `sys_menu` m ON m.`permission` IN ('appeal', 'appeal.type', 'appeal.write', 'appeal.mine', 'appeal.accept', 'appeal.execute', 'appeal.query') +WHERE r.`code` IN ('SYSADMIN', 'SCHOOL_UNION_ADMIN', 'SCHOOL_UNION_DC_ADMIN') + AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`); +*/ +INSERT INTO `sys_role_menu` (`roleId`, `menuId`) +SELECT r.`id`, m.`id` +FROM `sys_role` r + JOIN `sys_menu` m ON m.`permission` IN ('appeal', 'appeal.type', 'appeal.write', 'appeal.mine', 'appeal.accept', 'appeal.execute', 'appeal.query') +WHERE r.`code` IN ('SYSADMIN') + AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`); diff --git a/src/main/resources/db/appeal/init_appeal_h5.sql b/src/main/resources/db/appeal/init_appeal_h5.sql new file mode 100644 index 0000000..f900e34 --- /dev/null +++ b/src/main/resources/db/appeal/init_appeal_h5.sql @@ -0,0 +1,146 @@ +-- 申诉管理手机端初始化脚本 +-- 说明:PC端申诉模块已部署时,只需要执行本脚本新增手机端入口和权限。 + +SET @now := CAST(UNIX_TIMESTAMP(NOW()) * 1000 AS UNSIGNED); + +INSERT INTO `sys_module` (`id`, `platform`, `name`, `icon`, `faIcon`, `sortNum`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`) +SELECT 'a0e9c005000000000000000000000001', 'H5', '民主管理', NULL, 'ti-comments', 9901, '', @now, '', @now, 0 +FROM DUAL +WHERE NOT EXISTS (SELECT 1 FROM `sys_module` WHERE `id` = 'a0e9c005000000000000000000000001' OR (`platform` = 'H5' AND `name` = '民主管理')); + +INSERT INTO `sys_menu` (`id`, `parentId`, `path`, `name`, `initialPinyinName`, `aliasName`, `type`, `href`, `target`, `icon`, `picIcon`, `showit`, `disabled`, `permission`, `note`, `location`, `hasChildren`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`, `platform`, `moduleId`, `isRecommendApp`, `isRecommendService`) +SELECT 'a0e9c006000000000000000000000001', '', 'H9901', '申诉管理', 'S', 'AppealH5', 'menu', '/platform/appeal/h5', 'data-pjax', 'comment-o', NULL, 1, 0, 'h5.appeal', NULL, 9901, 1, '', @now, '', @now, 0, 'H5', module.`id`, 0, 1 +FROM `sys_module` module +WHERE module.`platform` = 'H5' + AND module.`name` = '民主管理' + AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'h5.appeal' OR `path` = 'H9901'); + +INSERT INTO `sys_menu` (`id`, `parentId`, `path`, `name`, `initialPinyinName`, `aliasName`, `type`, `href`, `target`, `icon`, `picIcon`, `showit`, `disabled`, `permission`, `note`, `location`, `hasChildren`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`, `platform`, `moduleId`, `isRecommendApp`, `isRecommendService`) +SELECT 'a0e9c006000000000000000000000002', 'a0e9c006000000000000000000000001', 'H9901H9902', '提交申诉', 'T', 'AppealWriteH5', 'menu', '/platform/appeal/write/h5', 'data-pjax', 'edit', NULL, 1, 0, 'h5.appeal.write', NULL, 9902, 0, '', @now, '', @now, 0, 'H5', module.`id`, 0, 0 +FROM `sys_module` module +WHERE module.`platform` = 'H5' + AND module.`name` = '民主管理' + AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'h5.appeal.write' OR `path` = 'H9902'); + +INSERT INTO `sys_menu` (`id`, `parentId`, `path`, `name`, `initialPinyinName`, `aliasName`, `type`, `href`, `target`, `icon`, `picIcon`, `showit`, `disabled`, `permission`, `note`, `location`, `hasChildren`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`, `platform`, `moduleId`, `isRecommendApp`, `isRecommendService`) +SELECT 'a0e9c006000000000000000000000003', 'a0e9c006000000000000000000000001', 'H9901H9903', '我的申诉', 'W', 'AppealMineH5', 'menu', '/platform/appeal/mine/h5', 'data-pjax', 'records', NULL, 1, 0, 'h5.appeal.mine', NULL, 9903, 0, '', @now, '', @now, 0, 'H5', module.`id`, 0, 0 +FROM `sys_module` module +WHERE module.`platform` = 'H5' + AND module.`name` = '民主管理' + AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'h5.appeal.mine' OR `path` = 'H9903'); + +INSERT INTO `sys_menu` (`id`, `parentId`, `path`, `name`, `initialPinyinName`, `aliasName`, `type`, `href`, `target`, `icon`, `picIcon`, `showit`, `disabled`, `permission`, `note`, `location`, `hasChildren`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`, `platform`, `moduleId`, `isRecommendApp`, `isRecommendService`) +SELECT 'a0e9c006000000000000000000000004', 'a0e9c006000000000000000000000001', 'H9901H9904', '申诉受理', 'S', 'AppealAcceptH5', 'menu', '/platform/appeal/accept/h5', 'data-pjax', 'todo-list-o', NULL, 1, 0, 'h5.appeal.accept', NULL, 9904, 0, '', @now, '', @now, 0, 'H5', module.`id`, 0, 0 +FROM `sys_module` module +WHERE module.`platform` = 'H5' + AND module.`name` = '民主管理' + AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'h5.appeal.accept' OR `path` = 'H9904'); + +INSERT INTO `sys_menu` (`id`, `parentId`, `path`, `name`, `initialPinyinName`, `aliasName`, `type`, `href`, `target`, `icon`, `picIcon`, `showit`, `disabled`, `permission`, `note`, `location`, `hasChildren`, `createdBy`, `createdAt`, `updatedBy`, `updatedAt`, `delFlag`, `platform`, `moduleId`, `isRecommendApp`, `isRecommendService`) +SELECT 'a0e9c006000000000000000000000005', 'a0e9c006000000000000000000000001', 'H9901H9905', '申诉执行', 'S', 'AppealExecuteH5', 'menu', '/platform/appeal/execute/h5', 'data-pjax', 'passed', NULL, 1, 0, 'h5.appeal.execute', NULL, 9905, 0, '', @now, '', @now, 0, 'H5', module.`id`, 0, 0 +FROM `sys_module` module +WHERE module.`platform` = 'H5' + AND module.`name` = '民主管理' + AND NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `permission` = 'h5.appeal.execute' OR `path` = 'H9905'); + +UPDATE `sys_menu` +SET `href` = '/platform/appeal/h5', + `hasChildren` = 1, + `isRecommendService` = 1, + `updatedAt` = @now +WHERE `permission` = 'h5.appeal'; + +UPDATE `sys_menu` +SET `parentId` = 'a0e9c006000000000000000000000001', + `path` = CONCAT('H9901', RIGHT(`path`, 5)), + `isRecommendService` = 0, + `updatedAt` = @now +WHERE `permission` IN ('h5.appeal.write', 'h5.appeal.mine', 'h5.appeal.accept', 'h5.appeal.execute'); + +INSERT INTO `sys_role_menu` (`roleId`, `menuId`) +SELECT r.`id`, m.`id` +FROM `sys_role` r +JOIN `sys_menu` m ON m.`permission` IN ('h5.appeal', 'h5.appeal.write', 'h5.appeal.mine', 'h5.appeal.accept', 'h5.appeal.execute') +WHERE r.`code` = 'SYSADMIN' + AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`); + +INSERT INTO `sys_role_menu` (`roleId`, `menuId`) +SELECT r.`id`, m.`id` +FROM `sys_role` r +JOIN `sys_menu` m ON m.`permission` IN ('h5.appeal', 'h5.appeal.write', 'h5.appeal.mine') +WHERE r.`code` IN ('SYSADMIN', 'MEMBER') + AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`); + +INSERT INTO `sys_role_menu` (`roleId`, `menuId`) +SELECT r.`id`, m.`id` +FROM `sys_role` r +JOIN `sys_menu` m ON m.`permission` IN ('h5.appeal', 'h5.appeal.accept', 'h5.appeal.execute') +WHERE r.`code` = 'APPEAL_COMMITTEE_MEMBER' + AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`); + +/* 分工会管理员不需要权限 +INSERT INTO `sys_role_menu` (`roleId`, `menuId`) +SELECT r.`id`, m.`id` +FROM `sys_role` r +JOIN `sys_menu` m ON m.`permission` IN ('h5.appeal', 'h5.appeal.execute') +WHERE r.`code` = 'BRANCH_UNION_ADMIN' + AND NOT EXISTS (SELECT 1 FROM `sys_role_menu` rm WHERE rm.`roleId` = r.`id` AND rm.`menuId` = m.`id`);*/ + +UPDATE `wf_process_define` +SET `content` = REPLACE(`content`, '"form": "/platform/appeal/accept",', '"form": "/platform/appeal/accept", "h5form": "/platform/appeal/accept/h5",'), + `updatedAt` = @now +WHERE `name` = 'SSGL' + AND `content` LIKE '%"id": "appealAccept"%' + AND `content` LIKE '%"form": "/platform/appeal/accept"%' + AND `content` NOT LIKE '%"h5form": "/platform/appeal/accept/h5"%'; + +UPDATE `wf_process_define` +SET `content` = REPLACE(`content`, '"form":"/platform/appeal/accept",', '"form":"/platform/appeal/accept","h5form":"/platform/appeal/accept/h5",'), + `updatedAt` = @now +WHERE `name` = 'SSGL' + AND `content` LIKE '%"id":"appealAccept"%' + AND `content` LIKE '%"form":"/platform/appeal/accept"%' + AND `content` NOT LIKE '%"h5form":"/platform/appeal/accept/h5"%' + AND `content` NOT LIKE '%"h5form": "/platform/appeal/accept/h5"%'; + +UPDATE `wf_process_define` +SET `content` = REPLACE(`content`, '"form": "/platform/appeal/execute",', '"form": "/platform/appeal/execute", "h5form": "/platform/appeal/execute/h5",'), + `updatedAt` = @now +WHERE `name` = 'SSGL' + AND `content` LIKE '%"id": "appealExecute"%' + AND `content` LIKE '%"form": "/platform/appeal/execute"%' + AND `content` NOT LIKE '%"h5form": "/platform/appeal/execute/h5"%'; + +UPDATE `wf_process_define` +SET `content` = REPLACE(`content`, '"form":"/platform/appeal/execute",', '"form":"/platform/appeal/execute","h5form":"/platform/appeal/execute/h5",'), + `updatedAt` = @now +WHERE `name` = 'SSGL' + AND `content` LIKE '%"id":"appealExecute"%' + AND `content` LIKE '%"form":"/platform/appeal/execute"%' + AND `content` NOT LIKE '%"h5form":"/platform/appeal/execute/h5"%' + AND `content` NOT LIKE '%"h5form": "/platform/appeal/execute/h5"%'; + +UPDATE `wf_process_define` +SET `h5InstanceUrl` = IFNULL(NULLIF(`h5InstanceUrl`, ''), '/platform/appeal/write/h5'), + `h5InstanceViewUrl` = IFNULL(NULLIF(`h5InstanceViewUrl`, ''), '/platform/appeal/mine/h5'), + `updatedAt` = @now +WHERE `name` = 'SSGL' + AND (IFNULL(`h5InstanceUrl`, '') = '' OR IFNULL(`h5InstanceViewUrl`, '') = ''); + +UPDATE `wf_process_task` t +JOIN `wf_process_instance` ins ON ins.`id` = t.`processInstanceId` +JOIN `wf_process_define` def ON def.`id` = ins.`processDefineId` +SET t.`h5FormKey` = '/platform/appeal/accept/h5', + t.`updatedAt` = @now +WHERE def.`name` = 'SSGL' + AND t.`taskName` = 'appealAccept' + AND IFNULL(t.`h5FormKey`, '') = ''; + +UPDATE `wf_process_task` t +JOIN `wf_process_instance` ins ON ins.`id` = t.`processInstanceId` +JOIN `wf_process_define` def ON def.`id` = ins.`processDefineId` +SET t.`h5FormKey` = '/platform/appeal/execute/h5', + t.`updatedAt` = @now +WHERE def.`name` = 'SSGL' + AND t.`taskName` = 'appealExecute' + AND IFNULL(t.`h5FormKey`, '') = ''; diff --git a/src/main/resources/views/platform/zhghh5/democratic/appeal/accept/index.html b/src/main/resources/views/platform/zhghh5/democratic/appeal/accept/index.html new file mode 100644 index 0000000..88e6069 --- /dev/null +++ b/src/main/resources/views/platform/zhghh5/democratic/appeal/accept/index.html @@ -0,0 +1,252 @@ + +
+ + + + + + + + + + + + + + + + + + + +
+
受理申诉
+ + + + + + + + + + + + +
+ 取消 + 退回修改 + 不予受理 + 受理并转执行 +
+
+
+
+ + + + diff --git a/src/main/resources/views/platform/zhghh5/democratic/appeal/common/info.js b/src/main/resources/views/platform/zhghh5/democratic/appeal/common/info.js new file mode 100644 index 0000000..79b0862 --- /dev/null +++ b/src/main/resources/views/platform/zhghh5/democratic/appeal/common/info.js @@ -0,0 +1,113 @@ +const appealInfo = { + template: /*language=HTML*/ ` + +
+ + {{ text(viewData.title) }} + {{ text(viewData.userName) }} + {{ text(viewData.sex) }} + {{ dateText(viewData.birthday) }} + {{ text(viewData.political) }} + {{ text(viewData.loginName) }} + {{ text(viewData.unitName) }} + {{ text(viewData.positionName) }} + {{ text(viewData.mobile) }} + {{ dateText(viewData.applyDate) }} + {{ text(viewData.state || '草稿') }} + {{ text(viewData.address) }} + {{ text(viewData.appealTypeName) }} + {{ text(viewData.defendantUnitName) }} + {{ text(viewData.defendantAddress) }} + {{ text(viewData.defendantContact) }} + {{ text(viewData.appealMatter) }} + {{ text(viewData.reason) }} + {{ text(viewData.request) }} + + + + + + 暂无 + + + + + {{ text(viewData.acceptUserName) }} + {{ text(viewData.acceptTime) }} + {{ dateText(viewData.decisionDate) }} + {{ text(viewData.decisionContent) }} + {{ text(viewData.legalBasis) }} + + + + {{ text(viewData.executeUserName) }} + {{ text(viewData.executeTime) }} + {{ text(viewData.executeContent) }} + + + +
+ +
+ `, + dicts: ["PROCESS_TASK_SUBMIT_TYPE"], + data() { + return { + visible: false, + viewData: {}, + doneTasks: [] + } + }, + methods: { + onOpen(row) { + this.viewData = {...row} + this.visible = true + this.getDoneTasks() + }, + getDoneTasks() { + if (!this.viewData.id) { + this.doneTasks = [] + return + } + this.$axios.post("/flow/common/doneTasks", {bizId: this.viewData.id}).then((res) => { + if (res.code === 0) this.doneTasks = res.data || [] + }) + }, + text(value) { + return value || "暂无" + }, + dateText(value) { + return value ? this.$moment(value).format("YYYY-MM-DD") : "暂无" + }, + fileList(value) { + if (!value) return [] + if (Array.isArray(value)) return value + try { + const list = JSON.parse(value) + return Array.isArray(list) ? list : [] + } catch (e) { + return [] + } + } + } +} diff --git a/src/main/resources/views/platform/zhghh5/democratic/appeal/execute/index.html b/src/main/resources/views/platform/zhghh5/democratic/appeal/execute/index.html new file mode 100644 index 0000000..94c23c8 --- /dev/null +++ b/src/main/resources/views/platform/zhghh5/democratic/appeal/execute/index.html @@ -0,0 +1,212 @@ + +
+ + + + + + + + + + + + + + + + + + + +
+
执行反馈
+ + + + + + + +
+ 取消 + 提交 +
+
+
+
+ + + + diff --git a/src/main/resources/views/platform/zhghh5/democratic/appeal/index.html b/src/main/resources/views/platform/zhghh5/democratic/appeal/index.html new file mode 100644 index 0000000..82a4a1a --- /dev/null +++ b/src/main/resources/views/platform/zhghh5/democratic/appeal/index.html @@ -0,0 +1,142 @@ + +
+ + +
+
+
+ +
+ + +
+ +
+
+ +
+ + +
+ +
+
+ +
+ + +
+ +
+
+ +
+ + +
+
+
+ + + + + diff --git a/src/main/resources/views/platform/zhghh5/democratic/appeal/mine/index.html b/src/main/resources/views/platform/zhghh5/democratic/appeal/mine/index.html new file mode 100644 index 0000000..0a84e60 --- /dev/null +++ b/src/main/resources/views/platform/zhghh5/democratic/appeal/mine/index.html @@ -0,0 +1,120 @@ + + + + +
+ + + + + + + + + + + + + + +
+ + + + diff --git a/src/main/resources/views/platform/zhghh5/democratic/appeal/write/index.html b/src/main/resources/views/platform/zhghh5/democratic/appeal/write/index.html new file mode 100644 index 0000000..a66ea6f --- /dev/null +++ b/src/main/resources/views/platform/zhghh5/democratic/appeal/write/index.html @@ -0,0 +1,225 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ 保存 + {{ hasTaskId() ? '提交' : '提交申诉' }} +
+
+ + + + + + + +
+ + + +