eoss-ui 0.8.34 → 0.8.35

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.
@@ -40,9 +40,64 @@
40
40
  class="opinions"
41
41
  :opinion="nextNode.newOpinion"
42
42
  :rows="copyHistory || formType == 'readTransfer' ? 2 : 5"
43
+ v-if="showOpinion"
44
+ :required="isOpinionRequired == 1"
43
45
  @change="(val) => (nextNode.newOpinion = val)"
44
46
  />
45
47
  </el-form-item>
48
+ <!-- 阅转办时新增选择流程功能 -->
49
+ <el-form-item
50
+ v-if="isCanReadTransferHandle && readTransferHandleFlowTypeCode"
51
+ prop="nextNode"
52
+ label="选择流程"
53
+ :rules="[
54
+ // { required: true, message: `请选择流程`, trigger: 'blur' }
55
+ ]"
56
+ >
57
+ <el-input
58
+ placeholder="请输入内容"
59
+ class="input-with-select select-process"
60
+ :class="{ 'hide-flow-char': isStartFlowChartView != 'true' }"
61
+ >
62
+ <el-select
63
+ slot="prepend"
64
+ v-model="currentNodeInfo.nextNode"
65
+ style="width: calc(100% + 40px)"
66
+ :placeholder="`请选择流程`"
67
+ :key="optionsKey"
68
+ @change="handleFlowChange"
69
+ >
70
+ <el-option
71
+ v-for="items in currentNodeInfo.option"
72
+ :key="items.id"
73
+ :label="items.name"
74
+ :disabled="items.disabled"
75
+ :value="items.processDefId"
76
+ ></el-option>
77
+ </el-select>
78
+ <div slot="append" v-show="isStartFlowChartView == 'true'">
79
+ <el-button
80
+ icon="es-icon-shu-jituan"
81
+ type="primary"
82
+ @click="
83
+ () => {
84
+ showFlowChart = true;
85
+ }
86
+ "
87
+ ></el-button>
88
+ <el-button
89
+ v-show="activitiDefinitionSort"
90
+ icon="es-icon-paixu"
91
+ type="primary"
92
+ @click="
93
+ () => {
94
+ showSort = true;
95
+ }
96
+ "
97
+ ></el-button>
98
+ </div>
99
+ </el-input>
100
+ </el-form-item>
46
101
  <el-form-item
47
102
  prop="nextOperate"
48
103
  label="下步操作"
@@ -429,6 +484,8 @@ import {
429
484
  loginUserInfo,
430
485
  register,
431
486
  freeStartFlow,
487
+ getProcessDefList,
488
+ getNodeInfoForStart,
432
489
  freeStartFlowWithSubmitTask,
433
490
  startReadTransferHandleFlowWithTaskReadEnd
434
491
  } from 'eoss-ui/src/config/api';
@@ -448,6 +505,14 @@ export default {
448
505
  Preset
449
506
  },
450
507
  props: {
508
+ isCanReadTransferHandle: {
509
+ type: Boolean,
510
+ default: false
511
+ },
512
+ readTransferHandleFlowTypeCode: {
513
+ type: String,
514
+ default: ''
515
+ },
451
516
  processDefinitionId: {
452
517
  type: String,
453
518
  default: ''
@@ -527,11 +592,15 @@ export default {
527
592
  return {
528
593
  loading: false,
529
594
  isCustomUser: 0,
595
+ currentNodeInfo: { nextNode: '', nextUser: '', option: [] },
596
+ isStartFlowChartView: false,
530
597
  isCurrentNodeForbiddenChangeCandidate: 0,
531
598
  allLoading: null,
532
599
  selectUser: false,
533
600
  multiple: false,
534
601
  readMultiple: true,
602
+ showOpinion: true,
603
+ isOpinionRequired: 0,
535
604
  currentOrgSelectorTabs: ['employee', 'persongroup'],
536
605
  customPresetHintMessage: '', //流程预设标题
537
606
  nextNodeCheckType: 'select',
@@ -550,6 +619,7 @@ export default {
550
619
  defaultNextNode: '',
551
620
  presetUserJson: [],
552
621
  businessId: '',
622
+ optionsKey: 0,
553
623
  isTaskread: 0, //是否显示分阅用户
554
624
  isHandleExplain: 0, //是否展示办理说明
555
625
  options: [],
@@ -587,6 +657,7 @@ export default {
587
657
  }
588
658
  }
589
659
  },
660
+ activitiDefinitionSort: false,
590
661
  userModel: {},
591
662
  nextUserTabs: {},
592
663
  selectPresetUserList: [],
@@ -651,7 +722,9 @@ export default {
651
722
  }
652
723
  },
653
724
  processDefinitionId(val) {
725
+ const savedNodeInfo = { ...this.currentNodeInfo };
654
726
  Object.assign(this.$data, this.$options.data());
727
+ this.currentNodeInfo = savedNodeInfo;
655
728
  this.getUserInfo();
656
729
  this.getNodeType();
657
730
  this.getStartFlow(val);
@@ -715,8 +788,70 @@ export default {
715
788
  } else if (this.formType != 'readTransfer') {
716
789
  this.newOpinion = this.opinion;
717
790
  }
791
+ if (this.isCanReadTransferHandle && this.readTransferHandleFlowTypeCode) {
792
+ this.getProcess(this.readTransferHandleFlowTypeCode);
793
+ }
718
794
  },
719
795
  methods: {
796
+ /**
797
+ * getProcess
798
+ * @desc:获取选择流程
799
+ * @author liufan
800
+ * @date 2022年5月25日
801
+ **/
802
+ getProcess(val) {
803
+ let params = {
804
+ businessId: this.businessId,
805
+ flowTypeCode: val || this.flowTypeCode,
806
+ // defaultProcessKey: this.defaultProcessKey,
807
+ isOnly: true,
808
+ hideTempSave: true
809
+ };
810
+ const loading = util.loading(this.$loading, '加载中...');
811
+ util
812
+ .ajax({ url: getProcessDefList, params })
813
+ .then((res) => {
814
+ const { status, message, data } = res;
815
+ loading.close();
816
+ if (status === 'success') {
817
+ this.isStartFlowChartView = data.isStartFlowChartView;
818
+ if (
819
+ !Object.keys(data).length ||
820
+ (data.definitionList && !data.definitionList.length)
821
+ ) {
822
+ this.$message.error('流程不存在或未关联对应流程!');
823
+ } else {
824
+ this.activitiDefinitionSort = data.activitiDefinitionSort;
825
+ this.currentNodeInfo.option = data.definitionList;
826
+ this.currentNodeInfo.nextNode = data.definitionList.filter(
827
+ (item) => item.processDefKey == this.defaultProcessKey
828
+ );
829
+ if (this.currentNodeInfo.nextNode.length) {
830
+ this.currentNodeInfo.nextNode =
831
+ this.currentNodeInfo.nextNode[0].processDefId;
832
+ } else {
833
+ if (data.definitionList.length != 0) {
834
+ this.currentNodeInfo.nextNode =
835
+ data.definitionList[0].processDefId;
836
+ } else {
837
+ this.currentNodeInfo.nextNode = '';
838
+ }
839
+ }
840
+ if (this.currentNodeInfo.nextNode) {
841
+ this.handleFlowChange(this.currentNodeInfo.nextNode, true);
842
+ }
843
+ }
844
+ } else {
845
+ this.$message.error(message || '系统错误,请联系管理员!');
846
+ }
847
+ })
848
+ .catch((err) => {
849
+ loading.close();
850
+ if (err.message && err.message !== 'canceled') {
851
+ this.$message.error(err.message);
852
+ }
853
+ });
854
+ },
720
855
  handleChangeTime(val) {
721
856
  this.nextNode.customLimitTime = val;
722
857
  },
@@ -739,6 +874,28 @@ export default {
739
874
  callback();
740
875
  }
741
876
  },
877
+ handleFlowChange(val) {
878
+ this.getNodeInfoForStartFlow(val);
879
+ this.$parent.$emit('flowChange', val);
880
+ },
881
+ getNodeInfoForStartFlow(processDefinitionId) {
882
+ let params = {
883
+ url: getNodeInfoForStart,
884
+ params: { processDefinitionId }
885
+ };
886
+ util.ajax(params).then((res) => {
887
+ if (res.status == 'success') {
888
+ this.isOpinionRequired = res.data.nodeExtAttr.isOpinionRequired;
889
+ this.showOpinion = false;
890
+ setTimeout(() => {
891
+ this.showOpinion = true;
892
+ }, 0);
893
+ this.processDefinitionId = processDefinitionId;
894
+ // this.getStartFlow(processDefinitionId);
895
+ // this.getNodeInfos(undefined, undefined, processDefinitionId);
896
+ }
897
+ });
898
+ },
742
899
  handleChange() {
743
900
  this.isChangeMessage = true;
744
901
  },
@@ -1137,7 +1294,8 @@ export default {
1137
1294
  if (this.isHideOtherOrg) {
1138
1295
  params.nextOtherOrgObj = nextOtherOrgObj;
1139
1296
  }
1140
- if (this.activeNames != '1' || !this.isCustomPreset) delete params.customPresetUserJson;
1297
+ if (this.activeNames != '1' || !this.isCustomPreset)
1298
+ delete params.customPresetUserJson;
1141
1299
  if (this.isFreeStartFlow || this.formType === 'readTransfer') {
1142
1300
  let newParm = {};
1143
1301
  newParm.copyHistory =
@@ -1275,7 +1433,8 @@ export default {
1275
1433
  if (this.isHideOtherOrg) {
1276
1434
  params.nextOtherOrgObj = nextOtherOrgObj;
1277
1435
  }
1278
- if (this.activeNames != '1' || !this.isCustomPreset) delete params.customPresetUserJson;
1436
+ if (this.activeNames != '1' || !this.isCustomPreset)
1437
+ delete params.customPresetUserJson;
1279
1438
  if (this.isFreeStartFlow || this.formType === 'readTransfer') {
1280
1439
  let newParm = {};
1281
1440
  newParm.copyHistory = this.copyHistory === 'needCopyPendedHistory';
@@ -1352,9 +1511,9 @@ export default {
1352
1511
  }
1353
1512
  });
1354
1513
  },
1355
- getNodeInfos(nodeId, index) {
1514
+ getNodeInfos(nodeId, index, processDefinitionId) {
1356
1515
  let params = {
1357
- processDefinitionId: this.processDefinitionId,
1516
+ processDefinitionId: processDefinitionId || this.processDefinitionId,
1358
1517
  nextNodeId: nodeId ? nodeId : this.nextNode.nextNode,
1359
1518
  businessId: this.id,
1360
1519
  userId: util.getStorage('userId')
@@ -1379,8 +1538,14 @@ export default {
1379
1538
  this.allLoading.close();
1380
1539
  }
1381
1540
  if (status === 'success') {
1382
- if( this.currentOrgSelectorParams.department && !this.currentOrgSelectorParams.department.roleid && this.selectorParams.roleid && nodeExtAttr.deptRoleCode){
1383
- this.currentOrgSelectorParams.department.roleid = nodeExtAttr.deptRoleCode;
1541
+ if (
1542
+ this.currentOrgSelectorParams.department &&
1543
+ !this.currentOrgSelectorParams.department.roleid &&
1544
+ this.selectorParams.roleid &&
1545
+ nodeExtAttr.deptRoleCode
1546
+ ) {
1547
+ this.currentOrgSelectorParams.department.roleid =
1548
+ nodeExtAttr.deptRoleCode;
1384
1549
  }
1385
1550
  this.isCurrentNodeForbiddenChangeCandidate =
1386
1551
  nodeExtAttr.isCurrentNodeForbiddenChangeCandidate;
@@ -1390,7 +1555,7 @@ export default {
1390
1555
  this.enableCustomLimitTimeSetting =
1391
1556
  nodeExtAttr.enableCustomLimitTimeSetting == 1;
1392
1557
  if (nodeMoreInfo.currentOrgDefaultSelectObjectItems) {
1393
- this.nextCurrentOrgselectUserList = []
1558
+ this.nextCurrentOrgselectUserList = [];
1394
1559
  if (
1395
1560
  nodeMoreInfo.currentOrgDefaultSelectObjectItems.deptIds.length >
1396
1561
  0
@@ -1439,7 +1604,8 @@ export default {
1439
1604
  }
1440
1605
  );
1441
1606
  }
1442
- this.nextNode.nextCurrentOrgObj = nodeMoreInfo.currentOrgDefaultSelectObjects
1607
+ this.nextNode.nextCurrentOrgObj =
1608
+ nodeMoreInfo.currentOrgDefaultSelectObjects;
1443
1609
  }
1444
1610
  if (
1445
1611
  this.enableCustomLimitTimeSetting &&
@@ -1780,10 +1946,14 @@ export default {
1780
1946
  this.nextNode.presetReadUserId.push(item);
1781
1947
  });
1782
1948
  }
1783
- this.getNodeInfos();
1949
+ this.getNodeInfos(undefined, undefined, processId);
1784
1950
  // this.getPresetFlowInfo();
1785
1951
  this.isCustomPreset &&
1786
- this.$refs.customPreset.getPresetFlowInfo(this.nextNode.nextNode);
1952
+ this.$refs.customPreset.getPresetFlowInfo(
1953
+ this.nextNode.nextNode,
1954
+ undefined,
1955
+ true
1956
+ );
1787
1957
  this.getFind();
1788
1958
  this.getMessage();
1789
1959
  } else {
@@ -13,8 +13,8 @@
13
13
  label-width="100px"
14
14
  label-align="left"
15
15
  >
16
- <div style="max-height: 290px; overflow-y: auto; margin-bottom: 10px">
17
- <el-form-item prop="nodeName" label="当前节点">
16
+ <div :style="`max-height: 290px; overflow-y: ${hideBtn?'unset' : 'auto'}; margin-bottom: 10px`">
17
+ <el-form-item prop="nodeName" label="当前节点`">
18
18
  <el-input v-model="nodeName" disabled />
19
19
  </el-form-item>
20
20
  <el-form-item
@@ -5,7 +5,7 @@
5
5
  element-loading-text="加载中..."
6
6
  element-loading-spinner="el-icon-loading"
7
7
  element-loading-background="rgba(255, 255,255, 0.8)"
8
- :style="`height: ${typeCode == 'read'? '100%' : 'unset'};`"
8
+ :style="`height: ${typeCode == 'read' || hideBtn ? '100%' : 'unset'};`"
9
9
  >
10
10
  <el-form
11
11
  ref="nextNode"
@@ -15,8 +15,8 @@
15
15
  >
16
16
  <div
17
17
  :style="`max-height: ${
18
- typeCode ? 'unset' : '290px'
19
- }; overflow-y: auto; margin-bottom: 10px`"
18
+ typeCode || hideBtn ? '100%' : '290px'
19
+ }; overflow-y:${hideBtn?'unset' : 'auto'}; margin-bottom: 10px`"
20
20
  >
21
21
  <el-form-item
22
22
  prop="handleExplain"
@@ -248,14 +248,14 @@ export default {
248
248
  let tab = {};
249
249
  if (this.type != 'transfer') {
250
250
  tab = {
251
- employee: {
252
- param: {
253
- filid: this.orgId,
254
- name: '本单位用户'
255
- }
256
- },
257
- department: { param: { filid: this.orgId } },
258
- enterprise: {}
251
+ // employee: {
252
+ // param: {
253
+ // filid: '',//this.orgId
254
+ // name: '本单位用户'
255
+ // }
256
+ // },
257
+ department: { param: { filid: this.orgId } },//this.orgId
258
+ // enterprise: {}
259
259
  };
260
260
  } else {
261
261
  tab = {
@@ -283,6 +283,11 @@ export default {
283
283
  }
284
284
  },
285
285
  methods: {
286
+ // getSelectType(info){
287
+ // if(info.selectPersonValue == 4){
288
+ // this.selectorParams.filid = 'all'
289
+ // }
290
+ // },
286
291
  getSelectorConfig() {
287
292
  this.selectorTabs = this.selectorConfig.type.split(',');
288
293
  this.selectorParams = this.selectorConfig.params;
@@ -403,7 +408,14 @@ export default {
403
408
  } else if (this.configInfo.selectPersonValue == 6) {
404
409
  this.multiple = true;
405
410
  this.params.filid = '';
411
+ }else if (this.configInfo.selectPersonValue == 7) {
412
+ this.multiple = false;
413
+ this.params.filid = orgId;
414
+ }else if (this.configInfo.selectPersonValue == 8) {
415
+ this.multiple = true;
416
+ this.params.filid = orgId;
406
417
  }
418
+ console.log(this.params,'params')
407
419
  },
408
420
  handleSelectCheck(val, data) {
409
421
  let { userIds, userNames } = data;
@@ -446,6 +458,7 @@ export default {
446
458
  url: toStartTaskRead,
447
459
  params: {
448
460
  pendingId: this.pendingId,
461
+ appId: this.resetAppId,
449
462
  taskAction: this.type,
450
463
  ...this.param
451
464
  }