完善OA流程列表功能
This commit is contained in:
parent
ac362230d5
commit
82e1d3cad2
@ -1,40 +0,0 @@
|
|||||||
package ink.wgink.module.activiti.controller.api;
|
|
||||||
|
|
||||||
import ink.wgink.common.base.DefaultBaseController;
|
|
||||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
|
||||||
import ink.wgink.module.activiti.service.activiti.IActivitiUserTaskService;
|
|
||||||
import ink.wgink.pojo.result.SuccessResult;
|
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* When you feel like quitting. Think about why you started
|
|
||||||
* 当你想要放弃的时候,想想当初你为何开始
|
|
||||||
*
|
|
||||||
* @ClassName: ActivitiUserTaskController
|
|
||||||
* @Description: 流程用户任务
|
|
||||||
* @Author: WangGeng
|
|
||||||
* @Date: 2021/7/12 21:56
|
|
||||||
* @Version: 1.0
|
|
||||||
**/
|
|
||||||
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "流程用户任务接口")
|
|
||||||
@RestController
|
|
||||||
@RequestMapping(ISystemConstant.API_PREFIX + "/activiti/user-task")
|
|
||||||
public class ActivitiUserTaskController extends DefaultBaseController {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private IActivitiUserTaskService activitiUserTaskService;
|
|
||||||
|
|
||||||
@GetMapping("get-next-user-task/{userTaskId}")
|
|
||||||
public SuccessResult getNextUserTask(@PathVariable("userTaskId") String userTaskId) {
|
|
||||||
activitiUserTaskService.getNextUserTask(userTaskId);
|
|
||||||
return new SuccessResult();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -37,4 +37,10 @@ public class OaRouteController extends DefaultBaseController {
|
|||||||
return mv;
|
return mv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("list-log")
|
||||||
|
public ModelAndView listLog() {
|
||||||
|
ModelAndView mv = new ModelAndView("oa/list-log");
|
||||||
|
return mv;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
package ink.wgink.module.activiti.service.activiti;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @ClassName: IActivitiUserTaskService
|
|
||||||
* @Description: 流程用户任务
|
|
||||||
* @Author: wanggeng
|
|
||||||
* @Date: 2022/3/29 17:43
|
|
||||||
* @Version: 1.0
|
|
||||||
*/
|
|
||||||
public interface IActivitiUserTaskService {
|
|
||||||
|
|
||||||
void getNextUserTask(String userTaskId);
|
|
||||||
|
|
||||||
}
|
|
@ -1,115 +0,0 @@
|
|||||||
package ink.wgink.module.activiti.service.activiti.impl;
|
|
||||||
|
|
||||||
import ink.wgink.common.base.DefaultBaseService;
|
|
||||||
import ink.wgink.module.activiti.service.activiti.IActivitiUserTaskService;
|
|
||||||
import org.activiti.bpmn.model.*;
|
|
||||||
import org.activiti.engine.RepositoryService;
|
|
||||||
import org.activiti.engine.RuntimeService;
|
|
||||||
import org.activiti.engine.TaskService;
|
|
||||||
import org.activiti.engine.task.Task;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @ClassName: ActivitiUserTaskServiceImpl
|
|
||||||
* @Description: 流程用户任务
|
|
||||||
* @Author: wanggeng
|
|
||||||
* @Date: 2022/3/29 17:44
|
|
||||||
* @Version: 1.0
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
public class ActivitiUserTaskServiceImpl extends DefaultBaseService implements IActivitiUserTaskService {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private TaskService taskService;
|
|
||||||
@Autowired
|
|
||||||
private RuntimeService runtimeService;
|
|
||||||
@Autowired
|
|
||||||
private RepositoryService repositoryService;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void getNextUserTask(String userTaskId) {
|
|
||||||
Task task = taskService.createTaskQuery().taskId(userTaskId).singleResult();
|
|
||||||
String taskDefinitionKey = task.getTaskDefinitionKey();
|
|
||||||
String processInstanceId = task.getProcessInstanceId();
|
|
||||||
String processDefinitionId = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult().getProcessDefinitionId();
|
|
||||||
|
|
||||||
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
|
|
||||||
|
|
||||||
FlowNode flowNode = (FlowNode) bpmnModel.getFlowElement(taskDefinitionKey);
|
|
||||||
|
|
||||||
// 流入线
|
|
||||||
List<SequenceFlow> incomingFlows = flowNode.getIncomingFlows();
|
|
||||||
|
|
||||||
// 流出线
|
|
||||||
List<SequenceFlow> outgoingFlows = flowNode.getOutgoingFlows();
|
|
||||||
HashMap<String, Object> vars = new HashMap<>();
|
|
||||||
vars.put("message", "");
|
|
||||||
for (SequenceFlow outgoingFlow : outgoingFlows) {
|
|
||||||
//获取输出节点元素
|
|
||||||
FlowElement targetFlowElement = outgoingFlow.getTargetFlowElement();
|
|
||||||
//排除非用户任务接点
|
|
||||||
if (targetFlowElement instanceof UserTask) {
|
|
||||||
LOG.debug("UserTask");
|
|
||||||
UserTask userTask = (UserTask) targetFlowElement;
|
|
||||||
System.out.println(userTask);
|
|
||||||
//判断输出节点的el表达式
|
|
||||||
// if (isCondition(outgoingFlow.getConditionExpression(), vars)) {
|
|
||||||
// //true 获取输出节点名称
|
|
||||||
// // nameList.add(outgoingFlow.getTargetFlowElement().getName());
|
|
||||||
// }
|
|
||||||
} else if (targetFlowElement instanceof ExclusiveGateway) {
|
|
||||||
LOG.debug("排他网关");
|
|
||||||
|
|
||||||
} else if (targetFlowElement instanceof ParallelGateway) {
|
|
||||||
LOG.debug("并行网关");
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println(flowNode);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* el表达式判断
|
|
||||||
*
|
|
||||||
* @param expression
|
|
||||||
* @param vars
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private static boolean isCondition(String expression, Map<String, Object> vars) {
|
|
||||||
if (expression == null || expression == "") {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//分割表达式
|
|
||||||
String[] exprArr = expression.split("[{}$&]");
|
|
||||||
for (String expr : exprArr) {
|
|
||||||
//是否包含键message
|
|
||||||
if (expr.contains("message")) {
|
|
||||||
if (!vars.containsKey("message")) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (expr.contains("==")) {
|
|
||||||
String[] primes = expr.split("==");
|
|
||||||
String valExpr = primes[1].trim();
|
|
||||||
if (valExpr.startsWith("'")) {
|
|
||||||
valExpr = valExpr.substring(1);
|
|
||||||
}
|
|
||||||
if (valExpr.endsWith("'")) {
|
|
||||||
valExpr = valExpr.substring(0, valExpr.length() - 1);
|
|
||||||
}
|
|
||||||
if (primes.length == 2 && valExpr.equals(vars.get("message"))) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -80,17 +80,7 @@ public class OaFormReportRouteServiceImpl extends DefaultBaseService implements
|
|||||||
List<ConfirmAssigneeVO> confirmAssigneeVOs = listConfirmAssignee(deploymentId, firstUserTask);
|
List<ConfirmAssigneeVO> confirmAssigneeVOs = listConfirmAssignee(deploymentId, firstUserTask);
|
||||||
model.put("confirmAssignees", JSON.toJSONString(confirmAssigneeVOs));
|
model.put("confirmAssignees", JSON.toJSONString(confirmAssigneeVOs));
|
||||||
|
|
||||||
LOG.debug("查询节点字段信息");
|
setPageFields(deploymentId, firstUserTask, model);
|
||||||
List<NodeFieldDTO> nodeFieldDTOs = nodeFieldService.listByDeploymentIdAndNodeId(deploymentId, firstUserTask.getId());
|
|
||||||
List<FieldVO> fieldVOs = nodeFieldDTOs.stream().map(nodeFieldDTO -> {
|
|
||||||
FieldVO fieldVO = new FieldVO();
|
|
||||||
fieldVO.setFieldName(nodeFieldDTO.getFieldName());
|
|
||||||
fieldVO.setIsEditable(nodeFieldDTO.getIsEditable());
|
|
||||||
fieldVO.setIsVisible(nodeFieldDTO.getIsVisible());
|
|
||||||
return fieldVO;
|
|
||||||
}).collect(Collectors.toList());
|
|
||||||
model.put("fields", JSONObject.toJSONString(fieldVOs));
|
|
||||||
|
|
||||||
formReportRouteService.save(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse, model);
|
formReportRouteService.save(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse, model);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,6 +107,7 @@ public class OaFormReportRouteServiceImpl extends DefaultBaseService implements
|
|||||||
List<ConfirmAssigneeVO> confirmAssigneeVOs = listConfirmAssignee(deploymentId, currentUserTask);
|
List<ConfirmAssigneeVO> confirmAssigneeVOs = listConfirmAssignee(deploymentId, currentUserTask);
|
||||||
model.put("confirmAssignees", JSON.toJSONString(confirmAssigneeVOs));
|
model.put("confirmAssignees", JSON.toJSONString(confirmAssigneeVOs));
|
||||||
|
|
||||||
|
setPageFields(deploymentId, currentUserTask, model);
|
||||||
// 设置代理人
|
// 设置代理人
|
||||||
formReportRouteService.update(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse, model);
|
formReportRouteService.update(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse, model);
|
||||||
}
|
}
|
||||||
@ -148,6 +139,25 @@ public class OaFormReportRouteServiceImpl extends DefaultBaseService implements
|
|||||||
formReportRouteService.appShow(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse, model);
|
formReportRouteService.appShow(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse, model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置页面字段
|
||||||
|
*
|
||||||
|
* @param deploymentId
|
||||||
|
* @param userTask
|
||||||
|
* @param model
|
||||||
|
*/
|
||||||
|
private void setPageFields(String deploymentId, UserTask userTask, Map<String, Object> model) {
|
||||||
|
LOG.debug("查询节点字段信息");
|
||||||
|
List<NodeFieldDTO> nodeFieldDTOs = nodeFieldService.listByDeploymentIdAndNodeId(deploymentId, userTask.getId());
|
||||||
|
List<FieldVO> fieldVOs = nodeFieldDTOs.stream().map(nodeFieldDTO -> {
|
||||||
|
FieldVO fieldVO = new FieldVO();
|
||||||
|
fieldVO.setFieldName(nodeFieldDTO.getFieldName());
|
||||||
|
fieldVO.setIsEditable(nodeFieldDTO.getIsEditable());
|
||||||
|
fieldVO.setIsVisible(nodeFieldDTO.getIsVisible());
|
||||||
|
return fieldVO;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
model.put("fields", JSONObject.toJSONString(fieldVOs));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 确认代理人列表
|
* 确认代理人列表
|
||||||
@ -245,7 +255,7 @@ public class OaFormReportRouteServiceImpl extends DefaultBaseService implements
|
|||||||
for (int i = 0; i < userTasks.size(); i++) {
|
for (int i = 0; i < userTasks.size(); i++) {
|
||||||
UserTask userTask = userTasks.get(i);
|
UserTask userTask = userTasks.get(i);
|
||||||
boolean isExist = false;
|
boolean isExist = false;
|
||||||
for (int j = 1; j < userTasks.size(); j++) {
|
for (int j = i + 1; j < userTasks.size(); j++) {
|
||||||
if (StringUtils.equals(userTask.getId(), userTasks.get(j).getId())) {
|
if (StringUtils.equals(userTask.getId(), userTasks.get(j).getId())) {
|
||||||
isExist = true;
|
isExist = true;
|
||||||
userTasks.remove(i);
|
userTasks.remove(i);
|
||||||
|
@ -65,7 +65,7 @@ public class OaServiceImpl extends DefaultBaseService implements IOaService {
|
|||||||
@Override
|
@Override
|
||||||
public SuccessResultList<List<OaProcdefDTO>> listPageProcdef(int page, int rows) {
|
public SuccessResultList<List<OaProcdefDTO>> listPageProcdef(int page, int rows) {
|
||||||
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
|
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
|
||||||
List<ProcessDefinition> processDefinitions = processDefinitionQuery.listPage(page - 1, rows);
|
List<ProcessDefinition> processDefinitions = processDefinitionQuery.latestVersion().listPage(page - 1, rows);
|
||||||
List<OaProcdefDTO> oaProcdefDTOs = listOaProcdef(processDefinitions);
|
List<OaProcdefDTO> oaProcdefDTOs = listOaProcdef(processDefinitions);
|
||||||
return new SuccessResultList<>(oaProcdefDTOs, page, processDefinitionQuery.count());
|
return new SuccessResultList<>(oaProcdefDTOs, page, processDefinitionQuery.count());
|
||||||
}
|
}
|
||||||
@ -89,6 +89,7 @@ public class OaServiceImpl extends DefaultBaseService implements IOaService {
|
|||||||
oaProcdefDTO.setDeploymentId(processDefinition.getDeploymentId());
|
oaProcdefDTO.setDeploymentId(processDefinition.getDeploymentId());
|
||||||
oaProcdefDTO.setName(processDefinition.getName());
|
oaProcdefDTO.setName(processDefinition.getName());
|
||||||
oaProcdefDTO.setProcessDefinitionId(processDefinition.getId());
|
oaProcdefDTO.setProcessDefinitionId(processDefinition.getId());
|
||||||
|
oaProcdefDTO.setVersion(processDefinition.getVersion());
|
||||||
oaProcdefDTO.setFormKey(formKey);
|
oaProcdefDTO.setFormKey(formKey);
|
||||||
oaProcdefDTOs.add(oaProcdefDTO);
|
oaProcdefDTOs.add(oaProcdefDTO);
|
||||||
if (StringUtils.isBlank(formKey)) {
|
if (StringUtils.isBlank(formKey)) {
|
||||||
|
@ -75,11 +75,10 @@
|
|||||||
return rowData;
|
return rowData;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{field: 'form', width: 150, title: '操作', align:'center', fixed: 'right',
|
{field: 'form', width: 100, title: '操作', align:'center', fixed: 'right',
|
||||||
templet: function(row) {
|
templet: function(row) {
|
||||||
return '<div class="layui-btn-group">' +
|
return '<div class="layui-btn-group">' +
|
||||||
'<button class="layui-btn layui-btn-xs" lay-event="logEvent">流转日志</button>'+
|
'<button class="layui-btn layui-btn-xs" lay-event="logEvent">流转日志</button>'+
|
||||||
'<button class="layui-btn layui-btn-xs" lay-event="logImageEvent">流转图</button>'+
|
|
||||||
'</div>';
|
'</div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -126,9 +125,9 @@
|
|||||||
var layEvent = obj.event;
|
var layEvent = obj.event;
|
||||||
if(layEvent === 'logEvent') {
|
if(layEvent === 'logEvent') {
|
||||||
top.dialog.open({
|
top.dialog.open({
|
||||||
url: top.restAjax.path('route/oa-form-report/update/task-id/{taskId}/code/{formCode}/version/{formVersion}/is-need-claim/{isNeedClaim}?uid={reportUid}', [data.taskId, data.formCode, data.formVersion, data.isNeedClaim, data.reportUid]),
|
url: top.restAjax.path('route/oa/list-log?processInstanceId={processInstanceId}', [data.processInstanceId]),
|
||||||
title: '编辑',
|
title: '流转日志',
|
||||||
width: '500px',
|
width: '800px',
|
||||||
height: '80%',
|
height: '80%',
|
||||||
onClose: function() {}
|
onClose: function() {}
|
||||||
});
|
});
|
||||||
|
101
module-activiti/src/main/resources/templates/oa/list-log.html
Normal file
101
module-activiti/src/main/resources/templates/oa/list-log.html
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<head>
|
||||||
|
<base th:href="${#request.getContextPath() + '/'}">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="renderer" content="webkit">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||||
|
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
|
||||||
|
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||||
|
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||||
|
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="layui-anim layui-anim-fadein">
|
||||||
|
<div class="layui-card">
|
||||||
|
<div class="layui-card-body">
|
||||||
|
<div class="layui-tab">
|
||||||
|
<ul class="layui-tab-title">
|
||||||
|
<li class="layui-this">流转日志</li>
|
||||||
|
<li>流转图</li>
|
||||||
|
</ul>
|
||||||
|
<div class="layui-tab-content">
|
||||||
|
<div class="layui-tab-item layui-show">
|
||||||
|
<ul class="layui-timeline">
|
||||||
|
<li class="layui-timeline-item">
|
||||||
|
<i class="layui-icon layui-timeline-axis"></i>
|
||||||
|
<div class="layui-timeline-content layui-text">
|
||||||
|
<h3 class="layui-timeline-title">8月18日</h3>
|
||||||
|
<p>
|
||||||
|
layui 2.0 的一切准备工作似乎都已到位。发布之弦,一触即发。
|
||||||
|
<br>不枉近百个日日夜夜与之为伴。因小而大,因弱而强。
|
||||||
|
<br>无论它能走多远,抑或如何支撑?至少我曾倾注全心,无怨无悔 <i class="layui-icon"></i>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="layui-timeline-item">
|
||||||
|
<i class="layui-icon layui-timeline-axis"></i>
|
||||||
|
<div class="layui-timeline-content layui-text">
|
||||||
|
<h3 class="layui-timeline-title">8月16日</h3>
|
||||||
|
<p>杜甫的思想核心是儒家的仁政思想,他有“<em>致君尧舜上,再使风俗淳</em>”的宏伟抱负。个人最爱的名篇有:</p>
|
||||||
|
<ul>
|
||||||
|
<li>《登高》</li>
|
||||||
|
<li>《茅屋为秋风所破歌》</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="layui-timeline-item">
|
||||||
|
<i class="layui-icon layui-timeline-axis"></i>
|
||||||
|
<div class="layui-timeline-content layui-text">
|
||||||
|
<h3 class="layui-timeline-title">8月15日</h3>
|
||||||
|
<p>
|
||||||
|
中国人民抗日战争胜利72周年
|
||||||
|
<br>常常在想,尽管对这个国家有这样那样的抱怨,但我们的确生在了最好的时代
|
||||||
|
<br>铭记、感恩
|
||||||
|
<br>所有为中华民族浴血奋战的英雄将士
|
||||||
|
<br>永垂不朽
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="layui-timeline-item">
|
||||||
|
<i class="layui-icon layui-timeline-axis"></i>
|
||||||
|
<div class="layui-timeline-content layui-text">
|
||||||
|
<div class="layui-timeline-title">过去</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="layui-tab-item">
|
||||||
|
<div>
|
||||||
|
<img id="runtimeProcessImage" alt="流转图" style="width: 100%"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
||||||
|
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||||
|
<script>
|
||||||
|
layui.config({
|
||||||
|
base: 'assets/layuiadmin/' //静态资源所在路径
|
||||||
|
}).extend({
|
||||||
|
index: 'lib/index' //主入口模块
|
||||||
|
}).use(['index', 'form', 'laydate'], function(){
|
||||||
|
var $ = layui.$;
|
||||||
|
var win = $(window)
|
||||||
|
var params = top.restAjax.params(window.location.href);
|
||||||
|
var processInstanceId = params.processInstanceId;
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
$('#runtimeProcessImage').attr('src', 'route/activiti/model/get-runtime-process-image/'+ processInstanceId);
|
||||||
|
new Viewer(document.getElementById('runtimeProcessImage'));
|
||||||
|
}
|
||||||
|
init();
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -132,7 +132,9 @@
|
|||||||
title: '编辑',
|
title: '编辑',
|
||||||
width: '500px',
|
width: '500px',
|
||||||
height: '80%',
|
height: '80%',
|
||||||
onClose: function() {}
|
onClose: function() {
|
||||||
|
reloadTable();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user