zhangjiaqing
8 天以前 1cef3adee31c6934c0da4b4f0b8a6f5ac03b364f
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
(function(vc) {
 
    vc.extends({
        data: {
            workflowSettingInfo: {
                flowId: '',
                flowName: '',
                flowType: '',
                describle: '',
                startNodeFinish: 'Y',
                steps: []
            }
        },
        _initMethod: function() {
            $that._initWorkflowSettingInfo();
        },
        _initEvent: function() {
 
        },
        methods: {
            saveWorkflowSettingInfo: function() {
 
                $that.workflowSettingInfo.communityId = vc.getCurrentCommunity().communityId;
 
                vc.http.apiPost(
                    'workflow.updateWorkflow',
                    JSON.stringify($that.workflowSettingInfo), {
                        emulateJSON: true
                    },
                    function(json, res) {
                        let data = JSON.parse(json);
                        if (data.code == 0) {
                            vc.toast(data.msg);
                            $that._goBack();
                            return;
                        }
                        vc.toast(data.msg);
                    },
                    function(errInfo, error) {
                        console.log('请求失败处理');
                        vc.toast(errInfo);
                    });
            },
            _initWorkflowSettingInfo: function() {
                let flowId = vc.getParam('flowId');
 
                if (!vc.notNull(flowId)) {
                    vc.toast('操作错误');
                    vc.getBack();
                    return;
                }
                $that.workflowSettingInfo.flowId = flowId;
                $that.workflowSettingInfo.flowName = vc.getParam('flowName');
                $that.workflowSettingInfo.flowType = vc.getParam('flowType');
                $that.workflowSettingInfo.startNodeFinish = vc.getParam('startNodeFinish');
 
                //查询步骤
                var param = {
                    params: {
                        communityId: vc.getCurrentCommunity().communityId,
                        flowId: flowId
                    }
                };
 
                //发送get请求
                vc.http.apiGet('workflow.listWorkflowSteps',
                    param,
                    function(json, res) {
                        var _workflowInfo = JSON.parse(json);
                        if (_workflowInfo.code != '0') {
                            vc.toast(_workflowInfo.msg);
                            return;
                        }
                        $that._freshResStep(_workflowInfo.data);
 
                    },
                    function(errInfo, error) {
                        console.log('请求失败处理');
                    }
                );
            },
            _freshResStep: function(_data) {
                $that.workflowSettingInfo.describle = _data.describle;
                let _steps = [];
                if (!_data.hasOwnProperty("workflowSteps")) {
                    return;
                }
 
                for (let stepIndex = 0; stepIndex < _data.workflowSteps.length; stepIndex++) {
                    let _workflowStep = _data.workflowSteps[stepIndex];
                    let _step = {
                        seq: stepIndex,
                        staffId: _workflowStep.workflowStepStaffs[0].staffId,
                        staffName: _workflowStep.workflowStepStaffs[0].staffName,
                        type: _workflowStep.type,
                        staffRole: _workflowStep.workflowStepStaffs[0].staffRole,
                        subStaff: []
                    };
                    if (_workflowStep.type == 2) {
                        _steps.push(_step);
                        continue;
                    }
                    let _subStaffs = [];
 
                    if (!_workflowStep.hasOwnProperty("workflowStepStaffs") || _workflowStep.workflowStepStaffs.length < 2) {
                        _steps.push(_step);
                        continue;
                    }
 
                    for (let _subIndex = 1; _subIndex < _workflowStep.workflowStepStaffs.length; _subIndex++) {
                        let _workflowStepStaff = _workflowStep.workflowStepStaffs[_subIndex];
                        let _subStaff = {
                            id: vc.uuid(),
                            staffId: _workflowStepStaff.staffId,
                            staffName: _workflowStepStaff.staffName,
                            staffRole: _workflowStepStaff.staffRole
                        }
 
                        _subStaffs.push(_subStaff);
                    }
 
                    _step.subStaff = _subStaffs;
                    _steps.push(_step);
 
                }
                $that.workflowSettingInfo.steps = _steps;
            },
            addWorkflowStep: function() {
                let _step = {
                    seq: $that.workflowSettingInfo.steps.length,
                    staffId: '',
                    staffName: '',
                    type: '2',
                    subStaff: []
                }
                $that.workflowSettingInfo.steps.push(_step);
            },
            chooseStaff: function(item) {
                if ($that.workflowSettingInfo.flowType == '80008') {
                    item.from = 'purchase';
                } else if ($that.workflowSettingInfo.flowType == '30003') {
                    item.from = 'purchase';
                } else if ($that.workflowSettingInfo.flowType == '40004') {
                    item.from = 'purchase';
                } else if ($that.workflowSettingInfo.flowType == '70007') {
                    item.from = 'purchase';
                } else if ($that.workflowSettingInfo.flowType == '80008') {
                    item.from = 'purchase';
                } else if ($that.workflowSettingInfo.flowType == '50005') {
                    item.from = 'contract';
                } else if ($that.workflowSettingInfo.flowType == '60006') {
                    item.from = 'contract';
                }
                vc.emit('selectStaff', 'openStaff', item);
            },
            _goBack: function() {
                vc.getBack();
            },
            deleteStep: function(_step) {
                for (var i = 0; i < $that.workflowSettingInfo.steps.length; i++) {
                    if ($that.workflowSettingInfo.steps[i].seq == _step.seq) {
                        $that.workflowSettingInfo.steps.splice(i, 1);
                    }
                }
            },
            addStaff: function(_step) {
                _step.subStaff.push({
                    id: vc.uuid(),
                    staffId: '',
                    staffName: '',
                    staffRole: '1001'
                });
            },
            deleteStaff: function(_step, _subStaff) {
                for (var i = 0; i < _step.subStaff.length; i++) {
                    if (_step.subStaff[i].id == _subStaff.id) {
                        _step.subStaff.splice(i, 1);
                    }
                }
            },
            chooseType: function(_item) {
                if (_item.type == '1') {
                    _item.subStaff = [];
                }
            },
 
            chooseStaffRole: function() {
 
            }
        }
    });
 
})(window.vc);