diff --git a/module-form/src/main/java/ink/wgink/module/form/controller/api/report/FormReportController.java b/module-form/src/main/java/ink/wgink/module/form/controller/api/report/FormReportController.java index a8690e44..7e3a68de 100644 --- a/module-form/src/main/java/ink/wgink/module/form/controller/api/report/FormReportController.java +++ b/module-form/src/main/java/ink/wgink/module/form/controller/api/report/FormReportController.java @@ -1,5 +1,20 @@ package ink.wgink.module.form.controller.api.report; +import ink.wgink.common.base.DefaultBaseController; +import ink.wgink.exceptions.ParamsException; +import ink.wgink.interfaces.consts.ISystemConstant; +import ink.wgink.module.form.service.report.IFormReportService; +import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.result.SuccessResult; +import ink.wgink.pojo.result.SuccessResultList; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + /** * @ClassName: FormReportController * @Description: 表单上报 @@ -7,5 +22,59 @@ package ink.wgink.module.form.controller.api.report; * @Date: 2022/3/10 7:29 PM * @Version: 1.0 */ -public class FormReportController { +@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "表单") +@RestController +@RequestMapping(ISystemConstant.API_PREFIX + "/form-report") +public class FormReportController extends DefaultBaseController { + + @Autowired + private IFormReportService formReportService; + + @PostMapping("save/code/{formCode}/version/{formVersion}") + public SuccessResult save(@PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, @RequestBody Map params) { + checkParams(params); + formReportService.save(formCode, formVersion, params); + return new SuccessResult(); + } + + @DeleteMapping("remove/code/{formCode}/version/{formVersion}/uids/{uids}") + public SuccessResult remove(@PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, @PathVariable("uids") String uids) { + formReportService.remove(formCode, formVersion, Arrays.asList(uids.split("\\_"))); + return new SuccessResult(); + } + + @PutMapping("update/code/{formCode}/version/{formVersion}/uid/{uid}") + public SuccessResult update(@PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, @PathVariable("uid") String uid, @RequestBody Map params) { + checkParams(params); + formReportService.update(uid, params); + return new SuccessResult(); + } + + @GetMapping("get/code/{formCode}/version/{formVersion}/uid/{uid}") + public Map get(@PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, @PathVariable("uid") String uid) { + return formReportService.get(formCode, formVersion, uid); + } + + @GetMapping("list/code/{formCode}/version/{formVersion}") + public List> list(@PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion) { + Map params = requestParams(); + return formReportService.list(formCode, formVersion, params); + } + + @GetMapping("listpage/code/{formCode}/version/{formVersion}") + public SuccessResultList>> listPage(@PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, ListPage page) { + Map params = requestParams(); + page.setParams(params); + return formReportService.listPage(formCode, formVersion, page); + } + + private void checkParams(Map body) { + if (body.isEmpty()) { + throw new ParamsException("提交内容不能为空"); + } + for (Map.Entry kv : body.entrySet()) { + String key = kv.getKey(); + } + } + } diff --git a/module-form/src/main/java/ink/wgink/module/form/controller/app/route/report/FormReportAppRouteController.java b/module-form/src/main/java/ink/wgink/module/form/controller/app/route/report/FormReportAppRouteController.java new file mode 100644 index 00000000..e8a2c7f6 --- /dev/null +++ b/module-form/src/main/java/ink/wgink/module/form/controller/app/route/report/FormReportAppRouteController.java @@ -0,0 +1,58 @@ +package ink.wgink.module.form.controller.app.route.report; + +import ink.wgink.interfaces.consts.ISystemConstant; +import ink.wgink.module.form.service.report.IFormReportRouteService; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +/** + * @ClassName: FormReportRouteController + * @Description: 表单上报 + * @Author: wanggeng + * @Date: 2022/3/10 7:29 PM + * @Version: 1.0 + */ +@Api(tags = ISystemConstant.API_TAGS_APP_ROUTE_PREFIX + "表单") +@Controller +@RequestMapping(ISystemConstant.APP_ROUTE_PREFIX + "/form-report") +public class FormReportAppRouteController { + + @Autowired + private IFormReportRouteService formReportService; + + @GetMapping("save/code/{formCode}/version/{formVersion}") + public void get(@PathVariable("formCode") String formCode, + @PathVariable("formVersion") Integer formVersion, + HttpSession httpSession, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) { + formReportService.appSave(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse); + } + + @GetMapping("update/code/{formCode}/version/{formVersion}") + public void update(@PathVariable("formCode") String formCode, + @PathVariable("formVersion") Integer formVersion, + HttpSession httpSession, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) { + formReportService.appUpdate(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse); + } + + @GetMapping("show/code/{formCode}/version/{formVersion}") + public void show(@PathVariable("formCode") String formCode, + @PathVariable("formVersion") Integer formVersion, + HttpSession httpSession, + HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) { + formReportService.appShow(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse); + } + +} diff --git a/module-form/src/main/java/ink/wgink/module/form/dao/formreport/IFormReportDao.java b/module-form/src/main/java/ink/wgink/module/form/dao/formreport/IFormReportDao.java new file mode 100644 index 00000000..aa827b5f --- /dev/null +++ b/module-form/src/main/java/ink/wgink/module/form/dao/formreport/IFormReportDao.java @@ -0,0 +1,32 @@ +package ink.wgink.module.form.dao.formreport; + +import ink.wgink.exceptions.RemoveException; +import ink.wgink.exceptions.SaveException; +import ink.wgink.exceptions.SearchException; +import ink.wgink.exceptions.UpdateException; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * @ClassName: IFormReportDao + * @Description: 表单上报 + * @Author: wanggeng + * @Date: 2022/3/14 8:27 PM + * @Version: 1.0 + */ +@Repository +public interface IFormReportDao { + + void save(Map params) throws SaveException; + + void remove(Map params) throws RemoveException; + + void update(Map params) throws UpdateException; + + Map get(Map params) throws SearchException; + + List> list(Map queryParams) throws SearchException; + +} diff --git a/module-form/src/main/java/ink/wgink/module/form/service/report/IFormReportRouteService.java b/module-form/src/main/java/ink/wgink/module/form/service/report/IFormReportRouteService.java index 5afe185c..e85a77b9 100644 --- a/module-form/src/main/java/ink/wgink/module/form/service/report/IFormReportRouteService.java +++ b/module-form/src/main/java/ink/wgink/module/form/service/report/IFormReportRouteService.java @@ -46,4 +46,36 @@ public interface IFormReportRouteService { */ void show(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse); + /** + * APP新增页面 + * + * @param formCode + * @param formVersion + * @param httpSession + * @param httpServletRequest + * @param httpServletResponse + */ + void appSave(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse); + + /** + * APP修改页面 + * + * @param formCode + * @param formVersion + * @param httpSession + * @param httpServletRequest + * @param httpServletResponse + */ + void appUpdate(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse); + + /** + * APP详情页面 + * + * @param formCode + * @param formVersion + * @param httpSession + * @param httpServletRequest + * @param httpServletResponse + */ + void appShow(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse); } diff --git a/module-form/src/main/java/ink/wgink/module/form/service/report/IFormReportService.java b/module-form/src/main/java/ink/wgink/module/form/service/report/IFormReportService.java new file mode 100644 index 00000000..1955efe1 --- /dev/null +++ b/module-form/src/main/java/ink/wgink/module/form/service/report/IFormReportService.java @@ -0,0 +1,30 @@ +package ink.wgink.module.form.service.report; + +import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.result.SuccessResultList; + +import java.util.List; +import java.util.Map; + +/** + * @ClassName: IFormReportService + * @Description: 表单上报 + * @Author: wanggeng + * @Date: 2022/3/14 5:30 PM + * @Version: 1.0 + */ +public interface IFormReportService { + + void save(String formCode, Integer formVersion, Map params); + + void remove(String formCode, Integer formVersion, List uids); + + void update(String uid, Map params); + + Map get(String formCode, Integer formVersion, String uid); + + List> list(String formCode, Integer formVersion, Map params); + + SuccessResultList>> listPage(String formCode, Integer formVersion, ListPage page); + +} diff --git a/module-form/src/main/java/ink/wgink/module/form/service/report/impl/FormReportRouteServiceImpl.java b/module-form/src/main/java/ink/wgink/module/form/service/report/impl/FormReportRouteServiceImpl.java index 384e61d1..afab1a37 100644 --- a/module-form/src/main/java/ink/wgink/module/form/service/report/impl/FormReportRouteServiceImpl.java +++ b/module-form/src/main/java/ink/wgink/module/form/service/report/impl/FormReportRouteServiceImpl.java @@ -41,23 +41,79 @@ public class FormReportRouteServiceImpl extends DefaultBaseService implements IF @Override public void save(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { - FormPO formPO = formService.getPOByCodeAndVersion(formCode, formVersion); + FormPO formPO = getFormPO(formCode, formVersion); if (formPO == null) { - httpServletResponse.setStatus(HttpStatus.NOT_FOUND.value()); return; } - if (!StringUtils.equals(formPO.getFormStatus(), FormStatusEnum.ACTIVE.getValue())) { - LOG.error("表单 {} 未激活", formCode); - httpServletResponse.setStatus(HttpStatus.NOT_FOUND.value()); + Map modal = getModal(formPO); + showPage(modal, formCode, formPO.getSavePageCode(), httpSession, httpServletRequest, httpServletResponse); + } + + @Override + public void update(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { + FormPO formPO = getFormPO(formCode, formVersion); + if (formPO == null) { return; } + Map modal = getModal(formPO); + showPage(modal, formCode, formPO.getUpdatePageCode(), httpSession, httpServletRequest, httpServletResponse); + } + + @Override + public void show(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { + FormPO formPO = getFormPO(formCode, formVersion); + if (formPO == null) { + return; + } + Map modal = getModal(formPO); + showPage(modal, formCode, formPO.getShowPageCode(), httpSession, httpServletRequest, httpServletResponse); + } + + @Override + public void appSave(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { + FormPO formPO = getFormPO(formCode, formVersion); + if (formPO == null) { + return; + } + Map modal = getModal(formPO); + showPage(modal, formCode, formPO.getAppSavePageCode(), httpSession, httpServletRequest, httpServletResponse); + } + + @Override + public void appUpdate(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { + FormPO formPO = getFormPO(formCode, formVersion); + if (formPO == null) { + return; + } + Map modal = getModal(formPO); + showPage(modal, formCode, formPO.getAppUpdatePageCode(), httpSession, httpServletRequest, httpServletResponse); + } + + @Override + public void appShow(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { + FormPO formPO = getFormPO(formCode, formVersion); + if (formPO == null) { + return; + } + Map modal = getModal(formPO); + showPage(modal, formCode, formPO.getAppShowPageCode(), httpSession, httpServletRequest, httpServletResponse); + } + + /** + * 展示页面 + * + * @param modal + * @param formCode + * @param pageCode + * @param httpSession + * @param httpServletRequest + * @param httpServletResponse + */ + private void showPage(Map modal, String formCode, String pageCode, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { httpServletResponse.setContentType("text/html; charset=" + ISystemConstant.CHARSET_UTF8); try { - Template template = getTemplate(formCode, formPO.getSavePageCode()); + Template template = getTemplate(formCode, pageCode); PrintWriter out = httpServletResponse.getWriter(); - Map modal = getHashMap(2); - modal.put("contextPath", httpServletRequest.getContextPath() + "/"); - modal.put("formName", formPO.getFormName()); template.process(modal, out); } catch (IOException e) { httpServletResponse.setStatus(HttpStatus.NOT_FOUND.value()); @@ -67,14 +123,39 @@ public class FormReportRouteServiceImpl extends DefaultBaseService implements IF } } - @Override - public void update(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { - + /** + * 获取模型 + * + * @return + */ + private Map getModal(FormPO formPO) { + Map modal = getHashMap(10); + modal.put("contextPath", httpServletRequest.getContextPath() + "/"); + modal.put("formName", formPO.getFormName()); + modal.put("formCode", formPO.getFormCode()); + modal.put("formVersion", formPO.getFormVersion()); + return modal; } - @Override - public void show(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { - + /** + * 获取表单 + * + * @param formCode + * @param formVersion + * @return + */ + private FormPO getFormPO(String formCode, Integer formVersion) { + FormPO formPO = formService.getPOByCodeAndVersion(formCode, formVersion); + if (formPO == null) { + httpServletResponse.setStatus(HttpStatus.NOT_FOUND.value()); + return null; + } + if (!StringUtils.equals(formPO.getFormStatus(), FormStatusEnum.ACTIVE.getValue())) { + LOG.error("表单 {} 未激活", formCode); + httpServletResponse.setStatus(HttpStatus.NOT_FOUND.value()); + return null; + } + return formPO; } /** diff --git a/module-form/src/main/java/ink/wgink/module/form/service/report/impl/FormReportServiceImpl.java b/module-form/src/main/java/ink/wgink/module/form/service/report/impl/FormReportServiceImpl.java new file mode 100644 index 00000000..6a3e79d1 --- /dev/null +++ b/module-form/src/main/java/ink/wgink/module/form/service/report/impl/FormReportServiceImpl.java @@ -0,0 +1,190 @@ +package ink.wgink.module.form.service.report.impl; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import ink.wgink.common.base.DefaultBaseService; +import ink.wgink.module.form.dao.formreport.IFormReportDao; +import ink.wgink.module.form.service.report.IFormReportService; +import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.util.UUIDUtil; +import ink.wgink.util.date.DateUtil; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @ClassName: FormReportServiceImpl + * @Description: 表单上报 + * @Author: wanggeng + * @Date: 2022/3/14 5:30 PM + * @Version: 1.0 + */ +@Service +public class FormReportServiceImpl extends DefaultBaseService implements IFormReportService { + + @Autowired + private IFormReportDao formReportDao; + + @Override + public void save(String formCode, Integer formVersion, Map params) { + List inserts = new ArrayList<>(); + List values = new ArrayList<>(); + inserts.add("uid"); + values.add(UUIDUtil.getUUID()); + for (Map.Entry kv : params.entrySet()) { + inserts.add(kv.getKey()); + values.add(kv.getValue()); + } + String datetime = DateUtil.getTime(); + String userId = securityComponent.getCurrentUser().getUserId(); + inserts.add("gmt_create"); + values.add(datetime); + inserts.add("creator"); + values.add(userId); + inserts.add("gmt_modified"); + values.add(datetime); + inserts.add("modifier"); + values.add(userId); + inserts.add("is_delete"); + values.add(0); + + Map insertParams = getHashMap((params.size() + 5) * 2); + insertParams.put("formCode", formCode); + insertParams.put("formVersion", formVersion); + insertParams.put("inserts", inserts); + insertParams.put("values", values); + formReportDao.save(insertParams); + } + + @Override + public void remove(String formCode, Integer formVersion, List uids) { + Map params = getHashMap(10); + params.put("formCode", formCode); + params.put("formVersion", formVersion); + params.put("uids", uids); + setUpdateInfo(params); + + formReportDao.remove(params); + } + + @Override + public void update(String uid, Map params) { + List kvList = new ArrayList<>(); + for (Map.Entry kv : params.entrySet()) { + Object[] kvArray = new Object[]{kv.getKey(), kv.getValue()}; + kvList.add(kvArray); + } + kvList.add(new Object[]{"gmt_modified", DateUtil.getTime()}); + kvList.add(new Object[]{"modifier", securityComponent.getCurrentUser().getUserId()}); + + Map updateParams = getHashMap((params.size() + 3) * 2); + updateParams.put("uid", uid); + updateParams.put("kvList", kvList); + + formReportDao.update(params); + } + + @Override + public Map get(String formCode, Integer formVersion, String uid) { + Map params = getHashMap(2); + params.put("uid", uid); + params.put("formCode", formCode); + params.put("formVersion", formVersion); + return formReportDao.get(params); + } + + @Override + public List> list(String formCode, Integer formVersion, Map params) { + List queryList = conditionList(params); + Map queryParams = getHashMap(6); + queryParams.put("formCode", formCode); + queryParams.put("formVersion", formVersion); + queryParams.put("queryList", queryList); + return formReportDao.list(queryParams); + } + + @Override + public SuccessResultList>> listPage(String formCode, Integer formVersion, ListPage page) { + List queryList = conditionList(page.getParams()); + Map queryParams = getHashMap(6); + queryParams.put("formCode", formCode); + queryParams.put("formVersion", formVersion); + queryParams.put("queryList", queryList); + + PageHelper.startPage(page.getPage(), page.getRows()); + List> mapList = formReportDao.list(queryParams); + PageInfo> pageInfo = new PageInfo<>(mapList); + return new SuccessResultList<>(mapList, pageInfo.getPageNum(), pageInfo.getTotal()); + } + + /** + * 条件列表 + * + * @param params + * @return + */ + private List conditionList(Map params) { + // 清除条件中的默认字段 + params.remove("requestUri"); + params.remove("requestHost"); + params.remove("requestPort"); + params.remove("keywords"); + params.remove("showLevel"); + params.remove("page"); + params.remove("rows"); + params.remove("is_delete"); + + List queryList = new ArrayList<>(); + for (Map.Entry kv : params.entrySet()) { + String condition = getCondition(kv.getKey(), kv.getValue()); + if (StringUtils.isBlank(condition)) { + continue; + } + queryList.add(condition); + } + return queryList; + } + + private String getCondition(String key, Object value) { + String conditionSQL; + if (value == null) { + return null; + } + String valueStr = "" + value; + if (StringUtils.isBlank(valueStr)) { + return null; + } + if (StringUtils.startsWith(valueStr, "*") && StringUtils.endsWith(valueStr, "*")) { + // key LIKE '%keyword%' + conditionSQL = key + " LIKE '%" + valueStr.substring(1, valueStr.length() - 1) + "%'"; + } else if (StringUtils.startsWith(valueStr, "*")) { + // key LIKE '%keyword' + conditionSQL = key + " LIKE '%" + valueStr.substring(1) + "'"; + } else if (StringUtils.endsWith(valueStr, "*")) { + // key LIKE 'keyword%' + conditionSQL = key + " LIKE '" + valueStr.substring(0, valueStr.length() - 1) + "%'"; + } else if (StringUtils.startsWith(valueStr, "lt;")) { + // key < 'value' + conditionSQL = key + " < '" + valueStr.substring(3) + "'"; + } else if (StringUtils.endsWith(valueStr, "gt;")) { + // key > 'value' + conditionSQL = key + " > '" + valueStr.substring(3) + "'"; + } else if (StringUtils.startsWith(valueStr, "le;")) { + // key <= 'value' + conditionSQL = key + " <= '" + valueStr.substring(3) + "'"; + } else if (StringUtils.endsWith(valueStr, "ge;")) { + // key >= 'value' + conditionSQL = key + " >= '" + valueStr.substring(3) + "'"; + } else if (StringUtils.endsWith(valueStr, "ne;")) { + conditionSQL = key + " <> '" + valueStr.substring(3) + "'"; + } else { + conditionSQL = key + " = '" + valueStr + "'"; + } + return conditionSQL; + } +} diff --git a/module-form/src/main/resources/mybatis/mapper/form-report/form-report-mapper.xml b/module-form/src/main/resources/mybatis/mapper/form-report/form-report-mapper.xml new file mode 100644 index 00000000..1a4504b0 --- /dev/null +++ b/module-form/src/main/resources/mybatis/mapper/form-report/form-report-mapper.xml @@ -0,0 +1,72 @@ + + + + + + + INSERT INTO df_${formCode}_v${formVersion}( + + ${inserts[index]} + + ) VALUES( + + #{values[${index}]} + + ) + + + + + UPDATE + df_${formCode}_v${formVersion} + SET + is_delete = 1, + modifier = #{modifier}, + gmt_modified = #{gmtModified} + WHERE + uid IN + + #{uids[${index}]} + + + + + + UPDATE + df_${formCode}_v${formVersion} + SET + + ${kvList[${index}][0]} = #{kvList[${index}][1]} + + WHERE + uid = #{uid} + + + + + + + + + \ No newline at end of file diff --git a/module-form/src/main/resources/static/form-design/modules/components/grid.js b/module-form/src/main/resources/static/form-design/modules/components/grid.js index 8b0ed7ad..43bad445 100644 --- a/module-form/src/main/resources/static/form-design/modules/components/grid.js +++ b/module-form/src/main/resources/static/form-design/modules/components/grid.js @@ -15,13 +15,13 @@ layui.define(['jquery', 'formUtils', 'formField'], function (exports) { } var _html = '
'.format(json.id, json.tag, selected ? 'active' : '', json.index); - var colClass = 'layui-col-md6'; + var colClass = 'layui-col-md6 layui-col-xs6'; if (json.columns.length == 3) { - colClass = 'layui-col-md4'; + colClass = 'layui-col-md4 layui-col-xs4'; } else if (json.columns.length == 4) { - colClass = 'layui-col-md3'; + colClass = 'layui-col-md3 layui-col-xs3'; } else if (json.columns.length == 6) { - colClass = 'layui-col-md2'; + colClass = 'layui-col-md2 layui-col-xs2'; } for (var i = 0; i < json.columns.length; i++) { _html += '
'.format(i, json.index, colClass, json.id); diff --git a/module-form/src/main/resources/static/form-design/modules/formDesigner.js b/module-form/src/main/resources/static/form-design/modules/formDesigner.js index 70b998b6..c08accc8 100644 --- a/module-form/src/main/resources/static/form-design/modules/formDesigner.js +++ b/module-form/src/main/resources/static/form-design/modules/formDesigner.js @@ -1214,75 +1214,9 @@ layui.config({ options.data[newIndex] = oldData; options.data[oldIndex] = newData; } - //导出数据 - $('.exportJson').on('click', function () { - document.getElementById('generate-code-view').value = JSON.stringify(options.data, null, 4); - layer.open({ - type: 1, - title: 'JSON 数据导出', - id: 'Lay_layer_htmlcodeview', - content: $('.htmlcodeview'), - area: ['800px', '640px'], - shade: false, - resize: false, - success: function (layero, index) { - }, - end: function () { - $('.htmlcodeview').css("display", "none") - } - }); - }); - //导入数据 - $('.importJson').on('click', function () { - document.getElementById('import-json-code').value = JSON.stringify(options.data, null, 4); - layer.open({ - type: 1, - title: 'JSON模板数据导入', - id: 'Lay_layer_importjsoncodeview', - content: $('.importjsoncodeview'), - area: ['800px', '640px'], - shade: false, - resize: false, - success: function (layero, index) { - }, - end: function () { - $('.importjsoncodeview').css("display", "none") - } - }); - }); - $('.aboutForm').on('click', function () { - layer.open({ - type: 1, - title: '关于 Layui表单设计器', - id: 'Lay_layer_aboutusview', - content: $('.aboutusview'), - area: ['800px', '640px'], - shade: false, - resize: false, - success: function (layero, index) { - }, - end: function () { - } - }); - }); - $('#copy-html-code').on('click', function () { - var Url2 = document.getElementById("generate-code-view"); - Url2.select(); // 选择对象 - document.execCommand("Copy"); // 执行 - layer.msg('复制成功'); - }); - $('#import-json-code').on('click', function () { - var _value = document.getElementById("import-json-code-view").value; - options.data = JSON.parse(_value); - that.renderForm(); - layer.closeAll(); - layer.msg('导入成功'); - }); // 生成HTML代码 - function getSavePageCode() { - var _htmlelem = $('
'); - that.generateHtml(options.data, _htmlelem); + function getSavePageCode(_htmlelem) { options.htmlCode.script = ''; var tabsize = 4; @@ -1308,6 +1242,8 @@ layui.config({ ' ' + '
', '
', + ' ', + ' ', '', ].join(''); TP_FORM_CODE = style_html(TP_FORM_CODE, tabsize, tabchar, 2000); @@ -1420,9 +1356,7 @@ layui.config({ } // 生成HTML代码 - function getUpdatePageCode() { - var _htmlelem = $('
'); - that.generateHtml(options.data, _htmlelem); + function getUpdatePageCode(_htmlelem) { options.htmlCode.script = ''; var tabsize = 4; @@ -1448,6 +1382,8 @@ layui.config({ ' ' + ' ', ' ', + ' ', + ' ', '', ].join(''); TP_FORM_CODE = style_html(TP_FORM_CODE, tabsize, tabchar, 2000); @@ -1560,9 +1496,7 @@ layui.config({ } // 生成HTML代码 - function getShowPageCode() { - var _htmlelem = $('
'); - that.generateHtml(options.data, _htmlelem); + function getShowPageCode(_htmlelem) { options.htmlCode.script = ''; var tabsize = 4; @@ -1588,6 +1522,8 @@ layui.config({ ' ' + ' ', ' ', + ' ', + ' ', '', ].join(''); TP_FORM_CODE = style_html(TP_FORM_CODE, tabsize, tabchar, 2000); @@ -1700,9 +1636,7 @@ layui.config({ } // 生成HTML代码 - function getAppSavePageCode() { - var _htmlelem = $('
'); - that.generateHtml(options.data, _htmlelem); + function getAppSavePageCode(_htmlelem) { options.htmlCode.script = ''; var tabsize = 4; @@ -1728,6 +1662,8 @@ layui.config({ ' ' + ' ', ' ', + ' ', + ' ', '', ].join(''); TP_FORM_CODE = style_html(TP_FORM_CODE, tabsize, tabchar, 2000); @@ -1840,9 +1776,7 @@ layui.config({ } // 生成HTML代码 - function getAppUpdatePageCode() { - var _htmlelem = $('
'); - that.generateHtml(options.data, _htmlelem); + function getAppUpdatePageCode(_htmlelem) { options.htmlCode.script = ''; var tabsize = 4; @@ -1868,6 +1802,8 @@ layui.config({ ' ' + ' ', ' ', + ' ', + ' ', '', ].join(''); TP_FORM_CODE = style_html(TP_FORM_CODE, tabsize, tabchar, 2000); @@ -1980,9 +1916,7 @@ layui.config({ } // 生成HTML代码 - function getAppShowPageCode() { - var _htmlelem = $('
'); - that.generateHtml(options.data, _htmlelem); + function getAppShowPageCode(_htmlelem) { options.htmlCode.script = ''; var tabsize = 4; @@ -2008,6 +1942,8 @@ layui.config({ ' ' + ' ', ' ', + ' ', + ' ', '', ].join(''); TP_FORM_CODE = style_html(TP_FORM_CODE, tabsize, tabchar, 2000); @@ -2119,39 +2055,6 @@ layui.config({ return TP_HTML_CODE; } - $('.generateCode').on('click', function () { - //构件 html - var TP_HTML_CODE = getSavePageCode(); - document.getElementById('generate-code-view').value = TP_HTML_CODE; - console.log($('#generate-code-view').val()); - }); - $('#preview').on('click', function () { - window.localStorage.setItem('layui_form_json', JSON.stringify(options.data)); - layer.confirm('请选择你要预览页面的方式?', { - btn: ['弹窗', '新页面'] //按钮 - }, function () { - //iframe窗 - layer.open({ - type: 2, - title: '表单预览', - btn: ['关闭'], //可以无限个按钮 - btn1: function (index, layero) { - layer.close(index); - }, - closeBtn: 1, //不显示关闭按钮 - shade: [0], - area: ['100%', '100%'], - offset: 'auto', //右下角弹出 - anim: 2, - content: ['./preview.html', 'yes'], //iframe的url,no代表不显示滚动条 - end: function () { //此处用于演示 - //加载结束 - } - }); - }, function () { - window.open("./preview.html"); - }); - }); $('#save').on('click', function () { var formName = $('#formName').val(); if (!formName) { @@ -2168,12 +2071,16 @@ layui.config({ top.dialog.msg('请添加组件'); return; } - var savePageCode = getSavePageCode(); - var updatePageCode = getUpdatePageCode(); - var showPageCode = getShowPageCode(); - var appSavePageCode = getAppSavePageCode(); - var appUpdatePageCode = getAppUpdatePageCode(); - var appShowPageCode = getAppShowPageCode(); + + var _htmlelem = $('
'); + that.generateHtml(options.data, _htmlelem); + + var savePageCode = getSavePageCode(_htmlelem); + var updatePageCode = getUpdatePageCode(_htmlelem); + var showPageCode = getShowPageCode(_htmlelem); + var appSavePageCode = getAppSavePageCode(_htmlelem); + var appUpdatePageCode = getAppUpdatePageCode(_htmlelem); + var appShowPageCode = getAppShowPageCode(_htmlelem); top.dialog.confirm(top.dataMessage.commit, function (index) { top.dialog.close(index); @@ -2238,9 +2145,7 @@ layui.config({ //获取当前的 DOM 对象 if (item2.list.length > 0) { var elem2 = $('#' + item.id + '_column_' + index2); - if (item2.list.length > 0) { - that.renderComponents(item2.list, elem2); - } + that.renderComponents(item2.list, elem2); } }); } else if (item.tag === 'slider') { @@ -2266,17 +2171,9 @@ layui.config({ Class.prototype.generateHtml = function (jsondata, elem) { var that = this, options = that.config; + elem.append($('#formDesignerForm').clone(false)); $.each(jsondata, function (index, item) { - elem.append(that.components[item.tag].render(item, true)); - if (item.tag === 'grid') { - $.each(item.columns, function (index2, item2) { - //获取当前的 DOM 对象 - var elem2 = $('#' + item.id + '_column_' + index2); - if (item2.list.length > 0) { - that.generateHtml(item2.list, elem2); - } - }); - } else if (item.tag === 'slider') { + if (item.tag === 'slider') { //定义初始值 options.htmlCode.script += ['slider.render({', , 'elem: "#' + item.tag + item.id + '" ,', 'value: ' + item.defaultValue + ',', 'min: ' + item.minValue + ',', 'max: ' + item.maxValue + ',', 'step: ' + item.stepValue + ',', 'input:' + item.isInput + ',', 'change: function(value){', '$("#' + item.id + '").find("input[name="' + item.id + '"]").val(value);', ' }', '});'].join(''); } else if (item.tag === 'date') {