n20-common-lib 2.9.13 → 2.9.14

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 (130) hide show
  1. package/nstc-g6/components/NstcCharts/NstcCharts.vue +16 -8
  2. package/package.json +8 -5
  3. package/src/assets/css/approve-card.scss +1 -1
  4. package/src/assets/css/date-quarter.scss +8 -0
  5. package/src/assets/css/expandable-pane.scss +7 -0
  6. package/src/assets/css/file-upload-table.scss +2 -3
  7. package/src/assets/css/font-icon.scss +3 -1
  8. package/src/assets/css/message.scss +6 -6
  9. package/src/assets/css/normalize.scss +4 -1
  10. package/src/assets/css/table.scss +16 -11
  11. package/src/assets/iconFont/SIMSUN.ttf +0 -0
  12. package/src/assets/iconFont/font.css +4 -0
  13. package/src/components/AIButton/index.vue +101 -0
  14. package/src/components/AdvancedFilter/formItemRender.vue +7 -4
  15. package/src/components/AdvancedFilter/index.vue +6 -7
  16. package/src/components/Anchor/index.vue +1 -0
  17. package/src/components/ApprovalButtons/index.vue +404 -82
  18. package/src/components/ApprovalButtons/indexApp.vue +1102 -0
  19. package/src/components/ApprovalButtons/selectSpr.vue +128 -0
  20. package/src/components/ApprovalButtons/setCarboncopyProp.vue +1 -1
  21. package/src/components/ApprovalButtons/setRejectToProp.vue +45 -5
  22. package/src/components/ApprovalButtons/showAppOpi.vue +265 -8
  23. package/src/components/ApprovalButtons/showOtherAttrNew.vue +161 -0
  24. package/src/components/ApprovalCard/index.vue +190 -44
  25. package/src/components/ApprovalCard/indexApp.vue +592 -0
  26. package/src/components/ApprovalRecord/approvalImgPro/child.vue +1 -1
  27. package/src/components/ApprovalRecord/approvalImgPro/index.vue +42 -5
  28. package/src/components/ApprovalRecord/index.vue +23 -6
  29. package/src/components/ApprovalRecord/indexApp.vue +79 -0
  30. package/src/components/AttachmentPass/index.vue +286 -0
  31. package/src/components/Button/button-group.vue +3 -1
  32. package/src/components/CascaderArea/index.vue +5 -6
  33. package/src/components/DatePicker/por.vue +31 -1
  34. package/src/components/DateSelect/quarterDatePicker.vue +23 -1
  35. package/src/components/Descriptions/index.vue +7 -3
  36. package/src/components/Dialog/index.vue +4 -0
  37. package/src/components/Diff/index.vue +4 -2
  38. package/src/components/DynamicField/DynamicField.vue +29 -6
  39. package/src/components/DynamicField/DynamicFieldMixin.js +13 -5
  40. package/src/components/DynamicField/DynamicFieldOptions.vue +135 -62
  41. package/src/components/DynamicField/DynamicTable.vue +11 -1
  42. package/src/components/DynamicField/contentPop.vue +110 -0
  43. package/src/components/DynamicField/tableList.vue +5 -1
  44. package/src/components/DynamicField/tableView.vue +143 -0
  45. package/src/components/ECharts/index.vue +15 -9
  46. package/src/components/Expandable/main.vue +17 -2
  47. package/src/components/FileImport/index.vue +4 -5
  48. package/src/components/FileUploadTable/FileUploadTableV3.vue +937 -0
  49. package/src/components/FileUploadTable/aiCheckDialog.vue +139 -0
  50. package/src/components/FileUploadTable/index.vue +251 -33
  51. package/src/components/FileUploadTable/jytg.svg +6 -0
  52. package/src/components/FileUploadTable/wsc.svg +3 -0
  53. package/src/components/FileUploadTable/ysc.svg +3 -0
  54. package/src/components/HandlingAdvice/index.vue +191 -0
  55. package/src/components/InputAccount/index.vue +105 -0
  56. package/src/components/InputNumber/index.vue +16 -4
  57. package/src/components/InputNumber/numberRange.vue +14 -0
  58. package/src/components/InputSearch/index.vue +8 -0
  59. package/src/components/Layout/HeaderWrap/changePwd.vue +50 -23
  60. package/src/components/Layout/HeaderWrap/index.vue +2 -2
  61. package/src/components/Layout/HeaderWrap/indexN.vue +296 -119
  62. package/src/components/Layout/SubContent/index.vue +45 -14
  63. package/src/components/Layout/indexN.vue +26 -5
  64. package/src/components/LoginTemporary/form.vue +126 -34
  65. package/src/components/LoginTemporary/index.vue +14 -3
  66. package/src/components/LoginTemporary/indexN.vue +35 -13
  67. package/src/components/Preview/index.vue +199 -0
  68. package/src/components/SelectDatePickerPro/customDatePicker.vue +7 -0
  69. package/src/components/SelectDatePickerPro/halfYearPicker.vue +165 -0
  70. package/src/components/SelectDatePickerPro/index.vue +44 -4
  71. package/src/components/SelectDatePickerPro/quarterDatePicker.vue +32 -10
  72. package/src/components/SelectTree/index.vue +10 -4
  73. package/src/components/SelectTree/pro.vue +3 -0
  74. package/src/components/ShowColumn/index copy 2.vue +545 -0
  75. package/src/components/ShowColumn/index copy.vue +566 -0
  76. package/src/components/ShowColumn/index.vue +11 -7
  77. package/src/components/Statis/statisItem.vue +8 -7
  78. package/src/components/Table/filters.js +13 -0
  79. package/src/components/Table/index.vue +4 -4
  80. package/src/components/TablePro/filterContent.vue +18 -8
  81. package/src/components/TablePro/index.js +41 -1
  82. package/src/components/TablePro/index.vue +117 -6
  83. package/src/components/TableProOperateColumn/OperateBtns.vue +11 -53
  84. package/src/components/TableProOperateColumn/OperateBtns_copy.vue +141 -0
  85. package/src/components/TableProOperateColumn/childrenOperateBtn.vue +108 -0
  86. package/src/components/TableProOperateColumn/index.vue +3 -6
  87. package/src/components/TableSetSize/index.vue +1 -1
  88. package/src/components/Tree/index.vue +21 -5
  89. package/src/components/Upload/index.vue +25 -10
  90. package/src/components/Upload/uploadMsg.vue +30 -25
  91. package/src/components/operatingStatus/index.vue +3 -4
  92. package/src/directives/VTitle/index.js +15 -5
  93. package/src/directives/watermark/index.js +140 -56
  94. package/src/i18n.json +146 -18
  95. package/src/index.js +31 -3
  96. package/src/plugins/Sign/CaMap.js +47 -8
  97. package/src/plugins/Sign/Itrus/index.js +1 -1
  98. package/src/plugins/Sign/Itrus/sign_3720.js +2 -1
  99. package/src/plugins/Sign/NetSM3/index.js +20 -11
  100. package/src/plugins/Sign/NetV3/index.js +163 -22
  101. package/src/plugins/Sign/SkfSign/index.js +55 -52
  102. package/src/plugins/Sign/bjca/index.js +229 -9
  103. package/src/plugins/Sign/hnca/index.js +5064 -0
  104. package/src/plugins/Sign/index.js +155 -103
  105. package/src/plugins/Sign/kySign/base64.js +160 -0
  106. package/src/plugins/Sign/kySign/hex.js +92 -0
  107. package/src/plugins/Sign/kySign/index.js +186 -0
  108. package/src/plugins/Sign/kySign/skf.js +937 -0
  109. package/src/plugins/Sign/kySign/test.html +463 -0
  110. package/src/plugins/Sign/sdca/index.js +73 -0
  111. package/src/plugins/Sign/sign.js +72 -52
  112. package/src/plugins/Sign/signV3/InfosecNetSignCNGAgent.min.js +1 -0
  113. package/src/plugins/Sign/signV3/sign.js +187 -0
  114. package/src/plugins/Sign/sign_back.js +172 -0
  115. package/src/utils/accountFormat.js +7 -0
  116. package/src/utils/asyncGetRelaNos.js +79 -46
  117. package/src/utils/axios.js +3 -5
  118. package/src/utils/i18n/index.js +1 -1
  119. package/src/utils/importGlobal.js +23 -12
  120. package/style/fonts/SIMSUN.5e0c362c.ttf +0 -0
  121. package/style/index.css +2 -2
  122. package/theme/blue.css +2 -2
  123. package/theme/cctcRed.css +2 -2
  124. package/theme/fonts/SIMSUN.5e0c362c.ttf +0 -0
  125. package/theme/green.css +2 -2
  126. package/theme/lightBlue.css +2 -2
  127. package/theme/orange.css +2 -2
  128. package/theme/purple.css +2 -2
  129. package/theme/red.css +2 -2
  130. package/theme/yellow.css +2 -2
@@ -0,0 +1,128 @@
1
+ <template>
2
+ <cl-page style="height: 75vh; --table-w: 650px">
3
+ <div class="flex-box" style="height: 100%">
4
+ <el-table
5
+ ref="elTable"
6
+ :data="selectSprList.actNextNodeAssigneeVos"
7
+ row-key="nodeId"
8
+ border
9
+ height="100%"
10
+ style="width: 30%; flex: none"
11
+ @select="sltChange"
12
+ @select-all="sltChange"
13
+ >
14
+ <el-table-column header-align="center" align="left" :label="'审批节点' | $lc">
15
+ <template slot-scope="scope">
16
+ <el-radio v-model="nextEgwOutgoingNodeId" :label="scope.row.nodeId" @change="sltChange(scope.row)">{{
17
+ scope.row.nodeName
18
+ }}</el-radio>
19
+ </template>
20
+ </el-table-column>
21
+ </el-table>
22
+ <div class="flex-column flex-c p-l p-r">
23
+ <i class="el-icon-d-arrow-left m-b"></i>
24
+ <i class="el-icon-d-arrow-right"></i>
25
+ </div>
26
+ <el-table
27
+ ref="personTable"
28
+ :data="nodeTable"
29
+ row-key="uno"
30
+ border
31
+ height="100%"
32
+ style="width: var(--table-w); flex: none"
33
+ @select="personChange"
34
+ @select-all="personChange"
35
+ >
36
+ <el-table-column
37
+ :selectable="handleSelectable"
38
+ :reserve-selection="true"
39
+ type="selection"
40
+ width="46"
41
+ header-align="center"
42
+ align="center"
43
+ />
44
+ <el-table-column prop="uno" :label="'审批人编号' | $lc" header-align="center" align="center" />
45
+ <el-table-column prop="uname" :label="'审批人名称' | $lc" header-align="center" align="center" />
46
+ <el-table-column prop="deptName" :label="'审批人所属部门' | $lc" header-align="center" align="center" />
47
+ </el-table>
48
+ </div>
49
+ <template slot="footer">
50
+ <div class="flex-box m-t m-b" style="margin-left: calc(30% + 50px)">
51
+ <cl-statis-item type="已选合计" :list="[{ label: '笔数', value: personList.length }]" show-w />
52
+ </div>
53
+ <div class="text-c">
54
+ <el-button type="primary" @click="confirmFn">{{ '确定' | $lc }}</el-button>
55
+ <el-button @click="$emit('close')">{{ '取消' | $lc }}</el-button>
56
+ </div>
57
+ </template>
58
+ </cl-page>
59
+ </template>
60
+
61
+ <script>
62
+ import { $lc } from '../../utils/i18n/index'
63
+ import ClPage from '../PageLayout/page.vue'
64
+ import ClStatisItem from '../Statis/statisItem.vue'
65
+ export default {
66
+ components: {
67
+ ClPage,
68
+ ClStatisItem
69
+ },
70
+ props: {
71
+ selectSprList: {
72
+ type: Array,
73
+ default: () => {
74
+ return {
75
+ actNextNodeAssigneeVos: []
76
+ }
77
+ }
78
+ },
79
+ type: {
80
+ type: String,
81
+ default: undefined
82
+ }
83
+ },
84
+ data() {
85
+ return {
86
+ nextEgwOutgoingNodeId: '',
87
+ nodeTable: [],
88
+ selectCheck: true,
89
+ personList: []
90
+ }
91
+ },
92
+ mounted() {
93
+ this.$refs.elTable.clearSelection()
94
+ this.carbonCopyList.forEach((item) => {
95
+ this.$refs.elTable.toggleRowSelection(item, true)
96
+ })
97
+ },
98
+ methods: {
99
+ handleSelectable(row) {
100
+ // 返回 false 禁止选择该行
101
+ return this.selectCheck
102
+ },
103
+ sltChange(row) {
104
+ this.nodeTable = row.actAssigneeVoList
105
+ this.$refs.personTable.clearSelection()
106
+ this.selectCheck = this.selectSprList?.showNextNodeAssignee || false
107
+ },
108
+ personChange(list) {
109
+ this.personList = list
110
+ },
111
+ closeFn(item) {
112
+ this.selectSprList = {
113
+ actNextNodeAssigneeVos: []
114
+ }
115
+ },
116
+ confirmFn() {
117
+ this.$emit('confirm', {
118
+ nextEgwOutgoingNodeId: this.selectSprList?.showNextEgwOutgoingNodeName ? this.nextEgwOutgoingNodeId : undefined,
119
+ nextNodeApproveUnos: this.selectSprList?.showNextNodeAssignee
120
+ ? this.personList.map((item) => item.uno)
121
+ : undefined
122
+ })
123
+ }
124
+ }
125
+ }
126
+ </script>
127
+
128
+ <style></style>
@@ -127,7 +127,7 @@ export default {
127
127
  }
128
128
  axios
129
129
  .post(
130
- '/bems/activiti/online/chdUserInfo',
130
+ '/bems/prod_1.0/user/wfMasterUser/queryPageNoAuth',
131
131
  {
132
132
  data: this.searchObj,
133
133
  ...this.pageObj
@@ -16,6 +16,21 @@
16
16
  </el-radio>
17
17
  </template>
18
18
  </el-table-column>
19
+ <el-table-column :label="'单位名称' | $lc" align="center" show-overflow-tooltip>
20
+ <template slot-scope="{ row }">
21
+ {{ row.memberName }}
22
+ </template>
23
+ </el-table-column>
24
+ <el-table-column :label="'角色名称' | $lc" align="center" show-overflow-tooltip>
25
+ <template slot-scope="{ row }">
26
+ {{ row.roleName }}
27
+ </template>
28
+ </el-table-column>
29
+ <el-table-column :label="'人员名称' | $lc" align="center" show-overflow-tooltip>
30
+ <template slot-scope="{ row }">
31
+ {{ row.userName }}
32
+ </template>
33
+ </el-table-column>
19
34
  <el-table-column :label="'节点名称' | $lc" align="center" show-overflow-tooltip>
20
35
  <template slot-scope="{ row }">
21
36
  {{ row.taskName }}
@@ -25,16 +40,28 @@
25
40
  <template slot-scope="{ row }">{{ row | userF }}</template>
26
41
  </el-table-column>
27
42
  </el-table>
28
- <div slot="footer" class="m-t text-c">
29
- <el-button type="primary" @click="confirmFn">{{ type === 'approvalTo' ? $lc('批准') : $lc('驳回') }}</el-button>
30
- <el-button @click="$emit('close')">{{ '取消' | $lc }}</el-button>
43
+
44
+ <div slot="footer" class="m-t">
45
+ <div v-if="showRetraceFlowC">
46
+ <el-radio-group v-model="isJump" class="flex-column">
47
+ <el-radio label="0">{{ '重走流程' | $lc }}</el-radio>
48
+ <el-radio label="1"
49
+ >{{ '不重走流程' | $lc }}
50
+ <i class="n20-icon-xinxitishi" v-title="tips" style="color: var(--color-warning)"></i
51
+ ></el-radio>
52
+ </el-radio-group>
53
+ </div>
54
+ <div class="text-c">
55
+ <el-button type="primary" @click="confirmFn">{{ type === 'approvalTo' ? $lc('批准') : $lc('驳回') }}</el-button>
56
+ <el-button @click="$emit('close')">{{ '取消' | $lc }}</el-button>
57
+ </div>
31
58
  </div>
32
59
  </cl-page>
33
60
  </template>
34
61
 
35
62
  <script>
36
- import { $lc } from '../../utils/i18n/index'
37
63
  import axios from '../../utils/axios'
64
+ import { $lc } from '../../utils/i18n/index'
38
65
  import ClPage from '../PageLayout/page.vue'
39
66
  export default {
40
67
  components: {
@@ -57,6 +84,10 @@ export default {
57
84
  taskId: {
58
85
  type: String,
59
86
  default: ''
87
+ },
88
+ showRetraceFlow: {
89
+ type: Boolean,
90
+ default: false
60
91
  }
61
92
  },
62
93
  data() {
@@ -66,9 +97,18 @@ export default {
66
97
  },
67
98
  stlV: undefined,
68
99
  list: [],
100
+ isJump: undefined,
69
101
  tableData: []
70
102
  }
71
103
  },
104
+ computed: {
105
+ showRetraceFlowC() {
106
+ return this.showRetraceFlow
107
+ },
108
+ tips() {
109
+ return $lc(`此模式下被回退节点提交后将绕过中间已办节点,造成流程不严谨,谨慎使用!`)
110
+ }
111
+ },
72
112
  mounted() {
73
113
  axios
74
114
  .get(`/bems/activiti/sample/getTaskMoveVos/${this.taskId}/${this.type === 'approvalTo' ? 1 : 0}`, null, {
@@ -97,7 +137,7 @@ export default {
97
137
  this.$message.warning($lc('请选择节点'))
98
138
  return
99
139
  }
100
- this.$emit('confirm', this.stlV)
140
+ this.$emit('confirm', this.stlV, this.isJump)
101
141
  }
102
142
  }
103
143
  }
@@ -1,24 +1,117 @@
1
1
  <template>
2
- <div class="approve-msg-slt">
3
- <el-select
2
+ <div class="approve-msg-slt showAppOpi-tips">
3
+ <!-- <el-select
4
4
  v-model="approveMsgSlt"
5
5
  class="w-100p"
6
6
  style="max-width: 80vw"
7
7
  clearable
8
8
  :multiple="multiple"
9
9
  collapse-tags
10
- :placeholder="'请选择审批意见' | $lc"
10
+ :placeholder="'常用审批意见,选择后将自动填充至下方输入框,您可在此基础上修改' | $lc"
11
11
  @change="changeFn"
12
12
  >
13
13
  <el-option v-for="(item, i) in approveMsgList" :key="i" :label="item.suggestion" :value="item.suggestion" />
14
- </el-select>
14
+ </el-select> -->
15
+
16
+ <el-popover v-model="show" placement="top" width="400" trigger="click">
17
+ <div class="flex-box flex-lr flex-v">
18
+ <div class="flex-box flex-v" style="margin-left: -12px">
19
+ <cl-secondary-tab :init="name" :data="list" />
20
+ <i
21
+ v-title="$lc('常用审批意见,选择后将自动填充至下方输入框,您可在此基础上修改')"
22
+ class="n20-icon-xinxitishi m-b-s"
23
+ style="color: var(--color-text-secondary)"
24
+ ></i>
25
+ </div>
26
+ <div v-if="selectKey === 'zdy'">
27
+ <!-- <el-button type="text" size="small" @click="clickFn('保存为常用语')">{{ $lc('保存为常用语') }}</el-button> -->
28
+ <i v-if="hasZdy" class="n20-icon-shezhi m-l-s shezhi" @click="setSpr = true"></i>
29
+ </div>
30
+ </div>
31
+
32
+ <div style="height: 300px">
33
+ <div v-if="tableData.length > 0" style="height: 100%; overflow-y: auto">
34
+ <p
35
+ v-for="(value, index) in tableData"
36
+ :key="index"
37
+ v-title="value.suggestion"
38
+ class="select"
39
+ type="text"
40
+ size="small"
41
+ @click="selectFn(value)"
42
+ >
43
+ {{ value.suggestion }}
44
+ </p>
45
+ </div>
46
+ <CLEmpty v-else :type="'empty'" :content="$lc('暂无数据')" :height="200" />
47
+ </div>
48
+ <el-link slot="reference" :underline="false" icon="el-icon-chat-dot-round">{{ $lc('常用审批意见') }}</el-link>
49
+ </el-popover>
50
+ <ClDialog v-drag :visible.sync="setSpr" :title="'常用审批意见' | $lc" width="800px" append-to-body top="7.5vh">
51
+ <div class="flex-box flex-r flex-v m-b-s">
52
+ <i
53
+ v-title="$lc('此处只可设置个人常用审批意见,全局需到工作流审批意见设置中设置')"
54
+ class="n20-icon-xinxitishi m-r-s"
55
+ style="color: var(--color-text-secondary)"
56
+ ></i>
57
+ <el-button type="primary" size="mini" @click="clickFn('新增')">{{ $lc('新增') }}</el-button>
58
+ <el-button type="danger" plain size="mini" @click="clickFn('批量删除')">{{ $lc('删除') }}</el-button>
59
+ </div>
60
+ <ClTablePro
61
+ ref="xTable"
62
+ :data="tableDataA"
63
+ :columns="checkColumns"
64
+ :height="'350px'"
65
+ @selection-change-method="handleSelectionChange"
66
+ >
67
+ <vxe-column
68
+ slot="suggestion"
69
+ slot-scope="{ column }"
70
+ v-bind="column"
71
+ :field="column.prop"
72
+ :title="column.label"
73
+ >
74
+ <el-input
75
+ v-model="row.suggestion"
76
+ slot-scope="{ row }"
77
+ placeholder="请输入"
78
+ size="normal"
79
+ clearable
80
+ @change="row.appNoType = 'add'"
81
+ />
82
+ </vxe-column>
83
+ <vxe-column slot="operate" slot-scope="{ column }" v-bind="column" :field="column.prop" :title="column.label">
84
+ <el-button
85
+ slot-scope="{ row, $rowIndex }"
86
+ type="text"
87
+ size="default"
88
+ @click="clickFn('删除', $rowIndex, row)"
89
+ >{{ $lc('删除') }}</el-button
90
+ >
91
+ </vxe-column>
92
+ </ClTablePro>
93
+ <div slot="footer" class="flex-box flex-c flex-v">
94
+ <el-button type="primary" @click="clickFn('保存')">{{ $lc('保存') }}</el-button>
95
+ <el-button plain @click="setSpr = false">{{ $lc('取消') }}</el-button>
96
+ </div>
97
+ </ClDialog>
15
98
  </div>
16
99
  </template>
17
100
 
18
101
  <script>
19
- // import { $lc } from '../../utils/i18n/index'
102
+ import clSecondaryTab from '../SecondaryTab/index.vue'
103
+ import ClDialog from '../Dialog'
104
+ import CLEmpty from '../Empty/index.vue'
105
+ import ClTablePro from '../TablePro/index.vue'
106
+ import { $lc } from '../../utils/i18n/index'
20
107
  import axios from '../../utils/axios'
21
108
  export default {
109
+ components: {
110
+ clSecondaryTab,
111
+ ClDialog,
112
+ CLEmpty,
113
+ ClTablePro
114
+ },
22
115
  props: {
23
116
  taskId: {
24
117
  type: [String, Number],
@@ -35,16 +128,151 @@ export default {
35
128
  },
36
129
  data() {
37
130
  return {
131
+ list: [
132
+ {
133
+ name: $lc('常用审批意见'),
134
+ key: 'zdy'
135
+ }
136
+ /* { name: $lc('全局'), key: 'system' } */
137
+ ],
138
+ name: $lc('常用审批意见'),
139
+ selectKey: 'zdy',
38
140
  approveMsgSlt: [],
39
141
  approveMsgList: [],
40
- multiple: false
142
+ multiple: false,
143
+ setSpr: false,
144
+ tableData: [],
145
+ checkColumns: [
146
+ {
147
+ type: 'checkbox',
148
+ static: 'pre' // 静态不被"显示列"显示的,且最终会被拼接到"显示列"排序后的表格的"前面"
149
+ },
150
+ {
151
+ label: $lc('审批意见'),
152
+ prop: 'suggestion',
153
+ slotName: 'suggestion',
154
+ align: 'left',
155
+ 'show-overflow-tooltip': true
156
+ },
157
+ {
158
+ slotName: 'operate',
159
+ label: $lc('操作'),
160
+ width: '100px',
161
+ static: 'next' // 静态不被"显示列"显示的,且最终会被拼接到"显示列"排序后的表格的"后面"
162
+ }
163
+ ],
164
+ tableDataA: [],
165
+ selectValue: [],
166
+ approveMsgListIsAll: [],
167
+ hasZdy: false,
168
+ show: false,
169
+ deleteList: []
41
170
  }
42
171
  },
43
172
  mounted() {
173
+ this.getAction()
44
174
  this.getData()
45
175
  this.getIsMultiple()
46
176
  },
47
177
  methods: {
178
+ // 查询是否显示审批意见
179
+ getAction() {
180
+ try {
181
+ this.$axios.get('/bems/activiti/actAppOpi/isShowOpiUser', {}, { loading: false, noMsg: true }).then((res) => {
182
+ if (res.data === '1') {
183
+ this.hasZdy = true
184
+ } else {
185
+ this.hasZdy = false
186
+ }
187
+ })
188
+ } catch (error) {
189
+ this.hasZdy = false
190
+ }
191
+ },
192
+ clickFn(type, index, row) {
193
+ let V
194
+ let list
195
+ switch (type) {
196
+ case '保存为常用语':
197
+ this.$axios.post('/bems/activiti/actAppOpi/saveAppOpi', { message: this.message }).then((res) => {
198
+ if (res.code === 200) {
199
+ this.$message.success('保存成功')
200
+ }
201
+ })
202
+ break
203
+ case '保存':
204
+ V = this.tableDataA.some((d) => !d.suggestion)
205
+ if (V) {
206
+ return this.$message.error('审批意见不能为空')
207
+ }
208
+ list = []
209
+ this.tableDataA.forEach((d) => {
210
+ d.appNoType && list.push(d)
211
+ })
212
+ this.deleteList.forEach((d) => {
213
+ d.appNoType && list.push(d)
214
+ })
215
+ this.$axios.post('/bems/activiti/actAppOpi/saveList', list).then((res) => {
216
+ if (res.code === 200) {
217
+ this.$message.success('保存成功')
218
+ this.setSpr = false
219
+ this.show = true
220
+ this.getData()
221
+ }
222
+ })
223
+ break
224
+ case '新增':
225
+ this.tableDataA.push({
226
+ appNoType: 'add',
227
+ suggestion: '',
228
+ key: this.tableDataA.length,
229
+ isAll: '2',
230
+ isEnable: '1',
231
+ belongUserno: sessionStorage.getItem('userNo')
232
+ })
233
+ break
234
+ case '删除':
235
+ if (row.id) this.deleteList.push({ ...row, appNoType: 'delte' })
236
+ this.tableDataA.splice(index, 1)
237
+ break
238
+ case '批量删除':
239
+ if (this.selectValue.length === 0) {
240
+ this.$message.warning('请选择要删除的数据')
241
+ return false
242
+ }
243
+ this.selectValue.forEach((item) => {
244
+ if (item.id) this.deleteList.push({ ...item, appNoType: 'delte' })
245
+ })
246
+ this.tableDataA = this.tableDataA.filter((item) => !this.selectValue.includes(item))
247
+ break
248
+ case '编辑':
249
+ break
250
+ default:
251
+ break
252
+ }
253
+ },
254
+ handleSelectionChange(value) {
255
+ this.selectValue = value
256
+ },
257
+ selectFn(value) {
258
+ if (this.multiple && this.message) {
259
+ this.approveMsgSlt = this.message + '\n' + value.suggestion
260
+ } else {
261
+ this.approveMsgSlt = value.suggestion
262
+ }
263
+ this.show = false
264
+ this.changeFn()
265
+ },
266
+ /* clickTab(item) {
267
+ this.name = item.name
268
+ this.selectKey = item.key
269
+ if (item.key === 'zdy') {
270
+ this.tableData = this.approveMsgList
271
+ this.tableDataA = JSON.parse(JSON.stringify(this.tableData))
272
+ } else {
273
+ this.tableData = this.approveMsgListIsAll
274
+ }
275
+ }, */
48
276
  // 审批意见选择是否单选,1是 0 否
49
277
  getIsMultiple() {
50
278
  axios
@@ -56,13 +284,18 @@ export default {
56
284
  getData() {
57
285
  if (this.andUser) {
58
286
  axios.post('/bems/activiti/actAppOpi/queryAppOpiAndUser', null, { loading: false }).then(({ data }) => {
59
- this.approveMsgList = this.getOnlyData(data || [])
287
+ this.tableDataA = this.getOnlyData(JSON.parse(JSON.stringify(data)))?.filter((item) => item.isAll !== '1')
288
+ this.tableData = this.getOnlyData(data)
60
289
  })
61
290
  } else {
62
291
  axios.post('/bems/activiti/actAppOpi/queryAppOpi', null, { loading: false }).then(({ data }) => {
63
- this.approveMsgList = this.getOnlyData(data.list || [])
292
+ this.tableDataA = this.getOnlyData(JSON.parse(JSON.stringify(data.list || [])))?.filter(
293
+ (item) => item.isAll !== '1'
294
+ )
295
+ this.tableData = this.getOnlyData(data.list || [])
64
296
  })
65
297
  }
298
+ this.deleteList = []
66
299
  },
67
300
  getOnlyData(data) {
68
301
  let result = []
@@ -93,10 +326,34 @@ export default {
93
326
  </script>
94
327
 
95
328
  <style>
329
+ .showAppOpi-tips {
330
+ text-align: right;
331
+ margin-right: 60px;
332
+ margin-top: -24px;
333
+ }
96
334
  .approve-msg-slt .el-select__tags {
97
335
  flex-wrap: nowrap;
98
336
  }
99
337
  .approve-msg-slt .el-tag {
100
338
  max-width: calc(100% - 36px);
101
339
  }
340
+ .shezhi,
341
+ .select {
342
+ cursor: pointer;
343
+ margin: 6px 0;
344
+ }
345
+ .shezhi:hover {
346
+ color: #409eff;
347
+ }
348
+ .select {
349
+ color: #409eff;
350
+ display: inline-block;
351
+ white-space: nowrap;
352
+ overflow: hidden;
353
+ text-overflow: ellipsis;
354
+ width: 100%;
355
+ }
356
+ .select:hover {
357
+ background-color: #f8f8f8;
358
+ }
102
359
  </style>