cloud-web-corejs-haier 1.0.43 → 1.0.45

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 (228) hide show
  1. package/package.json +8 -6
  2. package/src/api/user.js +54 -46
  3. package/src/components/baseAlert/index.vue +57 -53
  4. package/src/components/baseInputExport/index.vue +3 -3
  5. package/src/components/baseTabs/mixins.js +12 -1
  6. package/src/components/errorMsg/index.vue +78 -78
  7. package/src/components/excelExport/button.vue +54 -45
  8. package/src/components/excelExport/exportFieldDialog.vue +3 -3
  9. package/src/components/excelExport/index.js +1 -43
  10. package/src/components/excelExport/index.vue +62 -34
  11. package/src/components/excelExport/mixins.js +74 -87
  12. package/src/components/excelImport/index.js +1 -62
  13. package/src/components/excelImport/mixins.js +1 -774
  14. package/src/components/fileLibrary/index.vue +113 -33
  15. package/src/components/fileLibrary/propertiesDialog.vue +6 -0
  16. package/src/components/hiprint/view/design/index.vue +139 -47
  17. package/src/components/hiprint/view/design/preview.vue +75 -52
  18. package/src/components/hiprint/view/json-view.vue +31 -31
  19. package/src/components/luckysheet/dialog.vue +159 -0
  20. package/src/components/luckysheet/export.js +595 -0
  21. package/src/components/luckysheet/fileUtils.js +147 -0
  22. package/src/components/luckysheet/index.js +69 -0
  23. package/src/components/luckysheet/templateJson.js +12078 -0
  24. package/src/components/luckysheet/view.vue +210 -0
  25. package/src/components/onlineTalk/index.vue +328 -6
  26. package/src/components/onlineTalk/talkUserDialog.vue +280 -0
  27. package/src/components/wf/addTaskUserdialog.vue +5 -5
  28. package/src/components/wf/content.vue +1244 -1169
  29. package/src/components/wf/content2.vue +604 -604
  30. package/src/components/wf/mixins/setCandidateDialog.js +228 -2
  31. package/src/components/wf/mixins/setCandidateDialog2.js +116 -101
  32. package/src/components/wf/mixins/wfTaskUserRangeDialog.js +67 -1
  33. package/src/components/wf/setCandidateDialog.vue +5 -7
  34. package/src/components/wf/setCandidateDialog2.vue +14 -10
  35. package/src/components/wf/wf.js +2325 -2209
  36. package/src/components/wf/wfTaskUserRangeDialog.vue +1 -1
  37. package/src/components/wf/wfUtil.js +129 -91
  38. package/src/components/xform/form-designer/designer.js +1994 -9
  39. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +10 -0
  40. package/src/components/xform/form-designer/form-widget/container-widget/detail-pane-widget.vue +3 -2
  41. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +5 -1
  42. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin - /345/211/257/346/234/254.js" +1639 -0
  43. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +1756 -2
  44. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +1 -0
  45. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +10 -1
  46. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-widget.vue +170 -0
  47. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +1630 -1
  48. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +153 -40
  49. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +65 -46
  50. package/src/components/xform/form-designer/form-widget/field-widget/vue-page-widget.vue +231 -0
  51. package/src/components/xform/form-designer/setting-panel/form-setting.vue +7 -4
  52. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/edit-tree-button-group-config-dialog.vue +281 -0
  53. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +659 -221
  54. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +3 -3
  55. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +133 -0
  56. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +14 -6
  57. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +1 -1
  58. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +1 -1
  59. package/src/components/xform/form-designer/setting-panel/property-editor/field-vue-page/vue-page-editor.vue +48 -0
  60. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +18 -17
  61. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +26 -26
  62. package/src/components/xform/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +67 -13
  63. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +2 -0
  64. package/src/components/xform/form-designer/setting-panel/property-editor/showViewButton-editor.vue +29 -0
  65. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +8 -6
  66. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +1 -0
  67. package/src/components/xform/form-render/container-item/data-table-mixin.js +20 -17
  68. package/src/components/xform/form-render/container-item/detail-item.vue +72 -48
  69. package/src/components/xform/form-render/container-item/sub-form-item.vue +10 -2
  70. package/src/components/xform/form-render/container-item/table2-item.vue +40 -10
  71. package/src/components/xform/form-render/indexMixin.js +3705 -1
  72. package/src/components/xform/icon-picker/icons.json +284 -0
  73. package/src/components/xform/icon-picker/index.vue +145 -0
  74. package/src/components/xform/lang/zh-CN.js +2 -1
  75. package/src/components/xform/mixins/defaultHandle.js +366 -2
  76. package/src/components/xform/utils/formula-util.js +3 -0
  77. package/src/components/xform/utils/sfc-generator.js +2 -2
  78. package/src/components/xform/utils/smart-vue-i18n/index.js +2 -1
  79. package/src/components/xform/utils/tableColumnHelper.js +54 -10
  80. package/src/components/xform/utils/util.js +1547 -1
  81. package/src/index.js +190 -211
  82. package/src/lang/locale/en/login.js +26 -19
  83. package/src/lang/locale/zh/login.js +25 -19
  84. package/src/layout/components/Sidebar/default.vue +252 -71
  85. package/src/layout/components/Sidebar/index.vue +6 -1
  86. package/src/layout/components/TagsView/index.vue +6 -0
  87. package/src/layout/components/langTool.vue +32 -29
  88. package/src/layout/defaultLayout.vue +16 -8
  89. package/src/layout/index.vue +5 -3
  90. package/src/permission.js +135 -1
  91. package/src/router/index.js +1 -4
  92. package/src/store/config/index.js +667 -1
  93. package/src/store/getters.js +2 -1
  94. package/src/store/modules/permission.js +332 -1
  95. package/src/store/modules/settings.js +26 -1
  96. package/src/store/modules/tagsView.js +190 -1
  97. package/src/store/modules/user.js +358 -1
  98. package/src/utils/aes.js +15 -1
  99. package/src/utils/auth.js +27 -1
  100. package/src/utils/componentDialog.js +217 -0
  101. package/src/utils/request.js +368 -1
  102. package/src/utils/vab.js +1256 -7
  103. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -174
  104. package/src/views/bd/setting/bd_company_env/edit.vue +193 -193
  105. package/src/views/bd/setting/formVersion/button.vue +55 -0
  106. package/src/views/bd/setting/formVersion/compareBasicSection.vue +125 -0
  107. package/src/views/bd/setting/formVersion/compareCodeSection.vue +539 -0
  108. package/src/views/bd/setting/formVersion/compareContMixin.scss +65 -0
  109. package/src/views/bd/setting/formVersion/compareContent.vue +63 -0
  110. package/src/views/bd/setting/formVersion/compareDialog.vue +88 -0
  111. package/src/views/bd/setting/formVersion/compareMixin.js +93 -0
  112. package/src/views/bd/setting/formVersion/fieldCompare.vue +54 -0
  113. package/src/views/bd/setting/formVersion/formScriptCompareView.vue +94 -0
  114. package/src/views/bd/setting/formVersion/formTemplateCompareView.vue +74 -0
  115. package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +491 -0
  116. package/src/views/bd/setting/formVersion/link.vue +58 -0
  117. package/src/views/bd/setting/formVersion/preformDialog.vue +87 -0
  118. package/src/views/bd/setting/formVersion/reverButton.vue +82 -0
  119. package/src/views/bd/setting/formVersion/tableDetailDiff.js +99 -0
  120. package/src/views/bd/setting/formVersion/tableModelCompareView.vue +514 -0
  121. package/src/views/bd/setting/formVersion/textDiff.js +102 -0
  122. package/src/views/bd/setting/form_import_log/edit.vue +6 -3
  123. package/src/views/bd/setting/form_import_log/list.vue +5 -0
  124. package/src/views/bd/setting/form_script/edit.vue +196 -83
  125. package/src/views/bd/setting/form_script/edit1.vue +410 -220
  126. package/src/views/bd/setting/form_script/form_list.vue +19 -0
  127. package/src/views/bd/setting/form_script/list.vue +95 -21
  128. package/src/views/bd/setting/form_script/list1.vue +24 -0
  129. package/src/views/bd/setting/form_script/mixins/dialog.js +2 -2
  130. package/src/views/bd/setting/form_script/mixins/edit.js +265 -207
  131. package/src/views/bd/setting/form_script/mixins/edit1.js +259 -201
  132. package/src/views/bd/setting/form_script/mixins/form_list.js +322 -296
  133. package/src/views/bd/setting/form_script/mixins/list.js +163 -95
  134. package/src/views/bd/setting/form_script/mixins/list1.js +244 -155
  135. package/src/views/bd/setting/form_script/mixins/otherAuthDialog.js +1 -1
  136. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +1 -1
  137. package/src/views/bd/setting/form_template/edit.vue +355 -205
  138. package/src/views/bd/setting/form_template/formDesignerDialog.vue +171 -0
  139. package/src/views/bd/setting/form_template/list.vue +49 -74
  140. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +3 -3
  141. package/src/views/bd/setting/form_template/mixins/edit.js +51 -8
  142. package/src/views/bd/setting/form_template/mixins/itemList.js +1 -1
  143. package/src/views/bd/setting/form_template/mixins/list.js +114 -82
  144. package/src/views/bd/setting/form_template/mixins/list2.js +3 -3
  145. package/src/views/bd/setting/form_template/mixins/otherAuthDialog.js +1 -1
  146. package/src/views/bd/setting/form_template/mixins/wf_list.js +3 -7
  147. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +254 -254
  148. package/src/views/bd/setting/form_template/wf_list.vue +161 -127
  149. package/src/views/bd/setting/request_async_setting/edit.vue +320 -320
  150. package/src/views/bd/setting/request_setting/edit.vue +300 -300
  151. package/src/views/bd/setting/request_setting/list.vue +15 -25
  152. package/src/views/bd/setting/table_model/edit.vue +702 -498
  153. package/src/views/bd/setting/table_model/list.vue +28 -0
  154. package/src/views/bd/setting/table_model/mixins/dialog.js +1 -1
  155. package/src/views/bd/setting/table_model/mixins/edit copy.js +903 -0
  156. package/src/views/bd/setting/table_model/mixins/edit.js +228 -121
  157. package/src/views/bd/setting/table_model/mixins/list.js +55 -20
  158. package/src/views/bd/setting/table_model/mixins/otherAuthDialog.js +1 -1
  159. package/src/views/bd/setting/table_model/mixins/zdDialog.js +50 -46
  160. package/src/views/bd/setting/utils/index.js +15 -0
  161. package/src/views/user/api_request/list.vue +203 -203
  162. package/src/views/user/bill_setting/list.vue +345 -345
  163. package/src/views/user/code_rules/list.vue +204 -204
  164. package/src/views/user/common_attribute/list.vue +378 -378
  165. package/src/views/user/common_script/list.vue +341 -341
  166. package/src/views/user/company_info/dialog.vue +80 -49
  167. package/src/views/user/country/list.vue +197 -197
  168. package/src/views/user/extend_datasource/dialog.vue +0 -3
  169. package/src/views/user/extend_datasource/edit.vue +1 -2
  170. package/src/views/user/extend_datasource/list.vue +221 -224
  171. package/src/views/user/fieldTranslation/editDialog.vue +1 -1
  172. package/src/views/user/fieldTranslation/list.vue +473 -473
  173. package/src/views/user/field_values_invisible/list.vue +207 -207
  174. package/src/views/user/file_type/list.vue +271 -271
  175. package/src/views/user/file_view_area/list.vue +331 -331
  176. package/src/views/user/form/vform/designer.vue +303 -287
  177. package/src/views/user/form/vform/formFieldMapping.js +2 -3
  178. package/src/views/user/form/view/edit.vue +19 -1
  179. package/src/views/user/form/view/list.vue +59 -17
  180. package/src/views/user/groups/list.vue +158 -158
  181. package/src/views/user/home/default.vue +274 -182
  182. package/src/views/user/home/default2.vue +1148 -0
  183. package/src/views/user/home/index.vue +2 -1
  184. package/src/views/user/lang_tag/list.vue +170 -170
  185. package/src/views/user/language_setting/list.vue +208 -208
  186. package/src/views/user/ledger_library/list.vue +12 -10
  187. package/src/views/user/login/default.vue +1 -1
  188. package/src/views/user/login/indexMixin.js +204 -169
  189. package/src/views/user/menu/list.vue +575 -575
  190. package/src/views/user/notify_message/dialog.vue +7 -1
  191. package/src/views/user/notify_template/list.vue +192 -192
  192. package/src/views/user/notify_template/list2.vue +190 -190
  193. package/src/views/user/position/list.vue +188 -188
  194. package/src/views/user/project_tag/list.vue +175 -175
  195. package/src/views/user/push_setting/list.vue +236 -236
  196. package/src/views/user/request_setting/list.vue +248 -248
  197. package/src/views/user/role/list.vue +182 -182
  198. package/src/views/user/system_notice/infoDialog.vue +61 -2
  199. package/src/views/user/system_notice/list.vue +203 -203
  200. package/src/views/user/system_parameter/list.vue +141 -141
  201. package/src/views/user/user/edit.vue +45 -0
  202. package/src/views/user/user/form_list.vue +245 -245
  203. package/src/views/user/user/info.vue +253 -140
  204. package/src/views/user/user_log_classify/list.vue +197 -197
  205. package/src/views/user/wf/iframe/index.vue +46 -46
  206. package/src/views/user/wf/wfReport/index.vue +1 -1
  207. package/src/views/user/wf/wf_auto_submit_data/list.vue +659 -659
  208. package/src/views/user/wf/wf_diy_attribute/edit.vue +1 -1
  209. package/src/views/user/wf/wf_manage/list.vue +795 -795
  210. package/src/views/user/wf/wf_manage/wfContentDialog.vue +106 -106
  211. package/src/views/user/wf/wf_obj_config/dialog.vue +2 -2
  212. package/src/views/user/wf/wf_obj_config/edit.vue +1 -1
  213. package/src/views/user/wf/wf_obj_config/edit_form.vue +2 -2
  214. package/src/views/user/wf/wf_obj_config/itemEdit.vue +1 -1
  215. package/src/views/user/wf/wf_obj_config/itemEdit_form.vue +1 -1
  216. package/src/views/user/wf/wf_obj_config/itemOperateDialog.vue +4 -4
  217. package/src/views/user/wf/wf_obj_config/list.vue +28 -28
  218. package/src/views/user/wf/wf_obj_config/list_form.vue +5 -5
  219. package/src/views/user/wf/wf_obj_config/wfBizDataSettingDialog.vue +292 -292
  220. package/src/views/user/wf/wf_param/edit.vue +1 -1
  221. package/src/views/user/wf/wf_transfer_setting/edit.vue +1 -1
  222. package/src/views/user/wf/wf_transfer_setting/list.vue +321 -319
  223. package/src/views/user/wf/wf_work_calendar/components/calendar.vue +369 -367
  224. package/src/views/user/wf/wf_work_calendar/components/calendar2.vue +401 -399
  225. package/src/views/user/wf/wf_work_calendar/configDialog.vue +6 -6
  226. package/src/views/user/wf/wf_work_calendar/date.js +84 -83
  227. package/src/views/user/wf/wf_work_calendar/list.vue +6 -6
  228. package/src/views/user/workbench_menu/list.vue +555 -0
@@ -1,604 +1,604 @@
1
- <template>
2
- <baseTabPane label="流程信息" :showFold="showWfFold" :defaultShowContent="showWfContent">
3
- <template #default>
4
- <div class="title-name">
5
- <b>
6
- <em>流程主题:</em>
7
- {{ (wfInfo.createDate ? wfInfo.createDate.substring(0, 10) : '') + wfInfo.name }}
8
- </b>
9
- <span v-html="wfInfo.statusStr" class="status"></span>
10
- </div>
11
-
12
- <div class="title-second" @click="showOpeaImg = !showOpeaImg"
13
- style="margin: 14px 0 24px;line-height: 29px;cursor: pointer;"><b>流程操作</b>
14
- <div class="fr" v-if="showOpeaImg == true" style="font-weight: 400;">
15
- <span>收起</span>
16
- <i class="el-icon-arrow-up"></i>
17
- </div>
18
- <div class="fr" v-else style="font-weight: 400;">
19
- <span>展开</span>
20
- <i class="el-icon-arrow-down"></i>
21
- </div>
22
- </div>
23
- <div v-show="showOpeaImg == true">
24
- <div class="flow-btn-opeaBtn" ref="opeaBtn">
25
- <el-button type="primary" class="btn" :class="{on:operateType == 'submit'}" @click="openAgreeDialog('submit')"
26
- v-show="wfInfo.toSubmit">通过
27
- </el-button>
28
- <el-button type="primary" class="btn" :class="{on:operateType == 'interrupt'}"
29
- @click="openManualDialog(null)" v-show="wfInfo.toInterrupt">中断
30
- </el-button>
31
- <el-button type="primary" class="btn" :class="{on:operateType == 'reject'}"
32
- @click="rejectWfTask('reject')" v-show="wfInfo.toReject">驳回
33
- </el-button>
34
- <el-button type="primary" class="btn" :class="{on:operateType == 'transfer'}"
35
- @click="openChangeWfForm('transfer')" v-show="wfInfo.toSubmit">转办
36
- </el-button>
37
- <el-button type="primary" class="btn" :class="{on:operateType == 'urging'}"
38
- @click="openUrgingDialog(null)" v-show="wfInfo.toInterrupt">催办
39
- </el-button>
40
- <el-button type="primary" class="btn" :class="{on:operateType == 'addIncreaseSign'}"
41
- @click="openAddIncreaseSign('addIncreaseSign')" v-show="wfInfo.toAddIncreaseSign">加签
42
- </el-button>
43
- <el-button type="primary" class="btn" :class="{on:operateType == 'deleteIncreaseSign'}"
44
- @click="openDeleteTaskUserDialog(null)" v-show="wfInfo.toDeleteIncreaseSign">
45
- 减签
46
- </el-button>
47
- <el-button type="primary" class="btn" :class="{on:operateType == 'setCandidate'}"
48
- @click="openSetCandidateDialog(null)" v-show="wfInfo.toSetCandidate">候选人
49
- </el-button>
50
- <el-button type="primary" class="btn" :class="{on:operateType == 'revoke'}"
51
- @click="openRevokeDialog('revoke')" v-show="wfInfo.toRevoke">撤回
52
- </el-button>
53
- <el-button type="primary" class="btn" :class="{on:operateType == 'talk'}"
54
- @click="openTalkDialog(null,null,'talk')" v-if="toTalk && wfInfo.stat!=2">沟通
55
- </el-button>
56
- </div>
57
- <template v-if="operateType == 'submit'">
58
- <div class="flow-btn-opeaBox">
59
- <el-form :model="agreeForm">
60
- <table class="table-detail">
61
- <tbody>
62
- <tr v-if="agreeNodes.length>0">
63
- <th>
64
- <span class="t">
65
- 通过节点
66
- </span>
67
- </th>
68
- <td>
69
- <el-form-item label="" field="nodeId">
70
- <el-select v-model="agreeForm.nodeId" placeholder="请选择通过节点">
71
- <el-option v-for="(node,index) in agreeNodes" :key="index" :label="node.nodeName"
72
- :value="node.nodeId"></el-option>
73
- </el-select>
74
- </el-form-item>
75
- </td>
76
- </tr>
77
- <tr>
78
- <th>
79
- <span class="t">
80
- 通过意见
81
- </span>
82
- </th>
83
- <td colspan="3">
84
- <el-form-item label="" field="opinion">
85
- <el-input type="textarea" :rows="8" placeholder="请填写您的意见~
86
- 注:
87
- 通过默认意见为“同意”
88
- " v-model="agreeForm.opinion"></el-input>
89
- </el-form-item>
90
- </td>
91
- </tr>
92
- <tr>
93
- <th class="no"></th>
94
- <td colspan="3">
95
- <el-button type="primary" @click="subAgreeForm" class="button-sty">
96
- <i class="el-icon-check el-icon"></i>
97
- {{ $t2('确 定', 'system.button.confirm2') }}
98
- </el-button>
99
- </td>
100
- </tr>
101
- </tbody>
102
- </table>
103
- </el-form>
104
- </div>
105
- </template>
106
- <template v-else-if="operateType == 'interrupt'">
107
- </template>
108
- <template v-else-if="operateType == 'reject'">
109
- <div class="flow-btn-opeaBox">
110
- <el-form :model="rejectForm">
111
- <table class="table-detail">
112
- <tbody>
113
- <tr>
114
- <th>
115
- <span class="t">
116
- 驳回节点
117
- </span>
118
- </th>
119
- <td colspan="5">
120
- <el-form-item label="" field="nodeId">
121
- <el-select v-model="rejectForm.nodeId" placeholder="请选择驳回节点">
122
- <el-option v-for="(rejectNode,index) in rejectNodes" :key="index" :label="rejectNode.nodeName"
123
- :value="rejectNode.nodeId"></el-option>
124
- </el-select>
125
- <el-radio-group v-if="wfInfo.toRejectNode == false" v-model="rejectForm.rejectSubmitModel"
126
- style="margin-left: 10px;">
127
- <el-radio :label="1">驳回的节点提交顺延下一步</el-radio>
128
- <el-radio :label="2">驳回的节点提交回本节点</el-radio>
129
- </el-radio-group>
130
- </el-form-item>
131
- </td>
132
- </tr>
133
- <tr>
134
- <th>
135
- <span class="t">
136
- 驳回意见
137
- </span>
138
- </th>
139
- <td colspan="5">
140
- <el-form-item label="" field="opinion">
141
- <el-input type="textarea" :rows="8" placeholder="请输入内容" v-model="rejectForm.opinion"></el-input>
142
- </el-form-item>
143
- </td>
144
- </tr>
145
- <tr>
146
- <th class="no"></th>
147
- <td colspan="5">
148
- <el-button type="primary" @click="subRejectForm" class="button-sty">
149
- <i class="el-icon-check el-icon"></i>
150
- {{ $t2('确 定', 'system.button.confirm2') }}
151
- </el-button>
152
- </td>
153
- </tr>
154
- </tbody>
155
- </table>
156
- </el-form>
157
- </div>
158
- </template>
159
- <template v-else-if="operateType == 'transfer'">
160
- <div class="flow-btn-opeaBox">
161
- <el-form :model="changeWfForm">
162
- <table class="table-detail">
163
- <tbody>
164
- <tr>
165
- <th>
166
- <span class="t">
167
- 转办人
168
- </span>
169
- </th>
170
- <td>
171
- <el-form-item label="" field="nodeId">
172
- <el-input
173
- class="search-input"
174
- max="200"
175
- v-model="changeWfForm.userNickNames"
176
- @clear="
177
- changeWfForm.userIds = '';
178
- changeUserRows = [];
179
- $forceUpdate();
180
- "
181
- v-el-readonly
182
- clearable
183
- >
184
- <i slot="suffix" class="el-input__icon el-icon-search" @click="showUserDialog = true"></i>
185
- </el-input>
186
- </el-form-item>
187
- </td>
188
- </tr>
189
- <tr>
190
- <th>
191
- <span class="t">
192
- 转办意见
193
- </span>
194
- </th>
195
- <td colspan="3">
196
- <el-form-item label="" field="opinion">
197
- <el-input type="textarea" :rows="8" placeholder="请输入内容" v-model="changeWfForm.opinion"></el-input>
198
- </el-form-item>
199
- </td>
200
- </tr>
201
- <tr>
202
- <th class="no"></th>
203
- <td colspan="3">
204
- <el-button type="primary" @click="subChangeWfForm" class="button-sty">
205
- <i class="el-icon-check el-icon"></i>
206
- {{ $t2('确 定', 'system.button.confirm2') }}
207
- </el-button>
208
- </td>
209
- </tr>
210
- </tbody>
211
- </table>
212
- </el-form>
213
- </div>
214
- </template>
215
- <template v-else-if="operateType == 'urging'">
216
-
217
- </template>
218
- <template v-else-if="operateType == 'addIncreaseSign'">
219
- <div class="flow-btn-opeaBox">
220
- <el-form :model="addIncreaseSignForm">
221
- <table class="table-detail">
222
- <tbody>
223
- <tr>
224
- <th>
225
- <span class="t">
226
- 候选人
227
- </span>
228
- </th>
229
- <td>
230
- <el-form-item field="receiverName">
231
- <el-input
232
- class="search-input"
233
- max="200"
234
- v-model="addIncreaseSignForm.userNickNames"
235
- @clear="
236
- addIncreaseSignUsers = [];
237
- $forceUpdate();
238
- "
239
- placeholder="候选人"
240
- v-el-readonly
241
- clearable
242
- >
243
- <i slot="suffix" class="el-input__icon el-icon-search"
244
- @click="showAddTaskUserDialog = true"></i>
245
- </el-input>
246
- </el-form-item>
247
- </td>
248
- </tr>
249
- <tr>
250
- <th>
251
- <span class="t">
252
- 加签意见
253
- </span>
254
- </th>
255
- <td colspan="3">
256
- <el-form-item field="opinion">
257
- <el-input type="textarea" :rows="8" placeholder="请输入内容"
258
- v-model="addIncreaseSignForm.opinion"></el-input>
259
- </el-form-item>
260
- </td>
261
- </tr>
262
- <tr>
263
- <th class="no"></th>
264
- <td colspan="3">
265
- <el-button type="primary" @click="submitAddTaskUserForm" class="button-sty">
266
- <i class="el-icon-check el-icon"></i>
267
- {{ $t2('确 定', 'system.button.confirm2') }}
268
- </el-button>
269
- </td>
270
- </tr>
271
- </tbody>
272
- </table>
273
- </el-form>
274
- </div>
275
- </template>
276
- <template v-else-if="operateType == 'deleteIncreaseSign'">
277
-
278
- </template>
279
- <template v-else-if="operateType == 'revoke'">
280
- <div class="flow-btn-opeaBox">
281
- <el-form :model="revokeForm">
282
- <table class="table-detail">
283
- <tbody>
284
- <tr>
285
- <th>
286
- <span class="t">
287
- 撤回意见
288
- </span>
289
- </th>
290
- <td colspan="5">
291
- <el-form-item label="" field="opinion">
292
- <el-input type="textarea" :rows="8" placeholder="请输入内容" v-model="revokeForm.opinion"></el-input>
293
- </el-form-item>
294
- </td>
295
- </tr>
296
- <tr>
297
- <th class="no"></th>
298
- <td colspan="5">
299
- <el-button type="primary" @click="subRevokeForm()" class="button-sty">
300
- <i class="el-icon-check el-icon"></i>
301
- {{ $t2('确 定', 'system.button.confirm2') }}
302
- </el-button>
303
- </td>
304
- </tr>
305
- </tbody>
306
- </table>
307
- </el-form>
308
- </div>
309
- </template>
310
- <template v-else-if="operateType == 'talk'">
311
- <div class="flow-btn-opeaBox">
312
- <el-form :model="changeWfForm">
313
- <table class="table-detail">
314
- <tbody>
315
- <tr>
316
- <th>
317
- <span class="t">
318
- 接收人
319
- </span>
320
- </th>
321
- <td>
322
- <el-form-item field="receiverName">
323
- <el-input
324
- class="search-input"
325
- max="200"
326
- v-model="talkForm.receiverName"
327
- @clear="
328
- changeWfForm.receiver = null;
329
- $forceUpdate();
330
- "
331
- placeholder="接收人"
332
- v-el-readonly
333
- clearable
334
- >
335
- <i slot="suffix" class="el-input__icon el-icon-search" @click="openTalkUserDialog"></i>
336
- </el-input>
337
- </el-form-item>
338
- </td>
339
- <th class="no"></th>
340
- <td></td>
341
- <th class="no"></th>
342
- <td></td>
343
- <th class="no"></th>
344
- <td></td>
345
- </tr>
346
- <tr>
347
- <th>
348
- <span class="t">
349
- 沟通内容
350
- </span>
351
- </th>
352
- <td colspan="3">
353
- <el-form-item field="content">
354
- <el-input type="textarea" :rows="8" placeholder="请输入内容" v-model="talkForm.content"></el-input>
355
- </el-form-item>
356
- </td>
357
- </tr>
358
- <tr>
359
- <th>
360
- <span class="t">
361
- 沟通资料
362
- </span>
363
- </th>
364
- <td colspan="7">
365
- <baseUpload accept="file" multi="true" :file.sync="talkForm.attachmentDTOs"></baseUpload>
366
- </td>
367
- </tr>
368
- <tr>
369
- <th class="no"></th>
370
- <td colspan="3">
371
- <el-button type="primary" @click="submitTalkForm" class="button-sty">
372
- <i class="el-icon-check el-icon"></i>
373
- {{ $t2('确 定', 'system.button.confirm2') }}
374
- </el-button>
375
- </td>
376
- </tr>
377
- </tbody>
378
- </table>
379
- </el-form>
380
- </div>
381
- </template>
382
- </div>
383
-
384
- <div class="title-second" @click="showFlowImg = !showFlowImg"
385
- style="margin: 14px 0 24px;line-height: 29px;cursor: pointer;"><b>流程图</b>
386
- <div class="fr" v-if="showFlowImg == true" style="font-weight: 400;">
387
- <span>收起</span>
388
- <i class="el-icon-arrow-up"></i>
389
- </div>
390
- <div class="fr" v-else style="font-weight: 400;">
391
- <span>展开</span>
392
- <i class="el-icon-arrow-down"></i>
393
- </div>
394
- </div>
395
- <div class="flow-tree" style="padding-right:0" v-show="showFlowImg == true">
396
- <div class="flow-box">
397
- <img :src="wfImage"/>
398
- <el-tooltip :enterable="false" class="item" effect="dark" content="放大" placement="bottom">
399
- <i class="el-icon-zoom-in btn-magnifier" @click="$window.open(wfImage)" style="right:0;"></i>
400
- </el-tooltip>
401
- </div>
402
- <!--<div class="flow-form">
403
- <el-button type="success" class="btn b" @click="subAgreeForm" v-show="wfInfo.toSubmit">通过</el-button>
404
-
405
- </div>
406
- <div class="flow-form" style="top:152px;">
407
- <textarea
408
- class="txt"
409
- placeholder="请填写您的意见~
410
- 注:
411
- 通过默认意见为“同意”
412
- "
413
- v-model="opinion"
414
- ></textarea>
415
- <el-button type="warning" class="btn b" @click="manualEndWf" v-show="wfInfo.toInterrupt">中断</el-button>
416
- <el-button type="danger" class="btn b" @click="rejectWfTask" v-show="wfInfo.toReject">驳回</el-button>
417
- <el-button type="primary" class="btn" @click="openChangeWfForm" v-show="wfInfo.toSubmit">转办</el-button>
418
- <el-button type="primary" class="btn" @click="openUrgingDialog" v-show="wfInfo.toInterrupt">催办</el-button>
419
- </div> -->
420
- </div>
421
- <div class="title-tab">
422
- <div>
423
- <b :class="{on:tabIndex=='1'}" @click="tabIndex='1'">任务情况</b>
424
- <b :class="{on:tabIndex=='2'}" @click="tabIndex='2'" v-if="toTalk">流程沟通</b>
425
- <b :class="{on:tabIndex=='3'}" @click="tabIndex='3'" v-if="showAllWfOpinon">全部任务情况</b>
426
- </div>
427
- </div>
428
- <div class="task-situation" v-show="tabIndex=='1'" style="max-height: 500px; overflow: hidden auto;">
429
- <div class="item" v-for="wftaskLineData in wftaskData" :key="wftaskLineData.id">
430
- <div class="time">
431
- {{ wftaskLineData.approveTime ? wftaskLineData.approveTime.substring(0, 10) : '' }}
432
- <br/>
433
- {{ wftaskLineData.approveTime ? wftaskLineData.approveTime.substring(11) : '' }}
434
- </div>
435
- <div class="status" :class="taskStatuses[wftaskLineData.type]?taskStatuses[wftaskLineData.type].class:''">
436
- {{ taskStatuses[wftaskLineData.type] ? taskStatuses[wftaskLineData.type].value : null }}
437
- </div>
438
- <i class="circle"></i>
439
- <div class="info">
440
- <p>
441
- <span class="name">{{ wftaskLineData.taskName }}</span>
442
- <span>执行人:{{ wftaskLineData.approverName }}</span>
443
- <span>
444
- 候选人:
445
- <span class="">{{ wftaskLineData.candidateNames }}</span>
446
- </span>
447
- </p>
448
- <p class="t"><span class="t1">备注/意见:</span><span>{{ wftaskLineData.opinion }}</span></p>
449
- </div>
450
- </div>
451
- </div>
452
- <div class="task-situation" v-show="toTalk && tabIndex=='2'">
453
- <vxe-grid
454
- ref="table-linkup"
455
- :auto-resize="true"
456
- v-bind="linkupOption"
457
- @resizable-change="$vxeTableUtil.onColumnWitchChange"
458
- @custom="$vxeTableUtil.customHandle"
459
- >
460
- <template #form>
461
- <div style="margin-bottom: 8px;" class="clearfix">
462
- <div class="fl">
463
- <el-button type="primary" class="button-sty" @click="openTalkDialog(null, null, 'talk',1)"
464
- icon="el-icon-chat-dot-square" v-if="wfInfo.stat!=2">沟通
465
- </el-button>
466
- </div>
467
- <div class="fr">
468
- <!-- <vxe-button status="warning" icon="el-icon-search" class="button-sty" @click="searchEvent">搜索
469
- </vxe-button>-->
470
- </div>
471
- </div>
472
- </template>
473
- <template #sender="{row}">
474
- <a
475
- href="javascript:void(0);"
476
- class="a-link"
477
- @click="openTalkDialog(row.sender, row.senderName, 'talk',1)"
478
- v-if="wfInfo.stat!=2"
479
- >
480
- <el-tooltip :enterable="false" effect="dark" content="沟通" placement="top"
481
- popper-class="tooltip-skin">
482
- <div>
483
- <i class="el-icon-chat-dot-square"></i>
484
- <span>{{ row.senderName }}</span>
485
- </div>
486
- </el-tooltip>
487
- </a>
488
- </template>
489
- <template #receiver="{row}">
490
- <a
491
- href="javascript:void(0);"
492
- class="a-link"
493
- @click="openTalkDialog(row.receiver,row.receiverName,'talk',1)"
494
- v-if="wfInfo.stat!=2"
495
- >
496
- <el-tooltip :enterable="false" effect="dark" content="沟通" placement="top"
497
- popper-class="tooltip-skin">
498
- <div>
499
- <i class="el-icon-chat-dot-square"></i>
500
- <span>{{ row.receiverName }}</span>
501
- </div>
502
- </el-tooltip>
503
- </a>
504
- <span v-else>{{ row.receiverName }}</span>
505
- </template>
506
- </vxe-grid>
507
- </div>
508
- <div class="task-situation" v-show="showAllWfOpinon && tabIndex=='3'"
509
- style="max-height: 500px; overflow: hidden auto;">
510
- <div class="item" v-for="wftaskLineData in allWfTaskOpinions" :key="'allWfTaskOpinions'+wftaskLineData.id">
511
- <div class="time">
512
- {{ wftaskLineData.approveTime ? wftaskLineData.approveTime.substring(0, 10) : '' }}
513
- <br/>
514
- {{ wftaskLineData.approveTime ? wftaskLineData.approveTime.substring(11) : '' }}
515
- </div>
516
- <div class="status" :class="taskStatuses[wftaskLineData.type]?taskStatuses[wftaskLineData.type].class:''">
517
- {{ taskStatuses[wftaskLineData.type] ? taskStatuses[wftaskLineData.type].value : null }}
518
- </div>
519
- <i class="circle"></i>
520
- <div class="info">
521
- <p>
522
- <span class="name">{{ wftaskLineData.taskName }}</span>
523
- <span>执行人:{{ wftaskLineData.approverName }}</span>
524
- <span>
525
- 候选人:
526
- <span class="">{{ wftaskLineData.candidateNames }}</span>
527
- </span>
528
- </p>
529
- <p class="t"><span class="t1">备注/意见:</span><span>{{ wftaskLineData.opinion }}</span></p>
530
- </div>
531
- </div>
532
- </div>
533
-
534
- <el-dialog
535
- v-if="showWfManualDialog"
536
- :visible.sync="showWfManualDialog"
537
- :modal-append-to-body="false"
538
- :close-on-click-modal="false"
539
- width="501px"
540
- custom-class="dialog-style tips-dialog warning"
541
- :append-to-body="true"
542
- :show-close="false"
543
- v-el-drag-dialog
544
- v-el-dialog-center
545
- >
546
- <template #title>
547
- <span class="el-dialog__title">流程中断<span style="margin-left: 10px;margin-right: 10px;">—</span><b
548
- class="f-red" style="font-size: 12px;">节点:{{
549
- wfInfo.taskName
550
- }}</b></span>
551
- </template>
552
- <div class="cont">
553
- 您确定要中断流程吗?
554
- </div>
555
- <span slot="footer" class="dialog-footer">
556
- <el-button type="primary" plain class="button-sty" @click="showWfManualDialog = false"><i
557
- class="el-icon-close el-icon"></i>{{ $t2('取 消', 'system.button.cancel2') }}</el-button>
558
- <el-button type="primary" @click="manualEndWf" class="button-sty"><i
559
- class="el-icon-check el-icon"></i>{{ $t2('确 定', 'system.button.confirm2') }}</el-button>
560
- </span>
561
- </el-dialog>
562
- <user-dialog v-if="showUserDialog" :visiable.sync="showUserDialog" @close="showUserDialog = false"
563
- @confirm="userConfirm" multi="true" :param.sync="wfUserParam" :rows="changeUserRows"></user-dialog>
564
-
565
- <urgingDialog v-if="urgingDialogVisible" :visiable.sync="urgingDialogVisible" :wfInfo="wfInfo"
566
- :current_prefix="current_prefix"
567
- @confirm="confirmUrging" multi="true"></urgingDialog>
568
- <deleteTaskUserDialog v-if="showDeleteTaskUserDialog" :visiable.sync="showDeleteTaskUserDialog" :wfInfo="wfInfo"
569
- :current_prefix="current_prefix"
570
- @confirm="confirmDeleteTaskUser" multi="true"></deleteTaskUserDialog>
571
- <addTaskUserdialog v-if="showAddTaskUserDialog" :visiable.sync="showAddTaskUserDialog" :wfInfo="wfInfo"
572
- :current_prefix="current_prefix" :rows.sync="addIncreaseSignUsers"
573
- @confirm="confirmAddTaskUser" multi="true" :param.sync="wfUserParam"></addTaskUserdialog>
574
- <user-dialog v-if="showTalkUserDialog" :visiable.sync="showTalkUserDialog" @close="showTalkUserDialog = false"
575
- @confirm="confirmTalkUserDialog" multi="false"></user-dialog>
576
- <setCandidateDialog v-if="showSetCandidateDialog" :visiable.sync="showSetCandidateDialog"
577
- @close="closeSetCandidateDialog"
578
- :wfInfo="wfInfo"
579
- :current_prefix="current_prefix"></setCandidateDialog>
580
-
581
- </template>
582
- </baseTabPane>
583
- </template>
584
-
585
- <script>
586
- import {wfContentMixin} from './wf.js';
587
-
588
- export default {
589
- components: {
590
- UserDialog: () => import('../../views/user/user/dialog.vue'),
591
- urgingDialog: () => import('./urgingDialog'),
592
- deleteTaskUserDialog: () => import('./deleteTaskUserDialog'),
593
- addTaskUserdialog: () => import('./addTaskUserdialog'),
594
- setCandidateDialog: () => import('./setCandidateDialog')
595
- },
596
- mixins: [wfContentMixin],
597
- data() {
598
- return {
599
- operateType: 'submit'
600
- }
601
- },
602
- methods: {}
603
- };
604
- </script>
1
+ <template>
2
+ <baseTabPane label="流程信息" :showFold="showWfFold" :defaultShowContent="showWfContent">
3
+ <template #default>
4
+ <div class="title-name">
5
+ <b>
6
+ <em>流程主题:</em>
7
+ {{ (wfInfo.createDate ? wfInfo.createDate.substring(0, 10) : '') + wfInfo.name }}
8
+ </b>
9
+ <span v-html="wfInfo.statusStr" class="status"></span>
10
+ </div>
11
+
12
+ <div class="title-second" @click="showOpeaImg = !showOpeaImg"
13
+ style="margin: 14px 0 24px;line-height: 29px;cursor: pointer;"><b>流程操作</b>
14
+ <div class="fr" v-if="showOpeaImg == true" style="font-weight: 400;">
15
+ <span>收起</span>
16
+ <i class="el-icon-arrow-up"></i>
17
+ </div>
18
+ <div class="fr" v-else style="font-weight: 400;">
19
+ <span>展开</span>
20
+ <i class="el-icon-arrow-down"></i>
21
+ </div>
22
+ </div>
23
+ <div v-show="showOpeaImg == true">
24
+ <div class="flow-btn-opeaBtn" ref="opeaBtn">
25
+ <el-button type="primary" class="btn" :class="{on:operateType == 'submit'}" @click="openAgreeDialog('submit')"
26
+ v-show="wfInfo.toSubmit">通过
27
+ </el-button>
28
+ <el-button type="primary" class="btn" :class="{on:operateType == 'interrupt'}"
29
+ @click="openManualDialog(null)" v-show="wfInfo.toInterrupt">中断
30
+ </el-button>
31
+ <el-button type="primary" class="btn" :class="{on:operateType == 'reject'}"
32
+ @click="rejectWfTask('reject')" v-show="wfInfo.toReject">驳回
33
+ </el-button>
34
+ <el-button type="primary" class="btn" :class="{on:operateType == 'transfer'}"
35
+ @click="openChangeWfForm('transfer')" v-show="wfInfo.toSubmit">转办
36
+ </el-button>
37
+ <el-button type="primary" class="btn" :class="{on:operateType == 'urging'}"
38
+ @click="openUrgingDialog(null)" v-show="wfInfo.toInterrupt">催办
39
+ </el-button>
40
+ <el-button type="primary" class="btn" :class="{on:operateType == 'addIncreaseSign'}"
41
+ @click="openAddIncreaseSign('addIncreaseSign')" v-show="wfInfo.toAddIncreaseSign">加签
42
+ </el-button>
43
+ <el-button type="primary" class="btn" :class="{on:operateType == 'deleteIncreaseSign'}"
44
+ @click="openDeleteTaskUserDialog(null)" v-show="wfInfo.toDeleteIncreaseSign">
45
+ 减签
46
+ </el-button>
47
+ <el-button type="primary" class="btn" :class="{on:operateType == 'setCandidate'}"
48
+ @click="openSetCandidateDialog(null)" v-show="wfInfo.toSetCandidate">候选人
49
+ </el-button>
50
+ <el-button type="primary" class="btn" :class="{on:operateType == 'revoke'}"
51
+ @click="openRevokeDialog('revoke')" v-show="wfInfo.toRevoke">中断
52
+ </el-button>
53
+ <el-button type="primary" class="btn" :class="{on:operateType == 'talk'}"
54
+ @click="openTalkDialog(null,null,'talk')" v-if="toTalk && wfInfo.stat!=2">沟通
55
+ </el-button>
56
+ </div>
57
+ <template v-if="operateType == 'submit'">
58
+ <div class="flow-btn-opeaBox">
59
+ <el-form :model="agreeForm">
60
+ <table class="table-detail">
61
+ <tbody>
62
+ <tr v-if="agreeNodes.length>0">
63
+ <th>
64
+ <span class="t">
65
+ 通过节点
66
+ </span>
67
+ </th>
68
+ <td>
69
+ <el-form-item label="" field="nodeId">
70
+ <el-select v-model="agreeForm.nodeId" placeholder="请选择通过节点">
71
+ <el-option v-for="(node,index) in agreeNodes" :key="index" :label="node.nodeName"
72
+ :value="node.nodeId"></el-option>
73
+ </el-select>
74
+ </el-form-item>
75
+ </td>
76
+ </tr>
77
+ <tr>
78
+ <th>
79
+ <span class="t">
80
+ 通过意见
81
+ </span>
82
+ </th>
83
+ <td colspan="3">
84
+ <el-form-item label="" field="opinion">
85
+ <el-input type="textarea" :rows="8" placeholder="请填写您的意见~
86
+ 注:
87
+ 通过默认意见为“同意”
88
+ " v-model="agreeForm.opinion"></el-input>
89
+ </el-form-item>
90
+ </td>
91
+ </tr>
92
+ <tr>
93
+ <th class="no"></th>
94
+ <td colspan="3">
95
+ <el-button type="primary" @click="subAgreeForm" class="button-sty">
96
+ <i class="el-icon-check el-icon"></i>
97
+ {{ $t2('确 定', 'system.button.confirm2') }}
98
+ </el-button>
99
+ </td>
100
+ </tr>
101
+ </tbody>
102
+ </table>
103
+ </el-form>
104
+ </div>
105
+ </template>
106
+ <template v-else-if="operateType == 'interrupt'">
107
+ </template>
108
+ <template v-else-if="operateType == 'reject'">
109
+ <div class="flow-btn-opeaBox">
110
+ <el-form :model="rejectForm">
111
+ <table class="table-detail">
112
+ <tbody>
113
+ <tr>
114
+ <th>
115
+ <span class="t">
116
+ 驳回节点
117
+ </span>
118
+ </th>
119
+ <td colspan="5">
120
+ <el-form-item label="" field="nodeId">
121
+ <el-select v-model="rejectForm.nodeId" placeholder="请选择驳回节点">
122
+ <el-option v-for="(rejectNode,index) in rejectNodes" :key="index" :label="rejectNode.nodeName"
123
+ :value="rejectNode.nodeId"></el-option>
124
+ </el-select>
125
+ <el-radio-group v-if="wfInfo.toRejectNode == false" v-model="rejectForm.rejectSubmitModel"
126
+ style="margin-left: 10px;">
127
+ <el-radio :label="1">驳回的节点提交顺延下一步</el-radio>
128
+ <el-radio :label="2">驳回的节点提交回本节点</el-radio>
129
+ </el-radio-group>
130
+ </el-form-item>
131
+ </td>
132
+ </tr>
133
+ <tr>
134
+ <th>
135
+ <span class="t">
136
+ 驳回意见
137
+ </span>
138
+ </th>
139
+ <td colspan="5">
140
+ <el-form-item label="" field="opinion">
141
+ <el-input type="textarea" :rows="8" placeholder="请输入内容" v-model="rejectForm.opinion"></el-input>
142
+ </el-form-item>
143
+ </td>
144
+ </tr>
145
+ <tr>
146
+ <th class="no"></th>
147
+ <td colspan="5">
148
+ <el-button type="primary" @click="subRejectForm" class="button-sty">
149
+ <i class="el-icon-check el-icon"></i>
150
+ {{ $t2('确 定', 'system.button.confirm2') }}
151
+ </el-button>
152
+ </td>
153
+ </tr>
154
+ </tbody>
155
+ </table>
156
+ </el-form>
157
+ </div>
158
+ </template>
159
+ <template v-else-if="operateType == 'transfer'">
160
+ <div class="flow-btn-opeaBox">
161
+ <el-form :model="changeWfForm">
162
+ <table class="table-detail">
163
+ <tbody>
164
+ <tr>
165
+ <th>
166
+ <span class="t">
167
+ 转办人
168
+ </span>
169
+ </th>
170
+ <td>
171
+ <el-form-item label="" field="nodeId">
172
+ <el-input
173
+ class="search-input"
174
+ max="200"
175
+ v-model="changeWfForm.userNickNames"
176
+ @clear="
177
+ changeWfForm.userIds = '';
178
+ changeUserRows = [];
179
+ $forceUpdate();
180
+ "
181
+ v-el-readonly
182
+ clearable
183
+ >
184
+ <i slot="suffix" class="el-input__icon el-icon-search" @click="showUserDialog = true"></i>
185
+ </el-input>
186
+ </el-form-item>
187
+ </td>
188
+ </tr>
189
+ <tr>
190
+ <th>
191
+ <span class="t">
192
+ 转办意见
193
+ </span>
194
+ </th>
195
+ <td colspan="3">
196
+ <el-form-item label="" field="opinion">
197
+ <el-input type="textarea" :rows="8" placeholder="请输入内容" v-model="changeWfForm.opinion"></el-input>
198
+ </el-form-item>
199
+ </td>
200
+ </tr>
201
+ <tr>
202
+ <th class="no"></th>
203
+ <td colspan="3">
204
+ <el-button type="primary" @click="subChangeWfForm" class="button-sty">
205
+ <i class="el-icon-check el-icon"></i>
206
+ {{ $t2('确 定', 'system.button.confirm2') }}
207
+ </el-button>
208
+ </td>
209
+ </tr>
210
+ </tbody>
211
+ </table>
212
+ </el-form>
213
+ </div>
214
+ </template>
215
+ <template v-else-if="operateType == 'urging'">
216
+
217
+ </template>
218
+ <template v-else-if="operateType == 'addIncreaseSign'">
219
+ <div class="flow-btn-opeaBox">
220
+ <el-form :model="addIncreaseSignForm">
221
+ <table class="table-detail">
222
+ <tbody>
223
+ <tr>
224
+ <th>
225
+ <span class="t">
226
+ 候选人
227
+ </span>
228
+ </th>
229
+ <td>
230
+ <el-form-item field="receiverName">
231
+ <el-input
232
+ class="search-input"
233
+ max="200"
234
+ v-model="addIncreaseSignForm.userNickNames"
235
+ @clear="
236
+ addIncreaseSignUsers = [];
237
+ $forceUpdate();
238
+ "
239
+ placeholder="候选人"
240
+ v-el-readonly
241
+ clearable
242
+ >
243
+ <i slot="suffix" class="el-input__icon el-icon-search"
244
+ @click="showAddTaskUserDialog = true"></i>
245
+ </el-input>
246
+ </el-form-item>
247
+ </td>
248
+ </tr>
249
+ <tr>
250
+ <th>
251
+ <span class="t">
252
+ 加签意见
253
+ </span>
254
+ </th>
255
+ <td colspan="3">
256
+ <el-form-item field="opinion">
257
+ <el-input type="textarea" :rows="8" placeholder="请输入内容"
258
+ v-model="addIncreaseSignForm.opinion"></el-input>
259
+ </el-form-item>
260
+ </td>
261
+ </tr>
262
+ <tr>
263
+ <th class="no"></th>
264
+ <td colspan="3">
265
+ <el-button type="primary" @click="submitAddTaskUserForm" class="button-sty">
266
+ <i class="el-icon-check el-icon"></i>
267
+ {{ $t2('确 定', 'system.button.confirm2') }}
268
+ </el-button>
269
+ </td>
270
+ </tr>
271
+ </tbody>
272
+ </table>
273
+ </el-form>
274
+ </div>
275
+ </template>
276
+ <template v-else-if="operateType == 'deleteIncreaseSign'">
277
+
278
+ </template>
279
+ <template v-else-if="operateType == 'revoke'">
280
+ <div class="flow-btn-opeaBox">
281
+ <el-form :model="revokeForm">
282
+ <table class="table-detail">
283
+ <tbody>
284
+ <tr>
285
+ <th>
286
+ <span class="t">
287
+ 中断意见
288
+ </span>
289
+ </th>
290
+ <td colspan="5">
291
+ <el-form-item label="" field="opinion">
292
+ <el-input type="textarea" :rows="8" placeholder="请输入内容" v-model="revokeForm.opinion"></el-input>
293
+ </el-form-item>
294
+ </td>
295
+ </tr>
296
+ <tr>
297
+ <th class="no"></th>
298
+ <td colspan="5">
299
+ <el-button type="primary" @click="subRevokeForm()" class="button-sty">
300
+ <i class="el-icon-check el-icon"></i>
301
+ {{ $t2('确 定', 'system.button.confirm2') }}
302
+ </el-button>
303
+ </td>
304
+ </tr>
305
+ </tbody>
306
+ </table>
307
+ </el-form>
308
+ </div>
309
+ </template>
310
+ <template v-else-if="operateType == 'talk'">
311
+ <div class="flow-btn-opeaBox">
312
+ <el-form :model="changeWfForm">
313
+ <table class="table-detail">
314
+ <tbody>
315
+ <tr>
316
+ <th>
317
+ <span class="t">
318
+ 接收人
319
+ </span>
320
+ </th>
321
+ <td>
322
+ <el-form-item field="receiverName">
323
+ <el-input
324
+ class="search-input"
325
+ max="200"
326
+ v-model="talkForm.receiverName"
327
+ @clear="
328
+ changeWfForm.receiver = null;
329
+ $forceUpdate();
330
+ "
331
+ placeholder="接收人"
332
+ v-el-readonly
333
+ clearable
334
+ >
335
+ <i slot="suffix" class="el-input__icon el-icon-search" @click="openTalkUserDialog"></i>
336
+ </el-input>
337
+ </el-form-item>
338
+ </td>
339
+ <th class="no"></th>
340
+ <td></td>
341
+ <th class="no"></th>
342
+ <td></td>
343
+ <th class="no"></th>
344
+ <td></td>
345
+ </tr>
346
+ <tr>
347
+ <th>
348
+ <span class="t">
349
+ 沟通内容
350
+ </span>
351
+ </th>
352
+ <td colspan="3">
353
+ <el-form-item field="content">
354
+ <el-input type="textarea" :rows="8" placeholder="请输入内容" v-model="talkForm.content"></el-input>
355
+ </el-form-item>
356
+ </td>
357
+ </tr>
358
+ <tr>
359
+ <th>
360
+ <span class="t">
361
+ 沟通资料
362
+ </span>
363
+ </th>
364
+ <td colspan="7">
365
+ <baseUpload accept="file" multi="true" :file.sync="talkForm.attachmentDTOs"></baseUpload>
366
+ </td>
367
+ </tr>
368
+ <tr>
369
+ <th class="no"></th>
370
+ <td colspan="3">
371
+ <el-button type="primary" @click="submitTalkForm" class="button-sty">
372
+ <i class="el-icon-check el-icon"></i>
373
+ {{ $t2('确 定', 'system.button.confirm2') }}
374
+ </el-button>
375
+ </td>
376
+ </tr>
377
+ </tbody>
378
+ </table>
379
+ </el-form>
380
+ </div>
381
+ </template>
382
+ </div>
383
+
384
+ <div class="title-second" @click="showFlowImg = !showFlowImg"
385
+ style="margin: 14px 0 24px;line-height: 29px;cursor: pointer;"><b>流程图</b>
386
+ <div class="fr" v-if="showFlowImg == true" style="font-weight: 400;">
387
+ <span>收起</span>
388
+ <i class="el-icon-arrow-up"></i>
389
+ </div>
390
+ <div class="fr" v-else style="font-weight: 400;">
391
+ <span>展开</span>
392
+ <i class="el-icon-arrow-down"></i>
393
+ </div>
394
+ </div>
395
+ <div class="flow-tree" style="padding-right:0" v-show="showFlowImg == true">
396
+ <div class="flow-box">
397
+ <img :src="wfImage"/>
398
+ <el-tooltip :enterable="false" class="item" effect="dark" content="放大" placement="bottom">
399
+ <i class="el-icon-zoom-in btn-magnifier" @click="$window.open(wfImage)" style="right:0;"></i>
400
+ </el-tooltip>
401
+ </div>
402
+ <!--<div class="flow-form">
403
+ <el-button type="success" class="btn b" @click="subAgreeForm" v-show="wfInfo.toSubmit">通过</el-button>
404
+
405
+ </div>
406
+ <div class="flow-form" style="top:152px;">
407
+ <textarea
408
+ class="txt"
409
+ placeholder="请填写您的意见~
410
+ 注:
411
+ 通过默认意见为“同意”
412
+ "
413
+ v-model="opinion"
414
+ ></textarea>
415
+ <el-button type="warning" class="btn b" @click="manualEndWf" v-show="wfInfo.toInterrupt">中断</el-button>
416
+ <el-button type="danger" class="btn b" @click="rejectWfTask" v-show="wfInfo.toReject">驳回</el-button>
417
+ <el-button type="primary" class="btn" @click="openChangeWfForm" v-show="wfInfo.toSubmit">转办</el-button>
418
+ <el-button type="primary" class="btn" @click="openUrgingDialog" v-show="wfInfo.toInterrupt">催办</el-button>
419
+ </div> -->
420
+ </div>
421
+ <div class="title-tab">
422
+ <div>
423
+ <b :class="{on:tabIndex=='1'}" @click="tabIndex='1'">任务情况</b>
424
+ <b :class="{on:tabIndex=='2'}" @click="tabIndex='2'" v-if="toTalk">流程沟通</b>
425
+ <b :class="{on:tabIndex=='3'}" @click="tabIndex='3'" v-if="showAllWfOpinon">全部任务情况</b>
426
+ </div>
427
+ </div>
428
+ <div class="task-situation" v-show="tabIndex=='1'" style="max-height: 500px; overflow: hidden auto;">
429
+ <div class="item" v-for="wftaskLineData in wftaskData" :key="wftaskLineData.id">
430
+ <div class="time">
431
+ {{ wftaskLineData.approveTime ? wftaskLineData.approveTime.substring(0, 10) : '' }}
432
+ <br/>
433
+ {{ wftaskLineData.approveTime ? wftaskLineData.approveTime.substring(11) : '' }}
434
+ </div>
435
+ <div class="status" :class="taskStatuses[wftaskLineData.type]?taskStatuses[wftaskLineData.type].class:''">
436
+ {{ taskStatuses[wftaskLineData.type] ? taskStatuses[wftaskLineData.type].value : null }}
437
+ </div>
438
+ <i class="circle"></i>
439
+ <div class="info">
440
+ <p>
441
+ <span class="name">{{ wftaskLineData.taskName }}</span>
442
+ <span>执行人:{{ wftaskLineData.approverName }}</span>
443
+ <span>
444
+ 候选人:
445
+ <span class="">{{ wftaskLineData.candidateNames }}</span>
446
+ </span>
447
+ </p>
448
+ <p class="t"><span class="t1">备注/意见:</span><span>{{ wftaskLineData.opinion }}</span></p>
449
+ </div>
450
+ </div>
451
+ </div>
452
+ <div class="task-situation" v-show="toTalk && tabIndex=='2'">
453
+ <vxe-grid
454
+ ref="table-linkup"
455
+ :auto-resize="true"
456
+ v-bind="linkupOption"
457
+ @resizable-change="$vxeTableUtil.onColumnWitchChange"
458
+ @custom="$vxeTableUtil.customHandle"
459
+ >
460
+ <template #form>
461
+ <div style="margin-bottom: 8px;" class="clearfix">
462
+ <div class="fl">
463
+ <el-button type="primary" class="button-sty" @click="openTalkDialog(null, null, 'talk',1)"
464
+ icon="el-icon-chat-dot-square" v-if="wfInfo.stat!=2">沟通
465
+ </el-button>
466
+ </div>
467
+ <div class="fr">
468
+ <!-- <vxe-button status="warning" icon="el-icon-search" class="button-sty" @click="searchEvent">搜索
469
+ </vxe-button>-->
470
+ </div>
471
+ </div>
472
+ </template>
473
+ <template #sender="{row}">
474
+ <a
475
+ href="javascript:void(0);"
476
+ class="a-link"
477
+ @click="openTalkDialog(row.sender, row.senderName, 'talk',1)"
478
+ v-if="wfInfo.stat!=2"
479
+ >
480
+ <el-tooltip :enterable="false" effect="dark" content="沟通" placement="top"
481
+ popper-class="tooltip-skin">
482
+ <div>
483
+ <i class="el-icon-chat-dot-square"></i>
484
+ <span>{{ row.senderName }}</span>
485
+ </div>
486
+ </el-tooltip>
487
+ </a>
488
+ </template>
489
+ <template #receiver="{row}">
490
+ <a
491
+ href="javascript:void(0);"
492
+ class="a-link"
493
+ @click="openTalkDialog(row.receiver,row.receiverName,'talk',1)"
494
+ v-if="wfInfo.stat!=2"
495
+ >
496
+ <el-tooltip :enterable="false" effect="dark" content="沟通" placement="top"
497
+ popper-class="tooltip-skin">
498
+ <div>
499
+ <i class="el-icon-chat-dot-square"></i>
500
+ <span>{{ row.receiverName }}</span>
501
+ </div>
502
+ </el-tooltip>
503
+ </a>
504
+ <span v-else>{{ row.receiverName }}</span>
505
+ </template>
506
+ </vxe-grid>
507
+ </div>
508
+ <div class="task-situation" v-show="showAllWfOpinon && tabIndex=='3'"
509
+ style="max-height: 500px; overflow: hidden auto;">
510
+ <div class="item" v-for="wftaskLineData in allWfTaskOpinions" :key="'allWfTaskOpinions'+wftaskLineData.id">
511
+ <div class="time">
512
+ {{ wftaskLineData.approveTime ? wftaskLineData.approveTime.substring(0, 10) : '' }}
513
+ <br/>
514
+ {{ wftaskLineData.approveTime ? wftaskLineData.approveTime.substring(11) : '' }}
515
+ </div>
516
+ <div class="status" :class="taskStatuses[wftaskLineData.type]?taskStatuses[wftaskLineData.type].class:''">
517
+ {{ taskStatuses[wftaskLineData.type] ? taskStatuses[wftaskLineData.type].value : null }}
518
+ </div>
519
+ <i class="circle"></i>
520
+ <div class="info">
521
+ <p>
522
+ <span class="name">{{ wftaskLineData.taskName }}</span>
523
+ <span>执行人:{{ wftaskLineData.approverName }}</span>
524
+ <span>
525
+ 候选人:
526
+ <span class="">{{ wftaskLineData.candidateNames }}</span>
527
+ </span>
528
+ </p>
529
+ <p class="t"><span class="t1">备注/意见:</span><span>{{ wftaskLineData.opinion }}</span></p>
530
+ </div>
531
+ </div>
532
+ </div>
533
+
534
+ <el-dialog
535
+ v-if="showWfManualDialog"
536
+ :visible.sync="showWfManualDialog"
537
+ :modal-append-to-body="false"
538
+ :close-on-click-modal="false"
539
+ width="501px"
540
+ custom-class="dialog-style tips-dialog warning"
541
+ :append-to-body="true"
542
+ :show-close="false"
543
+ v-el-drag-dialog
544
+ v-el-dialog-center
545
+ >
546
+ <template #title>
547
+ <span class="el-dialog__title">流程中断<span style="margin-left: 10px;margin-right: 10px;">—</span><b
548
+ class="f-red" style="font-size: 12px;">节点:{{
549
+ wfInfo.taskName
550
+ }}</b></span>
551
+ </template>
552
+ <div class="cont">
553
+ 您确定要中断流程吗?
554
+ </div>
555
+ <span slot="footer" class="dialog-footer">
556
+ <el-button type="primary" plain class="button-sty" @click="showWfManualDialog = false"><i
557
+ class="el-icon-close el-icon"></i>{{ $t2('取 消', 'system.button.cancel2') }}</el-button>
558
+ <el-button type="primary" @click="manualEndWf" class="button-sty"><i
559
+ class="el-icon-check el-icon"></i>{{ $t2('确 定', 'system.button.confirm2') }}</el-button>
560
+ </span>
561
+ </el-dialog>
562
+ <user-dialog v-if="showUserDialog" :visiable.sync="showUserDialog" @close="showUserDialog = false"
563
+ @confirm="userConfirm" multi="true" :param.sync="wfUserParam" :rows="changeUserRows"></user-dialog>
564
+
565
+ <urgingDialog v-if="urgingDialogVisible" :visiable.sync="urgingDialogVisible" :wfInfo="wfInfo"
566
+ :current_prefix="current_prefix"
567
+ @confirm="confirmUrging" multi="true"></urgingDialog>
568
+ <deleteTaskUserDialog v-if="showDeleteTaskUserDialog" :visiable.sync="showDeleteTaskUserDialog" :wfInfo="wfInfo"
569
+ :current_prefix="current_prefix"
570
+ @confirm="confirmDeleteTaskUser" multi="true"></deleteTaskUserDialog>
571
+ <addTaskUserdialog v-if="showAddTaskUserDialog" :visiable.sync="showAddTaskUserDialog" :wfInfo="wfInfo"
572
+ :current_prefix="current_prefix" :rows.sync="addIncreaseSignUsers"
573
+ @confirm="confirmAddTaskUser" multi="true" :param.sync="wfUserParam"></addTaskUserdialog>
574
+ <user-dialog v-if="showTalkUserDialog" :visiable.sync="showTalkUserDialog" @close="showTalkUserDialog = false"
575
+ @confirm="confirmTalkUserDialog" multi="false"></user-dialog>
576
+ <setCandidateDialog v-if="showSetCandidateDialog" :visiable.sync="showSetCandidateDialog"
577
+ @close="closeSetCandidateDialog"
578
+ :wfInfo="wfInfo"
579
+ :current_prefix="current_prefix"></setCandidateDialog>
580
+
581
+ </template>
582
+ </baseTabPane>
583
+ </template>
584
+
585
+ <script>
586
+ import {wfContentMixin} from './wf.js';
587
+
588
+ export default {
589
+ components: {
590
+ UserDialog: () => import('../../views/user/user/dialog.vue'),
591
+ urgingDialog: () => import('./urgingDialog'),
592
+ deleteTaskUserDialog: () => import('./deleteTaskUserDialog'),
593
+ addTaskUserdialog: () => import('./addTaskUserdialog'),
594
+ setCandidateDialog: () => import('./setCandidateDialog')
595
+ },
596
+ mixins: [wfContentMixin],
597
+ data() {
598
+ return {
599
+ operateType: 'submit'
600
+ }
601
+ },
602
+ methods: {}
603
+ };
604
+ </script>