增加UserTask的OA节点管理,关闭模态框点击背景关闭,处理逻辑与问题
This commit is contained in:
parent
bce7a083a1
commit
56d880b459
@ -8,11 +8,14 @@ import org.activiti.engine.delegate.DelegateExecution;
|
||||
import org.activiti.engine.delegate.DelegateTask;
|
||||
import org.activiti.engine.delegate.JavaDelegate;
|
||||
import org.activiti.engine.delegate.TaskListener;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@ -29,6 +32,7 @@ public class OaUserTaskCompleteListener implements TaskListener, JavaDelegate {
|
||||
|
||||
@Autowired
|
||||
private RuntimeService runtimeService;
|
||||
|
||||
@Autowired
|
||||
private IActivitiModelService activitiModelService;
|
||||
@Autowired
|
||||
@ -38,8 +42,39 @@ public class OaUserTaskCompleteListener implements TaskListener, JavaDelegate {
|
||||
public void notify(DelegateTask delegateTask) {
|
||||
LOG.debug(">>>> userTask complete");
|
||||
Map<String, Object> variables = delegateTask.getVariables();
|
||||
|
||||
|
||||
LOG.debug("查询表单数据:variables: {}", variables);
|
||||
UserTask nextUserTask = activitiModelService.getNextUserTask(delegateTask.getTaskDefinitionKey(), delegateTask.getProcessDefinitionId(), variables);
|
||||
if (nextUserTask != null) {
|
||||
if (StringUtils.equals(nextUserTask.getName(), "任务3")) {
|
||||
// nextUserTask.setAssignee("${signUser}");
|
||||
// MultiInstanceLoopCharacteristics characteristics = new MultiInstanceLoopCharacteristics();
|
||||
// characteristics.setInputDataItem("signUsers");
|
||||
// characteristics.setElementVariable("signUser");
|
||||
// characteristics.setSequential(false);
|
||||
// characteristics.setCompletionCondition("${nrOfCompletedInstances==nrOfInstances}");
|
||||
// nextUserTask.setLoopCharacteristics(characteristics);
|
||||
|
||||
List<String> signUsers = new ArrayList<>();
|
||||
signUsers.add("1");
|
||||
signUsers.add("e48e9c4a-995e-4061-abcd-a3c260c11333");
|
||||
|
||||
// runtimeService.setVariable(delegateTask.getExecutionId(), "signUsers", signUsers);
|
||||
delegateTask.setVariable("signUsers", signUsers);
|
||||
} else {
|
||||
nextUserTask.setAssignee("1");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(DelegateExecution execution) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 1、nrOfInstances 该会签环节中总共有多少个实例 2、nrOfActiveInstances 当前活动的实例的数量,即还没有 完成的实例数量。 3、nrOfCompletedInstances 已经完成的实例的数量
|
||||
|
||||
// 设置会签
|
||||
@ -70,13 +105,5 @@ public class OaUserTaskCompleteListener implements TaskListener, JavaDelegate {
|
||||
// // 清空条件
|
||||
// characteristics.setCompletionCondition("");
|
||||
// }
|
||||
if (nextUserTask != null) {
|
||||
nextUserTask.setAssignee("1");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(DelegateExecution execution) {
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -172,7 +172,7 @@ public class ActivitiServiceImpl extends DefaultBaseService implements IActiviti
|
||||
if (formPO == null) {
|
||||
throw new SystemException("表单不存在");
|
||||
}
|
||||
List<FormFieldPO> formFieldPOs = formFieldService.listPO(formPO.getFormId());
|
||||
List<FormFieldPO> formFieldPOs = formFieldService.listPOByFormId(formPO.getFormId());
|
||||
if (formFieldPOs.isEmpty()) {
|
||||
throw new SystemException("表单字段为空");
|
||||
}
|
||||
|
@ -25,6 +25,8 @@ var KisBpmAssignmentCtrl = ['$scope', '$modal', function ($scope, $modal) {
|
||||
// Config for the modal window
|
||||
var opts = {
|
||||
template: 'editor-app/configuration/properties/assignment-popup.html?version=' + Date.now(),
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
scope: $scope
|
||||
};
|
||||
|
||||
|
@ -26,6 +26,8 @@ var KisBpmConditionExpressionCtrl = [ '$scope', '$modal', function($scope, $moda
|
||||
// Config for the modal window
|
||||
var opts = {
|
||||
template: 'static/editor-app/configuration/properties/condition-expression-popup.html?version=' + Date.now(),
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
scope: $scope
|
||||
};
|
||||
|
||||
|
@ -26,6 +26,8 @@ var KisBpmEventListenersCtrl = [ '$scope', '$modal', '$timeout', '$translate', f
|
||||
// Config for the modal window
|
||||
var opts = {
|
||||
template: 'editor-app/configuration/properties/event-listeners-popup.html?version=' + Date.now(),
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
scope: $scope
|
||||
};
|
||||
|
||||
|
@ -26,6 +26,8 @@ var KisBpmExecutionListenersCtrl = [ '$scope', '$modal', '$timeout', '$translate
|
||||
// Config for the modal window
|
||||
var opts = {
|
||||
template: 'editor-app/configuration/properties/execution-listeners-popup.html?version=' + Date.now(),
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
scope: $scope
|
||||
};
|
||||
|
||||
|
@ -26,6 +26,8 @@ var KisBpmFieldsCtrl = [ '$scope', '$modal', '$timeout', '$translate', function(
|
||||
// Config for the modal window
|
||||
var opts = {
|
||||
template: 'editor-app/configuration/properties/fields-popup.html',
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
scope: $scope
|
||||
};
|
||||
|
||||
|
@ -26,6 +26,8 @@ var KisBpmFormPropertiesCtrl = [ '$scope', '$modal', '$timeout', '$translate', f
|
||||
// Config for the modal window
|
||||
var opts = {
|
||||
template: 'editor-app/configuration/properties/form-properties-popup.html?version=' + Date.now(),
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
scope: $scope
|
||||
};
|
||||
|
||||
|
@ -23,6 +23,8 @@
|
||||
var FormSelectWriteController = ['$scope', '$modal', function($scope, $modal) {
|
||||
$modal({
|
||||
template: 'editor-app/configuration/properties/form-select-template.html?version=' + Date.now(),
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
scope: $scope
|
||||
});
|
||||
}];
|
||||
|
@ -26,6 +26,8 @@ var KisBpmInParametersCtrl = [ '$scope', '$modal', '$timeout', '$translate', fun
|
||||
// Config for the modal window
|
||||
var opts = {
|
||||
template: 'editor-app/configuration/properties/in-parameters-popup.html?version=' + Date.now(),
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
scope: $scope
|
||||
};
|
||||
|
||||
|
@ -26,6 +26,8 @@ angular.module('activitiModeler').controller('ActivitiMessageDefinitionsCtrl', [
|
||||
// Config for the modal window
|
||||
var opts = {
|
||||
template: 'editor-app/configuration/properties/message-definitions-popup.html?version=' + Date.now(),
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
scope: $scope
|
||||
};
|
||||
|
||||
|
@ -0,0 +1,244 @@
|
||||
var OaNodeManageCtrl = [ '$scope' , '$modal', '$timeout', '$translate', function($scope, $modal, $timeout, $translate) {
|
||||
var opts = {
|
||||
template: 'editor-app/configuration/properties/oa-node-manage-popup.html?version=' + Date.now(),
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
scope: $scope
|
||||
};
|
||||
$modal(opts);
|
||||
}];
|
||||
|
||||
var OaNodeManagePopupCtrl = ['$scope', '$timeout', '$http', function($scope, $timeout, $http) {
|
||||
// console.log($scope.selectedItem);
|
||||
// console.log($scope.editor);
|
||||
// console.log($scope.editor.modelMetaData.model.childShapes);
|
||||
// console.log($scope.stencilItemGroups)
|
||||
// 获取流程中的配置
|
||||
var model = $scope.editor.modelMetaData.model;
|
||||
var childShapes = model.childShapes;
|
||||
// 关联到的属性
|
||||
var taskListenerProperty = $scope.selectedItem.properties[16];
|
||||
|
||||
// 初始化
|
||||
var startNode;
|
||||
$scope.oaNodeManage = {
|
||||
assignee: {
|
||||
nodeType: 'normal',
|
||||
assigneeType: '',
|
||||
assigneeCount: 0,
|
||||
assignee: '',
|
||||
autoAssignType: '',
|
||||
departmentType: '',
|
||||
departments: '',
|
||||
roles: '',
|
||||
positions: '',
|
||||
quickAssignee: '',
|
||||
signType: '',
|
||||
signUsers: '',
|
||||
completeCondition: '',
|
||||
completeCount: 0
|
||||
},
|
||||
formId: '',
|
||||
formFields: [],
|
||||
oaUserTaskListeners: []
|
||||
}
|
||||
|
||||
// 添加用户任务监听器
|
||||
function addOaUserTaskListener(event, className, expression, delegateExpression) {
|
||||
var implementation = '';
|
||||
if (className) {
|
||||
implementation = className;
|
||||
} else if (expression) {
|
||||
implementation = expression;
|
||||
} else if (delegateExpression) {
|
||||
implementation = delegateExpression;
|
||||
}
|
||||
$scope.oaNodeManage.oaUserTaskListeners.push({
|
||||
event: event,
|
||||
implementation: implementation,
|
||||
className: className ? className : '',
|
||||
expression: expression ? expression : '',
|
||||
delegateExpression: delegateExpression ? delegateExpression : ''
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 判断监听器是否存在
|
||||
* @param event
|
||||
* @param className
|
||||
*/
|
||||
function isListenerExist(event, className) {
|
||||
for (var i = 0, item; item = $scope.oaNodeManage.oaUserTaskListeners[i++];) {
|
||||
if (item.event == event && item.className == className) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
$scope.addOaUserTaskCreateListener = function () {
|
||||
var event = 'create',
|
||||
className = '',
|
||||
expression = '',
|
||||
delegateExpression = '${oaUserTaskCreateListener}';
|
||||
if (isListenerExist(event, className)) {
|
||||
top.dialog.msg('监听器已经存在');
|
||||
return;
|
||||
}
|
||||
addOaUserTaskListener(event, className, expression, delegateExpression);
|
||||
}
|
||||
$scope.addOaUserTaskAssignmentListener = function () {
|
||||
var event = 'assignment',
|
||||
className = '',
|
||||
expression = '',
|
||||
delegateExpression = '${oaUserTaskAssignmentListener}';
|
||||
if (isListenerExist(event, className)) {
|
||||
top.dialog.msg('监听器已经存在');
|
||||
return;
|
||||
}
|
||||
addOaUserTaskListener(event, className, expression, delegateExpression);
|
||||
}
|
||||
$scope.addOaUserTaskDeleteListener = function () {
|
||||
var event = 'delete',
|
||||
className = '',
|
||||
expression = '',
|
||||
delegateExpression = '${oaUserTaskDeleteListener}';
|
||||
if (isListenerExist(event, className)) {
|
||||
top.dialog.msg('监听器已经存在');
|
||||
return;
|
||||
}
|
||||
addOaUserTaskListener(event, className, expression, delegateExpression);
|
||||
}
|
||||
// 上移用户任务监听器
|
||||
$scope.moveOaUserTaskListenerUp = function(index) {
|
||||
var prevIndex = index - 1;
|
||||
var temp = $scope.oaNodeManage.oaUserTaskListeners[index];
|
||||
$scope.oaNodeManage.oaUserTaskListeners.splice(index, 1);
|
||||
$timeout(function () {
|
||||
$scope.oaNodeManage.oaUserTaskListeners.splice(prevIndex, 0, temp);
|
||||
}, 10);
|
||||
}
|
||||
// 下移用户任务监听器
|
||||
$scope.moveOaUserTaskListenerDown = function(index) {
|
||||
var nextIndex = index + 1;
|
||||
var temp = $scope.oaNodeManage.oaUserTaskListeners[index];
|
||||
$scope.oaNodeManage.oaUserTaskListeners.splice(index, 1);
|
||||
$timeout(function () {
|
||||
$scope.oaNodeManage.oaUserTaskListeners.splice(nextIndex, 0, temp);
|
||||
}, 10);
|
||||
}
|
||||
// 删除用户任务监听器
|
||||
$scope.deleteOaUserTaskListener = function(index) {
|
||||
$scope.oaNodeManage.oaUserTaskListeners.splice(index, 1);
|
||||
}
|
||||
|
||||
// Click handler for save button
|
||||
$scope.save = function () {
|
||||
|
||||
$scope.property.value = {};
|
||||
$scope.property.value = $scope.oaNodeManage;
|
||||
$scope.updatePropertyInModel($scope.property);
|
||||
|
||||
// 更新任务监听器列表
|
||||
taskListenerProperty.value = {}
|
||||
taskListenerProperty.value.taskListeners = $scope.oaNodeManage.oaUserTaskListeners;
|
||||
$scope.updatePropertyInModel(taskListenerProperty);
|
||||
$scope.close();
|
||||
};
|
||||
|
||||
$scope.cancel = function () {
|
||||
$scope.close();
|
||||
};
|
||||
|
||||
// Close button handler
|
||||
$scope.close = function () {
|
||||
taskListenerProperty.mode = 'read';
|
||||
$scope.property.mode = 'read';
|
||||
$scope.$hide();
|
||||
};
|
||||
|
||||
function initOaNodeManage() {
|
||||
if($scope.property.value) {
|
||||
$scope.oaNodeManage = $scope.property.value;
|
||||
}
|
||||
}
|
||||
|
||||
// 初始化开始节点
|
||||
function initStartNode() {
|
||||
for(var i = 0, node; node = childShapes[i++];) {
|
||||
if(node.stencil.id == 'StartNoneEvent') {
|
||||
startNode = node;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!startNode) {
|
||||
top.dialog.msg('未找到开始节点,无法设置OA节点');
|
||||
$scope.close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// 初始化form表单ID
|
||||
function initFormId() {
|
||||
$scope.oaNodeManage.formId = startNode.properties.formkeydefinition;
|
||||
if(!$scope.oaNodeManage.formId) {
|
||||
top.dialog.msg('开始节点未绑定表单,无法设置OA节点');
|
||||
$scope.close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// 初始化form表单
|
||||
function initFormField() {
|
||||
$http.get('api/form-field/list/form-id/'+ $scope.oaNodeManage.formId).then(function(response) {
|
||||
var formFields = [];
|
||||
for(var i = 0, formField; formField = response.data[i++];) {
|
||||
var isVisible = true;
|
||||
var isEditable = true;
|
||||
for(var j = 0, item; item = $scope.oaNodeManage.formFields[j++];) {
|
||||
if(formField.fieldId === item.fieldId) {
|
||||
isVisible = item.isVisible;
|
||||
isEditable = item.isEditable;
|
||||
}
|
||||
}
|
||||
formFields.push({
|
||||
fieldId: formField.fieldId,
|
||||
fieldName: formField.fieldName,
|
||||
fieldExplain: formField.fieldExplain,
|
||||
fieldTag: formField.fieldTag,
|
||||
fieldType: formField.fieldType,
|
||||
isVisible: isVisible,
|
||||
isEditable: isEditable
|
||||
})
|
||||
}
|
||||
$scope.oaNodeManage.formFields = formFields;
|
||||
}, function(response) {
|
||||
top.dialog.msg(response.data.msg);
|
||||
})
|
||||
}
|
||||
|
||||
// 初始化oaUserTaskCompleteListener
|
||||
function initOaUserTaskCompleteListener() {
|
||||
if($scope.property.value) {
|
||||
return;
|
||||
}
|
||||
var event = 'complete',
|
||||
className = '',
|
||||
expression = '',
|
||||
delegateExpression = '${oaUserTaskCompleteListener}';
|
||||
if (isListenerExist(event, className)) {
|
||||
top.dialog.msg('监听器已经存在');
|
||||
return;
|
||||
}
|
||||
addOaUserTaskListener(event, className, expression, delegateExpression);
|
||||
}
|
||||
|
||||
// 初始化
|
||||
(function() {
|
||||
initOaNodeManage();
|
||||
initStartNode();
|
||||
initFormId();
|
||||
initFormField();
|
||||
initOaUserTaskCompleteListener();
|
||||
})();
|
||||
|
||||
}];
|
@ -26,6 +26,8 @@ var KisBpmSequenceFlowOrderCtrl = [ '$scope', '$modal', '$timeout', '$translate'
|
||||
// Config for the modal window
|
||||
var opts = {
|
||||
template: 'editor-app/configuration/properties/sequenceflow-order-popup.html?version=' + Date.now(),
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
scope: $scope
|
||||
};
|
||||
|
||||
|
@ -22,6 +22,8 @@ angular.module('activitiModeler').controller('ActivitiSignalDefinitionsCtrl', ['
|
||||
// Config for the modal window
|
||||
var opts = {
|
||||
template: 'editor-app/configuration/properties/signal-definitions-popup.html?version=' + Date.now(),
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
scope: $scope
|
||||
};
|
||||
|
||||
|
@ -26,6 +26,8 @@ var KisBpmTaskListenersCtrl = [ '$scope', '$modal', '$timeout', '$translate', fu
|
||||
// Config for the modal window
|
||||
var opts = {
|
||||
template: 'editor-app/configuration/properties/task-listeners-popup.html?version=' + Date.now(),
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
scope: $scope
|
||||
};
|
||||
|
||||
@ -40,30 +42,21 @@ var KisBpmTaskListenersPopupCtrl = [ '$scope', '$timeout', '$q', '$translate', f
|
||||
&& $scope.property.value.taskListeners !== undefined
|
||||
&& $scope.property.value.taskListeners !== null) {
|
||||
|
||||
if ($scope.property.value.taskListeners.constructor == String)
|
||||
{
|
||||
if ($scope.property.value.taskListeners.constructor == String) {
|
||||
$scope.taskListeners = JSON.parse($scope.property.value.taskListeners);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
// Note that we clone the json object rather then setting it directly,
|
||||
// this to cope with the fact that the user can click the cancel button and no changes should have happened
|
||||
$scope.taskListeners = angular.copy($scope.property.value.taskListeners);
|
||||
}
|
||||
|
||||
for (var i = 0; i < $scope.taskListeners.length; i++)
|
||||
{
|
||||
for (var i = 0; i < $scope.taskListeners.length; i++) {
|
||||
var taskListener = $scope.taskListeners[i];
|
||||
if (taskListener.className !== undefined && taskListener.className !== '')
|
||||
{
|
||||
if (taskListener.className !== undefined && taskListener.className !== '') {
|
||||
taskListener.implementation = taskListener.className;
|
||||
}
|
||||
else if (taskListener.expression !== undefined && taskListener.expression !== '')
|
||||
{
|
||||
} else if (taskListener.expression !== undefined && taskListener.expression !== '') {
|
||||
taskListener.implementation = taskListener.expression;
|
||||
}
|
||||
else if (taskListener.delegateExpression !== undefined && taskListener.delegateExpression !== '')
|
||||
{
|
||||
} else if (taskListener.delegateExpression !== undefined && taskListener.delegateExpression !== '') {
|
||||
taskListener.implementation = taskListener.delegateExpression;
|
||||
}
|
||||
}
|
||||
@ -98,24 +91,16 @@ var KisBpmTaskListenersPopupCtrl = [ '$scope', '$timeout', '$q', '$translate', f
|
||||
selectedItems: $scope.selectedListeners,
|
||||
afterSelectionChange: function (rowItem, event) {
|
||||
$scope.selectedFields.length = 0;
|
||||
if ($scope.selectedListeners.length > 0)
|
||||
{
|
||||
if ($scope.selectedListeners.length > 0) {
|
||||
var fields = $scope.selectedListeners[0].fields;
|
||||
if (fields !== undefined && fields !== null)
|
||||
{
|
||||
for (var i = 0; i < fields.length; i++)
|
||||
{
|
||||
if (fields !== undefined && fields !== null) {
|
||||
for (var i = 0; i < fields.length; i++) {
|
||||
var field = fields[i];
|
||||
if (field.stringValue !== undefined && field.stringValue !== '')
|
||||
{
|
||||
if (field.stringValue !== undefined && field.stringValue !== '') {
|
||||
field.implementation = field.stringValue;
|
||||
}
|
||||
else if (field.expression !== undefined && field.expression !== '')
|
||||
{
|
||||
} else if (field.expression !== undefined && field.expression !== '') {
|
||||
field.implementation = field.expression;
|
||||
}
|
||||
else if (field.string !== undefined && field.string !== '')
|
||||
{
|
||||
} else if (field.string !== undefined && field.string !== '') {
|
||||
field.implementation = field.string;
|
||||
}
|
||||
}
|
||||
@ -140,20 +125,13 @@ var KisBpmTaskListenersPopupCtrl = [ '$scope', '$timeout', '$q', '$translate', f
|
||||
});
|
||||
|
||||
$scope.listenerDetailsChanged = function () {
|
||||
if ($scope.selectedListeners[0].className !== '')
|
||||
{
|
||||
if ($scope.selectedListeners[0].className !== '') {
|
||||
$scope.selectedListeners[0].implementation = $scope.selectedListeners[0].className;
|
||||
}
|
||||
else if ($scope.selectedListeners[0].expression !== '')
|
||||
{
|
||||
} else if ($scope.selectedListeners[0].expression !== '') {
|
||||
$scope.selectedListeners[0].implementation = $scope.selectedListeners[0].expression;
|
||||
}
|
||||
else if ($scope.selectedListeners[0].delegateExpression !== '')
|
||||
{
|
||||
} else if ($scope.selectedListeners[0].delegateExpression !== '') {
|
||||
$scope.selectedListeners[0].implementation = $scope.selectedListeners[0].delegateExpression;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
$scope.selectedListeners[0].implementation = '';
|
||||
}
|
||||
};
|
||||
@ -291,37 +269,30 @@ var KisBpmTaskListenersPopupCtrl = [ '$scope', '$timeout', '$q', '$translate', f
|
||||
};
|
||||
|
||||
$scope.fieldDetailsChanged = function () {
|
||||
if ($scope.selectedFields[0].stringValue != '')
|
||||
{
|
||||
if ($scope.selectedFields[0].stringValue != '') {
|
||||
$scope.selectedFields[0].implementation = $scope.selectedFields[0].stringValue;
|
||||
}
|
||||
else if ($scope.selectedFields[0].expression != '')
|
||||
{
|
||||
} else if ($scope.selectedFields[0].expression != '') {
|
||||
$scope.selectedFields[0].implementation = $scope.selectedFields[0].expression;
|
||||
}
|
||||
else if ($scope.selectedFields[0].string != '')
|
||||
{
|
||||
} else if ($scope.selectedFields[0].string != '') {
|
||||
$scope.selectedFields[0].implementation = $scope.selectedFields[0].string;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
$scope.selectedFields[0].implementation = '';
|
||||
}
|
||||
};
|
||||
|
||||
// Click handler for add button
|
||||
$scope.addNewField = function () {
|
||||
if ($scope.selectedListeners.length > 0)
|
||||
{
|
||||
if ($scope.selectedListeners[0].fields == undefined)
|
||||
{
|
||||
if ($scope.selectedListeners.length > 0) {
|
||||
if ($scope.selectedListeners[0].fields == undefined) {
|
||||
$scope.selectedListeners[0].fields = [];
|
||||
}
|
||||
$scope.selectedListeners[0].fields.push({ name : 'fieldName',
|
||||
$scope.selectedListeners[0].fields.push({
|
||||
name: 'fieldName',
|
||||
implementation: '',
|
||||
stringValue: '',
|
||||
expression: '',
|
||||
string: ''});
|
||||
string: ''
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -99,5 +99,9 @@ KISBPM.PROPERTY_CONFIG =
|
||||
"formkeydefinition": {
|
||||
"readModeTemplateUrl": "editor-app/configuration/properties/form-select-display-template.html",
|
||||
"writeModeTemplateUrl": "editor-app/configuration/properties/form-select-write-template.html"
|
||||
},
|
||||
"oanodemanage": {
|
||||
"readModeTemplateUrl": "editor-app/configuration/properties/oa-node-manage-display-template.html",
|
||||
"writeModeTemplateUrl": "editor-app/configuration/properties/oa-node-manage-write-template.html"
|
||||
}
|
||||
};
|
||||
|
@ -0,0 +1,2 @@
|
||||
<span ng-if="property.value">点击编辑节点信息</span>
|
||||
<span ng-if="!property.value">点击设置节点信息</span>
|
@ -0,0 +1,362 @@
|
||||
<div class="modal" ng-controller="OaNodeManagePopupCtrl">
|
||||
|
||||
<div class="modal-dialog modal-wide">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" ng-click="close()">×</button>
|
||||
<h2>OA节点管理</h2>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li class="active">
|
||||
<a href="#nodeConfig" aria-controls="home" role="tab" data-toggle="tab"><h5>代理人配置</h5></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#buttonConfig" aria-controls="profile" role="tab" data-toggle="tab"><h5>按钮配置</h5></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#formFieldConfig" aria-controls="profile" role="tab" data-toggle="tab"><h5>表单字段配置</h5></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#listenerConfig" aria-controls="profile" role="tab" data-toggle="tab"><h5>监听器配置</h5></a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="nodeConfig" style="padding: 15px 0;">
|
||||
<table class="table table-bordered table-hover">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<h5>节点类型</h5>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.nodeType" type="radio" name="nodeType" value="normal"> 普通节点
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.nodeType" type="radio" name="nodeType" value="sign"> 会签节点
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- 普通节点 start -->
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal'">
|
||||
<td>
|
||||
<h5>代理人类型</h5>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal'">
|
||||
<td>
|
||||
<div>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.assigneeType" type="radio" name="assigneeType" value="appoint"> 手动指定
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.assigneeType" type="radio" name="assigneeType" value="auto"> 自动获取
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- 手动指定代理人 start -->
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'appoint'">
|
||||
<td>
|
||||
<h5>代理人数量</h5>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'appoint'">
|
||||
<td>
|
||||
<div>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.assigneeCount" type="radio" name="assigneeCount" value="single"> 单人
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'appoint' && oaNodeManage.assignee.assigneeCount == 'single'">
|
||||
<td>
|
||||
<h5>选择代理人</h5>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'appoint' && oaNodeManage.assignee.assigneeCount == 'single'">
|
||||
<td>
|
||||
<input ng-model="oaNodeManage.assignee.assignee" type="hidden" name="assignee">
|
||||
<button type="button">选择</button>
|
||||
<span>用户1</span>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- 手动指定代理人 end -->
|
||||
<!-- 自动获取代理人 start -->
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'auto'">
|
||||
<td>
|
||||
<h5>自动方式</h5>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'auto'">
|
||||
<td>
|
||||
<div>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.autoAssignType" type="radio" name="autoAssignType" value="scope"> 范围指定
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.autoAssignType" type="radio" name="autoAssignType" value="quick"> 快捷指定
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'auto' && oaNodeManage.assignee.autoAssignType == 'scope'">
|
||||
<td>
|
||||
<h5>部门类型</h5>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'auto' && oaNodeManage.assignee.autoAssignType == 'scope'">
|
||||
<td>
|
||||
<div>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.departmentType" type="radio" name="departmentType" value="appoint"> 指定
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.departmentType" type="radio" name="departmentType" value="belong"> 所在部门
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'auto' && oaNodeManage.assignee.autoAssignType == 'scope' && oaNodeManage.assignee.departmentType == 'appoint'">
|
||||
<td>
|
||||
<h5>选择部门</h5>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'auto' && oaNodeManage.assignee.autoAssignType == 'scope' && oaNodeManage.assignee.departmentType == 'appoint'">
|
||||
<td>
|
||||
<input ng-model="oaNodeManage.assignee.departments" type="hidden" name="departments">
|
||||
<button type="button">选择</button>
|
||||
<span>部门</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'auto' && oaNodeManage.assignee.autoAssignType == 'scope'">
|
||||
<td>
|
||||
<h5>选择角色</h5>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'auto' && oaNodeManage.assignee.autoAssignType == 'scope'">
|
||||
<td>
|
||||
<input ng-model="oaNodeManage.assignee.roles" type="hidden" name="roles">
|
||||
<button type="button">选择</button>
|
||||
<span>角色1</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'auto' && oaNodeManage.assignee.autoAssignType == 'scope'">
|
||||
<td>
|
||||
<h5>选择职位</h5>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'auto' && oaNodeManage.assignee.autoAssignType == 'scope'">
|
||||
<td>
|
||||
<input ng-model="oaNodeManage.assignee.positions" type="hidden" name="positions">
|
||||
<button type="button">选择</button>
|
||||
<span>职位1</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'auto' && oaNodeManage.assignee.autoAssignType == 'quick'">
|
||||
<td>
|
||||
<h5>快捷代理人</h5>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'normal' && oaNodeManage.assignee.assigneeType == 'auto' && oaNodeManage.assignee.autoAssignType == 'quick'">
|
||||
<td>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input ng-model="oaNodeManage.assignee.quickAssignee" type="radio" name="quickAssignee" value="starter">
|
||||
发起人
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input ng-model="oaNodeManage.assignee.quickAssignee" type="radio" name="quickAssignee" value="starterSuperiorPosition"> 发起人上级岗位
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input ng-model="oaNodeManage.assignee.quickAssignee" type="radio" name="quickAssignee" value="previousStepAssigneeSubordinatePosition"> 上一步代理人下级岗位
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input ng-model="oaNodeManage.assignee.quickAssignee" type="radio" name="quickAssignee" value="previousStepAssigneeSuperiorPosition"> 上一步代理人上级岗位
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input ng-model="oaNodeManage.assignee.quickAssignee" type="radio" name="quickAssignee" value="previousStepAssigneeSameDepartment"> 上一步代理人同部门
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label>
|
||||
<input ng-model="oaNodeManage.assignee.quickAssignee" type="radio" name="quickAssignee" value="previousNStepAssigneeSubordinatePosition"> 上 <input type="number" step="1" name="previousNStep" ng-disabled="oaNodeManage.assignee.quickAssignee != 'previousNStepAssigneeSubordinatePosition'"> 步代理人
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- 自动获取代理人 end -->
|
||||
<!-- 普通节点 end -->
|
||||
<!-- 会签节点 start -->
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'sign'">
|
||||
<td>
|
||||
<h5>会签类型</h5>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'sign'">
|
||||
<td>
|
||||
<div>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.signType" type="radio" name="signType" value="parallel"> 并行
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.signType" type="radio" name="signType" value="sequential"> 串行
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'sign' && oaNodeManage.assignee.signType == 'parallel'">
|
||||
<td>
|
||||
<h5>会签人列表</h5>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'sign' && oaNodeManage.assignee.signType == 'parallel'">
|
||||
<td>
|
||||
<input ng-model="oaNodeManage.assignee.signUsers" type="hidden" name="signUsers">
|
||||
<button type="button">选择</button>
|
||||
<span>用户1,用户2</span>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- 并行 start -->
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'sign' && oaNodeManage.assignee.signType == 'parallel'">
|
||||
<td>
|
||||
<h5>完成(通过)条件</h5>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="oaNodeManage.assignee.nodeType == 'sign' && oaNodeManage.assignee.signType == 'parallel'">
|
||||
<td>
|
||||
<div>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.completeCondition" type="radio" name="completeCondition" value="allPass" checked> 全部通过
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.completeCondition" type="radio" name="completeCondition" value="singlePass"> 单人通过
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input ng-model="oaNodeManage.assignee.completeCondition" type="radio" name="completeCondition" value="customPass"> 通过
|
||||
</label>
|
||||
<input ng-model="oaNodeManage.assignee.completeCount" type="number" step="1" name="completeCount" ng-disabled="oaNodeManage.assignee.completeCondition != 'customPass'"> 人
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- 并行 end -->
|
||||
<!-- 会签节点 end -->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="buttonConfig" style="padding: 15px 0;"></div>
|
||||
<div role="tabpanel" class="tab-pane" id="formFieldConfig" style="padding: 15px 0;">
|
||||
<table class="table table-bordered table-hover">
|
||||
<colgroup>
|
||||
<col width="60">
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
<col width="60">
|
||||
<col width="60">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-center">序号</th>
|
||||
<th>字段名</th>
|
||||
<th>字段描述</th>
|
||||
<th>字段标签</th>
|
||||
<th>字段类型</th>
|
||||
<th class="text-center">可见</th>
|
||||
<th class="text-center">可操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="formField in oaNodeManage.formFields">
|
||||
<td class="text-center">{{$index + 1}}</td>
|
||||
<td>{{formField.fieldName}}</td>
|
||||
<td>{{formField.fieldExplain}}</td>
|
||||
<td>{{formField.fieldTag}}</td>
|
||||
<td>{{formField.fieldType}}</td>
|
||||
<td class="text-center">
|
||||
<input type="checkbox" ng-model="formField.isVisible">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="checkbox" ng-model="formField.isEditable">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="listenerConfig" style="padding: 15px 0;">
|
||||
<table class="table table-bordered table-hover" style="margin-bottom: -1px;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<span class="btn btn-primary btn-sm" ng-click="addOaUserTaskCreateListener()">任务创建</span>
|
||||
<span class="btn btn-success btn-sm" ng-click="addOaUserTaskAssignmentListener()">代理人设置</span>
|
||||
<span class="btn btn-warning btn-sm" ng-click="addOaUserTaskDeleteListener()">任务删除</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-bordered table-hover">
|
||||
<colgroup>
|
||||
<col width="100">
|
||||
<col width="200">
|
||||
<col>
|
||||
<col width="115">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>事件名称</th>
|
||||
<th>事件类型</th>
|
||||
<th>业务类</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="oaUserTaskListener in oaNodeManage.oaUserTaskListeners">
|
||||
<td ng-if="oaUserTaskListener.event == 'create'">任务创建</td>
|
||||
<td ng-if="oaUserTaskListener.event == 'complete'">代理人设置</td>
|
||||
<td ng-if="oaUserTaskListener.event == 'assignment'">任务完成</td>
|
||||
<td ng-if="oaUserTaskListener.event == 'delete'">任务删除</td>
|
||||
<td>{{oaUserTaskListener.event}}</td>
|
||||
<td>{{oaUserTaskListener.delegateExpression}}</td>
|
||||
<td>
|
||||
<span class="btn btn-primary btn-xs" ng-click="moveOaUserTaskListenerUp($index)"><i class="glyphicon glyphicon-arrow-up"></i></span>
|
||||
<span class="btn btn-primary btn-xs" ng-click="moveOaUserTaskListenerDown($index)"><i class="glyphicon glyphicon-arrow-down"></i></span>
|
||||
<span class="btn btn-danger btn-xs" ng-click="deleteOaUserTaskListener($index)" ng-if="oaUserTaskListener.event != 'complete'"><i class="glyphicon glyphicon-minus"></i></span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button ng-click="cancel()" class="btn btn-primary" translate>ACTION.CANCEL</button>
|
||||
<button ng-click="save()" class="btn btn-primary" translate>ACTION.SAVE</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
@ -0,0 +1 @@
|
||||
<span ng-controller="OaNodeManageCtrl"></span>
|
@ -26,6 +26,7 @@ KISBPM.TOOLBAR = {
|
||||
top.dialog.confirm('确定保存吗?', function (index) {
|
||||
top.dialog.close(index);
|
||||
var json = scope.editor.getJSON();
|
||||
console.log(json)
|
||||
if(!json.properties.name) {
|
||||
top.dialog.msg('流程的 元素名称 不能为空');
|
||||
return;
|
||||
@ -53,13 +54,16 @@ KISBPM.TOOLBAR = {
|
||||
}
|
||||
// Parse dom to string
|
||||
var svgDOM = DataManager.serialize(svgClone);
|
||||
|
||||
var modelMetaData = scope.editor.getModelMetaData();
|
||||
|
||||
// 构建oaNodeManages管理列表
|
||||
|
||||
var params = {
|
||||
jsonXml: json,
|
||||
svgXml: svgDOM,
|
||||
name: modelMetaData.name,
|
||||
description: modelMetaData.description
|
||||
description: modelMetaData.description,
|
||||
oaNodeManages: []
|
||||
};
|
||||
var loadLayerIndex;
|
||||
top.restAjax.put(KISBPM.URL.putModel(modelMetaData.modelId), params, null, function (code, data) {
|
||||
|
@ -199,6 +199,19 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "oanodemanagepackage",
|
||||
"properties": [
|
||||
{
|
||||
"id": "oanodemanage",
|
||||
"type": "oanodemanage",
|
||||
"title": "OA节点管理",
|
||||
"value": "",
|
||||
"description": "OA节点功能管理",
|
||||
"popular": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "duedatedefinitionpackage",
|
||||
"properties": [
|
||||
@ -1078,6 +1091,7 @@
|
||||
"活动列表"
|
||||
],
|
||||
"propertyPackages": [
|
||||
"oanodemanagepackage",
|
||||
"overrideidpackage",
|
||||
"namepackage",
|
||||
"documentationpackage",
|
||||
|
@ -117,6 +117,7 @@
|
||||
<script src="editor-app/configuration/properties-message-definitions-controller.js" type="text/javascript"></script>
|
||||
<script src="editor-app/configuration/properties-message-scope-controller.js" type="text/javascript"></script>
|
||||
<script src="editor-app/configuration/properties-form-select-controller.js" type="text/javascript"></script>
|
||||
<script src="editor-app/configuration/properties-oa-node-manage-controller.js" type="text/javascript"></script>
|
||||
|
||||
<script src="editor-app/configuration/toolbar.js" type="text/javascript"></script>
|
||||
<script src="editor-app/configuration/toolbar-custom-actions.js" type="text/javascript"></script>
|
||||
|
@ -0,0 +1,42 @@
|
||||
package ink.wgink.module.form.controller.api.design;
|
||||
|
||||
import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.module.form.pojo.dtos.design.FormFieldDTO;
|
||||
import ink.wgink.module.form.service.design.IFormFieldService;
|
||||
import ink.wgink.pojo.result.ErrorResult;
|
||||
import io.swagger.annotations.*;
|
||||
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;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: FormController
|
||||
* @Description: 表单
|
||||
* @Author: wanggeng
|
||||
* @Date: 2022/3/10 7:38 AM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "表单")
|
||||
@RestController
|
||||
@RequestMapping(ISystemConstant.API_PREFIX + "/form-field")
|
||||
public class FormFieldController extends DefaultBaseController {
|
||||
|
||||
@Autowired
|
||||
private IFormFieldService formFieldService;
|
||||
|
||||
@ApiOperation(value = "字段列表", notes = "字段列表接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "formId", value = "表单ID", paramType = "path")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("list/form-id/{formId}")
|
||||
public List<FormFieldDTO> listByFormId(@PathVariable("formId") String formId) {
|
||||
return formFieldService.listByFormId(formId);
|
||||
}
|
||||
|
||||
}
|
@ -83,6 +83,13 @@ public interface IFormFieldService {
|
||||
*/
|
||||
List<FormFieldDTO> list(Map<String, Object> params);
|
||||
|
||||
/**
|
||||
* 列表
|
||||
* @param formId 表单ID
|
||||
* @return
|
||||
*/
|
||||
List<FormFieldDTO> listByFormId(String formId);
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*
|
||||
@ -97,7 +104,7 @@ public interface IFormFieldService {
|
||||
* @param formId
|
||||
* @return
|
||||
*/
|
||||
List<FormFieldPO> listPO(String formId);
|
||||
List<FormFieldPO> listPOByFormId(String formId);
|
||||
|
||||
/**
|
||||
* 分页列表
|
||||
|
@ -86,6 +86,13 @@ public class FormFieldServiceImpl extends DefaultBaseService implements IFormFie
|
||||
return formFieldDao.list(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FormFieldDTO> listByFormId(String formId) {
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("formId", formId);
|
||||
return list(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FormFieldPO> listPO(Map<String, Object> params) {
|
||||
params = params == null ? getHashMap(2) : params;
|
||||
@ -93,7 +100,7 @@ public class FormFieldServiceImpl extends DefaultBaseService implements IFormFie
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FormFieldPO> listPO(String formId) {
|
||||
public List<FormFieldPO> listPOByFormId(String formId) {
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("formId", formId);
|
||||
return listPO(params);
|
||||
|
Loading…
Reference in New Issue
Block a user