From 27469e94ce15f353cf9b8ffcd8536c8f071cfa78 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Tue, 23 Jul 2024 09:43:14 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=AF=95=E9=AA=8C=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aqgqj/basis/entity/dto/ParamsDto.java | 17 ++++++ .../aqgqj/basis/entity/vo/ExperConfigVo.java | 4 +- .../bonus/aqgqj/basis/entity/vo/TestVo.java | 4 +- .../impl/ExperimentStandardServiceImpl.java | 1 + .../service/impl/ExperimentalServiceImpl.java | 10 ++++ .../java/com/bonus/aqgqj/model/SysUser.java | 2 + .../com/bonus/aqgqj/utils/SystemUtils.java | 54 +++++++++++++++++-- .../com/bonus/aqgqj/webResult/Constants.java | 15 ++++++ .../mappers/basis/ExperimentalMapper.xml | 8 +++ .../resources/mappers/system/UserMapper.xml | 2 +- 10 files changed, 108 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java b/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java index 940e576..6b69e90 100644 --- a/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java +++ b/src/main/java/com/bonus/aqgqj/basis/entity/dto/ParamsDto.java @@ -1,7 +1,10 @@ package com.bonus.aqgqj.basis.entity.dto; import com.bonus.aqgqj.base.entity.PageEntity; +import com.bonus.aqgqj.utils.UserUtil; import lombok.Data; +import org.apache.catalina.User; +import org.apache.commons.lang3.StringUtils; /** * @className:ParamsDto @@ -42,4 +45,18 @@ public class ParamsDto extends PageEntity { */ private Long[] ids; + /** + * 角色编码 + */ + private String roleCode = UserUtil.getLoginUser() !=null && StringUtils.isNotBlank(UserUtil.getLoginUser().getRoleCode()) ? UserUtil.getLoginUser().getRoleCode() : null; + /** + * 班组ID + */ + private String teamId = UserUtil.getLoginUser() !=null && StringUtils.isNotBlank(UserUtil.getLoginUser().getTeamId()) ? UserUtil.getLoginUser().getTeamId() : "-1"; + + /** + * 是否是班组长 + */ + private String isTeamLeader = UserUtil.getLoginUser() !=null && StringUtils.isNotBlank(UserUtil.getLoginUser().getIsTeamLeader()) ? UserUtil.getLoginUser().getIsTeamLeader() : "0"; + } diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigVo.java index 430299e..1658133 100644 --- a/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigVo.java +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/ExperConfigVo.java @@ -60,7 +60,7 @@ public class ExperConfigVo { * 创建人 */ @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private Long createUser = UserUtil.getLoginUser().getId(); + private Long createUser = UserUtil.getLoginUser() !=null ? UserUtil.getLoginUser().getId() : -1; /** * 创建时间 */ @@ -71,7 +71,7 @@ public class ExperConfigVo { * 修改人 */ @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private Long updateUser = UserUtil.getLoginUser().getId(); + private Long updateUser = UserUtil.getLoginUser() !=null ? UserUtil.getLoginUser().getId() : -1; /** * 修改时间 */ diff --git a/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java b/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java index cd6627e..40653ba 100644 --- a/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java +++ b/src/main/java/com/bonus/aqgqj/basis/entity/vo/TestVo.java @@ -123,7 +123,7 @@ public class TestVo { * 创建人 */ @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private Long createUser = UserUtil.getLoginUser().getId(); + private Long createUser = UserUtil.getLoginUser() !=null ? UserUtil.getLoginUser().getId() : -1; /** * 创建时间 */ @@ -134,7 +134,7 @@ public class TestVo { * 修改人 */ @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private Long updateUser = UserUtil.getLoginUser().getId(); + private Long updateUser = UserUtil.getLoginUser() !=null ? UserUtil.getLoginUser().getId() : -1; /** * 修改时间 */ diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java index 59c0843..0966ead 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentStandardServiceImpl.java @@ -360,4 +360,5 @@ public class ExperimentStandardServiceImpl implements ExperimentStandardService } return null; } + } diff --git a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java index 4584bfd..f01f470 100644 --- a/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java +++ b/src/main/java/com/bonus/aqgqj/basis/service/impl/ExperimentalServiceImpl.java @@ -10,6 +10,7 @@ import com.bonus.aqgqj.basis.entity.vo.*; import com.bonus.aqgqj.basis.service.ExperimentalService; import com.bonus.aqgqj.utils.DateTimeHelper; import com.bonus.aqgqj.utils.ServerResponse; +import com.bonus.aqgqj.utils.SystemUtils; import com.bonus.aqgqj.webResult.Constants; import com.bonus.aqgqj.webResult.HttpStatus; import lombok.extern.slf4j.Slf4j; @@ -124,6 +125,9 @@ public class ExperimentalServiceImpl implements ExperimentalService { @Transactional(rollbackFor = Exception.class) public ServerResponse addTestData(TestVo vo) { try { + if(!SystemUtils.isExperimentalTeam()){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "非试验班组,无法添加试验数据"); + } // 整体数据校验数据 String validResult = validatorsUtils.valid(vo, TestVo.Query.class); if (StringUtils.isNotBlank(validResult)) { @@ -194,6 +198,9 @@ public class ExperimentalServiceImpl implements ExperimentalService { if(vo.getId() == null){ return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "参数不完整"); } + if(!SystemUtils.isExperimentalTeam()){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "非试验班组,无法修改试验数据"); + } // 处于审核流程中的数据无法进行修改 int isCheck = mapper.isCheck(vo.getId()); if(isCheck > 0){ @@ -323,6 +330,9 @@ public class ExperimentalServiceImpl implements ExperimentalService { if(dto.getIds() == null || dto.getIds().length == 0){ return ServerResponse.createByErrorMsg(HttpStatus.ERROR,"未提交审查数据"); } + if(!SystemUtils.isExperimentalTeam()){ + return ServerResponse.createByErrorMsg(HttpStatus.ERROR, "非试验班组,无法提交审查数据"); + } // 判断提交数据中是否存在流程数据或者存在待试验项 List list = Arrays.asList(dto.getIds()); int result = mapper.isNotEditData(list); diff --git a/src/main/java/com/bonus/aqgqj/model/SysUser.java b/src/main/java/com/bonus/aqgqj/model/SysUser.java index e797c9d..c6483b4 100644 --- a/src/main/java/com/bonus/aqgqj/model/SysUser.java +++ b/src/main/java/com/bonus/aqgqj/model/SysUser.java @@ -115,6 +115,8 @@ public class SysUser extends PageEntity { private String roleCode; /**班组ID*/ private String teamId; + /**是否是班组长*/ + private String isTeamLeader; public interface Status { diff --git a/src/main/java/com/bonus/aqgqj/utils/SystemUtils.java b/src/main/java/com/bonus/aqgqj/utils/SystemUtils.java index 1f16fd3..5cff8a5 100644 --- a/src/main/java/com/bonus/aqgqj/utils/SystemUtils.java +++ b/src/main/java/com/bonus/aqgqj/utils/SystemUtils.java @@ -1,9 +1,13 @@ package com.bonus.aqgqj.utils; +import com.bonus.aqgqj.webResult.Constants; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import java.util.Objects; + @Component @Slf4j public class SystemUtils { @@ -63,9 +67,51 @@ public class SystemUtils { } } + /** + * 是否是试验班组-试验人员 + * @return Boolean + * @author cwchen + * @date 2024/7/23 9:30 + */ + public static Boolean isExperimentalTeam(){ + if(UserUtil.getLoginUser() == null){ + return false; + } + String roleCode = StringUtils.isNotBlank(UserUtil.getLoginUser().getRoleCode()) ? UserUtil.getLoginUser().getRoleCode() : null; + String teamId = StringUtils.isNotBlank(UserUtil.getLoginUser().getTeamId()) ? UserUtil.getLoginUser().getTeamId() : "-1"; + String isTeamLeader = StringUtils.isNotBlank(UserUtil.getLoginUser().getIsTeamLeader()) ? UserUtil.getLoginUser().getIsTeamLeader() : "0"; + if(Objects.equals(Constants.EXPERIMENTALTEAM,roleCode) + && !Objects.equals(Constants.VALUE_DATA,teamId) + && Objects.equals(isTeamLeader,Constants.VALUE_DATA2)){ + return true; + }else if(Objects.equals(Constants.ADMIDMINISTRATORS,roleCode) ){ + return true; + }else{ + return false; + } + } - - - - + /** + * 是否是试验班组-班组长 + * @return Boolean + * @author cwchen + * @date 2024/7/23 9:30 + */ + public static Boolean isExperimentalTeamLeader(){ + if(UserUtil.getLoginUser() == null){ + return false; + } + String roleCode = StringUtils.isNotBlank(UserUtil.getLoginUser().getRoleCode()) ? UserUtil.getLoginUser().getRoleCode() : null; + String teamId = StringUtils.isNotBlank(UserUtil.getLoginUser().getTeamId()) ? UserUtil.getLoginUser().getTeamId() : "-1"; + String isTeamLeader = StringUtils.isNotBlank(UserUtil.getLoginUser().getIsTeamLeader()) ? UserUtil.getLoginUser().getIsTeamLeader() : "0"; + if(Objects.equals(Constants.EXPERIMENTALTEAM,roleCode) + && !Objects.equals(Constants.VALUE_DATA,teamId) + && Objects.equals(isTeamLeader,Constants.VALUE_DATA3)){ + return true; + }else if(Objects.equals(Constants.ADMIDMINISTRATORS,roleCode) ){ + return true; + }else{ + return false; + } + } } diff --git a/src/main/java/com/bonus/aqgqj/webResult/Constants.java b/src/main/java/com/bonus/aqgqj/webResult/Constants.java index c4445f8..dc0c529 100644 --- a/src/main/java/com/bonus/aqgqj/webResult/Constants.java +++ b/src/main/java/com/bonus/aqgqj/webResult/Constants.java @@ -144,5 +144,20 @@ public class Constants public static final String ERROR_RESULT2 = "不通过"; public static final String SUCCESS_RESULT = "合格"; + /**管理员*/ + public static final String ADMIDMINISTRATORS = "administrators"; + /**技术负责人*/ + public static final String TECHNICALDIRECTOR = "technicalDirector"; + /**中心负责人*/ + public static final String CENTERTRALMANAGER = "centerManager"; + /**试验班组*/ + public static final String EXPERIMENTALTEAM = "experimentalTeam"; + /**综合班组*/ + public static final String INTEGRATEDTEAM = "integratedTeam"; + + public static final String VALUE_DATA = "-1"; + public static final String VALUE_DATA2 = "0"; + public static final String VALUE_DATA3 = "1"; + } diff --git a/src/main/resources/mappers/basis/ExperimentalMapper.xml b/src/main/resources/mappers/basis/ExperimentalMapper.xml index 3529be4..3ccb0e7 100644 --- a/src/main/resources/mappers/basis/ExperimentalMapper.xml +++ b/src/main/resources/mappers/basis/ExperimentalMapper.xml @@ -293,6 +293,14 @@ AND INSTR(tsd.sampleDevCode,#{devTypeCode}) + + + AND ts.team_id = #{teamId} + + + AND ts.team_id = -1 + + ORDER BY FIELD(audtiStatus, '审阅不通过','审核不通过','审批不通过','待试验','待提交','待审阅','待审核','待审批','试验结束') ASC,dispatch_time ASC diff --git a/src/main/resources/mappers/system/UserMapper.xml b/src/main/resources/mappers/system/UserMapper.xml index e869c40..c32a8d7 100644 --- a/src/main/resources/mappers/system/UserMapper.xml +++ b/src/main/resources/mappers/system/UserMapper.xml @@ -50,7 +50,7 @@ + SELECT ts.id, + tc.custom_name AS customName, + DATE_FORMAT(ts.sample_time, '%Y-%m-%d') AS sampleTime, + IFNULL(tsd.num,0) AS customNum, + tsd.sampleDev, + su.user_name AS sampleUserName, + su2.user_name AS dispatchUserName, + DATE_FORMAT(ts.sample_date, '%Y-%m-%d') AS sampleDate, + tt.team_name AS teamName, + + WHEN process_status = 1 AND audti_status = 0 THEN '待审阅' + END AS audtiStatus, + + + WHEN process_status = 2 AND audti_status = 0 THEN '待审核' + END AS audtiStatus, + + + WHEN process_status = 3 AND audti_status = 0 THEN '待审批' + END AS audtiStatus, + + + CASE WHEN process_status = 1 AND audti_status = 0 THEN '待审阅' + WHEN process_status = 2 AND audti_status = 0 THEN '待审核' + WHEN process_status = 3 AND audti_status = 0 THEN '待审批' + END AS audtiStatus, + + ts.remarks + FROM tb_sample ts + LEFT JOIN tb_custom tc ON ts.custom_id = tc.id + LEFT JOIN sys_user su ON ts.create_user = su.id AND su.del_flag = 0 + LEFT JOIN sys_user su2 ON ts.update_user = su2.id AND su2.del_flag = 0 + LEFT JOIN tb_team tt ON ts.team_id = tt.id AND tt.del_flag = 0 + LEFT JOIN ( + SELECT sample_id,COUNT(sample_id) AS num,ANY_VALUE(GROUP_CONCAT(DISTINCT dev_type_name)) AS sampleDev,ANY_VALUE(GROUP_CONCAT(DISTINCT dev_type_code)) AS sampleDevCode + FROM tb_sample_device + WHERE del_falg = 0 + GROUP BY sample_id + ) tsd ON tsd.sample_id = ts.id + WHERE ts.del_flag = 0 + + AND ( + INSTR(tt.team_name,#{keyWord}) > 0 OR + INSTR(su2.user_name,#{keyWord}) > 0 + ) + + + AND INSTR(su.user_name,#{sampleUserName}) > 0 + + + AND DATE_FORMAT(ts.sample_date, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime} + + + AND INSTR(tsd.sampleDevCode,#{devTypeCode}) + + /*管理员、技术负责人、中心负责人查询全部数据*/ + + /*试验班组-班组长审阅-只审阅本班组提交的审阅*/ + + AND ts.team_id = #{teamId} + + + AND ts.team_id = -1 + + + /*非管理员、非技术负责人、非中心负责人无审查数据权限*/ + + AND ts.team_id = -1 + + /*班组长-审阅*/ + + AND process_status = 1 AND audti_status = 0 + + /*技术负责人-审核*/ + + AND process_status = 2 AND audti_status = 0 + + /*中心负责人-审批*/ + + AND process_status = 3 AND audti_status = 0 + + /*管理员*/ + + AND process_status IN (1,2,3) AND audti_status = 0 + + ORDER BY FIELD(audtiStatus, '待审阅','待审核','待审批') ASC,dispatch_time ASC + diff --git a/src/main/resources/mappers/basis/ExperimentalMapper.xml b/src/main/resources/mappers/basis/ExperimentalMapper.xml index 3ccb0e7..9ef0d0c 100644 --- a/src/main/resources/mappers/basis/ExperimentalMapper.xml +++ b/src/main/resources/mappers/basis/ExperimentalMapper.xml @@ -262,7 +262,7 @@ WHEN process_status = 2 AND audti_status = 2 THEN '审核不通过' WHEN process_status = 3 AND audti_status = 0 THEN '待审批' WHEN process_status = 3 AND audti_status = 2 THEN '审批不通过' - WHEN process_status = 4 AND audti_status = 1 THEN '试验结束' + WHEN process_status = 4 AND audti_status = 1 THEN '试验完成' ELSE '待试验' END AS audtiStatus, ts.remarks diff --git a/src/main/resources/static/js/basis/examine.js b/src/main/resources/static/js/basis/examine.js new file mode 100644 index 0000000..b1ee0f8 --- /dev/null +++ b/src/main/resources/static/js/basis/examine.js @@ -0,0 +1,205 @@ +let form, layer, table, tableIns,laydate; +let pageNum = 1, limitSize = 10; // 默认第一页,分页数量为10 +let deviceTypeList = []; +layui.use(['form', 'layer', 'table','laydate'], function () { + form = layui.form; + layer = layui.layer; + table = layui.table; + laydate = layui.laydate; + layui.form.render(); + deviceTypeList = getDictsSelect("dev_code"); + setDictSelectValue(deviceTypeList,'devTypeCode'); + laydate.render({ + elem: '#ID-laydate-rangeLinked', + range: ['#startTime', '#endTime'], + rangeLinked: true // 开启日期范围选择时的区间联动标注模式 --- 2.8+ 新增 + }); + pages(1, 10, 1); +}) + +function pages(pageNum, pageSize, typeNum) { + let params = getReqParams(pageNum, pageSize, typeNum); + $.ajax({ + url: dataUrl + "/examine/getList", + headers: { + "token": tokens + }, + data: params, + type: 'POST', + async: false, + success: function (result) { + console.log(result); + if (result.code === 200) { + if (result.data) { + initTable(result.data, result.limit, result.curr) + laypages(result.count, result.curr, result.limit) + } + } else if (result.code === 500) { + layer.alert(result.msg, {icon: 2}) + } + }, error: function (xhr) { + error(xhr); + } + }); +} + +function laypages(total, page, limit) { + layui.use(['laypage'], function () { + let laypage = layui.laypage; + laypage.render({ + elem: 'voi-page', + count: total, + curr: page, + limit: limit, + limits: [10, 20, 50, 100, 200, 500], + layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'], + groups: 5, + jump: function (obj, first) { + if (!first) { + pageNum = obj.curr, limitSize = obj.limit; + pages(obj.curr, obj.limit, null); + } + } + }); + }) +} + +/*初始化表格*/ +function initTable(dataList, limit, page) { + let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,}); + tableIns = table.render({ + elem: "#table_data", + height: "full-140", + data: dataList, + limit: limit, + cols: [ + [ + //表头 + { + title: "序号", width: 80, unresize: true, align: "center", + templet: function (d) { + return (page - 1) * limit + d.LAY_NUM; + } + }, + {field: "customName", title: "送样单位", unresize: true, align: "center"}, + {field: "sampleTime", title: "送样时间", unresize: true, align: "center"}, + {field: "sampleDev", title: "送样设备", unresize: true, align: "center"}, + {field: "customNum", title: "送样数量", unresize: true, align: "center"}, + {field: "sampleUserName", title: "收样人", unresize: true, align: "center"}, + {field: "sampleDate", title: "收样时间", unresize: true, align: "center"}, + {field: "teamName", title: "试验班组", unresize: true, align: "center"}, + {field: "audtiStatus", title: "状态", unresize: true, align: "center"}, + { + title: "操作", unresize: true, width: 180, align: "center", + templet: function (d) { + let html = ''; + html += "" + + ""; + return html; + } + }, + ], + ], + done: function (res, curr, count) { + layer.close(loadingMsg); + table.resize("table_data"); + count || this.elem.next(".layui-table-view").find(".layui-table-header").css("display", "inline-block"); + count || this.elem.next(".layui-table-view").find(".layui-table-box").css("overflow", "auto"); + }, + }); +} + + +// 获取参数 +function getReqParams(page, limit, type) { + let obj = {}; + if (!type) { + obj = { + page: page + "", + limit: limit + "", + keyWord: $('#keyWord').val(), + startTime: $('#startTime').val(), + endTime: $('#endTime').val(), + devTypeCode : $('#devTypeCode').val(), + }; + } else { + obj = { + page: '1', + limit: '10', + keyWord: '', + accessType: '', + startTime: '', + endTime: '', + devTypeCode : '' + }; + } + obj = { + encryptedData: encryptCBC(JSON.stringify(obj)) + } + return obj; +} + +// 查询/重置 +function query() { + let pattern = new RegExp("[%_<>]"); + if (pattern.test($("#ip").val())) { + $("#ip").val(''); + return layer.msg('ip查询包含特殊字符,请重新输入', { + icon: 2, + time: 2000 //2秒关闭(如果不配置,默认是3秒) + }); + } + pageNum = 1; + pages(1, limitSize); +} + +function reloadData() { + pages(pageNum, limitSize); +} + +// 新增/修改平台用户 +function addData(id) { + let title = '新增白名单' + if (id) { + title = '修改白名单'; + } + let param = { + 'id': id + } + openIframe2("addOrEditWhite", title, "child/whiteForm.html", '875px', '625px', param); +} + +function addPwdData(id) { + let param = { + 'id': id + } + openIframe2("addOrEditWhite", '密码规则配置', "child/pwdRuleForm.html", '875px', '625px', param); +} + +/*删除白名单*/ +function delData(id) { + layer.confirm("确定删除吗?", { + move: false + }, function () { + let loadingMsg = layer.msg('数据删除中,请稍候...', {icon: 16, scrollbar: false, time: 0}); + let url = dataUrl + "/sys/white/delWhite" + let obj = {'id': id} + let params = { + encryptedData: encryptCBC(JSON.stringify(obj)) + } + ajaxRequest(url, "POST", params, true, function () { + }, function (result) { + layer.close(loadingMsg); // 关闭提示层 + if (result.status === 200) { + parent.layer.msg(result.msg, {icon: 1}) + query() + } else if (result.status === 500) { + layer.alert(result.msg, {icon: 2}) + } + }, function (xhr) { + layer.close(loadingMsg); // 关闭提示层 + error(xhr) + }); + }) +} + diff --git a/src/main/resources/static/js/select.js b/src/main/resources/static/js/select.js index 64bca91..3dfd43f 100644 --- a/src/main/resources/static/js/select.js +++ b/src/main/resources/static/js/select.js @@ -213,4 +213,35 @@ function setFormSelects2(selName,list) { arr: keys }); layui.form.render(); +} + +/**字典表下拉选*/ +function getDictsSelect(value) { + let data = []; + let url = dataUrl + "/sys/select/getDicts" + let obj = {"code":value} + let params = { + encryptedData: encryptCBC(JSON.stringify(obj)) + } + ajaxRequest(url, "POST", params, false, function () { + }, function (result) { + if (result.status === 200) { + data = result.data; + } else if (result.status === 500) { + layer.alert(result.msg, {icon: 2}) + } + }, function (xhr) { + error(xhr) + }); + return data; +} + +/**字典表下拉选赋值*/ +function setDictSelectValue(list, selectName) { + let html = ''; + $.each(list, function (index, item) { + html += ''; + }) + $('#' + selectName).empty().append(html); + layui.form.render(); } \ No newline at end of file diff --git a/src/main/resources/static/pages/basis/examine.html b/src/main/resources/static/pages/basis/examine.html new file mode 100644 index 0000000..a3924de --- /dev/null +++ b/src/main/resources/static/pages/basis/examine.html @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + 试验数据-审查 + + +
+ +
+
+
+
+
+ + + + + \ No newline at end of file