@lambo-design/workflow-approve 1.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js ADDED
@@ -0,0 +1,9 @@
1
+ import WorkflowHorizontalApprove from "./src/horizontal";
2
+ import WorkflowPortraitApprove from "./src/portrait";
3
+ import WorkflowDiagram from "./src/workflow-diagram";
4
+
5
+ export {
6
+ WorkflowHorizontalApprove,
7
+ WorkflowPortraitApprove,
8
+ WorkflowDiagram
9
+ };
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@lambo-design/workflow-approve",
3
+ "version": "1.0.0-beta.10",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "author": "lambo",
7
+ "license": "ISC",
8
+ "publishConfig": {
9
+ "access": "public",
10
+ "registry": "https://registry.npmjs.org/"
11
+ },
12
+ "devDependencies": {
13
+ "axios": "^0.24.0",
14
+ "axios-cache-plugin": "^0.1.0",
15
+ "@lambo-design/core": "^4.7.1-beta.139",
16
+ "@lambo-design/shared": "^1.0.0-beta.200"
17
+ },
18
+ "dependencies": {
19
+ "bpmn-js": "^7.3.1",
20
+ "bpmn-js-properties-panel": "^0.37.2",
21
+ "docx-preview": "0.1.20"
22
+ },
23
+ "scripts": {
24
+ "release": "pnpm release-beta && git push --follow-tags && pnpm re-publish",
25
+ "release-major": "standard-version --release-as major",
26
+ "release-minor": "standard-version --release-as minor",
27
+ "release-patch": "standard-version --release-as patch",
28
+ "release-beta": "standard-version --prerelease beta",
29
+ "re-publish": "pnpm publish --access public --no-git-checks"
30
+ }
31
+ }
@@ -0,0 +1,353 @@
1
+ <template>
2
+ <div>
3
+ <Modal v-model="modalBoxShow" width="1217" title="选择办理人" @on-ok="onOk" @on-cancel="onCancel" loading>
4
+ <div class="org-info">
5
+ <div class="org-tree">
6
+ <Tree :data="treeData" :load-data="loadData" @on-select-change="selectChange" > </Tree>
7
+ </div>
8
+ <div class="org-detil">
9
+ <LamboPagingTable ref="selection" :dataUrl="dataUrl" :columns="tableColumn" :searchParams="tableSearchParams"
10
+ @on-selection-change="onSelectionChange">
11
+ <div slot="search">
12
+ <Form :label-width="80">
13
+ <FormItem label="账号">
14
+ <Input v-model="form.userId" placeholder="按账号搜索" />
15
+ </FormItem>
16
+ <FormItem label="姓名">
17
+ <Input v-model="form.userName" placeholder="按姓名搜索" />
18
+ </FormItem>
19
+ <FormItem label="是否管理员" prop="isAdmin" :labelWidth="100">
20
+ <RadioGroup v-model="form.isAdmin">
21
+ <Radio label="">全部</Radio>
22
+ <Radio label="1">是</Radio>
23
+ <Radio label="0">否</Radio>
24
+ </RadioGroup>
25
+ </FormItem>
26
+ <FormItem>
27
+ <Button type="primary" icon="ios-search" @click="doSearch">查询</Button>
28
+ </FormItem>
29
+ </Form>
30
+ </div>
31
+ </LamboPagingTable>
32
+
33
+ </div>
34
+ </div>
35
+
36
+
37
+ </Modal>
38
+ </div>
39
+ </template>
40
+
41
+ <script>
42
+ import ajax from "@lambo-design/shared/utils/ajax";
43
+ import LamboPagingTable from '@lambo-design/paging-table'
44
+
45
+ export default {
46
+ name: "UserHelpBox",
47
+ components: {
48
+ LamboPagingTable
49
+ },
50
+ props: {
51
+ data: {
52
+ type: Object,
53
+ default: () => {
54
+ return {}
55
+ }
56
+ },
57
+ //按钮执行完毕回调方法
58
+ executionCompleted: {
59
+ type: Function,
60
+ required: false,
61
+ },
62
+ smartFlowServerContext: {
63
+ type: String,
64
+ default: '/api/smart-flow-server',
65
+ },
66
+ upmsServerContext: {
67
+ type: String,
68
+ default: '/api/upms-server',
69
+ },
70
+ },
71
+ data() {
72
+ return {
73
+ loading: false,
74
+ modalBoxShow: false,
75
+ dataUrl:'',
76
+ helpBoxColumns: [
77
+ {
78
+ title: "用户ID",
79
+ key: "userId",
80
+ sortable: "custom",
81
+ },
82
+ {
83
+ title: "用户姓名",
84
+ key: "userName",
85
+ },
86
+ {
87
+ title: "部门名称",
88
+ key: "organName",
89
+ },
90
+ ],
91
+ helpBoxTitle: "用户选择框",
92
+ targetDomId:"",
93
+ treeData: [],
94
+ idSelectedArr: [],
95
+ currentNode: {},
96
+ form: {
97
+ userId: '',
98
+ userName: '',
99
+ organId: '',
100
+ organTitle: '',
101
+ directChild: false,
102
+ isAdmin: ''
103
+ },
104
+ tableSearchParams: {},
105
+ };
106
+ },
107
+ created () {
108
+ this.init()
109
+ },
110
+ computed: {
111
+
112
+ tableColumn () {
113
+ let columns = []
114
+ let self = this
115
+ columns.push({
116
+ title: '#',
117
+ key: 'selectId',
118
+ type: 'selection',
119
+ align: 'center',
120
+ width: 55
121
+ })
122
+ columns.push({
123
+ title: '账号',
124
+ key: 'userId',
125
+ sortField: 'user_id',
126
+ sortable: 'custom'
127
+ })
128
+ columns.push({
129
+ title: '姓名',
130
+ key: 'userName',
131
+ sortField: 'user_name',
132
+ sortable: 'custom'
133
+ })
134
+ columns.push({
135
+ title: '部门名称',
136
+ key: 'organName',
137
+ sortField: 'organ_name',
138
+ sortable: 'custom'
139
+ })
140
+ columns.push({
141
+ title: '状态',
142
+ key: 'status',
143
+ sortable: 'custom',
144
+ align: 'center',
145
+ width: 100,
146
+ render: function (h, param) {
147
+ let state = param.row.status
148
+ if (state === '00') {
149
+ state = '正常'
150
+ } else {
151
+ state = '锁定'
152
+ }
153
+ return h('span', state)
154
+ }
155
+ })
156
+
157
+ return columns
158
+ }
159
+ },
160
+ inject: ['toBeDoneListDoSearch'],
161
+ methods: {
162
+ init () {
163
+ let self = this
164
+ self.getRootData()
165
+ },
166
+ toggleShowHelpBox() {
167
+ this.modalBoxShow = !this.modalBoxShow;
168
+ },
169
+
170
+ onOk(){
171
+ let self = this
172
+ let idSelectedArr = self.idSelectedArr
173
+ self.loading = true
174
+ if (idSelectedArr.length > 1) {
175
+ self.loading = false
176
+ self.$Message.info('办理人只能选择一条记录!')
177
+ this.$emit('update-selected', ''); // 触发事件并传递 userId
178
+ } else {
179
+ let auditResult = {
180
+ code: self.data.auditResult,
181
+ name: self.data.auditResultName,
182
+ }
183
+ self.data.selectedUserId=self.idSelectedArr[0];
184
+ console.log("self.data:",self.data);
185
+ let url = this.smartFlowServerContext + '/manage/processTodo/audit'
186
+ ajax.post(url, self.data).then(function (resp) {
187
+ let result = resp.data
188
+ if (result.code == '200') {
189
+ self.loading = false
190
+ self.$Message.success(result.message);
191
+ if (this.executionCompleted) {
192
+ this.executionCompleted(true, self.data.instanceId, self.data.taskId, auditResult, self.data.taskId);
193
+ }
194
+ self.toBeDoneListDoSearch();
195
+ } else {
196
+ self.loading = false
197
+ self.$Message.error(result.message)
198
+ if (this.executionCompleted) {
199
+ this.executionCompleted(false, null, null, auditResult, self.data.taskId);
200
+ }
201
+ }
202
+ })
203
+ }
204
+ this.modalBoxShow = false;
205
+ },
206
+
207
+
208
+ doSearch: function () {
209
+ this.tableSearchParams = Object.assign({}, this.form)
210
+ },
211
+ onSelectionChange: function (selection) {
212
+ let self = this
213
+ self.idSelectedArr = []
214
+ if (selection.length > 1) {
215
+ self.$Message.info('只能选择一条记录!')
216
+ this.$refs.selection.selectAll(false);
217
+ }
218
+ for (let item of selection) {
219
+ self.idSelectedArr.push(item.userId)
220
+ }
221
+ },
222
+ loadData (node, callback) {
223
+ this.getData(node, function (data) {
224
+ if (data.length > 0) {
225
+ callback(data)
226
+ }
227
+ })
228
+ },
229
+ getRootData () {
230
+ let self = this
231
+ let childs = []
232
+ ajax.get(this.upmsServerContext + '/manage/ucOrgan/getOrgRootTree').then(function (resp) {
233
+ if (resp.data.code === 1) {
234
+ let data = resp.data.data
235
+ if (data.length > 0) {
236
+ data.forEach(item => {
237
+ let obj = {}
238
+ obj.type = item.organType
239
+ obj.id = item.organId
240
+ obj.orders = item.orders
241
+ obj.title = item.organName
242
+ obj.name = item.organName
243
+ obj.com = item.com
244
+ obj.code = item.organCode
245
+ obj.loading = false
246
+ obj.children = []
247
+ obj.hasChild = true
248
+ childs.push(obj)
249
+ })
250
+
251
+ childs[0].selected = true
252
+ self.selectChange(childs)
253
+ }
254
+ self.treeData = childs
255
+ }
256
+ })
257
+ },
258
+ getData (node, callback) {
259
+ let self = this
260
+ ajax.get(this.upmsServerContext + '/manage/ucOrgan/getOrgSubNodes', {
261
+ params: {
262
+ organCode: node.code
263
+ }
264
+ }).then(function (resp) {
265
+ const childs = []
266
+ if (resp.data.code === 1) {
267
+ let nodeDatas = resp.data.data
268
+ if (nodeDatas.length > 0) {
269
+ nodeDatas.forEach(item => {
270
+ let obj = {}
271
+ obj.type = item.organType
272
+ obj.id = item.organId
273
+ obj.orders = item.orders
274
+ obj.title = item.organName
275
+ obj.name = item.organName
276
+ obj.com = item.com
277
+ obj.parent = node
278
+ obj.code = item.organCode
279
+ obj.loading = false
280
+ obj.children = []
281
+ obj.hasChild = true
282
+ childs.push(obj)
283
+ })
284
+ } else {
285
+ self.$set(node, 'hasChild', false)
286
+ self.$delete(node, 'loading')
287
+ }
288
+ if (callback) {
289
+ callback(childs)
290
+ }
291
+ } else {
292
+ self.$set(node, 'hasChild', false)
293
+ self.$delete(node, 'loading')
294
+ if (callback) {
295
+ callback()
296
+ }
297
+ }
298
+ })
299
+ },
300
+ selectChange (node) {
301
+ let self = this
302
+ if (node.length > 0) {
303
+ if (self.currentNode !== node[0]) {
304
+ self.currentNode = node[0]
305
+
306
+ self.form.organId = self.currentNode.id
307
+ self.form.organTitle = self.currentNode.title
308
+
309
+ self.dataUrl =this.upmsServerContext+ '/manage/user/list'
310
+ self.doSearch()
311
+
312
+ if (node[0].children.length <= 0) {
313
+ self.getData(node[0], function (data) {
314
+ self.$set(node[0], 'children', data)
315
+ })
316
+ }
317
+ self.$set(node[0], 'expand', true)
318
+ }
319
+ } else {
320
+ self.$set(self.currentNode, 'expand', !self.currentNode.expand)
321
+ self.currentNode.selected = true
322
+ }
323
+ },
324
+
325
+ onCancel () {
326
+ this.$emit('update-selected', ''); // 触发事件并传递 userId
327
+ this.modalBoxShow = false;
328
+
329
+ },
330
+
331
+
332
+ },
333
+ };
334
+ </script>
335
+
336
+ <style lang="less" scope>
337
+ .org-info{
338
+ display: flex;
339
+ .org-tree {
340
+ width: 265px;
341
+ min-height: 450px;
342
+ border-right: 1px solid #dcdee2;
343
+ }
344
+
345
+ .org-detil {
346
+ flex:1;
347
+ min-height: 400px;
348
+ min-width: 800px;
349
+ padding: 0 10px 10px;
350
+ margin-left: 10px;
351
+ }
352
+ }
353
+ </style>