cloud-web-corejs 1.0.281 → 1.1.0-dev.4

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 (158) hide show
  1. package/package.json +6 -2
  2. package/src/components/VabUpload/image-viewer.vue +442 -442
  3. package/src/components/VabUpload/index.vue +44 -2
  4. package/src/components/VabUpload/mixins.js +126 -19
  5. package/src/components/VabUpload/view.vue +247 -209
  6. package/src/components/baseTabs/mixins.js +181 -181
  7. package/src/components/bizTab/BizBillActions.vue +129 -0
  8. package/src/components/bizTab/BizTabListPage.vue +391 -0
  9. package/src/components/bizTab/README.md +378 -0
  10. package/src/components/bizTab/billTableUtil.js +48 -0
  11. package/src/components/bizTab/billValidators.js +136 -0
  12. package/src/components/bizTab/bizBillDetailMixin.js +705 -0
  13. package/src/components/bizTab/index.js +24 -0
  14. package/src/components/excelExport/exportFieldDialog.vue +23 -12
  15. package/src/components/excelExport/exportItemConfigUtil.js +30 -0
  16. package/src/components/excelExport/mixins.js +3 -3
  17. package/src/components/mobile/statusTag/mixins.js +1 -61
  18. package/src/components/mobile/wf/content.vue +1662 -1556
  19. package/src/components/mobile/wf/mixins/wfModifyDialogMixin.js +8 -6
  20. package/src/components/table/config.js +78 -78
  21. package/src/components/table/index.js +1276 -1276
  22. package/src/components/table/plugins/cell-area/index.js +1055 -0
  23. package/src/components/table/plugins/cell-area/index.scss +77 -0
  24. package/src/components/table/plugins/cell-area/util.js +224 -0
  25. package/src/components/table/tableForm.vue +330 -330
  26. package/src/components/table/tableFormMixin.js +318 -318
  27. package/src/components/table/vxeFilter/index.js +163 -163
  28. package/src/components/table/vxeFilter/mixin.js +316 -316
  29. package/src/components/wf/content.vue +1188 -1188
  30. package/src/components/wf/wf.js +40 -20
  31. package/src/components/wf/wfActionDropdown.vue +1 -1
  32. package/src/components/wf/wfActionItems.js +1 -1
  33. package/src/components/xform/docs/2026-08 xform H5 P0 /345/256/236/347/216/260/350/247/204/346/240/274.md" +528 -0
  34. package/src/components/xform/docs/2026-08 xform H5 P1 /345/256/236/347/216/260/350/247/204/346/240/274.md" +412 -0
  35. package/src/components/xform/docs/2026-08 xform H5 P2 /345/256/236/347/216/260/350/247/204/346/240/274.md" +287 -0
  36. package/src/components/xform/docs/2026-08 xform /347/247/273/345/212/250/347/253/257/345/270/203/345/261/200/345/257/271/351/275/220 bill_setting /346/226/271/346/241/210.md" +400 -0
  37. package/src/components/xform/form-designer/designer.js +15 -0
  38. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +269 -269
  39. package/src/components/xform/form-designer/form-widget/container-widget/detail-temp-widget.vue +132 -0
  40. package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +250 -250
  41. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +319 -320
  42. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +365 -365
  43. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +554 -555
  44. package/src/components/xform/form-designer/form-widget/dialog/vabSearchDialog.vue +409 -409
  45. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +150 -132
  46. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +114 -114
  47. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +154 -154
  48. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +47 -1
  49. package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +178 -178
  50. package/src/components/xform/form-designer/form-widget/field-widget/mixins/time-limit-mixin.js +77 -77
  51. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +6 -0
  52. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +139 -139
  53. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +106 -106
  54. package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +134 -134
  55. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +1 -0
  56. package/src/components/xform/form-designer/setting-panel/form-setting.vue +39 -39
  57. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +10 -10
  58. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/exportItemColumns-dialog.vue +438 -432
  59. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +2103 -2103
  60. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-temp-edito.vue +90 -0
  61. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue +82 -82
  62. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +19 -5
  63. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +8 -8
  64. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +137 -137
  65. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +237 -237
  66. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue +43 -43
  67. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue +43 -43
  68. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +96 -96
  69. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +51 -0
  70. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue +42 -42
  71. package/src/components/xform/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue +43 -43
  72. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +158 -158
  73. package/src/components/xform/form-designer/setting-panel/property-editor/h5Span-editor.vue +51 -0
  74. package/src/components/xform/form-designer/setting-panel/property-editor/itemStyle-editor.vue +39 -0
  75. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +188 -188
  76. package/src/components/xform/form-designer/setting-panel/property-editor/styleTempClass-editor.vue +51 -0
  77. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +347 -347
  78. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +4 -0
  79. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +59 -3
  80. package/src/components/xform/form-render/container-item/data-table-mixin.js +151 -93
  81. package/src/components/xform/form-render/container-item/detail-h5-item.vue +183 -32
  82. package/src/components/xform/form-render/container-item/detail-temp-item.vue +110 -0
  83. package/src/components/xform/form-render/container-item/h5-card-pane-item.vue +160 -140
  84. package/src/components/xform/form-render/container-item/list-h5-item.vue +1688 -1700
  85. package/src/components/xform/form-render/index.vue +153 -147
  86. package/src/components/xform/form-render/indexMixin.js +12 -0
  87. package/src/components/xform/lang/en-US.js +10 -0
  88. package/src/components/xform/lang/zh-CN.js +12 -0
  89. package/src/components/xform/mixins/defaultHandle.js +707 -707
  90. package/src/components/xform/styles/h5.scss +1992 -0
  91. package/src/components/xform/utils/textMaskUtil.js +182 -179
  92. package/src/components/xform/utils/treeTableUtil.js +1292 -1265
  93. package/src/components/xform/utils/util.js +56 -11
  94. package/src/index.js +9 -4
  95. package/src/layout/components/extractedCode/viewDialog.vue +7 -7
  96. package/src/router/index.js +21 -0
  97. package/src/router/modules/customer.js +71 -14
  98. package/src/store/modules/permission.js +17 -18
  99. package/src/utils/pdfUtil.js +429 -429
  100. package/src/utils/resolveViewComponent.js +142 -16
  101. package/src/views/bd/project/branch/bd_branch/edit.vue +145 -0
  102. package/src/views/bd/project/branch/bd_branch/list.vue +72 -0
  103. package/src/views/bd/project/branch/bd_branch/menuKindDialog.vue +106 -0
  104. package/src/views/bd/project/branch/bd_branch/mixins/edit.js +189 -0
  105. package/src/views/bd/project/branch/bd_branch/mixins/list.js +124 -0
  106. package/src/views/bd/project/branch/bd_branch/mixins/menuKindDialog.js +85 -0
  107. package/src/views/bd/project/branch/form_script/list.vue +31 -0
  108. package/src/views/bd/project/branch/form_template/list.vue +30 -0
  109. package/src/views/bd/project/branch/menu_kind/list.vue +31 -0
  110. package/src/views/bd/project/common/form_script/list.vue +16 -0
  111. package/src/views/bd/project/common/form_template/list.vue +15 -0
  112. package/src/views/bd/project/common/menu_kind/list.vue +15 -0
  113. package/src/views/bd/project/core/branchContext.js +100 -0
  114. package/src/views/bd/project/core/branchPage.js +78 -0
  115. package/src/views/bd/project/core/branchPageWrap.vue +225 -0
  116. package/src/views/bd/project/core/branchScope.js +44 -0
  117. package/src/views/bd/project/core/branchSearchPage.js +285 -0
  118. package/src/views/bd/project/core/branchSelect.vue +85 -0
  119. package/src/views/bd/project/core/branchTreeBar.vue +81 -0
  120. package/src/views/bd/project/core/httpBranchPatch.js +58 -0
  121. package/src/views/bd/project/datatable/menu_kind/list.vue +15 -0
  122. package/src/views/bd/project/datatable/table_model/list.vue +15 -0
  123. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -174
  124. package/src/views/bd/setting/table_model/edit.vue +1066 -1066
  125. package/src/views/bd/setting/table_model/mixins/edit.js +1455 -1455
  126. package/src/views/bd/setting/table_model/mixins/zdDialog.js +148 -148
  127. package/src/views/demo/bizTab/bill/billConfig.js +41 -0
  128. package/src/views/demo/bizTab/bill/detail.vue +436 -0
  129. package/src/views/demo/bizTab/bill/list.vue +288 -0
  130. package/src/views/demo/bizTab/bill/productDialog.vue +176 -0
  131. package/src/views/demo/bizTab/simple/billApi.js +123 -0
  132. package/src/views/demo/bizTab/simple/detail.vue +407 -0
  133. package/src/views/demo/bizTab/simple/list.vue +217 -0
  134. package/src/views/demo/bizTab/standalone/index.vue +121 -0
  135. package/src/views/demo/bizTab/wf/billConfig.js +44 -0
  136. package/src/views/demo/bizTab/wf/detail.vue +661 -0
  137. package/src/views/demo/bizTab/wf/list.vue +242 -0
  138. package/src/views/support/form-dialog-demo/demoPickerDialog.vue +72 -0
  139. package/src/views/support/form-dialog-demo/index.vue +537 -0
  140. package/src/views/user/file_view_ins/list.vue +3 -3
  141. package/src/views/user/home/index.vue +8 -6
  142. package/src/views/user/home/wjl/content.vue +1569 -0
  143. package/src/views/user/notify_message/dialog.vue +7 -5
  144. package/src/views/user/outLink/cc_form_view.vue +188 -0
  145. package/src/views/user/outLink/form_view.vue +2 -2
  146. package/src/views/user/outLink/index.vue +4 -4
  147. package/src/views/user/outLink/view.vue +3 -3
  148. package/src/views/user/role/edit.vue +632 -632
  149. package/src/views/user/role/list.vue +260 -260
  150. package/src/views/user/wf/iframe/index.vue +3 -3
  151. package/src/views/user/wf/iframe/index2.vue +3 -3
  152. package/src/views/user/wf/wf_manage/list.vue +1112 -1116
  153. package/src/views/user/wf/wf_manage/list2.vue +9 -13
  154. package/src/views/user/wf/wf_manage/wfContentDialog.vue +8 -5
  155. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-menu-widget.vue +0 -106
  156. package/src/components/xform/form-designer/form-widget/field-widget/tableexportbuttonwidget.vue +0 -99
  157. package/src/components/xform/form-render/container-item/list-h5-item2.vue +0 -1340
  158. package/src/utils/wf.js +0 -766
@@ -1,1188 +1,1188 @@
1
- <template>
2
- <baseTabPane
3
- :label="$t2('流程信息', 'components.wf.wfInfo')"
4
- :showFold="showWfFold"
5
- :defaultShowContent="showWfContent"
6
- v-if="!isHideWf"
7
- >
8
- <template #default>
9
- <!-- 审批按钮条:标题栏那份挂上后(headerActionsMounted)整条 v-show 藏掉。
10
- 用 v-show 而不是 v-if,是为了保住 addOpinionBtn——下拉里「补充意见」走的是
11
- $refs.addOpinionBtn.openDialog()。开了 wfActionInHeaderEnabled 时,详情标题栏
12
- 另挂一份(wfActionDropdown.vue):通过/驳回/撤回平铺,其余收进「更多」下拉。 -->
13
- <div
14
- ref="wfActionBar"
15
- style="margin: -36px 0 8px 124px; position: relative; z-index: 2; height: 28px"
16
- v-if="!wfConfig.hiddenAllButton"
17
- v-show="!headerActionsMounted"
18
- >
19
- <el-button
20
- type="success"
21
- class="button-sty"
22
- @click="openAgreeDialog"
23
- v-show="wfInfo.toSubmit"
24
- icon="iconfont icon-tongguo"
25
- >{{ $t2("通过", "components.wf.agree") }}
26
- </el-button>
27
- <el-button
28
- type="warning"
29
- class="button-sty"
30
- @click="openManualDialog"
31
- v-show="wfInfo.toInterrupt"
32
- icon="iconfont icon-caozuozhongduan"
33
- >{{ $t2("中断", "components.wf.manual") }}
34
- </el-button>
35
- <el-button
36
- type="danger"
37
- class="button-sty"
38
- @click="rejectWfTask"
39
- v-show="wfInfo.toReject"
40
- icon="iconfont icon-a-bohui1"
41
- >{{ $t2("驳回", "components.wf.reject") }}
42
- </el-button>
43
- <el-button
44
- type="primary"
45
- class="button-sty"
46
- @click="openChangeWfForm"
47
- v-show="
48
- wfInfo.toTransfer === null || wfInfo.toTransfer === undefined
49
- ? wfInfo.toSubmit
50
- : wfInfo.toTransfer
51
- "
52
- icon="iconfont icon-zhuanban"
53
- >{{ $t2("转办", "components.wf.transfer") }}
54
- </el-button>
55
- <el-button
56
- type="primary"
57
- class="button-sty"
58
- @click="openUrgingDialog"
59
- v-show="wfInfo.toInterrupt"
60
- icon="iconfont icon-cuiban"
61
- >{{ $t2("催办", "components.wf.urging") }}
62
- </el-button>
63
- <el-button
64
- type="primary"
65
- class="button-sty"
66
- @click="openAddIncreaseSign"
67
- v-show="increaseSignEnabled && wfInfo.toAddIncreaseSign"
68
- icon="el-icon-plus"
69
- >{{ $t2("加签", "components.wf.addIncreaseSign") }}
70
- </el-button>
71
- <el-button
72
- type="primary"
73
- class="button-sty"
74
- @click="openDeleteTaskUserDialog"
75
- v-show="increaseSignEnabled && wfInfo.toDeleteIncreaseSign"
76
- icon="el-icon-delete"
77
- >{{ $t2("减签", "components.wf.deleteIncreaseSign") }}
78
- </el-button>
79
- <el-button
80
- type="primary"
81
- class="button-sty"
82
- @click="openTalkDialog()"
83
- icon="el-icon-chat-dot-square"
84
- v-if="toTalk && wfInfo.toLinkup"
85
- >
86
- {{ $t2("沟通", "components.wf.talk") }}
87
- </el-button>
88
- <el-button
89
- type="primary"
90
- class="button-sty"
91
- @click="openSetCandidateDialog(null)"
92
- v-show="wfInfo.toSetCandidate"
93
- icon="el-icon-user"
94
- >{{ $t2("修改候选人", "components.wf.setCandidate") }}
95
- </el-button>
96
- <el-button
97
- type="danger"
98
- class="button-sty"
99
- @click="openRevokeDialog(null)"
100
- v-show="wfInfo.toRevoke"
101
- icon="el-icon-document-delete"
102
- >{{ $t2("撤回", "components.wf.revoke") }}
103
- </el-button>
104
- <addOpinionButton
105
- v-if="showAddOpinionButton"
106
- ref="addOpinionBtn"
107
- @confirm="reloadContent()"
108
- :wfInfo="wfInfo"
109
- :wfSendTaskId="wfSendTaskId"
110
- :current_prefix="current_prefix"
111
- ></addOpinionButton>
112
- <el-button
113
- type="primary"
114
- class="button-sty"
115
- @click="openWfFlowEleScriptDialog"
116
- v-if="wfInfo.wfAdmin"
117
- icon="el-icon-edit"
118
- >{{ $t1("修改脚本") }}
119
- </el-button>
120
- </div>
121
- <div class="title-name">
122
- <b>
123
- <em>{{ $t2("流程主题", "components.wf.theme") }}:</em>
124
- {{ wfInfo.name }}
125
- </b>
126
- <span v-html="wfInfo.statusStr" class="status"></span>
127
- </div>
128
- <div
129
- class="title-second"
130
- @click="showFlowImg = !showFlowImg"
131
- style="margin: 14px 0 24px; line-height: 29px; cursor: pointer"
132
- >
133
- <b>{{ $t2("流程图", "components.wf.wfImage") }}</b>
134
- <div class="fr" v-if="showFlowImg == true" style="font-weight: 400">
135
- <span>{{ $t2("收起", "components.wf.collapse") }}</span>
136
- <i class="el-icon-arrow-up"></i>
137
- </div>
138
- <div class="fr" v-else style="font-weight: 400">
139
- <span>{{ $t2("展开", "components.wf.expand") }}</span>
140
- <i class="el-icon-arrow-down"></i>
141
- </div>
142
- </div>
143
- <div class="flow-tree" style="padding-right: 0" v-show="showFlowImg == true">
144
- <div class="flow-box">
145
- <img :src="wfImage" />
146
- <el-tooltip
147
- :enterable="false"
148
- class="item"
149
- effect="dark"
150
- :content="$t2('放大', 'components.wf.enlarge')"
151
- placement="bottom"
152
- >
153
- <i
154
- class="el-icon-zoom-in btn-magnifier"
155
- @click="$window.open(wfImage)"
156
- style="right: 0"
157
- ></i>
158
- </el-tooltip>
159
- </div>
160
- </div>
161
- <div v-show="showWfInfoTab">
162
- <div class="title-tab">
163
- <div>
164
- <b :class="{ on: tabIndex == '1' }" @click="tabIndex = '1'">{{
165
- $t2("任务情况", "components.wf.taskInfo")
166
- }}</b>
167
- <b :class="{ on: tabIndex == '2' }" @click="tabIndex = '2'" v-if="toTalk">{{
168
- $t2("流程沟通", "components.wf.wfTalk")
169
- }}</b>
170
- <b
171
- :class="{ on: tabIndex == '4' }"
172
- @click="tabIndex = '4'"
173
- v-if="showCandidate"
174
- >{{ $t1("节点候选人") }}</b
175
- >
176
- <b
177
- :class="{ on: tabIndex == '3' }"
178
- @click="tabIndex = '3'"
179
- v-if="showAllWfOpinon"
180
- >{{ $t2("全部任务情况", "components.wf.allTaskInfo") }}</b
181
- >
182
- </div>
183
- </div>
184
- <div v-show="tabIndex == '1'">
185
- <div class="title-five"><b>任务流程</b></div>
186
- <div class="task-situation" style="padding-left: 14px">
187
- <div
188
- class="item"
189
- v-for="wftaskLineData in wftaskData"
190
- :key="wftaskLineData.id"
191
- >
192
- <div class="time">
193
- {{
194
- wftaskLineData.approveTime
195
- ? wftaskLineData.approveTime.substring(0, 10)
196
- : ""
197
- }}
198
- <br />
199
- {{
200
- wftaskLineData.approveTime
201
- ? wftaskLineData.approveTime.substring(11)
202
- : ""
203
- }}
204
- </div>
205
- <div
206
- class="status"
207
- :class="
208
- taskStatuses[wftaskLineData.type]
209
- ? taskStatuses[wftaskLineData.type].class
210
- : ''
211
- "
212
- >
213
- {{
214
- taskStatuses[wftaskLineData.type]
215
- ? taskStatuses[wftaskLineData.type].value
216
- : null
217
- }}
218
- </div>
219
- <i class="circle"></i>
220
- <div class="info">
221
- <p>
222
- <span class="name">{{ wftaskLineData.taskName }}</span>
223
- <span
224
- >{{ $t2("执行人", "components.wf.approverName") }}:{{
225
- wftaskLineData.approverName
226
- }}</span
227
- >
228
- <span>
229
- {{ $t2("候选人", "components.wf.candidateName") }}:
230
- <span>
231
- <span style="float: left; width: auto; margin-right: 10px">{{
232
- wftaskLineData.candidateNames
233
- }}</span>
234
- <setCandidateButton
235
- v-if="wftaskLineData.flag == 1"
236
- style="float: left; width: auto"
237
- :current_prefix="current_prefix"
238
- :wfInfo="wfInfo"
239
- :checkRow="wftaskLineData"
240
- @confirm="reloadContent()"
241
- ></setCandidateButton>
242
- </span>
243
- </span>
244
- </p>
245
- <p class="t">
246
- <span class="t1">{{ $t2("备注/意见", "components.wf.opinion") }}:</span
247
- ><span>{{ wftaskLineData.opinion }}</span>
248
- </p>
249
- </div>
250
- </div>
251
- </div>
252
- <div class="title-five" v-if="showWfMemo">
253
- <b>{{ $t1("发起人附言") }}</b>
254
- <el-button
255
- v-if="wfInfo.toAddMemo && !wfConfig.hiddenAllButton"
256
- class="button-sty"
257
- icon="el-icon-plus"
258
- @click="openWfMemoDialog()"
259
- type="primary"
260
- >{{ $t1("新增") }}</el-button
261
- >
262
- </div>
263
- <div class="postscript-box">
264
- <div class="item" v-for="(item, index) in wfMemoData" :key="index">
265
- <div class="txt" style="white-space: pre-wrap">{{ item.content }}</div>
266
- <div
267
- class="attach-box"
268
- v-if="item.attachmentDTOs && item.attachmentDTOs.length"
269
- >
270
- <baseUpload
271
- accept="file"
272
- multi="true"
273
- :edit="false"
274
- :widgetSize="1"
275
- :file.sync="item.attachmentDTOs"
276
- ></baseUpload>
277
- </div>
278
- <div class="time">{{ item.createDate }}</div>
279
- </div>
280
- </div>
281
- </div>
282
- <div class="task-situation" v-show="toTalk && tabIndex == '2'">
283
- <vxe-grid
284
- ref="table-linkup"
285
- :auto-resize="true"
286
- v-bind="linkupOption"
287
- @resizable-change="$vxeTableUtil.onColumnWitchChange"
288
- @custom="$vxeTableUtil.customHandle"
289
- >
290
- <template #form>
291
- <div style="margin-bottom: 8px" class="clearfix">
292
- <div class="fl">
293
- <el-button
294
- type="primary"
295
- class="button-sty"
296
- @click="openTalkDialog()"
297
- icon="el-icon-chat-dot-square"
298
- v-if="wfInfo.toLinkup && !wfConfig.hiddenAllButton"
299
- >{{ $t2("沟通", "components.wf.talk") }}
300
- </el-button>
301
- </div>
302
- <div class="fr">
303
- <!-- <vxe-button status="warning" icon="el-icon-search" class="button-sty" @click="searchEvent">搜索
304
- </vxe-button>-->
305
- </div>
306
- </div>
307
- </template>
308
- <template #sender="{ row }">
309
- <a
310
- href="javascript:void(0);"
311
- class="a-link"
312
- @click="openTalkDialog(row.sender, row.senderName, null, null, row.id)"
313
- v-if="row.replyToSender"
314
- >
315
- <el-tooltip
316
- :enterable="false"
317
- effect="dark"
318
- :content="$t2('沟通', 'components.wf.talk')"
319
- placement="top"
320
- popper-class="tooltip-skin"
321
- >
322
- <div>
323
- <i class="el-icon-chat-dot-square"></i>
324
- <span>{{ row.senderName }}</span>
325
- </div>
326
- </el-tooltip>
327
- </a>
328
- <span v-else>{{ row.senderName }}</span>
329
- </template>
330
- <template #receiver="{ row }">
331
- <a
332
- href="javascript:void(0);"
333
- class="a-link"
334
- @click="
335
- openTalkDialog(row.receiver, row.receiverName, null, null, row.id)
336
- "
337
- v-if="row.replyToReceiver"
338
- >
339
- <el-tooltip
340
- :enterable="false"
341
- effect="dark"
342
- :content="$t2('沟通', 'components.wf.talk')"
343
- placement="top"
344
- popper-class="tooltip-skin"
345
- >
346
- <div>
347
- <i class="el-icon-chat-dot-square"></i>
348
- <span>{{ row.receiverName }}</span>
349
- </div>
350
- </el-tooltip>
351
- </a>
352
- <span v-else>{{ row.receiverName }}</span>
353
- </template>
354
- <template #operate="{ row }">
355
- <a
356
- href="javascript:void(0);"
357
- class="a-link"
358
- style="font-weight: bold; text-decoration: underline"
359
- @click="cancelTalk(row)"
360
- v-if="row.toCancel"
361
- >
362
- <el-tooltip
363
- :enterable="false"
364
- effect="dark"
365
- :content="$t2('取消', 'system.button.cancel')"
366
- placement="top"
367
- popper-class="tooltip-skin"
368
- >
369
- <div class="vxe-grid">
370
- <i class="el-icon-document-delete"></i>
371
- <span>{{ $t2("取消", "system.button.cancel") }}</span>
372
- </div>
373
- </el-tooltip>
374
- </a>
375
- </template>
376
- </vxe-grid>
377
- </div>
378
- <div
379
- class="task-situation"
380
- v-show="showAllWfOpinon && tabIndex == '3'"
381
- style="max-height: 500px; overflow: hidden auto"
382
- >
383
- <div
384
- class="item"
385
- v-for="wftaskLineData in allWfTaskOpinions"
386
- :key="'allWfTaskOpinions' + wftaskLineData.id"
387
- >
388
- <div class="time">
389
- {{
390
- wftaskLineData.approveTime
391
- ? wftaskLineData.approveTime.substring(0, 10)
392
- : ""
393
- }}
394
- <br />
395
- {{
396
- wftaskLineData.approveTime ? wftaskLineData.approveTime.substring(11) : ""
397
- }}
398
- </div>
399
- <div
400
- class="status"
401
- :class="
402
- taskStatuses[wftaskLineData.type]
403
- ? taskStatuses[wftaskLineData.type].class
404
- : ''
405
- "
406
- >
407
- {{
408
- taskStatuses[wftaskLineData.type]
409
- ? taskStatuses[wftaskLineData.type].value
410
- : null
411
- }}
412
- </div>
413
- <i class="circle"></i>
414
- <div class="info">
415
- <p>
416
- <span class="name">{{ wftaskLineData.taskName }}</span>
417
- <span
418
- >{{ $t2("执行人", "components.wf.approverName") }}:{{
419
- wftaskLineData.approverName
420
- }}</span
421
- >
422
- <span>
423
- {{ $t2("候选人", "components.wf.candidateName") }}:
424
- <span class="">{{ wftaskLineData.candidateNames }}</span>
425
- </span>
426
- </p>
427
- <p class="t">
428
- <span class="t1">{{ $t2("备注/意见", "components.wf.opinion") }}:</span
429
- ><span>{{ wftaskLineData.opinion }}</span>
430
- </p>
431
- </div>
432
- </div>
433
- </div>
434
- <template v-if="showCandidate">
435
- <div v-show="tabIndex == '4'">
436
- <div style="width: 800px">
437
- <vxe-grid
438
- ref="table-candidate"
439
- v-bind="candidateOption"
440
- :data="candidateDatas"
441
- @resizable-change="$vxeTableUtil.onColumnWitchChange"
442
- @custom="$vxeTableUtil.customHandle"
443
- ></vxe-grid>
444
- </div>
445
- </div>
446
- </template>
447
- </div>
448
- <!--沟通-->
449
- <el-dialog
450
- v-if="showTalkDialog"
451
- :visible.sync="showTalkDialog"
452
- :modal-append-to-body="false"
453
- :close-on-click-modal="false"
454
- :modal="false"
455
- custom-class="dialog-style wf-dialog"
456
- :append-to-body="true"
457
- v-el-drag-dialog
458
- v-el-dialog-center
459
- >
460
- <template #title>
461
- <span class="el-dialog__title"
462
- >{{ $t2("沟通", "components.wf.talk")
463
- }}<span style="margin-left: 10px; margin-right: 10px">—</span
464
- ><b class="f-red" style="font-size: 12px"
465
- >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
466
- ></span
467
- >
468
- </template>
469
- <el-form :model="talkForm">
470
- <div id="containt" style="height: 500px">
471
- <table class="table-detail">
472
- <tbody>
473
- <tr>
474
- <th>
475
- <span class="t">
476
- {{ $t2("接收人", "components.wf.receiverName") }}
477
- </span>
478
- </th>
479
- <td>
480
- <el-form-item field="receiverName">
481
- <el-input
482
- class="search-input"
483
- max="200"
484
- v-model="talkForm.receiverName"
485
- @clear="
486
- talkForm.receiver = null;
487
- talkForm.replyId = null;
488
- $forceUpdate();
489
- "
490
- :placeholder="$t2('接收人', 'components.wf.receiverName')"
491
- v-el-readonly
492
- clearable
493
- :disabled="!!talkForm.replyId"
494
- >
495
- <i
496
- slot="suffix"
497
- class="el-input__icon el-icon-search"
498
- @click="openTalkUserDialog"
499
- ></i>
500
- </el-input>
501
- </el-form-item>
502
- </td>
503
- </tr>
504
- <tr>
505
- <th>
506
- <span class="t">
507
- {{ $t2("沟通内容", "components.wf.talkContent") }}
508
- </span>
509
- </th>
510
- <td>
511
- <el-form-item field="content">
512
- <el-input
513
- type="textarea"
514
- :rows="8"
515
- :placeholder="
516
- $t2('沟通内容', 'components.wf.talkContentPlaceholder')
517
- "
518
- v-model="talkForm.content"
519
- ></el-input>
520
- </el-form-item>
521
- </td>
522
- </tr>
523
- <tr>
524
- <th>
525
- <span class="t">
526
- {{ $t2("沟通资料", "components.wf.talkAttachment") }}
527
- </span>
528
- </th>
529
- <td>
530
- <baseUpload
531
- accept="file"
532
- multi="true"
533
- :file.sync="talkForm.attachmentDTOs"
534
- ></baseUpload>
535
- </td>
536
- </tr>
537
- </tbody>
538
- </table>
539
- </div>
540
- </el-form>
541
- <span slot="footer" class="dialog-footer">
542
- <el-button
543
- type="primary"
544
- plain
545
- class="button-sty"
546
- @click="showTalkDialog = false"
547
- >
548
- <i class="el-icon-close el-icon"></i>
549
- {{ $t2("取 消", "system.button.cancel2") }}
550
- </el-button>
551
- <el-button type="primary" @click="submitTalkForm" class="button-sty">
552
- <i class="el-icon-check el-icon"></i>
553
- {{ $t2("确 定", "system.button.confirm2") }}
554
- </el-button>
555
- </span>
556
- </el-dialog>
557
-
558
- <!--发起人附言-->
559
- <el-dialog
560
- v-if="showWfMemoDialog"
561
- :visible.sync="showWfMemoDialog"
562
- :modal-append-to-body="false"
563
- :close-on-click-modal="false"
564
- :modal="false"
565
- custom-class="dialog-style wf-dialog"
566
- :append-to-body="true"
567
- v-el-drag-dialog
568
- v-el-dialog-center
569
- >
570
- <template #title>
571
- <span class="el-dialog__title"
572
- >{{ $t1("发起人附言")
573
- }}<span style="margin-left: 10px; margin-right: 10px">—</span
574
- ><b class="f-red" style="font-size: 12px"
575
- >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
576
- ></span
577
- >
578
- </template>
579
- <el-form :model="wfMemoForm">
580
- <div id="containt" style="height: 500px">
581
- <table class="table-detail">
582
- <tbody>
583
- <tr>
584
- <th>
585
- <span class="t">
586
- {{ $t1("内容") }}
587
- </span>
588
- </th>
589
- <td>
590
- <el-form-item field="content">
591
- <el-input
592
- type="textarea"
593
- :rows="8"
594
- :placeholder="$t1('内容')"
595
- v-model="wfMemoForm.content"
596
- ></el-input>
597
- </el-form-item>
598
- </td>
599
- </tr>
600
- <tr>
601
- <th>
602
- <span class="t">
603
- {{ $t1("附件") }}
604
- </span>
605
- </th>
606
- <td>
607
- <baseUpload
608
- accept="file"
609
- multi="true"
610
- :file.sync="wfMemoForm.attachmentDTOs"
611
- ></baseUpload>
612
- </td>
613
- </tr>
614
- </tbody>
615
- </table>
616
- </div>
617
- </el-form>
618
- <span slot="footer" class="dialog-footer">
619
- <el-button
620
- type="primary"
621
- plain
622
- class="button-sty"
623
- @click="showWfMemoDialog = false"
624
- >
625
- <i class="el-icon-close el-icon"></i>
626
- {{ $t2("取 消", "system.button.cancel2") }}
627
- </el-button>
628
- <el-button type="primary" @click="submitWfMemoForm" class="button-sty">
629
- <i class="el-icon-check el-icon"></i>
630
- {{ $t2("确 定", "system.button.confirm2") }}
631
- </el-button>
632
- </span>
633
- </el-dialog>
634
-
635
- <!-- append-to-body 必须留着:本弹框在 baseTabPane 的 v-show 子树里,
636
- 「流程信息」一折叠就跟着 display:none,标题栏那份审批入口点了会毫无反应 -->
637
- <el-dialog
638
- v-if="rejectDialogVisible"
639
- :visible.sync="rejectDialogVisible"
640
- :modal-append-to-body="false"
641
- :close-on-click-modal="false"
642
- :modal="false"
643
- custom-class="dialog-style wf-dialog"
644
- v-el-drag-dialog
645
- v-el-dialog-center
646
- :append-to-body="true"
647
- >
648
- <template #title>
649
- <span class="el-dialog__title"
650
- >{{ $t2("流程驳回", "components.wf.wfReject")
651
- }}<span style="margin-left: 10px; margin-right: 10px">—</span
652
- ><b class="f-red" style="font-size: 12px"
653
- >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
654
- ></span
655
- >
656
- </template>
657
- <el-form :model="rejectForm">
658
- <div id="containt">
659
- <table class="table-detail">
660
- <tbody>
661
- <tr>
662
- <th>
663
- <span class="t">
664
- {{ $t2("驳回节点", "components.wf.rejectNode") }}
665
- </span>
666
- </th>
667
- <td>
668
- <el-form-item label="" field="nodeId">
669
- <el-select
670
- v-model="rejectForm.nodeId"
671
- :placeholder="
672
- $t2('请选择驳回节点', 'components.wf.rejectNodePlaceholder')
673
- "
674
- >
675
- <el-option
676
- v-for="(rejectNode, index) in rejectNodes"
677
- :label="rejectNode.nodeName"
678
- :value="rejectNode.nodeId"
679
- :key="index"
680
- ></el-option>
681
- </el-select>
682
- </el-form-item>
683
- </td>
684
- </tr>
685
- <tr>
686
- <th>
687
- <span class="t">
688
- {{ $t2("驳回意见", "components.wf.rejectOpinion") }}
689
- </span>
690
- </th>
691
- <td>
692
- <el-form-item label="" field="opinion">
693
- <el-input
694
- type="textarea"
695
- :rows="8"
696
- :placeholder="
697
- $t2('请输入内容', 'components.wf.rejectOpinionPlaceholder')
698
- "
699
- v-model="rejectForm.opinion"
700
- ></el-input>
701
- </el-form-item>
702
- </td>
703
- </tr>
704
- </tbody>
705
- </table>
706
- </div>
707
- </el-form>
708
- <span slot="footer" class="dialog-footer">
709
- <el-button
710
- type="primary"
711
- plain
712
- class="button-sty"
713
- @click="rejectDialogVisible = false"
714
- >
715
- <i class="el-icon-close el-icon"></i>
716
- {{ $t2("取 消", "system.button.cancel2") }}
717
- </el-button>
718
- <el-button type="primary" @click="subRejectForm" class="button-sty">
719
- <i class="el-icon-check el-icon"></i>
720
- {{ $t2("确 定", "system.button.confirm2") }}
721
- </el-button>
722
- </span>
723
- </el-dialog>
724
- <!-- 同上:折叠态下要能弹出来,append-to-body 不能去掉 -->
725
- <el-dialog
726
- v-if="agreeDialogVisible"
727
- :visible.sync="agreeDialogVisible"
728
- :modal-append-to-body="false"
729
- :close-on-click-modal="false"
730
- :modal="false"
731
- custom-class="dialog-style wf-dialog"
732
- v-el-drag-dialog
733
- v-el-dialog-center
734
- :append-to-body="true"
735
- >
736
- <template #title>
737
- <span class="el-dialog__title"
738
- >{{ $t2("流程通过", "components.wf.wfAgree")
739
- }}<span style="margin-left: 10px; margin-right: 10px">—</span
740
- ><b class="f-red" style="font-size: 12px"
741
- >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
742
- ></span
743
- >
744
- </template>
745
- <el-form :model="agreeForm">
746
- <div id="containt">
747
- <table class="table-detail">
748
- <tbody>
749
- <tr v-if="agreeNodes.length > 0">
750
- <th>
751
- <span class="t">
752
- {{ $t2("通过节点", "components.wf.agreeNode") }}
753
- </span>
754
- </th>
755
- <td>
756
- <el-form-item label="" field="nodeId">
757
- <el-select
758
- v-model="agreeForm.nodeId"
759
- :placeholder="
760
- $t2('请选择通过节点', 'components.wf.agreeNodePlaceholder')
761
- "
762
- >
763
- <el-option
764
- v-for="(node, index) in agreeNodes"
765
- :label="node.nodeName"
766
- :value="node.nodeId"
767
- :key="index"
768
- ></el-option>
769
- </el-select>
770
- </el-form-item>
771
- </td>
772
- </tr>
773
- <tr>
774
- <th>
775
- <span class="t">
776
- {{ $t2("通过意见", "components.wf.agreeOpinion") }}
777
- </span>
778
- </th>
779
- <td>
780
- <el-form-item label="" field="opinion">
781
- <el-input
782
- type="textarea"
783
- :rows="8"
784
- :placeholder="
785
- $t2(
786
- `请填写您的意见~
787
- 注:
788
- 通过默认意见为“同意”
789
- `,
790
- 'components.wf.agreeOpinionPlaceholder'
791
- )
792
- "
793
- v-model="agreeForm.opinion"
794
- ></el-input>
795
- </el-form-item>
796
- </td>
797
- </tr>
798
- </tbody>
799
- </table>
800
- </div>
801
- </el-form>
802
- <span slot="footer" class="dialog-footer">
803
- <el-button
804
- type="primary"
805
- plain
806
- class="button-sty"
807
- @click="agreeDialogVisible = false"
808
- >
809
- <i class="el-icon-close el-icon"></i>
810
- {{ $t2("取 消", "system.button.cancel2") }}
811
- </el-button>
812
- <el-button type="primary" @click="subAgreeForm" class="button-sty">
813
- <i class="el-icon-check el-icon"></i>
814
- {{ $t2("确 定", "system.button.confirm2") }}
815
- </el-button>
816
- </span>
817
- </el-dialog>
818
- <el-dialog
819
- v-if="changeWfDialogVisible"
820
- :visible.sync="changeWfDialogVisible"
821
- :modal-append-to-body="false"
822
- :close-on-click-modal="false"
823
- :modal="false"
824
- custom-class="dialog-style wf-dialog"
825
- v-el-drag-dialog
826
- v-el-dialog-center
827
- :append-to-body="true"
828
- >
829
- <template #title>
830
- <span class="el-dialog__title"
831
- >{{ $t2("流程转办", "components.wf.wfTransfer")
832
- }}<span style="margin-left: 10px; margin-right: 10px">—</span
833
- ><b class="f-red" style="font-size: 12px"
834
- >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
835
- ></span
836
- >
837
- </template>
838
- <el-form :model="changeWfForm">
839
- <div id="containt">
840
- <table class="table-detail">
841
- <tbody>
842
- <tr>
843
- <th>
844
- <span class="t">
845
- {{ $t2("转办人", "components.wf.transferUser") }}
846
- </span>
847
- </th>
848
- <td>
849
- <el-form-item label="" field="nodeId">
850
- <el-input
851
- class="search-input"
852
- max="200"
853
- v-model="changeWfForm.userNickNames"
854
- @clear="
855
- changeWfForm.userIds = '';
856
- changeUserRows = [];
857
- $forceUpdate();
858
- "
859
- v-el-readonly
860
- clearable
861
- >
862
- <i
863
- slot="suffix"
864
- class="el-input__icon el-icon-search"
865
- @click="showUserDialog = true"
866
- ></i>
867
- </el-input>
868
- </el-form-item>
869
- </td>
870
- </tr>
871
- <tr>
872
- <th>
873
- <span class="t">
874
- {{ $t2("转办意见", "components.wf.transferOpinion") }}
875
- </span>
876
- </th>
877
- <td>
878
- <el-form-item label="" field="opinion">
879
- <el-input
880
- type="textarea"
881
- :rows="8"
882
- :placeholder="
883
- $t2('请输入内容', 'components.wf.transferOpinionPlaceholder')
884
- "
885
- v-model="changeWfForm.opinion"
886
- ></el-input>
887
- </el-form-item>
888
- </td>
889
- </tr>
890
- </tbody>
891
- </table>
892
- </div>
893
- </el-form>
894
- <span slot="footer" class="dialog-footer">
895
- <el-button
896
- type="primary"
897
- plain
898
- class="button-sty"
899
- @click="changeWfDialogVisible = false"
900
- >
901
- <i class="el-icon-close el-icon"></i>
902
- {{ $t2("取 消", "system.button.cancel2") }}
903
- </el-button>
904
- <el-button type="primary" @click="subChangeWfForm" class="button-sty">
905
- <i class="el-icon-check el-icon"></i>
906
- {{ $t2("确认转办", "components.wf.confirmTransfer") }}
907
- </el-button>
908
- </span>
909
- </el-dialog>
910
- <el-dialog
911
- v-if="showWfManualDialog"
912
- :visible.sync="showWfManualDialog"
913
- :modal-append-to-body="false"
914
- :close-on-click-modal="false"
915
- :modal="false"
916
- width="501px"
917
- custom-class="dialog-style tips-dialog warning"
918
- :append-to-body="true"
919
- :show-close="false"
920
- v-el-drag-dialog
921
- v-el-dialog-center
922
- >
923
- <template #title>
924
- <span class="el-dialog__title"
925
- >{{ $t2("流程中断", "components.wf.wfManual")
926
- }}<span style="margin-left: 10px; margin-right: 10px">—</span
927
- ><b class="f-red" style="font-size: 12px"
928
- >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
929
- ></span
930
- >
931
- </template>
932
- <div class="cont">
933
- {{ $t2("您确定要中断流程吗?", "components.wf.manualTip") }}
934
- </div>
935
- <span slot="footer" class="dialog-footer">
936
- <el-button
937
- type="primary"
938
- plain
939
- class="button-sty"
940
- @click="showWfManualDialog = false"
941
- ><i class="el-icon-close el-icon"></i
942
- >{{ $t2("取 消", "system.button.cancel2") }}</el-button
943
- >
944
- <el-button type="primary" @click="manualEndWf" class="button-sty"
945
- ><i class="el-icon-check el-icon"></i
946
- >{{ $t2("确 定", "system.button.confirm2") }}</el-button
947
- >
948
- </span>
949
- </el-dialog>
950
- <!-- 同上:折叠态下要能弹出来,append-to-body 不能去掉 -->
951
- <el-dialog
952
- v-if="revokeDialogVisible"
953
- :visible.sync="revokeDialogVisible"
954
- :modal-append-to-body="false"
955
- :close-on-click-modal="false"
956
- :modal="false"
957
- custom-class="dialog-style wf-dialog"
958
- v-el-drag-dialog
959
- v-el-dialog-center
960
- :append-to-body="true"
961
- >
962
- <template #title>
963
- <span class="el-dialog__title"
964
- >{{ $t2("流程撤回", "components.wf.wfRevoke")
965
- }}<span style="margin-left: 10px; margin-right: 10px">—</span
966
- ><b class="f-red" style="font-size: 12px"
967
- >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
968
- ></span
969
- >
970
- </template>
971
- <el-form :model="revokeForm">
972
- <div id="containt">
973
- <table class="table-detail">
974
- <tbody>
975
- <tr>
976
- <th>
977
- <span class="t">
978
- {{ $t2("撤回意见", "components.wf.revokeOpinion") }}
979
- </span>
980
- </th>
981
- <td>
982
- <el-form-item label="" field="opinion">
983
- <el-input
984
- type="textarea"
985
- :rows="8"
986
- :placeholder="
987
- $t2('请输入内容', 'components.wf.revokeOpinionPlaceholder')
988
- "
989
- v-model="revokeForm.opinion"
990
- ></el-input>
991
- </el-form-item>
992
- </td>
993
- </tr>
994
- </tbody>
995
- </table>
996
- </div>
997
- </el-form>
998
- <span slot="footer" class="dialog-footer">
999
- <el-button
1000
- type="primary"
1001
- plain
1002
- class="button-sty"
1003
- @click="revokeDialogVisible = false"
1004
- >
1005
- <i class="el-icon-close el-icon"></i>
1006
- {{ $t2("取 消", "system.button.cancel2") }}
1007
- </el-button>
1008
- <el-button type="primary" @click="subRevokeForm(0)" class="button-sty">
1009
- <i class="el-icon-check el-icon"></i>
1010
- {{ $t2("确 定", "system.button.confirm2") }}
1011
- </el-button>
1012
- </span>
1013
- </el-dialog>
1014
- <el-dialog
1015
- v-if="showAddIncreaseSignDialog"
1016
- :visible.sync="showAddIncreaseSignDialog"
1017
- :modal-append-to-body="false"
1018
- :close-on-click-modal="false"
1019
- :modal="false"
1020
- custom-class="dialog-style wf-dialog"
1021
- v-el-drag-dialog
1022
- v-el-dialog-center
1023
- :append-to-body="true"
1024
- >
1025
- <template #title>
1026
- <span class="el-dialog__title"
1027
- >{{ $t2("流程加签", "components.wf.wfAddIncreaseSign")
1028
- }}<span style="margin-left: 10px; margin-right: 10px">—</span
1029
- ><b class="f-red" style="font-size: 12px"
1030
- >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
1031
- ></span
1032
- >
1033
- </template>
1034
- <el-form :model="addIncreaseSignForm">
1035
- <div id="containt">
1036
- <table class="table-detail">
1037
- <tbody>
1038
- <tr>
1039
- <th>
1040
- <span class="t">
1041
- {{ $t2("候选人", "components.wf.addIncreaseSignUser") }}
1042
- </span>
1043
- </th>
1044
- <td>
1045
- <el-form-item field="receiverName">
1046
- <el-input
1047
- class="search-input"
1048
- max="200"
1049
- v-model="addIncreaseSignForm.userNickNames"
1050
- @clear="
1051
- addIncreaseSignUsers = [];
1052
- $forceUpdate();
1053
- "
1054
- :placeholder="$t2('候选人', 'components.wf.addIncreaseSignUser')"
1055
- v-el-readonly
1056
- clearable
1057
- >
1058
- <i
1059
- slot="suffix"
1060
- class="el-input__icon el-icon-search"
1061
- @click="showAddTaskUserDialog = true"
1062
- ></i>
1063
- </el-input>
1064
- </el-form-item>
1065
- </td>
1066
- </tr>
1067
- <tr>
1068
- <th>
1069
- <span class="t">
1070
- {{ $t2("加签意见", "components.wf.addIncreaseSignOpinion") }}
1071
- </span>
1072
- </th>
1073
- <td colspan="3">
1074
- <el-form-item field="opinion">
1075
- <el-input
1076
- type="textarea"
1077
- :rows="8"
1078
- :placeholder="
1079
- $t2(
1080
- '请输入内容',
1081
- 'components.wf.addIncreaseSignOpinionPlaceholder'
1082
- )
1083
- "
1084
- v-model="addIncreaseSignForm.opinion"
1085
- ></el-input>
1086
- </el-form-item>
1087
- </td>
1088
- </tr>
1089
- </tbody>
1090
- </table>
1091
- </div>
1092
- </el-form>
1093
- <span slot="footer" class="dialog-footer">
1094
- <el-button
1095
- type="primary"
1096
- plain
1097
- class="button-sty"
1098
- @click="showAddIncreaseSignDialog = false"
1099
- >
1100
- <i class="el-icon-close el-icon"></i>
1101
- {{ $t2("取 消", "system.button.cancel2") }}
1102
- </el-button>
1103
- <el-button type="primary" @click="submitAddTaskUserForm(0)" class="button-sty">
1104
- <i class="el-icon-check el-icon"></i>
1105
- {{ $t2("确认加签", "components.wf.confirmAddIncreaseSign") }}
1106
- </el-button>
1107
- </span>
1108
- </el-dialog>
1109
- <user-dialog
1110
- v-if="showUserDialog"
1111
- :visiable.sync="showUserDialog"
1112
- @close="showUserDialog = false"
1113
- @confirm="userConfirm"
1114
- multi="true"
1115
- :param.sync="wfUserParamForTransfer"
1116
- :rows="changeUserRows"
1117
- ></user-dialog>
1118
-
1119
- <urgingDialog
1120
- v-if="urgingDialogVisible"
1121
- :visiable.sync="urgingDialogVisible"
1122
- :wfInfo="wfInfo"
1123
- :current_prefix="current_prefix"
1124
- @confirm="reloadContent"
1125
- multi="true"
1126
- ></urgingDialog>
1127
- <deleteTaskUserDialog
1128
- v-if="showDeleteTaskUserDialog"
1129
- :visiable.sync="showDeleteTaskUserDialog"
1130
- :wfInfo="wfInfo"
1131
- :current_prefix="current_prefix"
1132
- @confirm="reloadContent"
1133
- multi="true"
1134
- ></deleteTaskUserDialog>
1135
-
1136
- <addTaskUserdialog
1137
- v-if="showAddTaskUserDialog"
1138
- :visiable.sync="showAddTaskUserDialog"
1139
- :wfInfo="wfInfo"
1140
- :current_prefix="current_prefix"
1141
- :rows.sync="addIncreaseSignUsers"
1142
- @confirm="confirmAddTaskUser"
1143
- multi="true"
1144
- :param.sync="wfUserParamForAddSign"
1145
- ></addTaskUserdialog>
1146
- <user-dialog
1147
- v-if="showTalkUserDialog"
1148
- :visiable.sync="showTalkUserDialog"
1149
- @close="showTalkUserDialog = false"
1150
- @confirm="confirmTalkUserDialog"
1151
- multi="false"
1152
- :param.sync="wfUserParamForTalk"
1153
- ></user-dialog>
1154
- <setCandidateDialog
1155
- v-if="showSetCandidateDialog"
1156
- :visiable.sync="showSetCandidateDialog"
1157
- @close="closeSetCandidateDialog"
1158
- :wfInfo="wfInfo"
1159
- :current_prefix="current_prefix"
1160
- ></setCandidateDialog>
1161
- <wfFlowEleScriptDialog
1162
- v-if="showWfFlowEleScriptDialog"
1163
- :visiable.sync="showWfFlowEleScriptDialog"
1164
- :wfInfo="wfInfo"
1165
- :current_prefix="current_prefix"
1166
- ></wfFlowEleScriptDialog>
1167
- </template>
1168
- </baseTabPane>
1169
- <div v-else></div>
1170
- </template>
1171
-
1172
- <script>
1173
- import { wfContentMixin } from "./wf.js";
1174
-
1175
- export default {
1176
- components: {
1177
- UserDialog: () => import("../../views/user/user/dialog.vue"),
1178
- urgingDialog: () => import("./urgingDialog"),
1179
- deleteTaskUserDialog: () => import("./deleteTaskUserDialog"),
1180
- addTaskUserdialog: () => import("./addTaskUserdialog"),
1181
- setCandidateDialog: () => import("./setCandidateDialog"),
1182
- setCandidateButton: () => import("./setCandidateButton"),
1183
- addOpinionButton: () => import("./addOpinionButton"),
1184
- wfFlowEleScriptDialog: () => import("./wfFlowEleScriptDialog"),
1185
- },
1186
- mixins: [wfContentMixin],
1187
- };
1188
- </script>
1
+ <template>
2
+ <baseTabPane
3
+ :label="$t2('流程信息', 'components.wf.wfInfo')"
4
+ :showFold="showWfFold"
5
+ :defaultShowContent="showWfContent"
6
+ v-if="!isHideWf"
7
+ >
8
+ <template #default>
9
+ <!-- 审批按钮条:标题栏那份挂上后(headerActionsMounted)整条 v-show 藏掉。
10
+ 用 v-show 而不是 v-if,是为了保住 addOpinionBtn——下拉里「补充意见」走的是
11
+ $refs.addOpinionBtn.openDialog()。开了 wfActionInHeaderEnabled 时,详情标题栏
12
+ 另挂一份(wfActionDropdown.vue):通过/驳回/撤回平铺,其余收进「更多」下拉。 -->
13
+ <div
14
+ ref="wfActionBar"
15
+ style="margin: -36px 0 8px 124px; position: relative; z-index: 2; height: 28px"
16
+ v-if="!wfConfig.hiddenAllButton"
17
+ v-show="!headerActionsMounted"
18
+ >
19
+ <el-button
20
+ type="success"
21
+ class="button-sty"
22
+ @click="openAgreeDialog"
23
+ v-show="wfInfo.toSubmit"
24
+ icon="iconfont icon-tongguo"
25
+ >{{ $t2("通过", "components.wf.agree") }}
26
+ </el-button>
27
+ <el-button
28
+ type="warning"
29
+ class="button-sty"
30
+ @click="openManualDialog"
31
+ v-show="wfInfo.toInterrupt"
32
+ icon="iconfont icon-caozuozhongduan"
33
+ >{{ $t2("中断", "components.wf.manual") }}
34
+ </el-button>
35
+ <el-button
36
+ type="danger"
37
+ class="button-sty"
38
+ @click="rejectWfTask"
39
+ v-show="wfInfo.toReject"
40
+ icon="iconfont icon-a-bohui1"
41
+ >{{ $t2("驳回", "components.wf.reject") }}
42
+ </el-button>
43
+ <el-button
44
+ type="primary"
45
+ class="button-sty"
46
+ @click="openChangeWfForm"
47
+ v-show="
48
+ wfInfo.toTransfer === null || wfInfo.toTransfer === undefined
49
+ ? wfInfo.toSubmit
50
+ : wfInfo.toTransfer
51
+ "
52
+ icon="iconfont icon-zhuanban"
53
+ >{{ $t2("转办", "components.wf.transfer") }}
54
+ </el-button>
55
+ <el-button
56
+ type="primary"
57
+ class="button-sty"
58
+ @click="openUrgingDialog"
59
+ v-show="wfInfo.toInterrupt"
60
+ icon="iconfont icon-cuiban"
61
+ >{{ $t2("催办", "components.wf.urging") }}
62
+ </el-button>
63
+ <el-button
64
+ type="primary"
65
+ class="button-sty"
66
+ @click="openAddIncreaseSign"
67
+ v-show="increaseSignEnabled && wfInfo.toAddIncreaseSign"
68
+ icon="el-icon-plus"
69
+ >{{ $t2("加签", "components.wf.addIncreaseSign") }}
70
+ </el-button>
71
+ <el-button
72
+ type="primary"
73
+ class="button-sty"
74
+ @click="openDeleteTaskUserDialog"
75
+ v-show="increaseSignEnabled && wfInfo.toDeleteIncreaseSign"
76
+ icon="el-icon-delete"
77
+ >{{ $t2("减签", "components.wf.deleteIncreaseSign") }}
78
+ </el-button>
79
+ <el-button
80
+ type="primary"
81
+ class="button-sty"
82
+ @click="openTalkDialog()"
83
+ icon="el-icon-chat-dot-square"
84
+ v-if="toTalk && wfInfo.toLinkup"
85
+ >
86
+ {{ $t2("沟通", "components.wf.talk") }}
87
+ </el-button>
88
+ <el-button
89
+ type="primary"
90
+ class="button-sty"
91
+ @click="openSetCandidateDialog(null)"
92
+ v-show="wfInfo.toSetCandidate"
93
+ icon="el-icon-user"
94
+ >{{ $t2("修改候选人", "components.wf.setCandidate") }}
95
+ </el-button>
96
+ <el-button
97
+ type="danger"
98
+ class="button-sty"
99
+ @click="openRevokeDialog(null)"
100
+ v-show="wfInfo.toRevoke"
101
+ icon="el-icon-document-delete"
102
+ >{{ $t2("撤回", "components.wf.revoke") }}
103
+ </el-button>
104
+ <addOpinionButton
105
+ v-if="showAddOpinionButton"
106
+ ref="addOpinionBtn"
107
+ @confirm="reloadContent()"
108
+ :wfInfo="wfInfo"
109
+ :wfSendTaskId="wfSendTaskId"
110
+ :current_prefix="current_prefix"
111
+ ></addOpinionButton>
112
+ <el-button
113
+ type="primary"
114
+ class="button-sty"
115
+ @click="openWfFlowEleScriptDialog"
116
+ v-if="wfInfo.wfAdmin"
117
+ icon="el-icon-edit"
118
+ >{{ $t1("修改脚本") }}
119
+ </el-button>
120
+ </div>
121
+ <div class="title-name">
122
+ <b>
123
+ <em>{{ $t2("流程主题", "components.wf.theme") }}:</em>
124
+ {{ wfInfo.name }}
125
+ </b>
126
+ <span v-html="wfInfo.statusStr" class="status"></span>
127
+ </div>
128
+ <div
129
+ class="title-second"
130
+ @click="showFlowImg = !showFlowImg"
131
+ style="margin: 14px 0 24px; line-height: 29px; cursor: pointer"
132
+ >
133
+ <b>{{ $t2("流程图", "components.wf.wfImage") }}</b>
134
+ <div class="fr" v-if="showFlowImg == true" style="font-weight: 400">
135
+ <span>{{ $t2("收起", "components.wf.collapse") }}</span>
136
+ <i class="el-icon-arrow-up"></i>
137
+ </div>
138
+ <div class="fr" v-else style="font-weight: 400">
139
+ <span>{{ $t2("展开", "components.wf.expand") }}</span>
140
+ <i class="el-icon-arrow-down"></i>
141
+ </div>
142
+ </div>
143
+ <div class="flow-tree" style="padding-right: 0" v-show="showFlowImg == true">
144
+ <div class="flow-box">
145
+ <img :src="wfImage" />
146
+ <el-tooltip
147
+ :enterable="false"
148
+ class="item"
149
+ effect="dark"
150
+ :content="$t2('放大', 'components.wf.enlarge')"
151
+ placement="bottom"
152
+ >
153
+ <i
154
+ class="el-icon-zoom-in btn-magnifier"
155
+ @click="$window.open(wfImage)"
156
+ style="right: 0"
157
+ ></i>
158
+ </el-tooltip>
159
+ </div>
160
+ </div>
161
+ <div v-show="showWfInfoTab">
162
+ <div class="title-tab">
163
+ <div>
164
+ <b :class="{ on: tabIndex == '1' }" @click="tabIndex = '1'">{{
165
+ $t2("任务情况", "components.wf.taskInfo")
166
+ }}</b>
167
+ <b :class="{ on: tabIndex == '2' }" @click="tabIndex = '2'" v-if="toTalk">{{
168
+ $t2("流程沟通", "components.wf.wfTalk")
169
+ }}</b>
170
+ <b
171
+ :class="{ on: tabIndex == '4' }"
172
+ @click="tabIndex = '4'"
173
+ v-if="showCandidate"
174
+ >{{ $t1("节点候选人") }}</b
175
+ >
176
+ <b
177
+ :class="{ on: tabIndex == '3' }"
178
+ @click="tabIndex = '3'"
179
+ v-if="showAllWfOpinon"
180
+ >{{ $t2("全部任务情况", "components.wf.allTaskInfo") }}</b
181
+ >
182
+ </div>
183
+ </div>
184
+ <div v-show="tabIndex == '1'">
185
+ <div class="title-five"><b>任务流程</b></div>
186
+ <div class="task-situation" style="padding-left: 14px">
187
+ <div
188
+ class="item"
189
+ v-for="wftaskLineData in wftaskData"
190
+ :key="wftaskLineData.id"
191
+ >
192
+ <div class="time">
193
+ {{
194
+ wftaskLineData.approveTime
195
+ ? wftaskLineData.approveTime.substring(0, 10)
196
+ : ""
197
+ }}
198
+ <br />
199
+ {{
200
+ wftaskLineData.approveTime
201
+ ? wftaskLineData.approveTime.substring(11)
202
+ : ""
203
+ }}
204
+ </div>
205
+ <div
206
+ class="status"
207
+ :class="
208
+ taskStatuses[wftaskLineData.type]
209
+ ? taskStatuses[wftaskLineData.type].class
210
+ : ''
211
+ "
212
+ >
213
+ {{
214
+ taskStatuses[wftaskLineData.type]
215
+ ? taskStatuses[wftaskLineData.type].value
216
+ : null
217
+ }}
218
+ </div>
219
+ <i class="circle"></i>
220
+ <div class="info">
221
+ <p>
222
+ <span class="name">{{ wftaskLineData.taskName }}</span>
223
+ <span
224
+ >{{ $t2("执行人", "components.wf.approverName") }}:{{
225
+ wftaskLineData.approverName
226
+ }}</span
227
+ >
228
+ <span>
229
+ {{ $t2("候选人", "components.wf.candidateName") }}:
230
+ <span>
231
+ <span style="float: left; width: auto; margin-right: 10px">{{
232
+ wftaskLineData.candidateNames
233
+ }}</span>
234
+ <setCandidateButton
235
+ v-if="wftaskLineData.flag == 1"
236
+ style="float: left; width: auto"
237
+ :current_prefix="current_prefix"
238
+ :wfInfo="wfInfo"
239
+ :checkRow="wftaskLineData"
240
+ @confirm="reloadContent()"
241
+ ></setCandidateButton>
242
+ </span>
243
+ </span>
244
+ </p>
245
+ <p class="t">
246
+ <span class="t1">{{ $t2("备注/意见", "components.wf.opinion") }}:</span
247
+ ><span>{{ wftaskLineData.opinion }}</span>
248
+ </p>
249
+ </div>
250
+ </div>
251
+ </div>
252
+ <div class="title-five" v-if="showWfMemo">
253
+ <b>{{ $t1("发起人附言") }}</b>
254
+ <el-button
255
+ v-if="wfInfo.toAddMemo && !wfConfig.hiddenAllButton"
256
+ class="button-sty"
257
+ icon="el-icon-plus"
258
+ @click="openWfMemoDialog()"
259
+ type="primary"
260
+ >{{ $t1("新增") }}</el-button
261
+ >
262
+ </div>
263
+ <div class="postscript-box">
264
+ <div class="item" v-for="(item, index) in wfMemoData" :key="index">
265
+ <div class="txt" style="white-space: pre-wrap">{{ item.content }}</div>
266
+ <div
267
+ class="attach-box"
268
+ v-if="item.attachmentDTOs && item.attachmentDTOs.length"
269
+ >
270
+ <baseUpload
271
+ accept="file"
272
+ multi="true"
273
+ :edit="false"
274
+ :widgetSize="1"
275
+ :file.sync="item.attachmentDTOs"
276
+ ></baseUpload>
277
+ </div>
278
+ <div class="time">{{ item.createDate }}</div>
279
+ </div>
280
+ </div>
281
+ </div>
282
+ <div class="task-situation" v-show="toTalk && tabIndex == '2'">
283
+ <vxe-grid
284
+ ref="table-linkup"
285
+ :auto-resize="true"
286
+ v-bind="linkupOption"
287
+ @resizable-change="$vxeTableUtil.onColumnWitchChange"
288
+ @custom="$vxeTableUtil.customHandle"
289
+ >
290
+ <template #form>
291
+ <div style="margin-bottom: 8px" class="clearfix">
292
+ <div class="fl">
293
+ <el-button
294
+ type="primary"
295
+ class="button-sty"
296
+ @click="openTalkDialog()"
297
+ icon="el-icon-chat-dot-square"
298
+ v-if="wfInfo.toLinkup && !wfConfig.hiddenAllButton"
299
+ >{{ $t2("沟通", "components.wf.talk") }}
300
+ </el-button>
301
+ </div>
302
+ <div class="fr">
303
+ <!-- <vxe-button status="warning" icon="el-icon-search" class="button-sty" @click="searchEvent">搜索
304
+ </vxe-button>-->
305
+ </div>
306
+ </div>
307
+ </template>
308
+ <template #sender="{ row }">
309
+ <a
310
+ href="javascript:void(0);"
311
+ class="a-link"
312
+ @click="openTalkDialog(row.sender, row.senderName, null, null, row.id)"
313
+ v-if="row.replyToSender"
314
+ >
315
+ <el-tooltip
316
+ :enterable="false"
317
+ effect="dark"
318
+ :content="$t2('沟通', 'components.wf.talk')"
319
+ placement="top"
320
+ popper-class="tooltip-skin"
321
+ >
322
+ <div>
323
+ <i class="el-icon-chat-dot-square"></i>
324
+ <span>{{ row.senderName }}</span>
325
+ </div>
326
+ </el-tooltip>
327
+ </a>
328
+ <span v-else>{{ row.senderName }}</span>
329
+ </template>
330
+ <template #receiver="{ row }">
331
+ <a
332
+ href="javascript:void(0);"
333
+ class="a-link"
334
+ @click="
335
+ openTalkDialog(row.receiver, row.receiverName, null, null, row.id)
336
+ "
337
+ v-if="row.replyToReceiver"
338
+ >
339
+ <el-tooltip
340
+ :enterable="false"
341
+ effect="dark"
342
+ :content="$t2('沟通', 'components.wf.talk')"
343
+ placement="top"
344
+ popper-class="tooltip-skin"
345
+ >
346
+ <div>
347
+ <i class="el-icon-chat-dot-square"></i>
348
+ <span>{{ row.receiverName }}</span>
349
+ </div>
350
+ </el-tooltip>
351
+ </a>
352
+ <span v-else>{{ row.receiverName }}</span>
353
+ </template>
354
+ <template #operate="{ row }">
355
+ <a
356
+ href="javascript:void(0);"
357
+ class="a-link"
358
+ style="font-weight: bold; text-decoration: underline"
359
+ @click="cancelTalk(row)"
360
+ v-if="row.toCancel"
361
+ >
362
+ <el-tooltip
363
+ :enterable="false"
364
+ effect="dark"
365
+ :content="$t2('取消', 'system.button.cancel')"
366
+ placement="top"
367
+ popper-class="tooltip-skin"
368
+ >
369
+ <div class="vxe-grid">
370
+ <i class="el-icon-document-delete"></i>
371
+ <span>{{ $t2("取消", "system.button.cancel") }}</span>
372
+ </div>
373
+ </el-tooltip>
374
+ </a>
375
+ </template>
376
+ </vxe-grid>
377
+ </div>
378
+ <div
379
+ class="task-situation"
380
+ v-show="showAllWfOpinon && tabIndex == '3'"
381
+ style="max-height: 500px; overflow: hidden auto"
382
+ >
383
+ <div
384
+ class="item"
385
+ v-for="wftaskLineData in allWfTaskOpinions"
386
+ :key="'allWfTaskOpinions' + wftaskLineData.id"
387
+ >
388
+ <div class="time">
389
+ {{
390
+ wftaskLineData.approveTime
391
+ ? wftaskLineData.approveTime.substring(0, 10)
392
+ : ""
393
+ }}
394
+ <br />
395
+ {{
396
+ wftaskLineData.approveTime ? wftaskLineData.approveTime.substring(11) : ""
397
+ }}
398
+ </div>
399
+ <div
400
+ class="status"
401
+ :class="
402
+ taskStatuses[wftaskLineData.type]
403
+ ? taskStatuses[wftaskLineData.type].class
404
+ : ''
405
+ "
406
+ >
407
+ {{
408
+ taskStatuses[wftaskLineData.type]
409
+ ? taskStatuses[wftaskLineData.type].value
410
+ : null
411
+ }}
412
+ </div>
413
+ <i class="circle"></i>
414
+ <div class="info">
415
+ <p>
416
+ <span class="name">{{ wftaskLineData.taskName }}</span>
417
+ <span
418
+ >{{ $t2("执行人", "components.wf.approverName") }}:{{
419
+ wftaskLineData.approverName
420
+ }}</span
421
+ >
422
+ <span>
423
+ {{ $t2("候选人", "components.wf.candidateName") }}:
424
+ <span class="">{{ wftaskLineData.candidateNames }}</span>
425
+ </span>
426
+ </p>
427
+ <p class="t">
428
+ <span class="t1">{{ $t2("备注/意见", "components.wf.opinion") }}:</span
429
+ ><span>{{ wftaskLineData.opinion }}</span>
430
+ </p>
431
+ </div>
432
+ </div>
433
+ </div>
434
+ <template v-if="showCandidate">
435
+ <div v-show="tabIndex == '4'">
436
+ <div style="width: 800px">
437
+ <vxe-grid
438
+ ref="table-candidate"
439
+ v-bind="candidateOption"
440
+ :data="candidateDatas"
441
+ @resizable-change="$vxeTableUtil.onColumnWitchChange"
442
+ @custom="$vxeTableUtil.customHandle"
443
+ ></vxe-grid>
444
+ </div>
445
+ </div>
446
+ </template>
447
+ </div>
448
+ <!--沟通-->
449
+ <el-dialog
450
+ v-if="showTalkDialog"
451
+ :visible.sync="showTalkDialog"
452
+ :modal-append-to-body="false"
453
+ :close-on-click-modal="false"
454
+ :modal="false"
455
+ custom-class="dialog-style wf-dialog"
456
+ :append-to-body="true"
457
+ v-el-drag-dialog
458
+ v-el-dialog-center
459
+ >
460
+ <template #title>
461
+ <span class="el-dialog__title"
462
+ >{{ $t2("沟通", "components.wf.talk")
463
+ }}<span style="margin-left: 10px; margin-right: 10px">—</span
464
+ ><b class="f-red" style="font-size: 12px"
465
+ >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
466
+ ></span
467
+ >
468
+ </template>
469
+ <el-form :model="talkForm">
470
+ <div id="containt" style="height: 500px">
471
+ <table class="table-detail">
472
+ <tbody>
473
+ <tr>
474
+ <th>
475
+ <span class="t">
476
+ {{ $t2("接收人", "components.wf.receiverName") }}
477
+ </span>
478
+ </th>
479
+ <td>
480
+ <el-form-item field="receiverName">
481
+ <el-input
482
+ class="search-input"
483
+ max="200"
484
+ v-model="talkForm.receiverName"
485
+ @clear="
486
+ talkForm.receiver = null;
487
+ talkForm.replyId = null;
488
+ $forceUpdate();
489
+ "
490
+ :placeholder="$t2('接收人', 'components.wf.receiverName')"
491
+ v-el-readonly
492
+ clearable
493
+ :disabled="!!talkForm.replyId"
494
+ >
495
+ <i
496
+ slot="suffix"
497
+ class="el-input__icon el-icon-search"
498
+ @click="openTalkUserDialog"
499
+ ></i>
500
+ </el-input>
501
+ </el-form-item>
502
+ </td>
503
+ </tr>
504
+ <tr>
505
+ <th>
506
+ <span class="t">
507
+ {{ $t2("沟通内容", "components.wf.talkContent") }}
508
+ </span>
509
+ </th>
510
+ <td>
511
+ <el-form-item field="content">
512
+ <el-input
513
+ type="textarea"
514
+ :rows="8"
515
+ :placeholder="
516
+ $t2('沟通内容', 'components.wf.talkContentPlaceholder')
517
+ "
518
+ v-model="talkForm.content"
519
+ ></el-input>
520
+ </el-form-item>
521
+ </td>
522
+ </tr>
523
+ <tr>
524
+ <th>
525
+ <span class="t">
526
+ {{ $t2("沟通资料", "components.wf.talkAttachment") }}
527
+ </span>
528
+ </th>
529
+ <td>
530
+ <baseUpload
531
+ accept="file"
532
+ multi="true"
533
+ :file.sync="talkForm.attachmentDTOs"
534
+ ></baseUpload>
535
+ </td>
536
+ </tr>
537
+ </tbody>
538
+ </table>
539
+ </div>
540
+ </el-form>
541
+ <span slot="footer" class="dialog-footer">
542
+ <el-button
543
+ type="primary"
544
+ plain
545
+ class="button-sty"
546
+ @click="showTalkDialog = false"
547
+ >
548
+ <i class="el-icon-close el-icon"></i>
549
+ {{ $t2("取 消", "system.button.cancel2") }}
550
+ </el-button>
551
+ <el-button type="primary" @click="submitTalkForm" class="button-sty">
552
+ <i class="el-icon-check el-icon"></i>
553
+ {{ $t2("确 定", "system.button.confirm2") }}
554
+ </el-button>
555
+ </span>
556
+ </el-dialog>
557
+
558
+ <!--发起人附言-->
559
+ <el-dialog
560
+ v-if="showWfMemoDialog"
561
+ :visible.sync="showWfMemoDialog"
562
+ :modal-append-to-body="false"
563
+ :close-on-click-modal="false"
564
+ :modal="false"
565
+ custom-class="dialog-style wf-dialog"
566
+ :append-to-body="true"
567
+ v-el-drag-dialog
568
+ v-el-dialog-center
569
+ >
570
+ <template #title>
571
+ <span class="el-dialog__title"
572
+ >{{ $t1("发起人附言")
573
+ }}<span style="margin-left: 10px; margin-right: 10px">—</span
574
+ ><b class="f-red" style="font-size: 12px"
575
+ >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
576
+ ></span
577
+ >
578
+ </template>
579
+ <el-form :model="wfMemoForm">
580
+ <div id="containt" style="height: 500px">
581
+ <table class="table-detail">
582
+ <tbody>
583
+ <tr>
584
+ <th>
585
+ <span class="t">
586
+ {{ $t1("内容") }}
587
+ </span>
588
+ </th>
589
+ <td>
590
+ <el-form-item field="content">
591
+ <el-input
592
+ type="textarea"
593
+ :rows="8"
594
+ :placeholder="$t1('内容')"
595
+ v-model="wfMemoForm.content"
596
+ ></el-input>
597
+ </el-form-item>
598
+ </td>
599
+ </tr>
600
+ <tr>
601
+ <th>
602
+ <span class="t">
603
+ {{ $t1("附件") }}
604
+ </span>
605
+ </th>
606
+ <td>
607
+ <baseUpload
608
+ accept="file"
609
+ multi="true"
610
+ :file.sync="wfMemoForm.attachmentDTOs"
611
+ ></baseUpload>
612
+ </td>
613
+ </tr>
614
+ </tbody>
615
+ </table>
616
+ </div>
617
+ </el-form>
618
+ <span slot="footer" class="dialog-footer">
619
+ <el-button
620
+ type="primary"
621
+ plain
622
+ class="button-sty"
623
+ @click="showWfMemoDialog = false"
624
+ >
625
+ <i class="el-icon-close el-icon"></i>
626
+ {{ $t2("取 消", "system.button.cancel2") }}
627
+ </el-button>
628
+ <el-button type="primary" @click="submitWfMemoForm" class="button-sty">
629
+ <i class="el-icon-check el-icon"></i>
630
+ {{ $t2("确 定", "system.button.confirm2") }}
631
+ </el-button>
632
+ </span>
633
+ </el-dialog>
634
+
635
+ <!-- append-to-body 必须留着:本弹框在 baseTabPane 的 v-show 子树里,
636
+ 「流程信息」一折叠就跟着 display:none,标题栏那份审批入口点了会毫无反应 -->
637
+ <el-dialog
638
+ v-if="rejectDialogVisible"
639
+ :visible.sync="rejectDialogVisible"
640
+ :modal-append-to-body="false"
641
+ :close-on-click-modal="false"
642
+ :modal="false"
643
+ custom-class="dialog-style wf-dialog"
644
+ v-el-drag-dialog
645
+ v-el-dialog-center
646
+ :append-to-body="true"
647
+ >
648
+ <template #title>
649
+ <span class="el-dialog__title"
650
+ >{{ $t2("流程驳回", "components.wf.wfReject")
651
+ }}<span style="margin-left: 10px; margin-right: 10px">—</span
652
+ ><b class="f-red" style="font-size: 12px"
653
+ >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
654
+ ></span
655
+ >
656
+ </template>
657
+ <el-form :model="rejectForm">
658
+ <div id="containt">
659
+ <table class="table-detail">
660
+ <tbody>
661
+ <tr>
662
+ <th>
663
+ <span class="t">
664
+ {{ $t2("驳回节点", "components.wf.rejectNode") }}
665
+ </span>
666
+ </th>
667
+ <td>
668
+ <el-form-item label="" field="nodeId">
669
+ <el-select
670
+ v-model="rejectForm.nodeId"
671
+ :placeholder="
672
+ $t2('请选择驳回节点', 'components.wf.rejectNodePlaceholder')
673
+ "
674
+ >
675
+ <el-option
676
+ v-for="(rejectNode, index) in rejectNodes"
677
+ :label="rejectNode.nodeName"
678
+ :value="rejectNode.nodeId"
679
+ :key="index"
680
+ ></el-option>
681
+ </el-select>
682
+ </el-form-item>
683
+ </td>
684
+ </tr>
685
+ <tr>
686
+ <th>
687
+ <span class="t">
688
+ {{ $t2("驳回意见", "components.wf.rejectOpinion") }}
689
+ </span>
690
+ </th>
691
+ <td>
692
+ <el-form-item label="" field="opinion">
693
+ <el-input
694
+ type="textarea"
695
+ :rows="8"
696
+ :placeholder="
697
+ $t2('请输入内容', 'components.wf.rejectOpinionPlaceholder')
698
+ "
699
+ v-model="rejectForm.opinion"
700
+ ></el-input>
701
+ </el-form-item>
702
+ </td>
703
+ </tr>
704
+ </tbody>
705
+ </table>
706
+ </div>
707
+ </el-form>
708
+ <span slot="footer" class="dialog-footer">
709
+ <el-button
710
+ type="primary"
711
+ plain
712
+ class="button-sty"
713
+ @click="rejectDialogVisible = false"
714
+ >
715
+ <i class="el-icon-close el-icon"></i>
716
+ {{ $t2("取 消", "system.button.cancel2") }}
717
+ </el-button>
718
+ <el-button type="primary" @click="subRejectForm" class="button-sty">
719
+ <i class="el-icon-check el-icon"></i>
720
+ {{ $t2("确 定", "system.button.confirm2") }}
721
+ </el-button>
722
+ </span>
723
+ </el-dialog>
724
+ <!-- 同上:折叠态下要能弹出来,append-to-body 不能去掉 -->
725
+ <el-dialog
726
+ v-if="agreeDialogVisible"
727
+ :visible.sync="agreeDialogVisible"
728
+ :modal-append-to-body="false"
729
+ :close-on-click-modal="false"
730
+ :modal="false"
731
+ custom-class="dialog-style wf-dialog"
732
+ v-el-drag-dialog
733
+ v-el-dialog-center
734
+ :append-to-body="true"
735
+ >
736
+ <template #title>
737
+ <span class="el-dialog__title"
738
+ >{{ $t2("流程通过", "components.wf.wfAgree")
739
+ }}<span style="margin-left: 10px; margin-right: 10px">—</span
740
+ ><b class="f-red" style="font-size: 12px"
741
+ >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
742
+ ></span
743
+ >
744
+ </template>
745
+ <el-form :model="agreeForm">
746
+ <div id="containt">
747
+ <table class="table-detail">
748
+ <tbody>
749
+ <tr v-if="agreeNodes.length > 0">
750
+ <th>
751
+ <span class="t">
752
+ {{ $t2("通过节点", "components.wf.agreeNode") }}
753
+ </span>
754
+ </th>
755
+ <td>
756
+ <el-form-item label="" field="nodeId">
757
+ <el-select
758
+ v-model="agreeForm.nodeId"
759
+ :placeholder="
760
+ $t2('请选择通过节点', 'components.wf.agreeNodePlaceholder')
761
+ "
762
+ >
763
+ <el-option
764
+ v-for="(node, index) in agreeNodes"
765
+ :label="node.nodeName"
766
+ :value="node.nodeId"
767
+ :key="index"
768
+ ></el-option>
769
+ </el-select>
770
+ </el-form-item>
771
+ </td>
772
+ </tr>
773
+ <tr>
774
+ <th>
775
+ <span class="t">
776
+ {{ $t2("通过意见", "components.wf.agreeOpinion") }}
777
+ </span>
778
+ </th>
779
+ <td>
780
+ <el-form-item label="" field="opinion">
781
+ <el-input
782
+ type="textarea"
783
+ :rows="8"
784
+ :placeholder="
785
+ $t2(
786
+ `请填写您的意见~
787
+ 注:
788
+ 通过默认意见为“同意”
789
+ `,
790
+ 'components.wf.agreeOpinionPlaceholder'
791
+ )
792
+ "
793
+ v-model="agreeForm.opinion"
794
+ ></el-input>
795
+ </el-form-item>
796
+ </td>
797
+ </tr>
798
+ </tbody>
799
+ </table>
800
+ </div>
801
+ </el-form>
802
+ <span slot="footer" class="dialog-footer">
803
+ <el-button
804
+ type="primary"
805
+ plain
806
+ class="button-sty"
807
+ @click="agreeDialogVisible = false"
808
+ >
809
+ <i class="el-icon-close el-icon"></i>
810
+ {{ $t2("取 消", "system.button.cancel2") }}
811
+ </el-button>
812
+ <el-button type="primary" @click="subAgreeForm" class="button-sty">
813
+ <i class="el-icon-check el-icon"></i>
814
+ {{ $t2("确 定", "system.button.confirm2") }}
815
+ </el-button>
816
+ </span>
817
+ </el-dialog>
818
+ <el-dialog
819
+ v-if="changeWfDialogVisible"
820
+ :visible.sync="changeWfDialogVisible"
821
+ :modal-append-to-body="false"
822
+ :close-on-click-modal="false"
823
+ :modal="false"
824
+ custom-class="dialog-style wf-dialog"
825
+ v-el-drag-dialog
826
+ v-el-dialog-center
827
+ :append-to-body="true"
828
+ >
829
+ <template #title>
830
+ <span class="el-dialog__title"
831
+ >{{ $t2("流程转办", "components.wf.wfTransfer")
832
+ }}<span style="margin-left: 10px; margin-right: 10px">—</span
833
+ ><b class="f-red" style="font-size: 12px"
834
+ >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
835
+ ></span
836
+ >
837
+ </template>
838
+ <el-form :model="changeWfForm">
839
+ <div id="containt">
840
+ <table class="table-detail">
841
+ <tbody>
842
+ <tr>
843
+ <th>
844
+ <span class="t">
845
+ {{ $t2("转办人", "components.wf.transferUser") }}
846
+ </span>
847
+ </th>
848
+ <td>
849
+ <el-form-item label="" field="nodeId">
850
+ <el-input
851
+ class="search-input"
852
+ max="200"
853
+ v-model="changeWfForm.userNickNames"
854
+ @clear="
855
+ changeWfForm.userIds = '';
856
+ changeUserRows = [];
857
+ $forceUpdate();
858
+ "
859
+ v-el-readonly
860
+ clearable
861
+ >
862
+ <i
863
+ slot="suffix"
864
+ class="el-input__icon el-icon-search"
865
+ @click="showUserDialog = true"
866
+ ></i>
867
+ </el-input>
868
+ </el-form-item>
869
+ </td>
870
+ </tr>
871
+ <tr>
872
+ <th>
873
+ <span class="t">
874
+ {{ $t2("转办意见", "components.wf.transferOpinion") }}
875
+ </span>
876
+ </th>
877
+ <td>
878
+ <el-form-item label="" field="opinion">
879
+ <el-input
880
+ type="textarea"
881
+ :rows="8"
882
+ :placeholder="
883
+ $t2('请输入内容', 'components.wf.transferOpinionPlaceholder')
884
+ "
885
+ v-model="changeWfForm.opinion"
886
+ ></el-input>
887
+ </el-form-item>
888
+ </td>
889
+ </tr>
890
+ </tbody>
891
+ </table>
892
+ </div>
893
+ </el-form>
894
+ <span slot="footer" class="dialog-footer">
895
+ <el-button
896
+ type="primary"
897
+ plain
898
+ class="button-sty"
899
+ @click="changeWfDialogVisible = false"
900
+ >
901
+ <i class="el-icon-close el-icon"></i>
902
+ {{ $t2("取 消", "system.button.cancel2") }}
903
+ </el-button>
904
+ <el-button type="primary" @click="subChangeWfForm" class="button-sty">
905
+ <i class="el-icon-check el-icon"></i>
906
+ {{ $t2("确认转办", "components.wf.confirmTransfer") }}
907
+ </el-button>
908
+ </span>
909
+ </el-dialog>
910
+ <el-dialog
911
+ v-if="showWfManualDialog"
912
+ :visible.sync="showWfManualDialog"
913
+ :modal-append-to-body="false"
914
+ :close-on-click-modal="false"
915
+ :modal="false"
916
+ width="501px"
917
+ custom-class="dialog-style tips-dialog warning"
918
+ :append-to-body="true"
919
+ :show-close="false"
920
+ v-el-drag-dialog
921
+ v-el-dialog-center
922
+ >
923
+ <template #title>
924
+ <span class="el-dialog__title"
925
+ >{{ $t2("流程中断", "components.wf.wfManual")
926
+ }}<span style="margin-left: 10px; margin-right: 10px">—</span
927
+ ><b class="f-red" style="font-size: 12px"
928
+ >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
929
+ ></span
930
+ >
931
+ </template>
932
+ <div class="cont">
933
+ {{ $t2("您确定要中断流程吗?", "components.wf.manualTip") }}
934
+ </div>
935
+ <span slot="footer" class="dialog-footer">
936
+ <el-button
937
+ type="primary"
938
+ plain
939
+ class="button-sty"
940
+ @click="showWfManualDialog = false"
941
+ ><i class="el-icon-close el-icon"></i
942
+ >{{ $t2("取 消", "system.button.cancel2") }}</el-button
943
+ >
944
+ <el-button type="primary" @click="manualEndWf" class="button-sty"
945
+ ><i class="el-icon-check el-icon"></i
946
+ >{{ $t2("确 定", "system.button.confirm2") }}</el-button
947
+ >
948
+ </span>
949
+ </el-dialog>
950
+ <!-- 同上:折叠态下要能弹出来,append-to-body 不能去掉 -->
951
+ <el-dialog
952
+ v-if="revokeDialogVisible"
953
+ :visible.sync="revokeDialogVisible"
954
+ :modal-append-to-body="false"
955
+ :close-on-click-modal="false"
956
+ :modal="false"
957
+ custom-class="dialog-style wf-dialog"
958
+ v-el-drag-dialog
959
+ v-el-dialog-center
960
+ :append-to-body="true"
961
+ >
962
+ <template #title>
963
+ <span class="el-dialog__title"
964
+ >{{ $t2("流程撤回", "components.wf.wfRevoke")
965
+ }}<span style="margin-left: 10px; margin-right: 10px">—</span
966
+ ><b class="f-red" style="font-size: 12px"
967
+ >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
968
+ ></span
969
+ >
970
+ </template>
971
+ <el-form :model="revokeForm">
972
+ <div id="containt">
973
+ <table class="table-detail">
974
+ <tbody>
975
+ <tr>
976
+ <th>
977
+ <span class="t">
978
+ {{ $t2("撤回意见", "components.wf.revokeOpinion") }}
979
+ </span>
980
+ </th>
981
+ <td>
982
+ <el-form-item label="" field="opinion">
983
+ <el-input
984
+ type="textarea"
985
+ :rows="8"
986
+ :placeholder="
987
+ $t2('请输入内容', 'components.wf.revokeOpinionPlaceholder')
988
+ "
989
+ v-model="revokeForm.opinion"
990
+ ></el-input>
991
+ </el-form-item>
992
+ </td>
993
+ </tr>
994
+ </tbody>
995
+ </table>
996
+ </div>
997
+ </el-form>
998
+ <span slot="footer" class="dialog-footer">
999
+ <el-button
1000
+ type="primary"
1001
+ plain
1002
+ class="button-sty"
1003
+ @click="revokeDialogVisible = false"
1004
+ >
1005
+ <i class="el-icon-close el-icon"></i>
1006
+ {{ $t2("取 消", "system.button.cancel2") }}
1007
+ </el-button>
1008
+ <el-button type="primary" @click="subRevokeForm(0)" class="button-sty">
1009
+ <i class="el-icon-check el-icon"></i>
1010
+ {{ $t2("确 定", "system.button.confirm2") }}
1011
+ </el-button>
1012
+ </span>
1013
+ </el-dialog>
1014
+ <el-dialog
1015
+ v-if="showAddIncreaseSignDialog"
1016
+ :visible.sync="showAddIncreaseSignDialog"
1017
+ :modal-append-to-body="false"
1018
+ :close-on-click-modal="false"
1019
+ :modal="false"
1020
+ custom-class="dialog-style wf-dialog"
1021
+ v-el-drag-dialog
1022
+ v-el-dialog-center
1023
+ :append-to-body="true"
1024
+ >
1025
+ <template #title>
1026
+ <span class="el-dialog__title"
1027
+ >{{ $t2("流程加签", "components.wf.wfAddIncreaseSign")
1028
+ }}<span style="margin-left: 10px; margin-right: 10px">—</span
1029
+ ><b class="f-red" style="font-size: 12px"
1030
+ >{{ $t2("节点", "components.wf.node") }}:{{ wfInfo.taskName }}</b
1031
+ ></span
1032
+ >
1033
+ </template>
1034
+ <el-form :model="addIncreaseSignForm">
1035
+ <div id="containt">
1036
+ <table class="table-detail">
1037
+ <tbody>
1038
+ <tr>
1039
+ <th>
1040
+ <span class="t">
1041
+ {{ $t2("候选人", "components.wf.addIncreaseSignUser") }}
1042
+ </span>
1043
+ </th>
1044
+ <td>
1045
+ <el-form-item field="receiverName">
1046
+ <el-input
1047
+ class="search-input"
1048
+ max="200"
1049
+ v-model="addIncreaseSignForm.userNickNames"
1050
+ @clear="
1051
+ addIncreaseSignUsers = [];
1052
+ $forceUpdate();
1053
+ "
1054
+ :placeholder="$t2('候选人', 'components.wf.addIncreaseSignUser')"
1055
+ v-el-readonly
1056
+ clearable
1057
+ >
1058
+ <i
1059
+ slot="suffix"
1060
+ class="el-input__icon el-icon-search"
1061
+ @click="showAddTaskUserDialog = true"
1062
+ ></i>
1063
+ </el-input>
1064
+ </el-form-item>
1065
+ </td>
1066
+ </tr>
1067
+ <tr>
1068
+ <th>
1069
+ <span class="t">
1070
+ {{ $t2("加签意见", "components.wf.addIncreaseSignOpinion") }}
1071
+ </span>
1072
+ </th>
1073
+ <td colspan="3">
1074
+ <el-form-item field="opinion">
1075
+ <el-input
1076
+ type="textarea"
1077
+ :rows="8"
1078
+ :placeholder="
1079
+ $t2(
1080
+ '请输入内容',
1081
+ 'components.wf.addIncreaseSignOpinionPlaceholder'
1082
+ )
1083
+ "
1084
+ v-model="addIncreaseSignForm.opinion"
1085
+ ></el-input>
1086
+ </el-form-item>
1087
+ </td>
1088
+ </tr>
1089
+ </tbody>
1090
+ </table>
1091
+ </div>
1092
+ </el-form>
1093
+ <span slot="footer" class="dialog-footer">
1094
+ <el-button
1095
+ type="primary"
1096
+ plain
1097
+ class="button-sty"
1098
+ @click="showAddIncreaseSignDialog = false"
1099
+ >
1100
+ <i class="el-icon-close el-icon"></i>
1101
+ {{ $t2("取 消", "system.button.cancel2") }}
1102
+ </el-button>
1103
+ <el-button type="primary" @click="submitAddTaskUserForm(0)" class="button-sty">
1104
+ <i class="el-icon-check el-icon"></i>
1105
+ {{ $t2("确认加签", "components.wf.confirmAddIncreaseSign") }}
1106
+ </el-button>
1107
+ </span>
1108
+ </el-dialog>
1109
+ <user-dialog
1110
+ v-if="showUserDialog"
1111
+ :visiable.sync="showUserDialog"
1112
+ @close="showUserDialog = false"
1113
+ @confirm="userConfirm"
1114
+ multi="true"
1115
+ :param.sync="wfUserParamForTransfer"
1116
+ :rows="changeUserRows"
1117
+ ></user-dialog>
1118
+
1119
+ <urgingDialog
1120
+ v-if="urgingDialogVisible"
1121
+ :visiable.sync="urgingDialogVisible"
1122
+ :wfInfo="wfInfo"
1123
+ :current_prefix="current_prefix"
1124
+ @confirm="reloadContent"
1125
+ multi="true"
1126
+ ></urgingDialog>
1127
+ <deleteTaskUserDialog
1128
+ v-if="showDeleteTaskUserDialog"
1129
+ :visiable.sync="showDeleteTaskUserDialog"
1130
+ :wfInfo="wfInfo"
1131
+ :current_prefix="current_prefix"
1132
+ @confirm="reloadContent"
1133
+ multi="true"
1134
+ ></deleteTaskUserDialog>
1135
+
1136
+ <addTaskUserdialog
1137
+ v-if="showAddTaskUserDialog"
1138
+ :visiable.sync="showAddTaskUserDialog"
1139
+ :wfInfo="wfInfo"
1140
+ :current_prefix="current_prefix"
1141
+ :rows.sync="addIncreaseSignUsers"
1142
+ @confirm="confirmAddTaskUser"
1143
+ multi="true"
1144
+ :param.sync="wfUserParamForAddSign"
1145
+ ></addTaskUserdialog>
1146
+ <user-dialog
1147
+ v-if="showTalkUserDialog"
1148
+ :visiable.sync="showTalkUserDialog"
1149
+ @close="showTalkUserDialog = false"
1150
+ @confirm="confirmTalkUserDialog"
1151
+ multi="false"
1152
+ :param.sync="wfUserParamForTalk"
1153
+ ></user-dialog>
1154
+ <setCandidateDialog
1155
+ v-if="showSetCandidateDialog"
1156
+ :visiable.sync="showSetCandidateDialog"
1157
+ @close="closeSetCandidateDialog"
1158
+ :wfInfo="wfInfo"
1159
+ :current_prefix="current_prefix"
1160
+ ></setCandidateDialog>
1161
+ <wfFlowEleScriptDialog
1162
+ v-if="showWfFlowEleScriptDialog"
1163
+ :visiable.sync="showWfFlowEleScriptDialog"
1164
+ :wfInfo="wfInfo"
1165
+ :current_prefix="current_prefix"
1166
+ ></wfFlowEleScriptDialog>
1167
+ </template>
1168
+ </baseTabPane>
1169
+ <div v-else></div>
1170
+ </template>
1171
+
1172
+ <script>
1173
+ import { wfContentMixin } from "./wf.js";
1174
+
1175
+ export default {
1176
+ components: {
1177
+ UserDialog: () => import("../../views/user/user/dialog.vue"),
1178
+ urgingDialog: () => import("./urgingDialog"),
1179
+ deleteTaskUserDialog: () => import("./deleteTaskUserDialog"),
1180
+ addTaskUserdialog: () => import("./addTaskUserdialog"),
1181
+ setCandidateDialog: () => import("./setCandidateDialog"),
1182
+ setCandidateButton: () => import("./setCandidateButton"),
1183
+ addOpinionButton: () => import("./addOpinionButton"),
1184
+ wfFlowEleScriptDialog: () => import("./wfFlowEleScriptDialog"),
1185
+ },
1186
+ mixins: [wfContentMixin],
1187
+ };
1188
+ </script>