画图界面帮助说明功能提交

This commit is contained in:
446052889@qq.com 2022-06-27 23:54:45 +08:00
parent e37c40cde3
commit 10080abd78
4 changed files with 106 additions and 38 deletions

View File

@ -81,7 +81,8 @@ AWS PAL(Process Asset Library)流程资产库是AWS CoE平台的重要产品组
<property action="edit" group="designer" name="IS_RECORD_OP_LOG" title="是否记录所有操作行为日志" type="combox" isSystem="false" desc="记录PAL中的各种操作到审计日志中审计类日志功能全局开关需要打开&lt;br&gt;只记录操作的行为,不记录操作的业务数据" ref="记录:true|不记录:false">true</property>
<property action="edit" group="BPA" name="PROCESS_OWNER_ATTR" title="BPA流程负责人属性控制" type="input" isSystem="false" desc="PAL的指定属性控制BPA的流程权限&lt;br&gt;&lt;br&gt;当PAL的BPMN流程与BPM平台存在关联关系并且该流程在BPA中进行了流程分析可指定一个PAL的BPMN流程文件属性进行BPA流程权限单向管控&lt;br&gt;&lt;br&gt;例如设定该参数值为“bpm_person” 流程责任人属性代表含义为当用户修改了流程责任人属性之后会自动触发将相关流程责任人同步至该流程在BPA的权限&lt;br&gt;&lt;br&gt;支持自定义的PAL BPMN文件属性该属性为关联BPM平台组织架构人员时有效" ref=""/>
<property action="edit" group="三员管理" name="fileHighSecurity" title="流程文件三员管理密级标定标志" type="combox" isSystem="false" desc="该参数针对开启三员管理应用启动后,是否对流程文件密级标定功能进行启用的开关,&lt;br&gt;默认为不开启" ref="关闭:false| 开启:true">false</property>
<property action="edit" group="designer" name="DIAGRAM_CONTENT_EXIST_MARK" title="模型图是否存在内容的标记开关" type="combox" isSystem="false" desc="保存模型图时点击PAL画图设计器保存按钮进行模型图是否包含形状节点的标记记录根据所选参数值记录到APP_ACT_COE_PAL_REPOSITORY表中对应的EXT1、EXT2、EXT3、EXT4字段可以根据项目实际需求可以记录到指定的扩展字段&lt;br&gt;&lt;br&gt;当选择关闭时不进行记录&lt;br&gt;&lt;br&gt;以记录到EXT1为例当EXT1为空字符串或字符串“0”时该模型图不存在内容当EXT1字符串”1“时存在形状内容&lt;br&gt;&lt;br&gt;若需要对所有已存在的模型图进行一次性全部标记,在“工具附加-PAL初始化模型图标记”中执行模型图形状标记初始化" ref="关闭:close|开启并记录到EXT1参数:EXT1|开启并记录到EXT2参数:EXT2|开启并记录到EXT3参数:EXT3|开启并记录到EXT4参数:EXT4">close</property>
<property action="edit" group="designer" name="DIAGRAM_CONTENT_EXIST_MARK" title="模型图是否存在内容的标记开关" type="combox" isSystem="false" desc="保存模型图时点击PAL画图设计器保存按钮进行模型图是否包含形状节点的标记记录根据所选参数值记录到APP_ACT_COE_PAL_REPOSITORY表中对应的EXT1、EXT2、EXT3、EXT4字段可以根据项目实际需求可以记录到指定的扩展字段&lt;br&gt;&lt;br&gt;当选择关闭时不进行记录&lt;br&gt;&lt;br&gt;以记录到EXT1为例当EXT1为空字符串或字符串“0”时该模型图不存在内容当EXT1字符串”1“时存在形状内容&lt;br&gt;&lt;br&gt;若需要对所有已存在的模型图进行一次性全部标记,在“工具附加-PAL初始化模型图标记”中执行模型图形状标记初始化" ref="关闭:close|开启并记录到EXT1参数:EXT1|开启并记录到EXT2参数:EXT2|开启并记录到EXT3参数:EXT3|开启并记录到EXT4参数:EXT4">close</property>
<property action="edit" group="designer" name="CUSTOM_HELP_TOOL_EXT_MENU_URL" title="帮助工具栏自定义URL" type="textarea" isSystem="false" desc="设计器工具栏帮助项扩展选项URL&lt;br&gt;以下为示例&lt;br&gt;[{&quot;name&quot;:&quot;分类1&quot;,&quot;url&quot;:&quot;&quot;,&quot;children&quot;:[{&quot;name&quot;:&quot;百度链接&quot;,&quot;url&quot;:&quot;http://www.baidu.com&quot;},{&quot;name&quot;:&quot;腾讯链接&quot;,&quot;url&quot;:&quot;https://www.tencent.com/zh-cn/&quot;}]},{&quot;name&quot;:&quot;分类2&quot;,&quot;url&quot;:&quot;&quot;,&quot;children&quot;:[{&quot;name&quot;:&quot;搜狐网链接&quot;,&quot;url&quot;:&quot;https://www.sohu.com/&quot;},{&quot;name&quot;:&quot;人民网链接&quot;,&quot;url&quot;:&quot;http://www.people.com.cn/&quot;}]},{&quot;name&quot;:&quot;凤凰网链接&quot;,&quot;url&quot;:&quot;https://www.ifeng.com/&quot;}]" ref="">[{"name":"分类1","url":"","children":[{"name":"百度链接","url":"http://www.baidu.com"},{"name":"腾讯链接","url":"https://www.tencent.com/zh-cn/"}]},{"name":"分类2","url":"","children":[{"name":"搜狐网链接","url":"https://www.sohu.com/"},{"name":"人民网链接","url":"http://www.people.com.cn/"}]},{"name":"凤凰网链接","url":"https://www.ifeng.com/"}]</property>
</properties>
<modelAdministrator/>
<icon code="&amp;#xe604;" color="#009b52"/>

View File

@ -595,6 +595,8 @@ public class CoeDesignerWeb extends ActionWeb {
} else {
macroLibraries.put("processOutput", false);
}
// 帮助工具栏扩展
getHelptoolExtUrl(macroLibraries);
// 操作行为日志记录
if (SDK.getAppAPI().getPropertyBooleanValue(CoEConstant.APP_ID, "IS_RECORD_OP_LOG", false)) {
CoEOpLogAPI.auditOkOp(_uc, CoEOpLogConst.MODULE_CATEGORY_REPOSITORY, CoEOpLogConst.OP_ACCESS, CoEOpLogConst.INFO_REPOSITORY_ACCESS);
@ -615,6 +617,15 @@ public class CoeDesignerWeb extends ActionWeb {
}
}
/**
* 帮助工具栏扩展
* @param macroLibraries
*/
private void getHelptoolExtUrl(Map<String, Object> macroLibraries) {
JSONArray propVal = SDK.getAppAPI().getPropertyJSONArrayValue(CoEConstant.APP_ID, "CUSTOM_HELP_TOOL_EXT_MENU_URL");
macroLibraries.put("customHelpToolExtMenuUrl", propVal);
}
// 串联分析应用片段
public void getPalProcessLinkTag(PALRepositoryModel plModel, Map<String, Object> macroLibraries) {
String processlinkAppId = "com.actionsoft.apps.coe.pal.processlink";
@ -1002,7 +1013,7 @@ public class CoeDesignerWeb extends ActionWeb {
getLinker(model, macroLibraries);
return sortList;
}
protected void getBpmnDesginerUI(PALRepositoryModel plModel, Map<String, Object> macroLibraries, boolean isView, boolean isLock) {
// 属性过滤
String schemeId = SDK.getAppAPI().getProperty(CoEConstant.APP_ID, "FILTER_SCHEME");
@ -1020,14 +1031,14 @@ public class CoeDesignerWeb extends ActionWeb {
if (CoeProcessLevelUtil.queryCorrelateType(plModel.getId()) == 1) { // PAL推送至BPMS且BPMS端已分配
bpmnJs.append(baseScript.replace("$js$", "bpmn.designer.extend.core.js"));
if (plModel.isApproval() || plModel.isPublish() || plModel.isStop() || isView) {
} else {
saveUI += "<div id=\"bar_save\" class=\"toolbar_button\" awsui-qtip=\"保存\"><div class=\"ico_aws save\"></div></div>";
saveUI += "<div id=\"bar_save\" class=\"toolbar_button\" awsui-qtip=\"保存\"><div class=\"ico_aws save\"></div></div>";
}
if (flag) {
if (CoeProcessLevelUtil.isPalManage() && !"show".equals(CoeProcessLevelCorrelateCache.getCache().get(plModel.getId()).getExt1()) && CoeProcessLevelCorrelateCache.getCache().get(plModel.getId()).getCorrelateType() == 1) {
if (CoeProcessLevelUtil.showBpmRunButton(plModel)) {// 显示在bpm运行按钮
saveUI += "<div id=\"bar_mark\" class=\"toolbar_button\" awsui-qtip=\"在BPM运行\"><div class=\"ico_aws plug\"></div></div>";
saveUI += "<div id=\"bar_mark\" class=\"toolbar_button\" awsui-qtip=\"在BPM运行\"><div class=\"ico_aws plug\"></div></div>";
}
} else {
saveUI += "<div id=\"bar_rmark\" class=\"toolbar_button\" awsui-qtip=\"取消在BPM运行\"><div class=\"ico_aws lightning\"></div></div>";
@ -1040,27 +1051,27 @@ public class CoeDesignerWeb extends ActionWeb {
} else if (CoeProcessLevelUtil.hasMarked(plModel.getId())) { // PAL推送至BPMS但BPMS端未分配
if (isSysAutoSave.equals("0")) {
if (plModel.isApproval() || plModel.isPublish() || plModel.isStop() || isView) {
} else {
saveUI += "<div id=\"bar_save\" class=\"toolbar_button\" awsui-qtip=\"保存\"><div class=\"ico_aws save\"></div></div>";
saveUI += "<div id=\"bar_save\" class=\"toolbar_button\" awsui-qtip=\"保存\"><div class=\"ico_aws save\"></div></div>";
}
if (flag) {
saveUI += "<div id=\"bar_rmark\" class=\"toolbar_button\" awsui-qtip=\"取消在BPM运行\"><div class=\"ico_aws lightning\"></div></div>";
saveUI += "<div id=\"bar_rmark\" class=\"toolbar_button\" awsui-qtip=\"取消在BPM运行\"><div class=\"ico_aws lightning\"></div></div>";
}
} else {
if (flag) {
saveUI = "<div id=\"bar_rmark\" class=\"toolbar_button\" awsui-qtip=\"取消在BPM运行\"><div class=\"ico_aws lightning\"></div></div>";
saveUI = "<div id=\"bar_rmark\" class=\"toolbar_button\" awsui-qtip=\"取消在BPM运行\"><div class=\"ico_aws lightning\"></div></div>";
}
}
} else if (CoeProcessLevelUtil.queryCorrelateType(plModel.getId()) == 0) { // BPMS流程关联到PAL
bpmnJs.append(baseScript.replace("$js$", "bpmn.designer.extend.core.js"));
if (plModel.isApproval() || plModel.isPublish() || plModel.isStop() || isView) {
} else {
saveUI += "<div id=\"bar_save\" class=\"toolbar_button\" awsui-qtip=\"保存\"><div class=\"ico_aws save\"></div></div>";
saveUI += "<div id=\"bar_save\" class=\"toolbar_button\" awsui-qtip=\"保存\"><div class=\"ico_aws save\"></div></div>";
}
if (flag) {
saveUI += "<div id=\"bar_cancel_aws_correlate\" class=\"toolbar_button\" awsui-qtip=\"取消关联\"><div class=\"ico_aws incorrelate\"></div></div>";
saveUI += "<div id=\"bar_cancel_aws_correlate\" class=\"toolbar_button\" awsui-qtip=\"取消关联\"><div class=\"ico_aws incorrelate\"></div></div>";
if(UtilString.isNotEmpty(schemeId)) { //配置了属性过滤参数
saveUI += "<div id=\"toolbar-shape-attr\" class=\"toolbar_button\" awsui-qtip=\"形状属性\"><div class=\"ico_aws node_properties\"></div></div>";
saveUI += "<div id=\"toolbar-global-prop\" class=\"toolbar_button\" awsui-qtip=\"流程属性\"><div class=\"ico_aws proces_properties\"></div></div>";
@ -1068,11 +1079,11 @@ public class CoeDesignerWeb extends ActionWeb {
}
} else if (plModel.getMethodId().equals("process.bpmn2")) { // 未标记关联实时保存
if (isSysAutoSave.equals("0")) {
if (plModel.isApproval() || plModel.isPublish() || plModel.isStop() || isView) {
if (flag) {
if (CoeProcessLevelUtil.showBpmRunButton(plModel) && !isLock) {// 显示在bpm运行按钮
saveUI += "<div id=\"bar_mark\" class=\"toolbar_button\" awsui-qtip=\"在BPM运行\"><div class=\"ico_aws plug\"></div></div>";
saveUI += "<div id=\"bar_mark\" class=\"toolbar_button\" awsui-qtip=\"在BPM运行\"><div class=\"ico_aws plug\"></div></div>";
}
}
} else {
@ -1080,7 +1091,7 @@ public class CoeDesignerWeb extends ActionWeb {
if (flag) {
if (CoeProcessLevelUtil.showBpmRunButton(plModel)) {// 显示在bpm运行按钮
saveUI += "<div id=\"bar_check_aws\" class=\"toolbar_button\" awsui-qtip=\"校验流程图\"><div class=\"ico_check_aws\"></div></div>";
saveUI += "<div id=\"bar_mark\" class=\"toolbar_button\" awsui-qtip=\"在BPM运行\"><div class=\"ico_aws plug\"></div></div>";
saveUI += "<div id=\"bar_mark\" class=\"toolbar_button\" awsui-qtip=\"在BPM运行\"><div class=\"ico_aws plug\"></div></div>";
}
}
}
@ -1188,7 +1199,7 @@ public class CoeDesignerWeb extends ActionWeb {
definModel.setUpdateTime(new SimpleDateFormat(CoeDesignerConstant.DATE_TIME_STYLE_YYYY_MM_DD_HH_MM_SS).format(new Date()));
} else {
// 注释掉下面这段代码不生成历史文件
/*
/*
* String updateTimeFormat = "yyyy-MM-dd HH:mm:ss";
DateTime lastDateTime = new DateTime(UtilDate.getTimes(definModel.getUpdateTime(), updateTimeFormat));
Date newDate = new Date();
@ -1200,7 +1211,7 @@ public class CoeDesignerWeb extends ActionWeb {
} else {
// 存入到运行版本里
definModel.setCreateHistory(false);
}*/
definModel.setCreateHistory(false);
}
@ -1332,7 +1343,7 @@ public class CoeDesignerWeb extends ActionWeb {
mapNewUUID.put(oldIdT, oldIdT);
}
}
// 处理流程属性
String property = CoePropertyUtil.getPropertyValue(oldUUID + "_attr");
if (!UtilString.isEmpty(property)) {
@ -1348,7 +1359,7 @@ public class CoeDesignerWeb extends ActionWeb {
}
return ro.toString();
}
public String definitionOfBpmnSave(String uuid, int ver, String appId, String processDefId, String op, String define, String drawMessage) {
ResponseObject responseObject = ResponseObject.newOkResponse().msg("");
String rs = "";
@ -1492,7 +1503,7 @@ public class CoeDesignerWeb extends ActionWeb {
}
/**
* 创建节点关系
* 创建节点关系
* @param oldModel
* @param createNewShapeId true 返回map中key为文件节点idvalue为新创建的id false 返回map中key为文件节点idvalue与key相同
* @return map key:oldShapeId value:newShapeId/oldShapeId
@ -1536,7 +1547,7 @@ public class CoeDesignerWeb extends ActionWeb {
}
return map;
}
/**
* 复制出现的时候-已无出现复制功能
* @param uuId
@ -2059,7 +2070,7 @@ public class CoeDesignerWeb extends ActionWeb {
pdfContext.setSession(_uc);
return pdfContext.getDownloadURL() + "&isInline=false";
}
/*
* 锁定 解锁当前流程 xuwp
* */
@ -2221,7 +2232,7 @@ public class CoeDesignerWeb extends ActionWeb {
List<PALRepositoryModel> pModels = dao.getRepositoryByVersionId(pModel.getParentId());
pModel = pModels != null && pModels.size() > 0 ? pModels.get(0) : null;
if (pModel != null) {
expendIds.add(0, pModel.getId());
expendIds.add(0, pModel.getId());
}
} else {
expendIds.add(0, pModel.getParentId());
@ -2644,7 +2655,7 @@ public class CoeDesignerWeb extends ActionWeb {
String lockUser = PALRepositoryCache.getCache().get(uuid).getLockUser();
if (!UtilString.isEmpty(lockUser) && !_uc.getUID().equals(lockUser)) {
} else {
setCurrentCheckoutRight(uuid, _uc.getUID());
setCurrentCheckoutRight(uuid, _uc.getUID());
}
return ro.toString();
}
@ -2799,7 +2810,7 @@ public class CoeDesignerWeb extends ActionWeb {
}
return ro.toString();
}
/**
* 平台与PAL是否存在共享状态
* @param processDefId
@ -2810,7 +2821,7 @@ public class CoeDesignerWeb extends ActionWeb {
PALRepositoryQueryAPIManager queryManager = PALRepositoryQueryAPIManager.getInstance();
String plid = queryManager.queryPlIdByPlAwsId(processDefId);
if( !UtilString.isEmpty(plid) ) {
PALRepository palRepository = new PALRepository();
PALRepository palRepository = new PALRepository();
PALRepositoryModel plModel = palRepository.getInstance(plid);
if(plModel!=null) {
checkCorrelate = true;
@ -2826,7 +2837,7 @@ public class CoeDesignerWeb extends ActionWeb {
}
/******************************************新版门户流程详情start********************************************************/
/**
* 门户流程详情详情
* @param rUUID 流程ID
@ -2844,7 +2855,7 @@ public class CoeDesignerWeb extends ActionWeb {
if (plModel == null) {
return AlertWindow.getNotFoundMessagePage("未找到文件", "该文件已被删除");
}
macroLibraries.put("taskId", "");
// 增加三员管理模式taskid为newchange判断
if ("process".equals(plModel.getMethodCategory()) && !UtilString.isEmpty(taskId) && !"submit_create".equals(taskId) && !"new".equals(taskId) && !"change".equals(taskId)) {
@ -2865,7 +2876,7 @@ public class CoeDesignerWeb extends ActionWeb {
} else {
type = CoeDesignerConstant.DESIGNER_DIFINITION_DEFAULT;
}
boolean isCorrelateBpms = PALRepositoryQueryAPIManager.getInstance().isCorrelateBpms(plModel.getId(), true);
macroLibraries.put("isMarked", false);
//默认排序
@ -3049,12 +3060,12 @@ public class CoeDesignerWeb extends ActionWeb {
ids.add(plModel.getId());
getFilePath(sb, ids, (PALRepositoryModel)plModel);
macroLibraries.put("toolbarName", sb.toString());
List<String> shapeIds = new ArrayList<>();// 当前流程所有节点
List<Map<String, Object>> shapeList = CoeDesignerUtil.getShapeMessageJson2(rUUID);//获取所有节点
if (shapeList != null && shapeList.size() > 0) {
for (Map<String, Object> map : shapeList) {
shapeIds.add((String)map.get("id"));
shapeIds.add((String)map.get("id"));
}
}
@ -3089,12 +3100,12 @@ public class CoeDesignerWeb extends ActionWeb {
if (upFileObject.getJSONArray(upfileModel.getShape_uuid()) == null) {
continue;
}
upFileObject.getJSONArray(upfileModel.getShape_uuid()).add(object);
}
}
}
// 文件或节点的关联节点的附件
//查询流程和节点附件
List<DesignerShapeRelationModel> relationList = null;
@ -3272,14 +3283,14 @@ public class CoeDesignerWeb extends ActionWeb {
if ("%".equals(scope) || scope.contains("%")) {
PALRepositoryAttributeModel attrModel = PALRepositoryAttributeCache.getAttributeByMethodIdAndAttrId(model.getWsId(), model.getMethodId(), attributeModel.getKey());
if (attrModel != null && "0".equals(attrModel.getIsDelete())) {
tempList.add(attributeModel);
tempList.add(attributeModel);
}
}
}
}
return tempList;
}
/**
* 更多属性
*
@ -3320,7 +3331,7 @@ public class CoeDesignerWeb extends ActionWeb {
}
return null;
}
private void getFilePath(StringBuilder sb, Set<String> ids, PALRepositoryModel plModel) {
if (plModel.getParentId().length() >= 36) {
PALRepositoryModel parentModel = PALRepositoryCache.getCache().get(plModel.getParentId());
@ -3334,7 +3345,7 @@ public class CoeDesignerWeb extends ActionWeb {
}
}
}
/**
* 门户打开之前的校验
* 对已发布的流程只能打开

View File

@ -189,7 +189,10 @@
var ext2 = "<#ext2>";
var ext3 = "<#ext3>";
var ext4 = "<#ext4>";
// 帮助工具栏扩展url
var customHelpToolExtMenuUrl = <#customHelpToolExtMenuUrl>;
//是否需要保存提示
var isSave = true;
var isNeedPutMessage = true;
@ -292,7 +295,60 @@
}
</script>
<script>
function initCustomHelpToolExtMenuUrl() {
// 自定义帮助扩展
if (customHelpToolExtMenuUrl.length > 0) {
var liHtml = "";
for (var i = 0; i < customHelpToolExtMenuUrl.length; i++) {
// 第一层
var firstLevelObj = customHelpToolExtMenuUrl[i];
if (firstLevelObj.children && firstLevelObj.children.length > 0) {// 有第二层菜单
liHtml += '<li>' + firstLevelObj.name;
liHtml += '<div class="extend ex_arrow"></div>';
liHtml += '<ul class="menu list extend_menu">';
var children = firstLevelObj.children;
if (children && children.length > 0) {
for (var j = 0; j < children.length; j++) {
liHtml += '<li onclick="openUrl(\'helpToolExtUrl\',\''+ children[j].url +'\',{},\'_blank\')">' + children[j].name + '</li>';
}
}
liHtml += '</ul>'
liHtml += '</li>';
} else {// 只有第一层菜单
liHtml += '<li onclick="openUrl(\'helpToolExtUrl\',\''+ firstLevelObj.url +'\',{},\'_blank\')">' + firstLevelObj.name + '</li>';
}
}
$('#bar_list_help').append(liHtml);
}
}
function openUrl(id, url, params, target) {
// 防止反复添加
var dom = document.getElementById(id);
if(dom) {
document.body.removeChild(dom);
}
var temp_form = document.createElement("form");
temp_form.action = url;
temp_form.target = target == undefined ? "_blank" : target;
temp_form.method = "get";
temp_form.style.display = "none";
for (var x in params) {
var opt = document.createElement("textarea");
opt.name = x;
opt.value = params[x];
temp_form.appendChild(opt);
}
temp_form.setAttribute('id', id);
document.body.appendChild(temp_form);
temp_form.submit();
}
$(document).ready(function(){
// 自定义帮助扩展
initCustomHelpToolExtMenuUrl();
if (!installBatch) {// 未安装批处理应用,删除功能入口
$('li[ac=batchreplace]').remove();
}