cloud-web-corejs 1.0.280 → 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 (159) 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 +174 -34
  5. package/src/components/VabUpload/previewGroup.js +128 -0
  6. package/src/components/VabUpload/view.vue +247 -209
  7. package/src/components/baseTabs/mixins.js +181 -181
  8. package/src/components/bizTab/BizBillActions.vue +129 -0
  9. package/src/components/bizTab/BizTabListPage.vue +391 -0
  10. package/src/components/bizTab/README.md +378 -0
  11. package/src/components/bizTab/billTableUtil.js +48 -0
  12. package/src/components/bizTab/billValidators.js +136 -0
  13. package/src/components/bizTab/bizBillDetailMixin.js +705 -0
  14. package/src/components/bizTab/index.js +24 -0
  15. package/src/components/excelExport/exportFieldDialog.vue +23 -12
  16. package/src/components/excelExport/exportItemConfigUtil.js +30 -0
  17. package/src/components/excelExport/mixins.js +3 -3
  18. package/src/components/mobile/statusTag/mixins.js +1 -61
  19. package/src/components/mobile/wf/content.vue +1662 -1556
  20. package/src/components/mobile/wf/mixins/wfModifyDialogMixin.js +8 -6
  21. package/src/components/table/config.js +78 -78
  22. package/src/components/table/index.js +1276 -1276
  23. package/src/components/table/plugins/cell-area/index.js +1055 -0
  24. package/src/components/table/plugins/cell-area/index.scss +77 -0
  25. package/src/components/table/plugins/cell-area/util.js +224 -0
  26. package/src/components/table/tableForm.vue +330 -330
  27. package/src/components/table/tableFormMixin.js +318 -318
  28. package/src/components/table/vxeFilter/index.js +163 -163
  29. package/src/components/table/vxeFilter/mixin.js +316 -316
  30. package/src/components/wf/content.vue +1188 -1188
  31. package/src/components/wf/wf.js +40 -20
  32. package/src/components/wf/wfActionDropdown.vue +1 -1
  33. package/src/components/wf/wfActionItems.js +1 -1
  34. 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
  35. 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
  36. 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
  37. 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
  38. package/src/components/xform/form-designer/designer.js +15 -0
  39. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +269 -269
  40. package/src/components/xform/form-designer/form-widget/container-widget/detail-temp-widget.vue +132 -0
  41. package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +250 -250
  42. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +319 -320
  43. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +365 -365
  44. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +554 -555
  45. package/src/components/xform/form-designer/form-widget/dialog/vabSearchDialog.vue +409 -409
  46. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +150 -132
  47. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +114 -114
  48. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +154 -154
  49. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +47 -1
  50. package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +178 -178
  51. package/src/components/xform/form-designer/form-widget/field-widget/mixins/time-limit-mixin.js +77 -77
  52. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +6 -0
  53. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +139 -139
  54. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +106 -106
  55. package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +134 -134
  56. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +1 -0
  57. package/src/components/xform/form-designer/setting-panel/form-setting.vue +39 -39
  58. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +10 -10
  59. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/exportItemColumns-dialog.vue +438 -432
  60. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +2103 -2103
  61. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-temp-edito.vue +90 -0
  62. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue +82 -82
  63. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +19 -5
  64. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +8 -8
  65. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +137 -137
  66. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +237 -237
  67. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue +43 -43
  68. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue +43 -43
  69. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +96 -96
  70. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +51 -0
  71. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue +42 -42
  72. package/src/components/xform/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue +43 -43
  73. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +158 -158
  74. package/src/components/xform/form-designer/setting-panel/property-editor/h5Span-editor.vue +51 -0
  75. package/src/components/xform/form-designer/setting-panel/property-editor/itemStyle-editor.vue +39 -0
  76. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +188 -188
  77. package/src/components/xform/form-designer/setting-panel/property-editor/styleTempClass-editor.vue +51 -0
  78. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +347 -347
  79. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +4 -0
  80. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +59 -3
  81. package/src/components/xform/form-render/container-item/data-table-mixin.js +151 -93
  82. package/src/components/xform/form-render/container-item/detail-h5-item.vue +183 -32
  83. package/src/components/xform/form-render/container-item/detail-temp-item.vue +110 -0
  84. package/src/components/xform/form-render/container-item/h5-card-pane-item.vue +160 -140
  85. package/src/components/xform/form-render/container-item/list-h5-item.vue +1688 -1700
  86. package/src/components/xform/form-render/index.vue +153 -147
  87. package/src/components/xform/form-render/indexMixin.js +12 -0
  88. package/src/components/xform/lang/en-US.js +10 -0
  89. package/src/components/xform/lang/zh-CN.js +12 -0
  90. package/src/components/xform/mixins/defaultHandle.js +707 -707
  91. package/src/components/xform/styles/h5.scss +1992 -0
  92. package/src/components/xform/utils/textMaskUtil.js +182 -179
  93. package/src/components/xform/utils/treeTableUtil.js +1292 -1265
  94. package/src/components/xform/utils/util.js +56 -11
  95. package/src/index.js +9 -4
  96. package/src/layout/components/extractedCode/viewDialog.vue +7 -7
  97. package/src/router/index.js +21 -0
  98. package/src/router/modules/customer.js +71 -14
  99. package/src/store/modules/permission.js +17 -18
  100. package/src/utils/pdfUtil.js +429 -429
  101. package/src/utils/resolveViewComponent.js +142 -16
  102. package/src/views/bd/project/branch/bd_branch/edit.vue +145 -0
  103. package/src/views/bd/project/branch/bd_branch/list.vue +72 -0
  104. package/src/views/bd/project/branch/bd_branch/menuKindDialog.vue +106 -0
  105. package/src/views/bd/project/branch/bd_branch/mixins/edit.js +189 -0
  106. package/src/views/bd/project/branch/bd_branch/mixins/list.js +124 -0
  107. package/src/views/bd/project/branch/bd_branch/mixins/menuKindDialog.js +85 -0
  108. package/src/views/bd/project/branch/form_script/list.vue +31 -0
  109. package/src/views/bd/project/branch/form_template/list.vue +30 -0
  110. package/src/views/bd/project/branch/menu_kind/list.vue +31 -0
  111. package/src/views/bd/project/common/form_script/list.vue +16 -0
  112. package/src/views/bd/project/common/form_template/list.vue +15 -0
  113. package/src/views/bd/project/common/menu_kind/list.vue +15 -0
  114. package/src/views/bd/project/core/branchContext.js +100 -0
  115. package/src/views/bd/project/core/branchPage.js +78 -0
  116. package/src/views/bd/project/core/branchPageWrap.vue +225 -0
  117. package/src/views/bd/project/core/branchScope.js +44 -0
  118. package/src/views/bd/project/core/branchSearchPage.js +285 -0
  119. package/src/views/bd/project/core/branchSelect.vue +85 -0
  120. package/src/views/bd/project/core/branchTreeBar.vue +81 -0
  121. package/src/views/bd/project/core/httpBranchPatch.js +58 -0
  122. package/src/views/bd/project/datatable/menu_kind/list.vue +15 -0
  123. package/src/views/bd/project/datatable/table_model/list.vue +15 -0
  124. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -174
  125. package/src/views/bd/setting/table_model/edit.vue +1066 -1066
  126. package/src/views/bd/setting/table_model/mixins/edit.js +1455 -1455
  127. package/src/views/bd/setting/table_model/mixins/zdDialog.js +148 -148
  128. package/src/views/demo/bizTab/bill/billConfig.js +41 -0
  129. package/src/views/demo/bizTab/bill/detail.vue +436 -0
  130. package/src/views/demo/bizTab/bill/list.vue +288 -0
  131. package/src/views/demo/bizTab/bill/productDialog.vue +176 -0
  132. package/src/views/demo/bizTab/simple/billApi.js +123 -0
  133. package/src/views/demo/bizTab/simple/detail.vue +407 -0
  134. package/src/views/demo/bizTab/simple/list.vue +217 -0
  135. package/src/views/demo/bizTab/standalone/index.vue +121 -0
  136. package/src/views/demo/bizTab/wf/billConfig.js +44 -0
  137. package/src/views/demo/bizTab/wf/detail.vue +661 -0
  138. package/src/views/demo/bizTab/wf/list.vue +242 -0
  139. package/src/views/support/form-dialog-demo/demoPickerDialog.vue +72 -0
  140. package/src/views/support/form-dialog-demo/index.vue +537 -0
  141. package/src/views/user/file_view_ins/list.vue +3 -3
  142. package/src/views/user/home/index.vue +8 -6
  143. package/src/views/user/home/wjl/content.vue +1569 -0
  144. package/src/views/user/notify_message/dialog.vue +7 -5
  145. package/src/views/user/outLink/cc_form_view.vue +188 -0
  146. package/src/views/user/outLink/form_view.vue +2 -2
  147. package/src/views/user/outLink/index.vue +4 -4
  148. package/src/views/user/outLink/view.vue +3 -3
  149. package/src/views/user/role/edit.vue +632 -632
  150. package/src/views/user/role/list.vue +260 -260
  151. package/src/views/user/wf/iframe/index.vue +3 -3
  152. package/src/views/user/wf/iframe/index2.vue +3 -3
  153. package/src/views/user/wf/wf_manage/list.vue +1112 -1116
  154. package/src/views/user/wf/wf_manage/list2.vue +9 -13
  155. package/src/views/user/wf/wf_manage/wfContentDialog.vue +8 -5
  156. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-menu-widget.vue +0 -106
  157. package/src/components/xform/form-designer/form-widget/field-widget/tableexportbuttonwidget.vue +0 -99
  158. package/src/components/xform/form-render/container-item/list-h5-item2.vue +0 -1340
  159. 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>