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 85a0e98..541c06a 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 @@ -130,8 +130,8 @@ 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())); + modelAndView.addObject("metadataFormConfig", formConfigList.stream().filter(conf -> "1".equals(conf.getFormType())).collect(Collectors.toList())); + modelAndView.addObject("uploadFormConfig", formConfigList.stream().filter(conf -> "2".equals(conf.getFormType())).collect(Collectors.toList())); setStaticResourceAddress(request, modelAndView); } return result; diff --git a/shandan-system/src/main/java/com/keyware/shandan/system/controller/SysFormConfigController.java b/shandan-system/src/main/java/com/keyware/shandan/system/controller/SysFormConfigController.java index 2c0045f..2d47588 100644 --- a/shandan-system/src/main/java/com/keyware/shandan/system/controller/SysFormConfigController.java +++ b/shandan-system/src/main/java/com/keyware/shandan/system/controller/SysFormConfigController.java @@ -45,13 +45,33 @@ public class SysFormConfigController { public Result> list(@PathVariable String formType) { QueryWrapper query = new QueryWrapper<>(); query.eq("FORM_TYPE", formType); - return Result.of(formConfigService.list(query)); + List list = formConfigService.list(query); + if(list.size() < 1){ + //新增类型,使用默认的模版 + list = formConfigService.list(new QueryWrapper().eq("FORM_TYPE","2")); + } + return Result.of(list); } @PostMapping(value = "/api/save") - public Result save(String params) { + public Result save(String params,String formType) { JSONArray jsonArray = JSONUtil.parseArray(params); - List list = jsonArray.toList(SysFormConfig.class); - return Result.of(formConfigService.saveOrUpdateBatch(list)); + //判断是否新增数据类型 + System.out.println(formType); + List resultList = jsonArray.toList(SysFormConfig.class); + //查询是否存在该FORM_TYPE,不存在则视为新增 + QueryWrapper query = new QueryWrapper<>(); + query.eq("FORM_TYPE", formType); + List list = formConfigService.list(query); + if(list.size() < 1){ + resultList.forEach(sys -> { + sys.setId(null); + sys.setFormType(formType); + formConfigService.save(sys); + } ); + return Result.of(true); + }else { + return Result.of(formConfigService.saveOrUpdateBatch(resultList)); + } } } 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 b6d4f83..b709b7f 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 @@ -1,6 +1,8 @@ package com.keyware.shandan.system.entity; +import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.OrderBy; +import com.baomidou.mybatisplus.annotation.TableId; import com.keyware.shandan.common.entity.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; @@ -20,11 +22,12 @@ public class SysFormConfig extends BaseEntity { /** * 主键 */ + @TableId(type = IdType.AUTO ) private Integer id; /** * 表单类型:1-资源注册表单,2-文件上传表单 */ - private Integer formType; + private String formType; /** * 字段名 */ 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 9badef6..346340e 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 @@ -5,6 +5,14 @@ class FormConfigComponent { this.lay = lay; this.dataMap = new Map(); this.renderTable(); + // 文件上传表单按数据类型配置不同的字段属性。 + if(elemId == 'fileUploadFormTable') { + lay.dict.render(); + lay.dict.onchange('dict-dataType', (data) => { + new FormConfigComponent(data.value, 'fileUploadFormTable', layui); + lay.dict.setData('dict-dataType',data.value); + }) + } } renderTable() { @@ -40,11 +48,13 @@ class FormConfigComponent { }, {field: 'sort', title: '显示顺序', edit: 'text'} ]], - done: (res) => this.tableLoadDoneListen(res), + done: (res) => { + this.tableLoadDoneListen(res) + }, onToolBarTable: ({event, config})=> { if(event === 'save'){ const datas = [...this.dataMap.values()]; - Util.post(`/sys/form/config/api/save`, {params: JSON.stringify(datas)}).then(res=>{ + Util.post(`/sys/form/config/api/save`, {params: JSON.stringify(datas),formType: formType}).then(res=>{ if(res.flag){ showOkMsg('保存成功') }else{ @@ -66,12 +76,14 @@ class FormConfigComponent { const id = data.id, value = data[fieldName]; return `` } + } tableLoadDoneListen(res) { if (res.flag) { res.records.map(record => this.dataMap.set(record.id + '', record)); } + } switchChangeListen({elem}) { @@ -81,7 +93,7 @@ class FormConfigComponent { } } -layui.use(['form', 'gtable', 'dropdown', 'element'], function () { +layui.use(['form', 'gtable', 'dropdown', 'element','dict'], function () { const metadataForm = new FormConfigComponent(1, 'metadataFormTable', layui); const fileUploadForm = new FormConfigComponent(2, 'fileUploadFormTable', layui); }); diff --git a/shandan-system/src/main/resources/view/sys/form/formConfig.html b/shandan-system/src/main/resources/view/sys/form/formConfig.html index 309626a..e40f72c 100644 --- a/shandan-system/src/main/resources/view/sys/form/formConfig.html +++ b/shandan-system/src/main/resources/view/sys/form/formConfig.html @@ -33,7 +33,26 @@ lay-filter="fileUploadFormTable">