@lambo-design-mobile/workflow-approve 1.0.0-beta.25 → 1.0.0-beta.27
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 +54 -9
- package/src/WorkflowDiagram.vue +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
|
+
## [1.0.0-beta.27](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/compare/@lambo-design-mobile/workflow-approve@1.0.0-beta.26...@lambo-design-mobile/workflow-approve@1.0.0-beta.27) (2026-06-08)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### ✨ Features | 新功能
|
|
6
|
+
|
|
7
|
+
* **审批组件:** 调整默认审批意见 ([665c68b](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/commit/665c68b120ac122e801ab69bd1fd7aea6b58bb99))
|
|
8
|
+
* **审批组件:** 增加允许驳回至转办人功能 ([064d884](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/commit/064d8840510094c42d499e8f8e322df6b9519081))
|
|
9
|
+
|
|
10
|
+
## [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)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### ✨ Features | 新功能
|
|
14
|
+
|
|
15
|
+
* **审批组件:** 连续减签同一人失败问题修复 ([3815640](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/commit/3815640a78b55b92aa9eb352d8e92f5d963f53b3))
|
|
16
|
+
|
|
2
17
|
## [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)
|
|
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.27",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"author": "lambo",
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"standard-version": "^9.5.0",
|
|
17
|
+
"@lambo-design-mobile/shared": "^1.0.0-beta.21",
|
|
17
18
|
"@lambo-design-mobile/lambo-scan-code": "^1.0.0-beta.1",
|
|
18
|
-
"@lambo-design-mobile/upload-file": "^1.0.0-beta.
|
|
19
|
-
"@lambo-design-mobile/shared": "^1.0.0-beta.21"
|
|
19
|
+
"@lambo-design-mobile/upload-file": "^1.0.0-beta.18"
|
|
20
20
|
},
|
|
21
21
|
"scripts": {
|
|
22
22
|
"release": "pnpm release-beta && git push --follow-tags && pnpm re-publish",
|
package/src/FlowApproval.vue
CHANGED
|
@@ -285,11 +285,18 @@
|
|
|
285
285
|
<van-radio :name='index'/>
|
|
286
286
|
</div>
|
|
287
287
|
</div>
|
|
288
|
+
<div v-if="showRejectOption" class="reject-attribute">
|
|
289
|
+
<div :style="{ width: rejectAttributeTitleWidth }">驳回给:</div>
|
|
290
|
+
<van-radio-group v-model="rejectToTakeOver">
|
|
291
|
+
<van-radio name="original">原办理人</van-radio>
|
|
292
|
+
<van-radio name="actual">实际办理人</van-radio>
|
|
293
|
+
</van-radio-group>
|
|
294
|
+
</div>
|
|
288
295
|
<div v-if="showRejectToSelected" class="table-row">
|
|
289
|
-
<van-field @click="handleSelectRejectUser" label="
|
|
296
|
+
<van-field @click="handleSelectRejectUser" label="选择驳回人员:" :label-width="rejectAttributeTitleWidth" readonly placeholder="点击选择" :value="rejectUsers.name"></van-field>
|
|
290
297
|
</div>
|
|
291
298
|
<div v-if="showProcessControl" class="reject-attribute">
|
|
292
|
-
<div>驳回的节点通过后:</div>
|
|
299
|
+
<div :style="{ width: rejectAttributeTitleWidth }">驳回的节点通过后:</div>
|
|
293
300
|
<van-radio-group v-model="rejectAttribute">
|
|
294
301
|
<van-radio v-for="(item, index) in rejectAttributeList" :key="index" :name="item.type">{{ item.name }}</van-radio>
|
|
295
302
|
</van-radio-group>
|
|
@@ -300,13 +307,20 @@
|
|
|
300
307
|
<van-dialog v-model="rejectAttributesBoxShow" @confirm="processRejectNode()" @close="rejectAttributesDialogShowClose()"
|
|
301
308
|
title="驳回设置" show-cancel-button>
|
|
302
309
|
<div v-if="showProcessControl" class="reject-attribute">
|
|
303
|
-
<div>驳回的节点通过后:</div>
|
|
310
|
+
<div :style="{ width: rejectAttributeTitleWidth }">驳回的节点通过后:</div>
|
|
304
311
|
<van-radio-group v-model="rejectAttribute">
|
|
305
312
|
<van-radio v-for="(item, index) in rejectAttributeList" :key="index" :name="item.type">{{ item.name }}</van-radio>
|
|
306
313
|
</van-radio-group>
|
|
307
314
|
</div>
|
|
315
|
+
<div v-if="showRejectOption" class="reject-attribute">
|
|
316
|
+
<div :style="{ width: rejectAttributeTitleWidth }">驳回给:</div>
|
|
317
|
+
<van-radio-group v-model="rejectToTakeOver">
|
|
318
|
+
<van-radio name="original">原办理人</van-radio>
|
|
319
|
+
<van-radio name="actual">实际办理人</van-radio>
|
|
320
|
+
</van-radio-group>
|
|
321
|
+
</div>
|
|
308
322
|
<div v-if="showRejectToSelected" class="reject-attribute">
|
|
309
|
-
<van-field @click="handleSelectRejectUser" label="
|
|
323
|
+
<van-field @click="handleSelectRejectUser" label="选择驳回人员:" :label-width="rejectAttributeTitleWidth" readonly placeholder="点击选择" :value="rejectUsers.name"></van-field>
|
|
310
324
|
</div>
|
|
311
325
|
</van-dialog>
|
|
312
326
|
<van-popup v-if="selectRejectUserPopupShow" v-model="selectRejectUserPopupShow" closeable round position="bottom"
|
|
@@ -355,6 +369,18 @@ export default {
|
|
|
355
369
|
config() {
|
|
356
370
|
return config
|
|
357
371
|
},
|
|
372
|
+
rejectAttributeTitleWidth(){
|
|
373
|
+
if (this.showProcessControl) {
|
|
374
|
+
return '145px';
|
|
375
|
+
}
|
|
376
|
+
if (this.showRejectToSelected) {
|
|
377
|
+
return '100px';
|
|
378
|
+
}
|
|
379
|
+
if (this.showRejectOption) {
|
|
380
|
+
return '75px';
|
|
381
|
+
}
|
|
382
|
+
return 'auto';
|
|
383
|
+
},
|
|
358
384
|
showAuditOpinion(){
|
|
359
385
|
return this.handleButtons && (this.handleButtons.includes('auditOpinion') || this.handleButtons.includes('appointHandler') || this.handleButtons.includes('attachmentFile'))
|
|
360
386
|
},
|
|
@@ -575,7 +601,12 @@ export default {
|
|
|
575
601
|
foldingApprovalComments: {
|
|
576
602
|
type: Boolean,
|
|
577
603
|
default: false
|
|
578
|
-
}
|
|
604
|
+
},
|
|
605
|
+
//默认是否驳回给转办人
|
|
606
|
+
defaultRejectToTakeOver: {
|
|
607
|
+
type: Boolean,
|
|
608
|
+
default: false
|
|
609
|
+
},
|
|
579
610
|
},
|
|
580
611
|
data() {
|
|
581
612
|
return {
|
|
@@ -677,8 +708,10 @@ export default {
|
|
|
677
708
|
},
|
|
678
709
|
showRejectToSelected: false,
|
|
679
710
|
showProcessControl: false,
|
|
711
|
+
showRejectOption: false,
|
|
680
712
|
rejectAttributesBoxShow: false,
|
|
681
713
|
rejectAttribute: 'inSequence',
|
|
714
|
+
rejectToTakeOver: this.defaultRejectToTakeOver ? 'actual' : 'original',
|
|
682
715
|
rejectAttributeList: [],
|
|
683
716
|
taskAuditUserList: [],
|
|
684
717
|
rejectUserList: [],
|
|
@@ -761,7 +794,7 @@ export default {
|
|
|
761
794
|
this.handleButtons = this.handleButtons ? this.handleButtons : data.handleButtons ? data.handleButtons : ["processTrace", "auditHistory", "auditOpinion", "attachmentFile", "auditTo30", "auditTo70", "auditTo40", "auditTo90", "auditTo80", "auditTo82", "auditTo50"];
|
|
762
795
|
this.coSignVotingTask = this.handleButtons && this.handleButtons.includes('coSignVoting')
|
|
763
796
|
this.nextAssigneeSelectionType = data.nextAssigneeSelectionType;
|
|
764
|
-
this.passName = data.handleName;
|
|
797
|
+
this.passName = data.handleName === '审批' ? '通过' : data.handleName;
|
|
765
798
|
this.rejectName = data.rejectName;
|
|
766
799
|
if (data.hasOwnProperty('isSequential')) {
|
|
767
800
|
this.curNodeType = data.isSequential ? NodeType.SequentialMultiNode : NodeType.MultiNode;
|
|
@@ -1129,7 +1162,7 @@ export default {
|
|
|
1129
1162
|
} else if (updateType === '83') {
|
|
1130
1163
|
getUnapprovedListOfMultiNode(self.taskId).then(res => {
|
|
1131
1164
|
if (res.data.code === '200') {
|
|
1132
|
-
self.unapprovedAssigneeList = res.data.data.map(item => ({...item, userId: item.auditId, organName: item.auditUserOrgan ? item.auditUserOrgan.split(':')[1] : '未知部门'}))
|
|
1165
|
+
self.unapprovedAssigneeList = res.data.data.map(item => ({...item, userName: item.auditName, userId: item.auditId, organName: item.auditUserOrgan ? item.auditUserOrgan.split(':')[1] : '未知部门'}))
|
|
1133
1166
|
self.selectReductionUserPopupShow = true
|
|
1134
1167
|
} else {
|
|
1135
1168
|
Toast.fail(resp.data.message)
|
|
@@ -1265,7 +1298,8 @@ export default {
|
|
|
1265
1298
|
self.showRejectToSelected = result.data.length === 1 && result.data[0].handleButtons?.includes('rejectToSelected')
|
|
1266
1299
|
self.nodeList = Array.isArray(result.data) ? result.data : []
|
|
1267
1300
|
self.radio = 0
|
|
1268
|
-
|
|
1301
|
+
self.showRejectOption = Array.isArray(result.data) && result.data.some(item => item.taskTakedOver && (item.taskTakedOver === true || item.taskTakedOver === 'true'))
|
|
1302
|
+
if ((self.showRejectToSelected || self.showRejectOption) && !self.handleButtons?.includes('rejectProcessControl')) {
|
|
1269
1303
|
self.rejectAttributesBoxShow = true
|
|
1270
1304
|
} else {
|
|
1271
1305
|
self.handleButtons && self.handleButtons.includes('rejectProcessControl') ? self.getProcessAttributes() : self.auditRequest(self.auditParams)
|
|
@@ -1306,7 +1340,7 @@ export default {
|
|
|
1306
1340
|
getProcessAttributes(self.procId, self.taskNode).then(resp => {
|
|
1307
1341
|
if (resp.data.code === '200') {
|
|
1308
1342
|
if ((self.auditParams.auditResult == '70' && !resp.data.data.jumpFirstNode) || (self.auditParams.auditResult == '40' && (resp.data.data.multiNode || resp.data.data.preNodeGateway))) {
|
|
1309
|
-
if (self.showRejectToSelected && self.nodeList.length > 0) {
|
|
1343
|
+
if ((self.showRejectToSelected && self.nodeList.length > 0) || self.showRejectOption) {
|
|
1310
1344
|
self.rejectAttributesBoxShow = true
|
|
1311
1345
|
return
|
|
1312
1346
|
}
|
|
@@ -1381,6 +1415,7 @@ export default {
|
|
|
1381
1415
|
if (self.rejectUsers.id !== 'all'){
|
|
1382
1416
|
auditParams.rejectUsers = self.rejectUsers.id
|
|
1383
1417
|
}
|
|
1418
|
+
auditParams.rejectToTakeOver = self.rejectToTakeOver && self.rejectToTakeOver != 'original'
|
|
1384
1419
|
self.showToastLoading('处理审批中');
|
|
1385
1420
|
//确认执行审批逻辑
|
|
1386
1421
|
audit(auditParams).then((resp) => { // 使用箭头函数
|
|
@@ -1463,6 +1498,8 @@ export default {
|
|
|
1463
1498
|
this.targetTaskNodeProcessControl = currentRow.processControl
|
|
1464
1499
|
this.rejectUsers = { name: '全部办理人', id: 'all' }
|
|
1465
1500
|
this.showRejectToSelected = currentRow.rejectToSelected
|
|
1501
|
+
this.rejectToTakeOver = this.defaultRejectToTakeOver ? 'actual' : 'original'
|
|
1502
|
+
this.showRejectOption = currentRow.taskTakedOver && (currentRow.taskTakedOver === true || currentRow.taskTakedOver === 'true')
|
|
1466
1503
|
},
|
|
1467
1504
|
processJumpSpecifiedNode() {
|
|
1468
1505
|
const self = this;
|
|
@@ -1511,6 +1548,8 @@ export default {
|
|
|
1511
1548
|
rejectAttributesDialogShowClose(){
|
|
1512
1549
|
//重置
|
|
1513
1550
|
this.showRejectToSelected = false
|
|
1551
|
+
this.showRejectOption = false
|
|
1552
|
+
this.rejectToTakeOver = this.defaultRejectToTakeOver ? 'actual' : 'original'
|
|
1514
1553
|
this.showProcessControl = false
|
|
1515
1554
|
this.rejectAttributesBoxShow = false
|
|
1516
1555
|
this.auditResult = '';
|
|
@@ -1657,6 +1696,11 @@ export default {
|
|
|
1657
1696
|
self.getProcessAttributes(val)
|
|
1658
1697
|
}
|
|
1659
1698
|
},
|
|
1699
|
+
selectReductionUserPopupShow(newVal) {
|
|
1700
|
+
if (newVal) {
|
|
1701
|
+
this.reductionUsers = [];
|
|
1702
|
+
}
|
|
1703
|
+
}
|
|
1660
1704
|
}
|
|
1661
1705
|
|
|
1662
1706
|
};
|
|
@@ -1815,6 +1859,7 @@ export default {
|
|
|
1815
1859
|
display: flex;
|
|
1816
1860
|
border-bottom: 1px solid #ebedf0;
|
|
1817
1861
|
font-size: 14px;
|
|
1862
|
+
padding-left: 5px;
|
|
1818
1863
|
}
|
|
1819
1864
|
|
|
1820
1865
|
.table-header > div,
|
package/src/WorkflowDiagram.vue
CHANGED
|
@@ -638,7 +638,7 @@ export default {
|
|
|
638
638
|
|
|
639
639
|
if (matchedRecords.length > 0) {
|
|
640
640
|
const getTime = (record) => {
|
|
641
|
-
const timeStr = record.auditDate || record.createTime;
|
|
641
|
+
const timeStr = record.auditDate || record.startDate || record.createTime;
|
|
642
642
|
return new Date(timeStr).getTime();
|
|
643
643
|
};
|
|
644
644
|
|