田源
2024-04-07 2ac55ce0edf4870a29691b56bfad59f4830a11a2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/**
 * 流程设计器
 * @author weidy
 * @date 2020-09-15
 */
layui.define(['layer','element' ],function(exports){
    var webUtil = $webUtil;
    var Class = function(){
        this.MODELNAME = "platform/process/designer/VciProcessDesigner";
        this.moduleKey = "VciProcessDesigner";
        this.backPath =  configData.compatibility?path:configData.processServicePath;
        this.url = {
            listDepts:'departmentQueryController/refDataGrid',
            listRoles:'roleQueryController/refDataGrid',
            listUser:'userQueryController/refDataGrid',
            listDuty:'dutyQueryController/refDataGrid', 
            listWorkType:'smWorkTypeController/refDataGrid',
            listUserByDept:'userQueryController/refDataGridByPkDepartment',
            listUserByRole:'userQueryController/refDataGridByPkRole',
            listUserByDuty:'userQueryController/refDataGridByPkDuty',
            listProcessUserGroup:''
        };
        this.getContent=function(){
            var that = this;
            var html = "";
            html = [
                '<div class="layui-layout" style="display:block;overflow-y: auto">',
                    that.getToolbarHtml(),
                    '<div class="layui-layout-border" style="display:block;margin-top:0px;position:relative;height:815px;overflow:hidden;background:#f2f2f2;" id="border_',that.id,'">',
                        '<style type="text/css">.processElement{' ,
                        'background-color:#f2f2f2;color:#000;width:95px;font-size:16px;' ,
                        '}</style>',
                        '<div class="layui-west" style="width:135px;float: left;margin-top: 5px;">',
                            '<fieldset style="margin-left:10px;"><legend style="margin-left:10px;"><a href="javascript:void(0);" style="color:#0000ff;font-size:16px;">流程元素</a></legend></fieldset>',
                            '<div class="layui-collapse">',
                                '<div class="layui-colla-item">',
                                    '<h2 class="layui-colla-title">开始结束</h2>',
                                    '<div class="layui-colla-content layui-show">',
                                        '<button class="layui-btn layui-btn-sm processElement"  layui-filter="toolbar_',that.id,'_START"><i class="layui-icon layui-icon-circle-dot" style="color:green"></i>开始</button></br>',
                                        '<button class="layui-btn layui-btn-sm processElement"  layui-filter="toolbar_',that.id,'_END"><i class="layui-icon layui-icon-circle-dot" style="color:red;"></i>结束</button></br>',
                                    '</div>',
                                '</div>',
                                '<div class="layui-colla-item">',
                                    '<h2 class="layui-colla-title">任务类型</h2>',
                                    '<div class="layui-colla-content" >',
                                        '<button class="layui-btn layui-btn-sm processElement" layui-filter="toolbar_',that.id,'_USERTASK"><i class="layui-icon layui-icon-user" ></i>用户任务</button></br>',
                                        '<button class="layui-btn layui-btn-sm processElement" layui-filter="toolbar_',that.id,'_MANUTASK"><i class="layui-icon layui-icon-praise" ></i>手动任务</button></br>',
                                        '<button class="layui-btn layui-btn-sm processElement" layui-filter="toolbar_',that.id,'_SERVICETASK"><i class="layui-icon layui-icon-set" ></i>服务任务</button></br>',
                                        '<button class="layui-btn layui-btn-sm processElement" layui-filter="toolbar_',that.id,'_SECRIPTTASK"><i class="layui-icon layui-icon-console" ></i>脚本任务</button></br>',
                                        '<button class="layui-btn layui-btn-sm processElement" layui-filter="toolbar_',that.id,'_EMAILTASK"><i class="layui-icon layui-icon-email" ></i>邮件任务</button></br>',
                                        '<button class="layui-btn layui-btn-sm processElement" layui-filter="toolbar_',that.id,'_RECEIVETASK"><i class="layui-icon layui-icon-email" style="color:green;"></i>接受任务</button></br>',
                                        '<button class="layui-btn layui-btn-sm processElement" layui-filter="toolbar_',that.id,'_RULETASK"><i class="layui-icon layui-icon-table" ></i>业务规则</button></br>',
                                        '<button class="layui-btn layui-btn-sm processElement" layui-filter="toolbar_',that.id,'_SUBTASK"><i class="layui-icon layui-icon-engine" ></i>子流程</button></br>',
                                    '</div>',
                                '</div>',
                                '<div class="layui-colla-item">',
                                    '<h2 class="layui-colla-title">网关</h2>',
                                    '<div class="layui-colla-content">',
                                        '<button class="layui-btn layui-btn-sm processElement"  layui-filter="toolbar_',that.id,'_GATEAND"><i class="layui-icon layui-icon-add-circle" ></i>同步</button></br>',
                                        '<button class="layui-btn layui-btn-sm processElement"  layui-filter="toolbar_',that.id,'_GATEOR"><i class="layui-icon layui-icon-share" ></i>分支</button></br>',
                                        '<button class="layui-btn layui-btn-sm processElement"  layui-filter="toolbar_',that.id,'_GATEINCLUDE"><i class="layui-icon layui-icon-component" ></i>包含</button></br>',
                                    '</div>',
                                '</div>',
                                '<div class="layui-colla-item">',
                                    '<h2 class="layui-colla-title">边界事件</h2>',
                                    '<div class="layui-colla-content">',
                                        '<button class="layui-btn layui-btn-sm processElement"  layui-filter="toolbar_',that.id,'_TIMEEVENT"><i class="layui-icon layui-icon-time"></i>时间边界</button></br>',
                                        '<button class="layui-btn layui-btn-sm processElement"  layui-filter="toolbar_',that.id,'_EXCEPTIONEVENT"><i class="layui-icon layui-icon-close-fill"></i>错误边界</button></br>',
                                    '</div>',
                                '</div>',
                            '</div>',
                        '</div>',
                        '<div class="layui-center layuiCenter" id="center_',that.id,'">',
                             '<fieldset style="margin-left:10px;width:123px;"><legend style="margin-left:10px;"><a href="javascript:void(0);" style="color:#0000ff;font-size:16px;">流程绘制</a></legend></fieldset>',
                             '<div class="layui-tab" lay-filter="design_panel_',that.id,'">',
                                 '<ul class="layui-tab-title">',
                                     '<li class="layui-this">设计</li>',
                                     '<li>源码</li>',
                                 '</ul>',
                                 '<div class="layui-tab-content" style="padding:0px;">',
                                     '<div class="layui-tab-item layui-show" id="designer-area" style="POSITION: absolute;width:100%;height:100%;padding: 0;border: none;overflow:auto">' ,
                                        '<div id="paintarea" style="POSITION: absolute;WIDTH: 100%; HEIGHT: 100%;background:url(\'./vciweb/platform/process/designer/images/paint.png\') repeat; " ></div>',
                                     '</div>',
                                     '<div class="layui-tab-item ">',
                                        '<pre class="layui-code" style="width: 100%;height:100%;padding: 0;border: none;"></pre>',
                                    '</div>',
                                 '</div>',
                             '</div>',
                        '</div>',
                        '<div class="layui-east" style="overflow-y:auto;overflow-x:hidden;width:280px;">',
                            '<fieldset style="margin-left:10px;"><legend style="margin-left:10px;"><a href="javascript:void(0);" style="color:#0000ff;font-size:16px;">流程(任务)属性</a></legend></fieldset>',
                            '<div class="layui-collapse" id="process_properties_',that.id,'">',
                            '</div>',
                        '</div>',
                    '</div>',
                '</div>'
            ].join("");
            return html;
        };
        this.getToolbarHtml =function(){
            var that = this;
            var html = [
                '<div layui-filter="toolbar_',that.id,'" class="layui-btn-container layui-buttons" style="padding:5px">',
                    '<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_SAVE"><i class="layui-icon layui-icon-template-1"></i>保存</button>',
                    '<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_REBACK"><i class="layui-icon layui-icon-prev"></i>撤销</button>',
                    '<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_REDO"><i class="layui-icon layui-icon-next"></i>重做</button>',
                    '<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_EXPORT"><i class="layui-icon layui-icon-export"></i>导出</button>',
                '</div>'
            ].join("");
            return html;
        };
        this.init = function(options){
            var that = this;
            var allWidth = $("#border_" + that.id ).parent().parent().width();
            var centerWidth = allWidth - 265;
            $("#center_" + that.id).width(centerWidth);
            $("#designer-area").width(centerWidth);
            $("#paintarea").width(centerWidth);
            layui.element.render();
        };
 
    };
    var cs = new Class();
    exports(cs.MODELNAME,cs);
});