244 lines
8.1 KiB
JavaScript
244 lines
8.1 KiB
JavaScript
|
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();
|
|||
|
})();
|
|||
|
|
|||
|
}];
|