Browse Source
1) 支持回退时返回给原处理人, 提交时选择任务候选处理人 2) 支持定性选项补录控件的配置 3)支持参数属性 MODIFY_IF 补录控件配置 4)修改流程创建时,更新流程实例扩展表的机制,采用 start 监听 前端核心发布: 8.2.123 1) 首页任务列表增加按日期倒序 2)修改了用户选择机构的操作模式main
59 changed files with 1348 additions and 431 deletions
@ -1,3 +1,15 @@ |
|||
. 用户管理功能中,设置用户机构时,机构树直接展示已经选择的机构,新增“选入”、“选出”功能,用于修改机构 |
|||
. 用户管理功能中,可修改设置用户所属默认机构,默认角色等 |
|||
. |
|||
|
|||
|
|||
|
|||
DDL: |
|||
1. 给 RE_MODEL_PARAMETER_ADDITION 表增加字段 |
|||
ALTER TABLE RE_MODEL_PARAMETER_ADDITION ADD LABEL_ varchar(255) NULL COMMENT '组件标题'; |
|||
ALTER TABLE RE_MODEL_PARAMETER_ADDITION ADD VALUE_SCALE_ SMALLINT NULL COMMENT '精度(小数位数)'; |
|||
ALTER TABLE RE_MODEL_PARAMETER_ADDITION ADD MIN_VALUE_ varchar(255) NULL COMMENT '最小值(包含)'; |
|||
ALTER TABLE RE_MODEL_PARAMETER_ADDITION ADD MAX_VALUE_ varchar(255) NULL COMMENT '最大值(包含)'; |
|||
|
|||
2. 给 RE_MODEL_PARAMETER 表增加字段 |
|||
ALTER TABLE RE_MODEL_PARAMETER ADD DISABLE_ON_AUTO_SELECTED_ SMALLINT NULL COMMENT '当系统自动选择了输入选项中某一项时, 是否禁止用户选择其他项'; |
@ -0,0 +1,69 @@ |
|||
package io.sc.platform.flowable.extension.listener.start; |
|||
|
|||
import io.sc.platform.flowable.enums.ProcessStatus; |
|||
import io.sc.platform.flowable.jpa.entity.ProcessEntity; |
|||
import io.sc.platform.flowable.service.ProcessEntityService; |
|||
import io.sc.platform.flowable.support.BusinessKeyAndDescriptionWrapper; |
|||
import io.sc.platform.flowable.support.BusinessKeyAndDescriptionWrapperMapper; |
|||
import io.sc.platform.util.StringUtil; |
|||
import org.flowable.engine.delegate.DelegateExecution; |
|||
import org.flowable.engine.delegate.ExecutionListener; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.jdbc.core.JdbcTemplate; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.util.StringUtils; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
@Service("processStartListener") |
|||
public class ProcessStartListener implements ExecutionListener { |
|||
@Autowired private ProcessEntityService processEntityService; |
|||
@Autowired private JdbcTemplate jdbcTemplate; |
|||
|
|||
@Override |
|||
public void notify(DelegateExecution execution) { |
|||
insertProcInsExtByDefinitionId(execution.getProcessDefinitionId(),execution.getProcessInstanceId(),execution.getProcessInstanceBusinessKey()); |
|||
} |
|||
|
|||
private void insertProcInsExtByDefinitionId(String processDefinitionId, String processInstanceId, String businessKey){ |
|||
if(!StringUtils.hasText(processDefinitionId) || !StringUtils.hasText(processInstanceId) || !StringUtils.hasText(businessKey)){ |
|||
return; |
|||
} |
|||
|
|||
ProcessEntity entity =processEntityService.getRepository().findByDeployedId(processDefinitionId); |
|||
if(entity==null || !StringUtils.hasText(entity.getBusinessDescriptionSql())){ |
|||
return; |
|||
} |
|||
|
|||
Map<String,Object> variables =new HashMap<>(); |
|||
variables.put("businessKey", StringUtil.escapeSqlSpecialChar(businessKey)); |
|||
|
|||
String sql =StringUtil.format(entity.getBusinessDescriptionSql(),variables); |
|||
BusinessKeyAndDescriptionWrapper wrapper =jdbcTemplate.queryForObject(sql,new BusinessKeyAndDescriptionWrapperMapper()); |
|||
if(wrapper==null){ |
|||
return; |
|||
} |
|||
jdbcTemplate.update("insert into SYS_PROCESS_INST_EXT(PROC_INST_ID_,CUST_NO_,CUST_NAME_) values(?,?,?)",processInstanceId,wrapper.getCustNo(),wrapper.getCustName()); |
|||
} |
|||
|
|||
private void insertProcInsExtByDefinitionKey(String processDefinitionKey,String processInstanceId,String businessKey){ |
|||
if(!StringUtils.hasText(processDefinitionKey) || !StringUtils.hasText(processInstanceId) || !StringUtils.hasText(businessKey)){ |
|||
return; |
|||
} |
|||
ProcessEntity entity =processEntityService.getRepository().findByKeyAndStatus(processDefinitionKey, ProcessStatus.RELEASE); |
|||
if(entity==null || !StringUtils.hasText(entity.getBusinessDescriptionSql())){ |
|||
return; |
|||
} |
|||
|
|||
Map<String,Object> variables =new HashMap<>(); |
|||
variables.put("businessKey",StringUtil.escapeSqlSpecialChar(businessKey)); |
|||
|
|||
String sql =StringUtil.format(entity.getBusinessDescriptionSql(),variables); |
|||
BusinessKeyAndDescriptionWrapper wrapper =jdbcTemplate.queryForObject(sql,new BusinessKeyAndDescriptionWrapperMapper()); |
|||
if(wrapper==null){ |
|||
return; |
|||
} |
|||
jdbcTemplate.update("insert into SYS_PROCESS_INST_EXT(PROC_INST_ID_,CUST_NO_,CUST_NAME_) values(?,?,?)",processInstanceId,wrapper.getCustNo(),wrapper.getCustName()); |
|||
} |
|||
} |
@ -1,116 +1,116 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test"> |
|||
<process id="IRS" name="评级审批流程" isExecutable="true"> |
|||
<dataObject id="assignment-strategy" name="任务分配策略" itemSubjectRef="xsd:string"> |
|||
<?xml version='1.0' encoding='UTF-8'?> |
|||
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef" exporter="Flowable Open Source Modeler" exporterVersion="6.8.0"> |
|||
<process id="SAMPLE" name="示例流程" isExecutable="true"> |
|||
<dataObject id="assignment-strategy" name="分配策略" itemSubjectRef="xsd:string"> |
|||
<extensionElements> |
|||
<flowable:value>{"A2":"platformAssigneeQueryService"}</flowable:value> |
|||
</extensionElements> |
|||
</dataObject> |
|||
<startEvent id="startevent1" name="Start"></startEvent> |
|||
<userTask id="A1" name="提交申请" flowable:assignee="${assignee}" flowable:candidateGroups="admin" flowable:skipExpression="${execution.getVariable('skipFirst')==true}"> |
|||
<startEvent id="start" name="开始" flowable:formFieldValidation="true"> |
|||
<extensionElements> |
|||
<flowable:executionListener event="end" delegateExpression="${processStartListener}"/> |
|||
</extensionElements> |
|||
</startEvent> |
|||
<userTask id="A1" name="提交申请" flowable:assignee="${assignee}" flowable:candidateGroups="admin" flowable:formFieldValidation="true" flowable:skipExpression="${execution.getVariable('skipFirst')==true}"> |
|||
<extensionElements> |
|||
<modeler:group-info-name-admin xmlns:modeler="http://flowable.org/modeler"><![CDATA[系统管理员]]></modeler:group-info-name-admin> |
|||
<modeler:activiti-idm-candidate-group xmlns:modeler="http://flowable.org/modeler"><![CDATA[true]]></modeler:activiti-idm-candidate-group> |
|||
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete> |
|||
</extensionElements> |
|||
</userTask> |
|||
<endEvent id="endevent1" name="End"></endEvent> |
|||
<userTask id="A2" name="复核" flowable:assignee="${assignee}" flowable:candidateGroups="admin"> |
|||
<userTask id="A2" name="复核" flowable:assignee="${assignee}" flowable:candidateGroups="admin" flowable:formFieldValidation="true"> |
|||
<extensionElements> |
|||
<flowable:taskListener event="assignment" delegateExpression="${flowableSendMailListener}"> |
|||
<flowable:field name="title"> |
|||
<flowable:string><![CDATA[您有一个 [示例] 流程的 [复核] 任务等待处理]]></flowable:string> |
|||
</flowable:field> |
|||
<flowable:field name="content"> |
|||
<flowable:string><![CDATA[ |
|||
${assignee},您好! |
|||
|
|||
您有一个 [示例] 流程的 [复核] 任务等待处理,详情参见: http://localhost:8080 |
|||
]]></flowable:string> |
|||
</flowable:field> |
|||
</flowable:taskListener> |
|||
<flowable:taskListener event="assignment" delegateExpression="${flowableSendMailListener}"> |
|||
<flowable:field name="title"> |
|||
<flowable:string><![CDATA[您有一个 [示例] 流程的 [复核] 任务等待处理]]></flowable:string> |
|||
</flowable:field> |
|||
<flowable:field name="content"> |
|||
<flowable:string><![CDATA[${assignee},您好! 您有一个 [示例] 流程的 [复核] 任务等待处理,详情参见: http://localhost:8080]]></flowable:string> |
|||
</flowable:field> |
|||
</flowable:taskListener> |
|||
<modeler:group-info-name-admin xmlns:modeler="http://flowable.org/modeler"><![CDATA[系统管理员]]></modeler:group-info-name-admin> |
|||
<modeler:activiti-idm-candidate-group xmlns:modeler="http://flowable.org/modeler"><![CDATA[true]]></modeler:activiti-idm-candidate-group> |
|||
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete> |
|||
</extensionElements> |
|||
</userTask> |
|||
<userTask id="A3" name="认定" default="flow4" flowable:assignee="${assignee}" flowable:candidateGroups="admin"> |
|||
<endEvent id="end" name="结束"/> |
|||
<sequenceFlow id="sid-452257DA-C9ED-41BB-A95A-899D5F7FD363" sourceRef="start" targetRef="A1"/> |
|||
<sequenceFlow id="sid-EC4C37D8-A419-4DD1-9569-DD93AE964688" sourceRef="A1" targetRef="A2"/> |
|||
<userTask id="A3" name="认定" default="sid-95DCA487-E110-49BB-86F9-C623692DD8BA" flowable:assignee="${assignee}" flowable:candidateGroups="admin" flowable:formFieldValidation="true"> |
|||
<extensionElements> |
|||
<modeler:group-info-name-admin xmlns:modeler="http://flowable.org/modeler"><![CDATA[系统管理员]]></modeler:group-info-name-admin> |
|||
<modeler:activiti-idm-candidate-group xmlns:modeler="http://flowable.org/modeler"><![CDATA[true]]></modeler:activiti-idm-candidate-group> |
|||
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete> |
|||
</extensionElements> |
|||
</userTask> |
|||
<userTask id="A4" name="最终认定" flowable:assignee="${assignee}" flowable:candidateGroups="admin"> |
|||
<sequenceFlow id="sid-60D2D382-C039-4E2F-BC47-348DB6E9A02A" sourceRef="A2" targetRef="A3"/> |
|||
<userTask id="A4" name="最终认定" flowable:assignee="${assignee}" flowable:candidateGroups="admin" flowable:formFieldValidation="true"> |
|||
<extensionElements> |
|||
<modeler:group-info-name-admin xmlns:modeler="http://flowable.org/modeler"><![CDATA[系统管理员]]></modeler:group-info-name-admin> |
|||
<modeler:activiti-idm-candidate-group xmlns:modeler="http://flowable.org/modeler"><![CDATA[true]]></modeler:activiti-idm-candidate-group> |
|||
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete> |
|||
</extensionElements> |
|||
</userTask> |
|||
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="A1"></sequenceFlow> |
|||
<sequenceFlow id="flow2" sourceRef="A1" targetRef="A2"></sequenceFlow> |
|||
<sequenceFlow id="flow3" sourceRef="A2" targetRef="A3"></sequenceFlow> |
|||
<sequenceFlow id="flow5" sourceRef="A4" targetRef="endevent1"></sequenceFlow> |
|||
<sequenceFlow id="flow4" sourceRef="A3" targetRef="A4"></sequenceFlow> |
|||
<sequenceFlow id="sid-71C0BD38-526F-4553-817A-74FEEA681839" name="回退给申请者" sourceRef="A3" targetRef="A1"> |
|||
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==-2}]]></conditionExpression> |
|||
</sequenceFlow> |
|||
<sequenceFlow id="sid-68F8FEAE-F90F-4FE8-A63C-C83940F926B7" name="回退给复核岗" sourceRef="A3" targetRef="A2"> |
|||
<sequenceFlow id="sid-87E440E2-0998-4C95-B4A4-444397ADB79C" sourceRef="A4" targetRef="end"/> |
|||
<sequenceFlow id="sid-95DCA487-E110-49BB-86F9-C623692DD8BA" sourceRef="A3" targetRef="A4"/> |
|||
<sequenceFlow id="sid-74A758E1-9AB1-4E1C-9D03-EF323869EB4E" name="退回给复核岗" sourceRef="A3" targetRef="A2"> |
|||
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==-1}]]></conditionExpression> |
|||
</sequenceFlow> |
|||
<sequenceFlow id="sid-8C796912-0699-4ADA-9F3F-91154970C7E2" name="退回给申请人" sourceRef="A3" targetRef="A1"> |
|||
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${goback==-2}]]></conditionExpression> |
|||
</sequenceFlow> |
|||
</process> |
|||
<bpmndi:BPMNDiagram id="BPMNDiagram_IRS"> |
|||
<bpmndi:BPMNPlane bpmnElement="IRS" id="BPMNPlane_IRS"> |
|||
<bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1"> |
|||
<omgdc:Bounds height="30.0" width="30.0" x="32.02187570282153" y="169.09844066269687"></omgdc:Bounds> |
|||
<bpmndi:BPMNDiagram id="BPMNDiagram_SAMPLE"> |
|||
<bpmndi:BPMNPlane bpmnElement="SAMPLE" id="BPMNPlane_SAMPLE"> |
|||
<bpmndi:BPMNShape bpmnElement="start" id="BPMNShape_start"> |
|||
<omgdc:Bounds height="30.0" width="30.0" x="60.0" y="165.0"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNShape bpmnElement="A1" id="BPMNShape_A1"> |
|||
<omgdc:Bounds height="80.0" width="105.0" x="105.0" y="144.09844066269687"></omgdc:Bounds> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1"> |
|||
<omgdc:Bounds height="28.0" width="28.0" x="737.0218757028215" y="170.09844066269687"></omgdc:Bounds> |
|||
<omgdc:Bounds height="40.0" width="96.0" x="120.0" y="160.5"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNShape bpmnElement="A2" id="BPMNShape_A2"> |
|||
<omgdc:Bounds height="80.0" width="105.0" x="240.0" y="144.09844066269687"></omgdc:Bounds> |
|||
<omgdc:Bounds height="40.0" width="81.0" x="255.0" y="160.5"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNShape bpmnElement="end" id="BPMNShape_end"> |
|||
<omgdc:Bounds height="28.0" width="28.0" x="615.0" y="166.5"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNShape bpmnElement="A3" id="BPMNShape_A3"> |
|||
<omgdc:Bounds height="80.0" width="104.99999999999994" x="407.02187570282155" y="144.09844066269687"></omgdc:Bounds> |
|||
<omgdc:Bounds height="42.0" width="82.0" x="375.0" y="159.5"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNShape bpmnElement="A4" id="BPMNShape_A4"> |
|||
<omgdc:Bounds height="80.0" width="105.0" x="584.5218757028215" y="144.09844066269687"></omgdc:Bounds> |
|||
<omgdc:Bounds height="40.0" width="92.0" x="495.0" y="160.5"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNEdge bpmnElement="sid-71C0BD38-526F-4553-817A-74FEEA681839" id="BPMNEdge_sid-71C0BD38-526F-4553-817A-74FEEA681839"> |
|||
<omgdi:waypoint x="459.2539089472079" y="224.0484406626969"></omgdi:waypoint> |
|||
<omgdi:waypoint x="459.0" y="262.0"></omgdi:waypoint> |
|||
<omgdi:waypoint x="157.0" y="262.0"></omgdi:waypoint> |
|||
<omgdi:waypoint x="157.2432657295934" y="224.0484406626969"></omgdi:waypoint> |
|||
<bpmndi:BPMNEdge bpmnElement="sid-74A758E1-9AB1-4E1C-9D03-EF323869EB4E" id="BPMNEdge_sid-74A758E1-9AB1-4E1C-9D03-EF323869EB4E" flowable:sourceDockerX="41.0" flowable:sourceDockerY="21.0" flowable:targetDockerX="40.5" flowable:targetDockerY="20.0"> |
|||
<omgdi:waypoint x="416.0" y="159.5"/> |
|||
<omgdi:waypoint x="416.0" y="77.0"/> |
|||
<omgdi:waypoint x="295.0" y="77.0"/> |
|||
<omgdi:waypoint x="295.4033816425121" y="160.5"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1"> |
|||
<omgdi:waypoint x="61.97187420581508" y="184.09844066269687"></omgdi:waypoint> |
|||
<omgdi:waypoint x="105.0" y="184.09844066269687"></omgdi:waypoint> |
|||
<bpmndi:BPMNEdge bpmnElement="sid-95DCA487-E110-49BB-86F9-C623692DD8BA" id="BPMNEdge_sid-95DCA487-E110-49BB-86F9-C623692DD8BA" flowable:sourceDockerX="41.0" flowable:sourceDockerY="21.0" flowable:targetDockerX="46.0" flowable:targetDockerY="20.0"> |
|||
<omgdi:waypoint x="456.94999999995696" y="180.5"/> |
|||
<omgdi:waypoint x="494.9999999999859" y="180.5"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2"> |
|||
<omgdi:waypoint x="209.94999999999249" y="184.09844066269687"></omgdi:waypoint> |
|||
<omgdi:waypoint x="240.0" y="184.09844066269687"></omgdi:waypoint> |
|||
<bpmndi:BPMNEdge bpmnElement="sid-60D2D382-C039-4E2F-BC47-348DB6E9A02A" id="BPMNEdge_sid-60D2D382-C039-4E2F-BC47-348DB6E9A02A" flowable:sourceDockerX="40.5" flowable:sourceDockerY="20.0" flowable:targetDockerX="41.0" flowable:targetDockerY="21.0"> |
|||
<omgdi:waypoint x="335.949999999913" y="180.5"/> |
|||
<omgdi:waypoint x="375.0" y="180.5"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3"> |
|||
<omgdi:waypoint x="344.95000000000005" y="184.09844066269687"></omgdi:waypoint> |
|||
<omgdi:waypoint x="407.02187570282155" y="184.09844066269687"></omgdi:waypoint> |
|||
<bpmndi:BPMNEdge bpmnElement="sid-8C796912-0699-4ADA-9F3F-91154970C7E2" id="BPMNEdge_sid-8C796912-0699-4ADA-9F3F-91154970C7E2" flowable:sourceDockerX="41.0" flowable:sourceDockerY="21.0" flowable:targetDockerX="48.0" flowable:targetDockerY="20.0"> |
|||
<omgdi:waypoint x="416.0" y="201.45000000000002"/> |
|||
<omgdi:waypoint x="416.0" y="284.0"/> |
|||
<omgdi:waypoint x="168.0" y="284.0"/> |
|||
<omgdi:waypoint x="168.0" y="200.45000000000002"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4"> |
|||
<omgdi:waypoint x="511.97187570282154" y="184.09844066269687"></omgdi:waypoint> |
|||
<omgdi:waypoint x="584.5218757028215" y="184.09844066269687"></omgdi:waypoint> |
|||
<bpmndi:BPMNEdge bpmnElement="sid-87E440E2-0998-4C95-B4A4-444397ADB79C" id="BPMNEdge_sid-87E440E2-0998-4C95-B4A4-444397ADB79C" flowable:sourceDockerX="46.0" flowable:sourceDockerY="20.0" flowable:targetDockerX="14.0" flowable:targetDockerY="14.0"> |
|||
<omgdi:waypoint x="586.9499999999739" y="180.5"/> |
|||
<omgdi:waypoint x="615.0" y="180.5"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5"> |
|||
<omgdi:waypoint x="689.4718757028214" y="184.09844066269687"></omgdi:waypoint> |
|||
<omgdi:waypoint x="737.0218757028215" y="184.09844066269687"></omgdi:waypoint> |
|||
<bpmndi:BPMNEdge bpmnElement="sid-EC4C37D8-A419-4DD1-9569-DD93AE964688" id="BPMNEdge_sid-EC4C37D8-A419-4DD1-9569-DD93AE964688" flowable:sourceDockerX="48.0" flowable:sourceDockerY="20.0" flowable:targetDockerX="40.5" flowable:targetDockerY="20.0"> |
|||
<omgdi:waypoint x="215.94999999998186" y="180.5"/> |
|||
<omgdi:waypoint x="254.99999999998545" y="180.5"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNEdge bpmnElement="sid-68F8FEAE-F90F-4FE8-A63C-C83940F926B7" id="BPMNEdge_sid-68F8FEAE-F90F-4FE8-A63C-C83940F926B7"> |
|||
<omgdi:waypoint x="459.28220403988433" y="144.09844066269687"></omgdi:waypoint> |
|||
<omgdi:waypoint x="459.0" y="97.0"></omgdi:waypoint> |
|||
<omgdi:waypoint x="292.0" y="97.0"></omgdi:waypoint> |
|||
<omgdi:waypoint x="292.2703747639128" y="144.09844066269687"></omgdi:waypoint> |
|||
<bpmndi:BPMNEdge bpmnElement="sid-452257DA-C9ED-41BB-A95A-899D5F7FD363" id="BPMNEdge_sid-452257DA-C9ED-41BB-A95A-899D5F7FD363" flowable:sourceDockerX="15.0" flowable:sourceDockerY="15.0" flowable:targetDockerX="48.0" flowable:targetDockerY="20.0"> |
|||
<omgdi:waypoint x="89.94974433675017" y="180.08037530758003"/> |
|||
<omgdi:waypoint x="119.99999999999932" y="180.24193548387098"/> |
|||
</bpmndi:BPMNEdge> |
|||
</bpmndi:BPMNPlane> |
|||
</bpmndi:BPMNDiagram> |
|||
|
@ -0,0 +1,87 @@ |
|||
<template> |
|||
<w-dialog |
|||
ref="dialogRef" |
|||
:title="$t('system.shared.selectOrg.dialog.title')" |
|||
width="800px" |
|||
height="600px" |
|||
:can-maximize="false" |
|||
:buttons="[ |
|||
{ |
|||
label: $t('confirm'), |
|||
click: () => { |
|||
const ids = Tools.extractProperties(treeGridRef.getSelectedRows(), 'id'); |
|||
emit('afterSelected', ids, dialogRef); |
|||
}, |
|||
}, |
|||
]" |
|||
> |
|||
<w-grid |
|||
ref="treeGridRef" |
|||
:title="$t('system.shared.selectOrg.dialog.grid.title')" |
|||
hide-bottom |
|||
:config-button="false" |
|||
:tree="true" |
|||
selection="multiple" |
|||
:checkbox-selection="true" |
|||
tree-tick-strategy="strict" |
|||
ticked-field="selected" |
|||
:tree-icon=" |
|||
(row) => { |
|||
return { name: 'folder', color: 'amber' }; |
|||
} |
|||
" |
|||
:fetch-data-url="Environment.apiContextPath('/api/system/org/listAllOrgsWithSelectedStatusByUser')" |
|||
:auto-fetch-data="true" |
|||
:pageable="false" |
|||
:toolbar-configure="{ noIcon: false }" |
|||
:toolbar-actions="['refresh', 'separator', 'expand', 'separator', 'view']" |
|||
:columns="[ |
|||
{ width: '100%', name: 'name', label: $t('name') }, |
|||
{ width: 100, name: 'code', label: $t('code') }, |
|||
{ width: 80, name: 'enable', label: $t('status'), format: Formater.enableTag(), sortable: false }, |
|||
]" |
|||
:viewer="{ |
|||
panel: { |
|||
columnNum: 1, |
|||
fields: [ |
|||
{ name: 'id', label: $t('id') }, |
|||
{ name: 'code', label: $t('code') }, |
|||
{ name: 'name', label: $t('name') }, |
|||
{ name: 'description', label: $t('description') }, |
|||
{ name: 'enable', label: $t('enable') }, |
|||
{ name: 'dataComeFrom', label: $t('dataComeFrom') }, |
|||
{ name: 'creator', label: $t('creator') }, |
|||
{ name: 'createDate', label: $t('createDate') }, |
|||
{ name: 'lastModifier', label: $t('lastModifier') }, |
|||
{ name: 'lastModifyDate', label: $t('lastModifyDate') }, |
|||
{ name: 'corporationCode', label: $t('corporationCode') }, |
|||
], |
|||
}, |
|||
}" |
|||
></w-grid> |
|||
</w-dialog> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
import { ref } from 'vue'; |
|||
import { Environment, Formater, Tools } from 'platform-core'; |
|||
|
|||
const emit = defineEmits<{ |
|||
(e: 'afterSelected', ids: string[], dialogComponent: any): void; |
|||
}>(); |
|||
|
|||
const dialogRef = ref(); |
|||
const treeGridRef = ref(); |
|||
|
|||
const open = (foreignKey: string) => { |
|||
dialogRef.value.show(); |
|||
}; |
|||
|
|||
const close = () => { |
|||
dialogRef.value.hide(); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
open, |
|||
close, |
|||
}); |
|||
</script> |
Loading…
Reference in new issue