@lambo-design-mobile/workflow-approve 1.0.0-beta.24 → 1.0.0-beta.26
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/CHANGELOG.md +15 -0
- package/package.json +3 -3
- package/src/FlowApproval.vue +11 -8
- package/src/SelectHandle.vue +50 -34
- package/src/WorkflowDiagram.vue +11 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
|
+
## [1.0.0-beta.26](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/compare/@lambo-design-mobile/workflow-approve@1.0.0-beta.25...@lambo-design-mobile/workflow-approve@1.0.0-beta.26) (2026-03-30)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### ✨ Features | 新功能
|
|
6
|
+
|
|
7
|
+
* **审批组件:** 连续减签同一人失败问题修复 ([3815640](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/commit/3815640a78b55b92aa9eb352d8e92f5d963f53b3))
|
|
8
|
+
|
|
9
|
+
## [1.0.0-beta.25](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/compare/@lambo-design-mobile/workflow-approve@1.0.0-beta.24...@lambo-design-mobile/workflow-approve@1.0.0-beta.25) (2026-03-18)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### ✨ Features | 新功能
|
|
13
|
+
|
|
14
|
+
* **审批组件:** 选人框查询问题修复 ([7712bab](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/commit/7712babcead1d9838ef17672370fe2a1a37f828d))
|
|
15
|
+
* **审批组件:** 增加驳回判断优化 ([90c270b](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/commit/90c270b13f13a44d83502c0081d885a8083be75e))
|
|
16
|
+
|
|
2
17
|
## [1.0.0-beta.24](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/compare/@lambo-design-mobile/workflow-approve@1.0.0-beta.23...@lambo-design-mobile/workflow-approve@1.0.0-beta.24) (2026-03-03)
|
|
3
18
|
|
|
4
19
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lambo-design-mobile/workflow-approve",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.26",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"author": "lambo",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"standard-version": "^9.5.0",
|
|
17
17
|
"@lambo-design-mobile/lambo-scan-code": "^1.0.0-beta.1",
|
|
18
|
-
"@lambo-design-mobile/
|
|
19
|
-
"@lambo-design-mobile/
|
|
18
|
+
"@lambo-design-mobile/shared": "^1.0.0-beta.21",
|
|
19
|
+
"@lambo-design-mobile/upload-file": "^1.0.0-beta.16"
|
|
20
20
|
},
|
|
21
21
|
"scripts": {
|
|
22
22
|
"release": "pnpm release-beta && git push --follow-tags && pnpm re-publish",
|
package/src/FlowApproval.vue
CHANGED
|
@@ -692,9 +692,7 @@ export default {
|
|
|
692
692
|
methods: {
|
|
693
693
|
getAuditStatus,
|
|
694
694
|
initData() {
|
|
695
|
-
|
|
696
|
-
this.getHandleButtons();
|
|
697
|
-
}
|
|
695
|
+
this.getHandleButtons();
|
|
698
696
|
if (!this.isDetail) this.getTaskStatus();
|
|
699
697
|
this.getProcessHistory();
|
|
700
698
|
this.getNextNodes();
|
|
@@ -760,8 +758,8 @@ export default {
|
|
|
760
758
|
getNodeData(this.procId, this.taskNode).then(resp => {
|
|
761
759
|
if (resp.data.code === '200') {
|
|
762
760
|
const data = resp.data.data[0]
|
|
763
|
-
this.handleButtons = data.handleButtons ? data.handleButtons : ["processTrace", "auditHistory", "auditOpinion", "attachmentFile", "auditTo30", "auditTo70", "auditTo40", "auditTo90", "auditTo80", "auditTo82", "auditTo50"];
|
|
764
|
-
this.coSignVotingTask =
|
|
761
|
+
this.handleButtons = this.handleButtons ? this.handleButtons : data.handleButtons ? data.handleButtons : ["processTrace", "auditHistory", "auditOpinion", "attachmentFile", "auditTo30", "auditTo70", "auditTo40", "auditTo90", "auditTo80", "auditTo82", "auditTo50"];
|
|
762
|
+
this.coSignVotingTask = this.handleButtons && this.handleButtons.includes('coSignVoting')
|
|
765
763
|
this.nextAssigneeSelectionType = data.nextAssigneeSelectionType;
|
|
766
764
|
this.passName = data.handleName;
|
|
767
765
|
this.rejectName = data.rejectName;
|
|
@@ -1131,7 +1129,7 @@ export default {
|
|
|
1131
1129
|
} else if (updateType === '83') {
|
|
1132
1130
|
getUnapprovedListOfMultiNode(self.taskId).then(res => {
|
|
1133
1131
|
if (res.data.code === '200') {
|
|
1134
|
-
self.unapprovedAssigneeList = res.data.data.map(item => ({...item, userId: item.auditId, organName: item.auditUserOrgan ? item.auditUserOrgan.split(':')[1] : '未知部门'}))
|
|
1132
|
+
self.unapprovedAssigneeList = res.data.data.map(item => ({...item, userName: item.auditName, userId: item.auditId, organName: item.auditUserOrgan ? item.auditUserOrgan.split(':')[1] : '未知部门'}))
|
|
1135
1133
|
self.selectReductionUserPopupShow = true
|
|
1136
1134
|
} else {
|
|
1137
1135
|
Toast.fail(resp.data.message)
|
|
@@ -1265,7 +1263,7 @@ export default {
|
|
|
1265
1263
|
} else {
|
|
1266
1264
|
// 前序节点只有一个会签节点才可选择驳回人员
|
|
1267
1265
|
self.showRejectToSelected = result.data.length === 1 && result.data[0].handleButtons?.includes('rejectToSelected')
|
|
1268
|
-
self.nodeList = result.data
|
|
1266
|
+
self.nodeList = Array.isArray(result.data) ? result.data : []
|
|
1269
1267
|
self.radio = 0
|
|
1270
1268
|
if (self.showRejectToSelected && !self.handleButtons?.includes('rejectProcessControl')) {
|
|
1271
1269
|
self.rejectAttributesBoxShow = true
|
|
@@ -1308,7 +1306,7 @@ export default {
|
|
|
1308
1306
|
getProcessAttributes(self.procId, self.taskNode).then(resp => {
|
|
1309
1307
|
if (resp.data.code === '200') {
|
|
1310
1308
|
if ((self.auditParams.auditResult == '70' && !resp.data.data.jumpFirstNode) || (self.auditParams.auditResult == '40' && (resp.data.data.multiNode || resp.data.data.preNodeGateway))) {
|
|
1311
|
-
if (self.showRejectToSelected) {
|
|
1309
|
+
if (self.showRejectToSelected && self.nodeList.length > 0) {
|
|
1312
1310
|
self.rejectAttributesBoxShow = true
|
|
1313
1311
|
return
|
|
1314
1312
|
}
|
|
@@ -1659,6 +1657,11 @@ export default {
|
|
|
1659
1657
|
self.getProcessAttributes(val)
|
|
1660
1658
|
}
|
|
1661
1659
|
},
|
|
1660
|
+
selectReductionUserPopupShow(newVal) {
|
|
1661
|
+
if (newVal) {
|
|
1662
|
+
this.reductionUsers = [];
|
|
1663
|
+
}
|
|
1664
|
+
}
|
|
1662
1665
|
}
|
|
1663
1666
|
|
|
1664
1667
|
};
|
package/src/SelectHandle.vue
CHANGED
|
@@ -144,11 +144,15 @@ export default {
|
|
|
144
144
|
this.personList.rows = this.userRangeList
|
|
145
145
|
this.personList.total = this.userRangeList.length
|
|
146
146
|
return
|
|
147
|
-
}
|
|
148
|
-
this.useUserTransferRange = false
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
147
|
+
}
|
|
148
|
+
this.useUserTransferRange = false
|
|
149
|
+
this.personList.total = 0;
|
|
150
|
+
this.personList.rows = [];
|
|
151
|
+
this.finished = false;
|
|
152
|
+
this.loading = false;
|
|
153
|
+
if (this.orgList && this.orgList.length > 0){
|
|
154
|
+
this.organizeIdList = this.orgList.map(item => item.orgId)
|
|
155
|
+
this.orgTreeType = this.organTreeType;
|
|
152
156
|
this.searchForm = {
|
|
153
157
|
...this.searchForm,
|
|
154
158
|
orgTreeType: this.organTreeType,
|
|
@@ -180,33 +184,43 @@ export default {
|
|
|
180
184
|
})
|
|
181
185
|
}
|
|
182
186
|
},
|
|
183
|
-
handleLoad() {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
187
|
+
handleLoad() {
|
|
188
|
+
if (this.loading || this.finished) {
|
|
189
|
+
return
|
|
190
|
+
}
|
|
191
|
+
console.log("触发加载")
|
|
192
|
+
this.loading = true;
|
|
193
|
+
if (this.useUserTransferRange){
|
|
194
|
+
this.personList.rows = this.searchForm.userName ? this.userRangeList.map(item => item.userName === this.searchForm.userName) : this.userRangeList
|
|
195
|
+
this.personList.total = this.personList.rows.length;
|
|
196
|
+
this.finished = true;
|
|
197
|
+
this.loading = false;
|
|
198
|
+
return
|
|
199
|
+
}
|
|
192
200
|
const offset = this.personList.rows.length;
|
|
193
201
|
const limit = 10;
|
|
194
202
|
|
|
195
|
-
getUserList(offset, limit, this.searchForm).then(res => {
|
|
196
|
-
const result = res.data;
|
|
197
|
-
if (result.code === "1") {
|
|
198
|
-
//返回的数据添加到 personList 中
|
|
199
|
-
|
|
200
|
-
this.personList.
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
203
|
+
getUserList(offset, limit, this.searchForm).then(res => {
|
|
204
|
+
const result = res.data;
|
|
205
|
+
if (result.code === "1") {
|
|
206
|
+
//返回的数据添加到 personList 中
|
|
207
|
+
const newRows = Array.isArray(result.data.rows) ? result.data.rows : [];
|
|
208
|
+
this.personList.rows = this.personList.rows.concat(newRows);
|
|
209
|
+
const total = Number(result.data.total);
|
|
210
|
+
if (!Number.isNaN(total)) {
|
|
211
|
+
this.personList.total = total;
|
|
212
|
+
}
|
|
213
|
+
const noMoreByPage = newRows.length < limit;
|
|
214
|
+
const noMoreByTotal = this.personList.total > 0 && this.personList.rows.length >= this.personList.total;
|
|
215
|
+
this.finished = noMoreByPage || noMoreByTotal;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
this.loading = false;
|
|
219
|
+
|
|
220
|
+
}).catch(error => {
|
|
221
|
+
console.error('Error fetching data:', error);
|
|
222
|
+
this.loading = false;
|
|
223
|
+
});
|
|
210
224
|
},
|
|
211
225
|
|
|
212
226
|
extractUsers(permScope) {
|
|
@@ -240,11 +254,13 @@ export default {
|
|
|
240
254
|
resetSearch() {
|
|
241
255
|
this.initSearch()
|
|
242
256
|
},
|
|
243
|
-
resetAndLoadPersonList() {
|
|
244
|
-
this.personList.total = 0;
|
|
245
|
-
this.personList.rows = [];
|
|
246
|
-
this.
|
|
247
|
-
|
|
257
|
+
resetAndLoadPersonList() {
|
|
258
|
+
this.personList.total = 0;
|
|
259
|
+
this.personList.rows = [];
|
|
260
|
+
this.finished = false;
|
|
261
|
+
this.loading = false;
|
|
262
|
+
this.handleLoad();
|
|
263
|
+
},
|
|
248
264
|
handleSelect(handle) {
|
|
249
265
|
if (handle === 'select') {
|
|
250
266
|
// 触发自定义事件 'selectHandle',并传递 this.checkResult
|
package/src/WorkflowDiagram.vue
CHANGED
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
<script>
|
|
86
86
|
import Viewer from "bpmn-js/lib/Viewer";
|
|
87
87
|
import { Toast } from "vant";
|
|
88
|
-
import {getHisAudit, getPrintData, printData, renderFutureNode} from "../api";
|
|
88
|
+
import {getHisAudit, getPrintData, printData, renderFutureNode, getNodeData} from "../api";
|
|
89
89
|
import ApprovalNodeCell from "./ApprovalNodeCell.vue";
|
|
90
90
|
import { getAuditStatus } from './js/global';
|
|
91
91
|
import FlowNodeCell from "./FlowNodeCell.vue"; // 根据路径修改
|
|
@@ -116,10 +116,18 @@ export default {
|
|
|
116
116
|
},
|
|
117
117
|
predictButtonEnabled: {
|
|
118
118
|
type: Boolean,
|
|
119
|
-
|
|
119
|
+
required: false,
|
|
120
120
|
},
|
|
121
121
|
},
|
|
122
122
|
mounted() {
|
|
123
|
+
if (this.predictButtonEnabled == null && this.taskNode){
|
|
124
|
+
getNodeData(this.procId, this.taskNode).then(resp => {
|
|
125
|
+
if (resp.data.code === '200') {
|
|
126
|
+
const data = resp.data.data[0]
|
|
127
|
+
this.predictButtonEnabled = data.handleButtons && data.handleButtons.includes("predictiveRoute")
|
|
128
|
+
}
|
|
129
|
+
})
|
|
130
|
+
}
|
|
123
131
|
this.getPrintData()
|
|
124
132
|
// this.getHisAudit()
|
|
125
133
|
this.onTrack()
|
|
@@ -630,7 +638,7 @@ export default {
|
|
|
630
638
|
|
|
631
639
|
if (matchedRecords.length > 0) {
|
|
632
640
|
const getTime = (record) => {
|
|
633
|
-
const timeStr = record.auditDate || record.createTime;
|
|
641
|
+
const timeStr = record.auditDate || record.startDate || record.createTime;
|
|
634
642
|
return new Date(timeStr).getTime();
|
|
635
643
|
};
|
|
636
644
|
|