@lambo-design/workflow-approve 1.0.0-beta.88 → 1.0.0-beta.89

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/portrait.vue +118 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lambo-design/workflow-approve",
3
- "version": "1.0.0-beta.88",
3
+ "version": "1.0.0-beta.89",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "author": "lambo",
package/src/portrait.vue CHANGED
@@ -514,7 +514,9 @@ export default {
514
514
  '84': '委派任务',
515
515
  '61': '交回委派任务',
516
516
  '62': '撤回委派任务',
517
+ 'passContinue': '通过并继续',
517
518
  },
519
+ isPassContinue: false, // 标记是否为通过并继续操作
518
520
  handleTypeList: [
519
521
  {
520
522
  value: '00',
@@ -639,6 +641,13 @@ export default {
639
641
  action: () => this.audit('30'),
640
642
  type: 'primary'
641
643
  },
644
+ {
645
+ id: 'passContinue',
646
+ label: `${this.passName}并继续`,
647
+ condition: this.handleButtons?.includes('passContinue') && !this.isDetail && !this.appointTask,
648
+ action: () => this.passContinueAudit(),
649
+ type: 'primary'
650
+ },
642
651
  {
643
652
  id: 'revokeDelegateTask',
644
653
  label: '撤回委派',
@@ -1280,6 +1289,85 @@ export default {
1280
1289
  self.auditResult = auditResult
1281
1290
  self.submit()
1282
1291
  },
1292
+
1293
+ // 通过并继续审批
1294
+ passContinueAudit: function () {
1295
+ let self = this
1296
+ self.auditResult = '30' // 设置为通过
1297
+ self.isPassContinue = true // 标记为通过并继续
1298
+ self.submit()
1299
+ },
1300
+
1301
+ // 获取下一条待办并刷新页面
1302
+ getNextTodoAndRefresh() {
1303
+ let self = this
1304
+ let param = {
1305
+ procType: self.procType
1306
+ }
1307
+ // 获取待办列表,获取下一条数据,排除当前已处理的任务
1308
+ ajax.get(self.smartFlowServerContext + "/manage/processTodo/list",{params:param}).then(function (resp) {
1309
+ if (resp.data.code === '200' && resp.data.data.rows && resp.data.data.rows.length > 0) {
1310
+ // 过滤掉当前已处理的任务
1311
+ const availableTodos = resp.data.data.rows.filter(todo => todo.applyId !== self.applyId)
1312
+ if (availableTodos.length === 0) {
1313
+ self.$Message.info('该类型没有更多待办任务了')
1314
+ self.isPassContinue = false // 重置标志
1315
+ self.executionCompleted(true, null, null, { code: '30', name: '通过' }, self.curTaskId)
1316
+ return
1317
+ }
1318
+ const nextTodo = availableTodos[0]
1319
+ // 获取节点配置信息
1320
+ let param = {
1321
+ procId: nextTodo.procId,
1322
+ taskNode: nextTodo.taskNode
1323
+ }
1324
+ ajax.post(self.smartFlowServerContext + '/manage/approvalCenter/getNodeData', param).then(function (nodeResp) {
1325
+ if (nodeResp.data.code === '200' && nodeResp.data.data && nodeResp.data.data.length > 0) {
1326
+ const nodeData = nodeResp.data.data[0]
1327
+ // 跳转处理
1328
+ self.jumpToNextTodo(nextTodo, nodeData)
1329
+ } else {
1330
+ self.$Message.warning('无法获取下一条待办的节点配置信息')
1331
+ self.isPassContinue = false // 重置标志
1332
+ self.executionCompleted(true, null, null, { code: '30', name: '通过' }, self.curTaskId)
1333
+ }
1334
+ }).catch(err => {
1335
+ console.error('获取节点配置失败:', err)
1336
+ self.$Message.error('获取节点配置失败')
1337
+ self.isPassContinue = false // 重置标志
1338
+ self.executionCompleted(true, null, null, { code: '30', name: '通过' }, self.curTaskId)
1339
+ })
1340
+ } else {
1341
+ self.$Message.info('没有更多待办任务了')
1342
+ self.isPassContinue = false // 重置标志
1343
+ self.executionCompleted(true, null, null, { code: '30', name: '通过' }, self.curTaskId)
1344
+ }
1345
+ }).catch(err => {
1346
+ console.error('获取待办列表失败:', err)
1347
+ self.$Message.error('获取下一条待办失败')
1348
+ self.isPassContinue = false // 重置标志
1349
+ self.executionCompleted(true, null, null, { code: '30', name: '通过' }, self.curTaskId)
1350
+ })
1351
+ },
1352
+
1353
+ // 通过executionCompleted回调通知父组件进行页面跳转
1354
+ jumpToNextTodo(nextTodo, nodeData) {
1355
+ // 先重置标志
1356
+ this.isPassContinue = false
1357
+
1358
+ this.$Message.success(`已切换到下一条待办`)
1359
+
1360
+ // 构建特殊的auditResult对象,包含下一条待办的信息
1361
+ let auditResult = {
1362
+ code: 'passContinueSuccess',
1363
+ name: '通过并继续',
1364
+ nextTodo: nextTodo,
1365
+ nodeData: nodeData
1366
+ }
1367
+
1368
+ // 通过executionCompleted回调通知父组件处理跳转
1369
+ this.executionCompleted(true, null, null, auditResult, this.curTaskId)
1370
+ },
1283
1371
  submit() {
1284
1372
  let self = this
1285
1373
  self.auditParams = {
@@ -1370,6 +1458,7 @@ export default {
1370
1458
  let taskIds = result.data.id ? result.data.id : result.data.map(item => item.id).join(',')
1371
1459
  setTimeout(() => {
1372
1460
  self.executionCompleted(true, result.data.id ? result.data.processInstanceId : result.data[0].processInstanceId, taskIds, auditResult, self.curTaskId)
1461
+ self.isPassContinue = false // 重置标志
1373
1462
  }, 1000)
1374
1463
  }
1375
1464
  } else {
@@ -1417,6 +1506,7 @@ export default {
1417
1506
  //后端没有返回数据
1418
1507
  setTimeout(() => {
1419
1508
  self.executionCompleted(true, null, null, auditResult, self.curTaskId)
1509
+ self.isPassContinue = false // 重置标志
1420
1510
  }, 1000)
1421
1511
  bus.$emit('triggerTimer')
1422
1512
  } else {
@@ -1425,6 +1515,7 @@ export default {
1425
1515
  self.$Message.error(auditMessage)
1426
1516
  setTimeout(() => {
1427
1517
  self.executionCompleted(false, null, null, auditResult, self.curTaskId)
1518
+ self.isPassContinue = false // 重置标志
1428
1519
  }, 1000)
1429
1520
  }
1430
1521
  bus.$emit('triggerTimer')
@@ -1462,8 +1553,8 @@ export default {
1462
1553
  let self = this
1463
1554
  this.modal = false
1464
1555
  let auditResult = {
1465
- code: self.auditResult,
1466
- name: self.handleButtonsNames[self.auditResult]
1556
+ code: self.isPassContinue ? 'passContinue' : self.auditResult,
1557
+ name: self.isPassContinue ? self.handleButtonsNames['passContinue'] : self.handleButtonsNames[self.auditResult]
1467
1558
  }
1468
1559
  if (self.auditResult === '82' && (self.targetTaskNode == '' || self.targetTaskNode == null)) {
1469
1560
  self.auditResult = ''
@@ -1483,15 +1574,21 @@ export default {
1483
1574
  message = result.message ? self.replaceName(result.message, '驳回', self.rejectName) : `${self.rejectName}成功`
1484
1575
  }
1485
1576
  self.$Message.success(message)
1486
- if (result.data) {
1487
- let taskIds = result.data.id ? result.data.id : result.data.map(item => item.id).join(',')
1488
- setTimeout(() => {
1489
- self.executionCompleted(true, result.data.id ? result.data.processInstanceId : result.data[0].processInstanceId, taskIds, auditResult, self.curTaskId)
1490
- }, 1000)
1577
+ if (self.isPassContinue) {
1578
+ // 通过并继续操作,获取下一条待办
1579
+ self.getNextTodoAndRefresh()
1491
1580
  } else {
1492
- setTimeout(() => {
1493
- self.executionCompleted(true, null, null, auditResult, self.curTaskId)
1494
- }, 1000)
1581
+ // 普通操作,正常回调
1582
+ if (result.data) {
1583
+ let taskIds = result.data.id ? result.data.id : result.data.map(item => item.id).join(',')
1584
+ setTimeout(() => {
1585
+ self.executionCompleted(true, result.data.id ? result.data.processInstanceId : result.data[0].processInstanceId, taskIds, auditResult, self.curTaskId)
1586
+ }, 1000)
1587
+ } else {
1588
+ setTimeout(() => {
1589
+ self.executionCompleted(true, null, null, auditResult, self.curTaskId)
1590
+ }, 1000)
1591
+ }
1495
1592
  }
1496
1593
  } else if (result.code == '10012') {
1497
1594
  // 数据同步
@@ -1506,9 +1603,17 @@ export default {
1506
1603
  self.loading = false
1507
1604
  self.disable = false
1508
1605
  self.$Message.success(result.message)
1509
- setTimeout(() => {
1510
- self.executionCompleted(true, '流程已结束', '流程已结束', auditResult, self.curTaskId)
1511
- }, 1000)
1606
+ if (self.isPassContinue) {
1607
+ // 通过并继续操作,获取下一条待办
1608
+ setTimeout(() => {
1609
+ self.getNextTodoAndRefresh()
1610
+ }, 500)
1611
+ }else {
1612
+ setTimeout(() => {
1613
+ self.executionCompleted(true, '流程已结束', '流程已结束', auditResult, self.curTaskId)
1614
+ self.isPassContinue = false // 重置标志
1615
+ }, 1000)
1616
+ }
1512
1617
  } else {
1513
1618
  self.loading = false
1514
1619
  self.disable = false