cloud-web-corejs 1.0.280 → 1.1.0-dev.10

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 (193) 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 +45 -3
  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 +248 -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/excelImport/index.vue +156 -156
  19. package/src/components/jsonImport/index.vue +1 -1
  20. package/src/components/langImport/index.vue +1 -1
  21. package/src/components/mobile/statusTag/mixins.js +1 -61
  22. package/src/components/mobile/wf/addTaskUserdialog.vue +23 -3
  23. package/src/components/mobile/wf/content.vue +1705 -1556
  24. package/src/components/mobile/wf/deleteTaskUserDialog.vue +22 -3
  25. package/src/components/mobile/wf/mixins/wfModifyDialogMixin.js +8 -6
  26. package/src/components/mobile/wf/selectUserDialog.vue +122 -0
  27. package/src/components/mobile/wf/setCandidateDialog.vue +25 -4
  28. package/src/components/mobile/wf/urgingDialog.vue +26 -3
  29. package/src/components/mobile/wf/wfModifyDialog.vue +4 -0
  30. package/src/components/obsUpload/index.vue +1 -1
  31. package/src/components/table/config.js +78 -78
  32. package/src/components/table/index.js +1276 -1276
  33. package/src/components/table/plugins/cell-area/index.js +1055 -0
  34. package/src/components/table/plugins/cell-area/index.scss +77 -0
  35. package/src/components/table/plugins/cell-area/util.js +224 -0
  36. package/src/components/table/tableForm.vue +330 -330
  37. package/src/components/table/tableFormMixin.js +318 -318
  38. package/src/components/table/vxeFilter/index.js +163 -163
  39. package/src/components/table/vxeFilter/mixin.js +316 -316
  40. package/src/components/wf/content.vue +1188 -1188
  41. package/src/components/wf/wf.js +40 -20
  42. package/src/components/wf/wfActionDropdown.vue +1 -1
  43. package/src/components/wf/wfActionItems.js +1 -1
  44. 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
  45. 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
  46. 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
  47. 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
  48. package/src/components/xform/form-designer/designer.js +51 -52
  49. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +269 -269
  50. package/src/components/xform/form-designer/form-widget/container-widget/detail-h5-widget.vue +18 -2
  51. package/src/components/xform/form-designer/form-widget/container-widget/detail-temp-widget.vue +132 -0
  52. package/src/components/xform/form-designer/form-widget/container-widget/detail-widget.vue +250 -250
  53. package/src/components/xform/form-designer/form-widget/container-widget/h5-card-pane-widget.vue +23 -2
  54. package/src/components/xform/form-designer/form-widget/container-widget/h5-card-widget.vue +30 -1
  55. package/src/components/xform/form-designer/form-widget/dialog/fileReferenceDialog.vue +319 -320
  56. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +365 -365
  57. package/src/components/xform/form-designer/form-widget/dialog/importDialog.vue +185 -185
  58. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +554 -555
  59. package/src/components/xform/form-designer/form-widget/dialog/vabSearchDialog.vue +409 -409
  60. package/src/components/xform/form-designer/form-widget/field-widget/a-link-widget.vue +150 -132
  61. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +114 -114
  62. package/src/components/xform/form-designer/form-widget/field-widget/date-widget.vue +154 -154
  63. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +47 -1
  64. package/src/components/xform/form-designer/form-widget/field-widget/mixins/date-limit-mixin.js +178 -178
  65. package/src/components/xform/form-designer/form-widget/field-widget/mixins/time-limit-mixin.js +77 -77
  66. package/src/components/xform/form-designer/form-widget/field-widget/select-export-item-button-widget.vue +6 -0
  67. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +139 -139
  68. package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +1 -1
  69. package/src/components/xform/form-designer/form-widget/field-widget/time-range-widget.vue +106 -106
  70. package/src/components/xform/form-designer/form-widget/field-widget/time-widget.vue +134 -134
  71. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +3 -2
  72. package/src/components/xform/form-designer/indexMixin.js +35 -1
  73. package/src/components/xform/form-designer/setting-panel/form-setting.vue +39 -39
  74. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +10 -10
  75. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/exportItemColumns-dialog.vue +438 -432
  76. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +2103 -2103
  77. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-temp-edito.vue +90 -0
  78. package/src/components/xform/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue +82 -82
  79. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +833 -846
  80. package/src/components/xform/form-designer/setting-panel/property-editor/container-table/table-dynamicField-editor.vue +8 -8
  81. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +137 -137
  82. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +237 -237
  83. package/src/components/xform/form-designer/setting-panel/property-editor/field-date/date-defaultValue-editor.vue +43 -43
  84. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultValue-editor.vue +43 -43
  85. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +96 -96
  86. package/src/components/xform/form-designer/setting-panel/property-editor/field-table-export-button/select-export-item-button-editor.vue +51 -0
  87. package/src/components/xform/form-designer/setting-panel/property-editor/field-time/time-defaultValue-editor.vue +42 -42
  88. package/src/components/xform/form-designer/setting-panel/property-editor/field-time-range/time-range-defaultValue-editor.vue +43 -43
  89. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +158 -158
  90. package/src/components/xform/form-designer/setting-panel/property-editor/h5Span-editor.vue +51 -0
  91. package/src/components/xform/form-designer/setting-panel/property-editor/itemStyle-editor.vue +39 -0
  92. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +188 -188
  93. package/src/components/xform/form-designer/setting-panel/property-editor/styleTempClass-editor.vue +51 -0
  94. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +347 -347
  95. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +12 -0
  96. package/src/components/xform/form-designer/toolbar-panel/index.vue +884 -874
  97. package/src/components/xform/form-designer/toolbar-panel/indexMixin.js +14 -0
  98. package/src/components/xform/form-designer/widget-panel/index.vue +11 -7
  99. package/src/components/xform/form-designer/widget-panel/indexMixin.js +30 -6
  100. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +112 -4
  101. package/src/components/xform/form-render/container-item/data-table-mixin.js +151 -93
  102. package/src/components/xform/form-render/container-item/detail-h5-item.vue +204 -34
  103. package/src/components/xform/form-render/container-item/detail-temp-item.vue +110 -0
  104. package/src/components/xform/form-render/container-item/h5-card-pane-item.vue +160 -140
  105. package/src/components/xform/form-render/container-item/list-h5-item.vue +1913 -1699
  106. package/src/components/xform/form-render/index.vue +153 -147
  107. package/src/components/xform/form-render/indexMixin.js +35 -3
  108. package/src/components/xform/lang/en-US.js +14 -0
  109. package/src/components/xform/lang/zh-CN.js +17 -0
  110. package/src/components/xform/mixins/defaultHandle.js +707 -707
  111. package/src/components/xform/styles/h5.scss +2238 -0
  112. package/src/components/xform/utils/textMaskUtil.js +182 -179
  113. package/src/components/xform/utils/treeTableUtil.js +1292 -1265
  114. package/src/components/xform/utils/util.js +56 -11
  115. package/src/directive/append-to-body/index.js +48 -0
  116. package/src/index.js +13 -4
  117. package/src/layout/components/Sidebar/default.vue +1655 -1655
  118. package/src/layout/components/extractedCode/viewDialog.vue +7 -7
  119. package/src/router/index.js +48 -27
  120. package/src/router/modules/customer.js +71 -14
  121. package/src/store/modules/permission.js +17 -18
  122. package/src/utils/assetUrl.js +19 -0
  123. package/src/utils/pdfUtil.js +429 -429
  124. package/src/utils/resolveViewComponent.js +142 -16
  125. package/src/utils/vab.js +1283 -1279
  126. package/src/views/bd/project/branch/bd_branch/edit.vue +145 -0
  127. package/src/views/bd/project/branch/bd_branch/list.vue +72 -0
  128. package/src/views/bd/project/branch/bd_branch/menuKindDialog.vue +106 -0
  129. package/src/views/bd/project/branch/bd_branch/mixins/edit.js +189 -0
  130. package/src/views/bd/project/branch/bd_branch/mixins/list.js +124 -0
  131. package/src/views/bd/project/branch/bd_branch/mixins/menuKindDialog.js +85 -0
  132. package/src/views/bd/project/branch/form_script/list.vue +31 -0
  133. package/src/views/bd/project/branch/form_template/list.vue +30 -0
  134. package/src/views/bd/project/branch/menu_kind/list.vue +31 -0
  135. package/src/views/bd/project/common/form_script/list.vue +16 -0
  136. package/src/views/bd/project/common/form_template/list.vue +15 -0
  137. package/src/views/bd/project/common/menu_kind/list.vue +15 -0
  138. package/src/views/bd/project/core/branchContext.js +100 -0
  139. package/src/views/bd/project/core/branchPage.js +78 -0
  140. package/src/views/bd/project/core/branchPageWrap.vue +225 -0
  141. package/src/views/bd/project/core/branchScope.js +44 -0
  142. package/src/views/bd/project/core/branchSearchPage.js +285 -0
  143. package/src/views/bd/project/core/branchSelect.vue +85 -0
  144. package/src/views/bd/project/core/branchTreeBar.vue +81 -0
  145. package/src/views/bd/project/core/httpBranchPatch.js +58 -0
  146. package/src/views/bd/project/datatable/menu_kind/list.vue +15 -0
  147. package/src/views/bd/project/datatable/table_model/list.vue +15 -0
  148. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -174
  149. package/src/views/bd/setting/form_template/edit.vue +378 -356
  150. package/src/views/bd/setting/form_template/formDesignerDialog.vue +6 -0
  151. package/src/views/bd/setting/form_template/formTemplateType.js +43 -0
  152. package/src/views/bd/setting/form_template/list.vue +304 -303
  153. package/src/views/bd/setting/form_template/mixins/edit.js +344 -280
  154. package/src/views/bd/setting/form_template/mixins/list.js +748 -721
  155. package/src/views/bd/setting/table_model/edit.vue +1066 -1066
  156. package/src/views/bd/setting/table_model/mixins/edit.js +1455 -1455
  157. package/src/views/bd/setting/table_model/mixins/zdDialog.js +148 -148
  158. package/src/views/demo/bizTab/bill/billConfig.js +41 -0
  159. package/src/views/demo/bizTab/bill/detail.vue +436 -0
  160. package/src/views/demo/bizTab/bill/list.vue +288 -0
  161. package/src/views/demo/bizTab/bill/productDialog.vue +176 -0
  162. package/src/views/demo/bizTab/simple/billApi.js +123 -0
  163. package/src/views/demo/bizTab/simple/detail.vue +407 -0
  164. package/src/views/demo/bizTab/simple/list.vue +217 -0
  165. package/src/views/demo/bizTab/standalone/index.vue +121 -0
  166. package/src/views/demo/bizTab/wf/billConfig.js +44 -0
  167. package/src/views/demo/bizTab/wf/detail.vue +661 -0
  168. package/src/views/demo/bizTab/wf/list.vue +242 -0
  169. package/src/views/support/form-dialog-demo/demoPickerDialog.vue +72 -0
  170. package/src/views/support/form-dialog-demo/index.vue +537 -0
  171. package/src/views/user/file_view_ins/list.vue +970 -970
  172. package/src/views/user/form/vform/designer.vue +823 -821
  173. package/src/views/user/home/default.vue +1117 -1117
  174. package/src/views/user/home/default2.vue +1 -1
  175. package/src/views/user/home/index.vue +103 -101
  176. package/src/views/user/home/wjl/content.vue +1569 -0
  177. package/src/views/user/notify_message/dialog.vue +139 -137
  178. package/src/views/user/outLink/cc_form_view.vue +188 -0
  179. package/src/views/user/outLink/form_view.vue +202 -202
  180. package/src/views/user/outLink/index.vue +110 -110
  181. package/src/views/user/outLink/view.vue +3 -3
  182. package/src/views/user/role/edit.vue +632 -632
  183. package/src/views/user/role/list.vue +260 -260
  184. package/src/views/user/wf/iframe/index.vue +51 -51
  185. package/src/views/user/wf/iframe/index2.vue +64 -64
  186. package/src/views/user/wf/wf_manage/list.vue +1112 -1116
  187. package/src/views/user/wf/wf_manage/list2.vue +871 -875
  188. package/src/views/user/wf/wf_manage/wfContentDialog.vue +134 -131
  189. package/src/views/user/wf/wf_obj_config/importItemDialog.vue +1 -1
  190. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-menu-widget.vue +0 -106
  191. package/src/components/xform/form-designer/form-widget/field-widget/tableexportbuttonwidget.vue +0 -99
  192. package/src/components/xform/form-render/container-item/list-h5-item2.vue +0 -1340
  193. 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>