diff --git a/shandan-bianmu/src/main/java/com/keyware/shandan/bianmu/controller/MetadataController.java b/shandan-bianmu/src/main/java/com/keyware/shandan/bianmu/controller/MetadataController.java index ab02067..3c4aae5 100644 --- a/shandan-bianmu/src/main/java/com/keyware/shandan/bianmu/controller/MetadataController.java +++ b/shandan-bianmu/src/main/java/com/keyware/shandan/bianmu/controller/MetadataController.java @@ -14,7 +14,9 @@ import com.keyware.shandan.common.enums.SecretLevel; import com.keyware.shandan.common.util.StreamUtil; import com.keyware.shandan.common.util.StringUtils; import com.keyware.shandan.system.entity.SysFile; +import com.keyware.shandan.system.entity.SysFormConfig; import com.keyware.shandan.system.service.SysFileService; +import com.keyware.shandan.system.service.SysFormConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; @@ -46,6 +48,9 @@ public class MetadataController extends BaseController query = new QueryWrapper<>(); + query.eq("FORM_TYPE", 1); + mav.addObject("metadataFormConfig", formConfigService.list(query)); return mav; } diff --git a/shandan-bianmu/src/main/resources/static/js/business/metadata/edit.js b/shandan-bianmu/src/main/resources/static/js/business/metadata/edit.js index 64c0398..a32b978 100644 --- a/shandan-bianmu/src/main/resources/static/js/business/metadata/edit.js +++ b/shandan-bianmu/src/main/resources/static/js/business/metadata/edit.js @@ -276,9 +276,10 @@ layui.use(['form', 'layer', 'editPage', 'laytpl', 'laydate', 'element', 'table', layui.dict.setData('dict-secret-level', data); } + console.info(new Date().getTime()) //日期选择器 laydate.render({ - elem: '#collectionTime', + elem: 'input[name="collectionTime"]', type: 'datetime', value: new Date(), format: "yyyy-MM-dd HH:mm:ss" diff --git a/shandan-bianmu/src/main/resources/view/business/metadata/metadataEdit.html b/shandan-bianmu/src/main/resources/view/business/metadata/metadataEdit.html index 292349c..7d23c0d 100644 --- a/shandan-bianmu/src/main/resources/view/business/metadata/metadataEdit.html +++ b/shandan-bianmu/src/main/resources/view/business/metadata/metadataEdit.html @@ -34,7 +34,27 @@
-
+
+ +
+ + + + +
+
+
+
- -
+ +
@@ -147,6 +169,5 @@ {{# } }} - diff --git a/shandan-common/src/main/resources/static/js/common/layui/extend/dict.js b/shandan-common/src/main/resources/static/js/common/layui/extend/dict.js index e9c9d4b..4831e3f 100644 --- a/shandan-common/src/main/resources/static/js/common/layui/extend/dict.js +++ b/shandan-common/src/main/resources/static/js/common/layui/extend/dict.js @@ -52,6 +52,7 @@ layui.define(['form'], function (exports) { data = '';// 选中的数据 change;// 数据改变后的回调函数 readonly;// 是否只读 + disabled; // 是否禁用 width;// 宽度 constructor(type, options) { @@ -82,6 +83,7 @@ layui.define(['form'], function (exports) { this.change = options.onchange || function () { }; this.readonly = options.readonly; + this.disabled = options.disabled; this.width = options.width || 'fit-content'; // 开始渲染 @@ -249,7 +251,7 @@ layui.define(['form'], function (exports) { } let nodes_html = nodes.join(''); - return ``; + return ``; } /** @@ -304,11 +306,12 @@ layui.define(['form'], function (exports) { type = _elem.attr('dict-type'), dictType = _elem.attr('dict-component'), readonly = _elem.attr('readonly'), + disabled = _elem.attr('disabled'), data = _elem.attr('data'), width = _elem.attr('dict-width'), formFilter = getFormElementFilter(_elem); - let option = {elem, id, name, type, formFilter, readonly, data, width}; + let option = {elem, id, name, type, formFilter, readonly, disabled, data, width}; new DictComponent(dictType, option) }); } diff --git a/shandan-common/src/main/resources/view/common/head.html b/shandan-common/src/main/resources/view/common/head.html index 45f4b1b..cf88fe0 100644 --- a/shandan-common/src/main/resources/view/common/head.html +++ b/shandan-common/src/main/resources/view/common/head.html @@ -34,6 +34,10 @@ USER_ROLES.push(role.roleName); } } + + // 表单配置 + const METADATA_FORM_CONFIG = /*[[${metadataFormConfig}]]*/ []; + const FILEUPLOAD_FORM_CONFIG = /*[[${uploadFormConfig}]]*/ []; diff --git a/shandan-system/src/main/java/com/keyware/shandan/frame/aspect/SafetyAspect.java b/shandan-system/src/main/java/com/keyware/shandan/frame/aspect/SafetyAspect.java index 6f7fec8..85a0e98 100644 --- a/shandan-system/src/main/java/com/keyware/shandan/frame/aspect/SafetyAspect.java +++ b/shandan-system/src/main/java/com/keyware/shandan/frame/aspect/SafetyAspect.java @@ -6,8 +6,10 @@ import com.keyware.shandan.common.entity.Result; import com.keyware.shandan.common.util.*; import com.keyware.shandan.frame.config.security.SecurityUtil; import com.keyware.shandan.frame.properties.CustomProperties; +import com.keyware.shandan.system.entity.SysFormConfig; import com.keyware.shandan.system.entity.SysRole; import com.keyware.shandan.system.entity.SysUser; +import com.keyware.shandan.system.service.SysFormConfigService; import com.keyware.shandan.system.service.SysRoleService; import com.keyware.shandan.system.utils.SysSettingUtil; import lombok.extern.slf4j.Slf4j; @@ -25,7 +27,9 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; /** * AES + RSA 加解密AOP处理 @@ -44,6 +48,9 @@ public class SafetyAspect { @Autowired private SysRoleService sysRoleService; + @Autowired + private SysFormConfigService formConfigService; + /** * Pointcut 切入点 */ @@ -98,7 +105,7 @@ public class SafetyAspect { ModelAndView modelAndView = (ModelAndView) result; modelAndView.addObject("publicKey", RsaUtil.getPublicKey()); modelAndView.addObject("sys", SysSettingUtil.getCurrentSysSetting()); - SysUser loginUser = SecurityUtil.getLoginSysUser(); + SysUser loginUser = SecurityUtil.getLoginSysUser(); loginUser.setPassword(null); modelAndView.addObject("loginUser", loginUser); //登录用户角色信息 @@ -121,6 +128,10 @@ public class SafetyAspect { } //展示用户角色 modelAndView.addObject("userRole", userRoles.get(index)); + List formConfigList = formConfigService.list(); + + modelAndView.addObject("metadataFormConfig", formConfigList.stream().filter(conf -> conf.getFormType() == 1).collect(Collectors.toList())); + modelAndView.addObject("uploadFormConfig", formConfigList.stream().filter(conf -> conf.getFormType() == 2).collect(Collectors.toList())); setStaticResourceAddress(request, modelAndView); } return result; diff --git a/shandan-system/src/main/java/com/keyware/shandan/system/entity/SysFormConfig.java b/shandan-system/src/main/java/com/keyware/shandan/system/entity/SysFormConfig.java index 2e82ca6..b6d4f83 100644 --- a/shandan-system/src/main/java/com/keyware/shandan/system/entity/SysFormConfig.java +++ b/shandan-system/src/main/java/com/keyware/shandan/system/entity/SysFormConfig.java @@ -26,17 +26,21 @@ public class SysFormConfig extends BaseEntity { */ private Integer formType; /** - * 字段标题 + * 字段名 */ - private String fieldTitle; + private String fieldName; /** - * 字段标题 + * 字段显示标题 */ private String showTitle; /** * 字段类型 */ private String fieldType; + /** + * 数据字典类型,只有当fieldType为"dict"时才有效 + */ + private String dictType; /** * 默认值 */ diff --git a/shandan-system/src/main/resources/static/js/sys/form/formConfig.js b/shandan-system/src/main/resources/static/js/sys/form/formConfig.js index 2c9ead2..40f78a4 100644 --- a/shandan-system/src/main/resources/static/js/sys/form/formConfig.js +++ b/shandan-system/src/main/resources/static/js/sys/form/formConfig.js @@ -18,9 +18,10 @@ class FormConfigComponent { page: false, cols: [[ {field: 'id', hide: true}, - {field: 'fieldTitle', title: '字段'}, + {field: 'fieldName', title: '字段名'}, {field: 'showTitle', title: '显示的标题', edit: 'text'}, {field: 'fieldType', title: '字段类型', hide: true}, + {field: 'dictType', title: '数据字典', hide: true}, {field: 'defaultValue', title: '默认值', edit: 'text', hide: true}, { field: 'isRequired', @@ -68,14 +69,10 @@ class FormConfigComponent { } } - switchChangeListen({elem, value}) { + switchChangeListen({elem}) { const id = $(elem).attr('id'), name = $(elem).attr('name'); - this.dataMap.get(id)[name] = Boolean(value); - this.consoleDataMap(); - } - - consoleDataMap() { - console.info(this.dataMap); + const value = this.dataMap.get(id)[name]; + this.dataMap.get(id)[name] = !value; } }