调整了表单生成器,增加了默认表单加入菜单功能

This commit is contained in:
WenG 2022-05-09 23:08:54 +08:00
parent 40c11f84f4
commit cfcf647d47
7 changed files with 96 additions and 15 deletions

View File

@ -151,6 +151,17 @@ public class FormController extends DefaultBaseController {
return new SuccessResult();
}
@ApiOperation(value = "更新到菜单", notes = "更新到菜单接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "formId", value = "表单ID", paramType = "path"),
@ApiImplicitParam(name = "menuParentId", value = "上级菜单ID", paramType = "path")
})
@PutMapping("update-to-menu/form-id/{formId}/menu-parent-id/{menuParentId}")
public SuccessResult updateToMenu(@PathVariable("formId") String formId, @PathVariable("menuParentId") String menuParentId) {
formService.updateToMenu(formId, menuParentId);
return new SuccessResult();
}
@ApiOperation(value = "表单列表", notes = "表单列表接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("list")

View File

@ -71,6 +71,23 @@ public class FormReportRouteController {
@GetMapping("list/code/{formCode}/version/{formVersion}")
public ModelAndView list(@PathVariable("formCode") String formCode,
@PathVariable("formVersion") Integer formVersion) {
ModelAndView mv = new ModelAndView("form-report/list");
mv.addObject("isFromMenu", false);
setObject(formCode, formVersion, mv);
return mv;
}
@GetMapping("list/code/{formCode}/version/{formVersion}/{isFromMenu}")
public ModelAndView list(@PathVariable("formCode") String formCode,
@PathVariable("formVersion") Integer formVersion,
@PathVariable("isFromMenu") Boolean isFromMenu) {
ModelAndView mv = new ModelAndView("form-report/list");
mv.addObject("isFromMenu", isFromMenu);
setObject(formCode, formVersion, mv);
return mv;
}
private void setObject(String formCode, Integer formVersion, ModelAndView mv) {
FormPO formPO = formService.getPOByCodeAndVersion(formCode, formVersion);
if (formPO == null) {
throw new SearchException("表单不存在");
@ -84,12 +101,11 @@ public class FormReportRouteController {
return showField;
}
).collect(Collectors.toList());
ModelAndView mv = new ModelAndView("form-report/list");
mv.addObject("formCode", formCode);
mv.addObject("formVersion", formVersion);
mv.addObject("formType", formPO.getFormType());
mv.addObject("showFields", showFields);
return mv;
}
}

View File

@ -134,6 +134,14 @@ public interface IFormService {
*/
void updateAppShowPageCode(String formId, String appShowPageCode);
/**
* 保存到菜单
*
* @param formId
* @param menuParentId
*/
void updateToMenu(String formId, String menuParentId);
/**
* 详情
*
@ -284,4 +292,5 @@ public interface IFormService {
*/
SuccessResultList<List<FormDTO>> listPage(ListPage page);
}

View File

@ -5,6 +5,8 @@ import com.github.pagehelper.PageInfo;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.exceptions.ParamsException;
import ink.wgink.exceptions.RemoveException;
import ink.wgink.exceptions.SearchException;
import ink.wgink.interfaces.menu.IMenuBaseService;
import ink.wgink.module.form.dao.design.IFormDao;
import ink.wgink.module.form.pojo.dtos.design.FormDTO;
import ink.wgink.module.form.pojo.pos.design.FormPO;
@ -31,6 +33,8 @@ public class FormServiceImpl extends DefaultBaseService implements IFormService
private IFormReportService formReportService;
@Autowired
private IFormFieldService formFieldService;
@Autowired
private IMenuBaseService menuBaseService;
@Override
public void createDynamicForm(String createTableSQL) {
@ -213,6 +217,16 @@ public class FormServiceImpl extends DefaultBaseService implements IFormService
formDao.update(params);
}
@Override
public void updateToMenu(String formId, String menuParentId) {
FormPO formPO = getPO(formId);
if (formPO == null) {
throw new SearchException("表单不存在");
}
String menuUrl = String.format("/route/form-report/list/code/%s/version/%d/true", formPO.getFormCode(), formPO.getFormVersion());
menuBaseService.saveAndReturnIdByParentIdAndNameAndUrl(menuParentId, formPO.getFormName(), menuUrl);
}
@Override
public FormDTO get(Map<String, Object> params) {
params = params == null ? getHashMap(0) : params;

View File

@ -266,7 +266,7 @@ layui.config({
*/
Class.prototype.config = {
version: "1.0",
formName: "表单设计器",
formName: "",
Author: "WenG",
formId: "id",
mainTitleTpl: '',

View File

@ -16,7 +16,7 @@
</style>
</head>
<body>
<div class="layui-anim layui-anim-fadein">
<div th:class="${isFromMenu ? 'layui-fluid layui-anim layui-anim-fadein' : 'layui-anim layui-anim-fadein'}">
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-card">
@ -60,6 +60,7 @@
var formVersion = [[${formVersion}]];
var formType = [[${formType}]];
var showFields = [[${showFields}]];
var isFromMenu = [[${isFromMenu}]]
// 初始化表格
function initTable() {
@ -236,7 +237,7 @@
id: 'dataTable',
url: top.restAjax.path('api/form-report/listpage-all-fields/code/{formCode}/version/{formVersion}', [formCode, formVersion]),
width: admin.screen() > 1 ? '100%' : '',
height: $win.height() - 22,
height: $win.height() - (isFromMenu ? 50 : 22),
limit: 20,
limits: [20, 40, 60, 80, 100, 200],
toolbar: '#headerToolBar',
@ -308,7 +309,7 @@
top.dialog.open({
title: '新增',
url: top.restAjax.path('route/form-report/save/code/{formCode}/version/{formVersion}', [formCode, formVersion]),
width: '500px',
width: isFromMenu ? '75%' : '60%',
height: '85%',
onClose: function () {
reloadTable();
@ -323,7 +324,7 @@
top.dialog.open({
title: '编辑',
url: top.restAjax.path('route/form-report/update/code/{formCode}/version/{formVersion}?uid={uid}', [formCode, formVersion, checkDatas[0].uid]),
width: '500px',
width: isFromMenu ? '75%' : '60%',
height: '85%',
onClose: function () {
reloadTable();

View File

@ -140,13 +140,16 @@
return '<button class="layui-btn layui-btn-xs" lay-event="showDataEvent">查看数据</button>';
}
},
{field:'opition', width:150, title: '操作', fixed:'right', align:'center',
{field:'opition', width:220, title: '操作', fixed:'right', align:'center',
templet: function(item) {
return '<div class="layui-btn-group">' +
'<button type="button" class="layui-btn layui-btn-xs" lay-event="reportListEvent">数据列表</button>'+
// '<button type="button" class="layui-btn layui-btn-xs layui-btn-normal" lay-event="formFieldEvent">字段列表</button>'+
'<button type="button" class="layui-btn layui-btn-xs layui-btn-danger" lay-event="deleteEvent" title="该操作将连同物理表(无数据)一并删除">物理删除</button>'+
'</div>';
var btnGroup = '<div class="layui-btn-group">';
btnGroup += '<button type="button" class="layui-btn layui-btn-xs" lay-event="dataListEvent">数据列表</button>';
btnGroup += '<button type="button" class="layui-btn layui-btn-xs layui-btn-danger" lay-event="deleteEvent" title="该操作将连同物理表(无数据)一并删除">物理删除</button>';
if(item.formType === 'default') {
btnGroup += '<button type="button" class="layui-btn layui-btn-xs layui-btn-primary" lay-event="joinMenuEvent" title="将该表单加入菜单">加入菜单</button>';
}
btnGroup += '</div>';
return btnGroup;
}
}
]
@ -327,9 +330,9 @@
onClose: function () {
}
})
} else if(event === 'reportListEvent') {
} else if(event === 'dataListEvent') {
top.dialog.open({
title: '上报列表',
title: '数据列表',
url: top.restAjax.path('route/form-report/list/code/{formCode}/version/{formVersion}', [data.formCode, data.formVersion]),
width: '70%',
height: '80%',
@ -353,6 +356,33 @@
top.dialog.close(layIndex);
});
});
} else if(event === 'joinMenuEvent') {
top.dialog.open({
title: '选择要添加的根节点',
width: '300px',
height: '400px',
url: top.restAjax.path('route/menu/list-tree-select', []),
onClose: function() {
var selectedNodes = top.dialog.dialogData.selectedNodes;
if(!selectedNodes || selectedNodes.length == 0) {
return;
}
var menuParentId = selectedNodes[0].id;
top.dialog.confirm('确定添加到该节点吗?', function(index) {
top.dialog.close(index);
var layIndex;
top.restAjax.put(top.restAjax.path('api/form/update-to-menu/form-id/{formId}/menu-parent-id/{parentMenuId}', [data.formId, menuParentId]), {}, null, function (code, data) {
top.dialog.msg('添加成功,刷新菜单查看');
}, function (code, data) {
top.dialog.msg(data.msg);
}, function () {
layIndex = top.dialog.msg('正在添加...', {icon: 16, time: 0, shade: 0.3});
}, function () {
top.dialog.close(layIndex);
});
});
}
})
}
})