eoss-ui 0.8.16 → 0.8.17

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 (243) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/eoss-ui.common.js +793 -793
  3. package/lib/flow.js +246 -246
  4. package/lib/index.js +1 -1
  5. package/lib/main.js +283 -283
  6. package/lib/qr-code.js +13 -13
  7. package/lib/sizer.js +12 -12
  8. package/lib/theme-chalk/index.css +1 -1
  9. package/lib/theme-chalk/login.css +1 -1
  10. package/package.json +1 -1
  11. package/packages/button/index.js +5 -5
  12. package/packages/button/src/main.vue +418 -418
  13. package/packages/button-group/index.js +5 -5
  14. package/packages/calendar/index.js +5 -5
  15. package/packages/calogin/index.js +5 -5
  16. package/packages/calogin/src/plugin.js +915 -915
  17. package/packages/card/index.js +5 -5
  18. package/packages/card/src/main.vue +156 -156
  19. package/packages/cascader/index.js +5 -5
  20. package/packages/cascader/src/main.vue +168 -168
  21. package/packages/checkbox-group/index.js +5 -5
  22. package/packages/checkbox-group/src/main.vue +333 -333
  23. package/packages/clients/index.js +5 -5
  24. package/packages/data-table/index.js +5 -5
  25. package/packages/data-table/src/children.vue +46 -46
  26. package/packages/data-table/src/main.vue +1876 -1876
  27. package/packages/data-table/src/sizer.vue +195 -195
  28. package/packages/data-table-form/index.js +5 -5
  29. package/packages/data-table-form/src/checkbox.vue +101 -101
  30. package/packages/data-table-form/src/colgroup.vue +17 -17
  31. package/packages/data-table-form/src/main.vue +181 -181
  32. package/packages/data-table-form/src/radio.vue +65 -65
  33. package/packages/data-table-form/src/table.vue +233 -233
  34. package/packages/data-table-form/src/tbody.vue +336 -336
  35. package/packages/data-table-form/src/thead.vue +68 -68
  36. package/packages/date-picker/index.js +5 -5
  37. package/packages/date-picker/src/main.vue +236 -236
  38. package/packages/dialog/index.js +5 -5
  39. package/packages/enable-drag/index.js +5 -5
  40. package/packages/enterprise/index.js +5 -5
  41. package/packages/enterprise/src/main.vue +66 -66
  42. package/packages/error-page/index.js +5 -5
  43. package/packages/error-page/src/main.vue +44 -44
  44. package/packages/flow/index.js +5 -5
  45. package/packages/flow/src/component/Circulate.vue +420 -420
  46. package/packages/flow/src/component/CustomPreset.vue +324 -324
  47. package/packages/flow/src/component/FreeCirculation.vue +245 -245
  48. package/packages/flow/src/component/Preset.vue +257 -257
  49. package/packages/flow/src/component/TimeLimit.vue +190 -190
  50. package/packages/flow/src/component/taskUnionExamine.vue +763 -763
  51. package/packages/flow/src/freeStartFlow.vue +2898 -2898
  52. package/packages/flow/src/main.vue +4224 -4224
  53. package/packages/flow/src/processForm.vue +1717 -1717
  54. package/packages/flow/src/processReject.vue +311 -311
  55. package/packages/flow/src/reset.vue +952 -952
  56. package/packages/flow/src/startTaskRead.vue +698 -698
  57. package/packages/flow/src/supervise.vue +162 -162
  58. package/packages/flow-group/index.js +5 -5
  59. package/packages/flow-group/src/main.vue +750 -750
  60. package/packages/flow-list/index.js +5 -5
  61. package/packages/form/index.js +5 -5
  62. package/packages/handle-user/index.js +5 -5
  63. package/packages/handle-user/src/main.vue +137 -137
  64. package/packages/handler/index.js +5 -5
  65. package/packages/handler/src/main.vue +499 -499
  66. package/packages/icon/index.js +5 -5
  67. package/packages/icons/index.js +5 -5
  68. package/packages/icons/src/main.vue +81 -81
  69. package/packages/input/index.js +5 -5
  70. package/packages/input/src/main.vue +356 -356
  71. package/packages/input-number/index.js +5 -5
  72. package/packages/input-number/src/main.vue +106 -106
  73. package/packages/label/index.js +5 -5
  74. package/packages/label/src/main.vue +457 -457
  75. package/packages/layout/index.js +5 -5
  76. package/packages/layout/src/item.vue +152 -152
  77. package/packages/layout/src/main.vue +31 -31
  78. package/packages/login/index.js +5 -5
  79. package/packages/login/src/main.vue +2088 -2088
  80. package/packages/main/index.js +5 -5
  81. package/packages/main/src/default/message.vue +249 -249
  82. package/packages/main/src/default/notice.vue +157 -157
  83. package/packages/main/src/default/userinfo.vue +513 -513
  84. package/packages/main/src/simplicity/index.vue +2335 -2335
  85. package/packages/main/src/simplicity/lists.vue +84 -84
  86. package/packages/main/src/simplicity/router-page.vue +45 -45
  87. package/packages/main/src/simplicity/userinfo.vue +408 -408
  88. package/packages/main/src/simplicityTop/index.vue +2626 -2626
  89. package/packages/main/src/simplicityTop/userinfo.vue +408 -408
  90. package/packages/menu/index.js +5 -5
  91. package/packages/menu/src/main.vue +597 -597
  92. package/packages/nav/index.js +5 -5
  93. package/packages/notify/index.js +5 -5
  94. package/packages/notify/src/main.vue +538 -538
  95. package/packages/page/index.js +5 -5
  96. package/packages/page/src/main.vue +167 -167
  97. package/packages/pagination/index.js +5 -5
  98. package/packages/pagination/src/main.vue +96 -96
  99. package/packages/player/index.js +5 -5
  100. package/packages/player/src/main.vue +194 -194
  101. package/packages/qr-code/index.js +5 -5
  102. package/packages/qr-code/src/main.vue +170 -170
  103. package/packages/radio-group/index.js +6 -6
  104. package/packages/radio-group/src/main.vue +319 -319
  105. package/packages/retrial-auth/index.js +5 -5
  106. package/packages/retrial-auth/src/main.vue +299 -299
  107. package/packages/select/index.js +5 -5
  108. package/packages/select-ganged/index.js +5 -5
  109. package/packages/select-ganged/src/main.vue +724 -724
  110. package/packages/selector/index.js +5 -5
  111. package/packages/selector-panel/index.js +5 -5
  112. package/packages/selector-panel/src/tree.vue +129 -129
  113. package/packages/sizer/index.js +5 -5
  114. package/packages/sizer/src/main.vue +257 -254
  115. package/packages/steps/index.js +5 -5
  116. package/packages/steps/src/main.vue +181 -181
  117. package/packages/switch/index.js +5 -5
  118. package/packages/table-form/index.js +5 -5
  119. package/packages/tabs/index.js +5 -5
  120. package/packages/tabs/src/main.vue +788 -788
  121. package/packages/tabs-panel/index.js +5 -5
  122. package/packages/tabs-panel/src/main.vue +29 -29
  123. package/packages/theme-chalk/lib/base.css +1 -0
  124. package/packages/theme-chalk/lib/button-group.css +1 -0
  125. package/packages/theme-chalk/lib/button.css +1 -0
  126. package/packages/theme-chalk/lib/calendar.css +1 -0
  127. package/packages/theme-chalk/lib/calogin.css +0 -0
  128. package/packages/theme-chalk/lib/card.css +1 -0
  129. package/packages/theme-chalk/lib/cascader.css +0 -0
  130. package/packages/theme-chalk/lib/checkbox-group.css +1 -0
  131. package/packages/theme-chalk/lib/clients.css +1 -0
  132. package/packages/theme-chalk/lib/data-table-form.css +1 -0
  133. package/packages/theme-chalk/lib/data-table.css +1 -0
  134. package/packages/theme-chalk/lib/date-picker.css +1 -0
  135. package/packages/theme-chalk/lib/dialog.css +1 -0
  136. package/packages/theme-chalk/lib/enable-drag.css +1 -0
  137. package/packages/theme-chalk/lib/enterprise.css +1 -0
  138. package/packages/theme-chalk/lib/error-page.css +1 -0
  139. package/packages/theme-chalk/lib/flow-chart.css +0 -0
  140. package/packages/theme-chalk/lib/flow-group.css +1 -0
  141. package/packages/theme-chalk/lib/flow-list.css +1 -0
  142. package/packages/theme-chalk/lib/flow.css +1 -0
  143. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  144. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  145. package/packages/theme-chalk/lib/form.css +1 -0
  146. package/packages/theme-chalk/lib/handle-user.css +1 -0
  147. package/packages/theme-chalk/lib/handler.css +1 -0
  148. package/packages/theme-chalk/lib/icon.css +1 -0
  149. package/packages/theme-chalk/lib/icons.css +1 -0
  150. package/packages/theme-chalk/lib/index.css +1 -0
  151. package/packages/theme-chalk/lib/input-number.css +0 -0
  152. package/packages/theme-chalk/lib/input.css +1 -0
  153. package/packages/theme-chalk/lib/label.css +1 -0
  154. package/packages/theme-chalk/lib/layout.css +1 -0
  155. package/packages/theme-chalk/lib/login.css +1 -0
  156. package/packages/theme-chalk/lib/main.css +1 -0
  157. package/packages/theme-chalk/lib/menu.css +1 -0
  158. package/packages/theme-chalk/lib/nav.css +1 -0
  159. package/packages/theme-chalk/lib/notify.css +0 -0
  160. package/packages/theme-chalk/lib/page.css +1 -0
  161. package/packages/theme-chalk/lib/pagination.css +1 -0
  162. package/packages/theme-chalk/lib/player.css +1 -0
  163. package/packages/theme-chalk/lib/qr-code.css +1 -0
  164. package/packages/theme-chalk/lib/radio-group.css +1 -0
  165. package/packages/theme-chalk/lib/retrial-auth.css +1 -0
  166. package/packages/theme-chalk/lib/select-ganged.css +1 -0
  167. package/packages/theme-chalk/lib/select.css +1 -0
  168. package/packages/theme-chalk/lib/selector-panel.css +1 -0
  169. package/packages/theme-chalk/lib/selector.css +1 -0
  170. package/packages/theme-chalk/lib/simplicity-top.css +1 -0
  171. package/packages/theme-chalk/lib/simplicity.css +1 -0
  172. package/packages/theme-chalk/lib/sizer.css +1 -0
  173. package/packages/theme-chalk/lib/steps.css +1 -0
  174. package/packages/theme-chalk/lib/switch.css +1 -0
  175. package/packages/theme-chalk/lib/table-form.css +0 -0
  176. package/packages/theme-chalk/lib/tabs-panel.css +0 -0
  177. package/packages/theme-chalk/lib/tabs.css +1 -0
  178. package/packages/theme-chalk/lib/tips.css +1 -0
  179. package/packages/theme-chalk/lib/toolbar.css +1 -0
  180. package/packages/theme-chalk/lib/tree-group.css +1 -0
  181. package/packages/theme-chalk/lib/tree.css +1 -0
  182. package/packages/theme-chalk/lib/upload.css +1 -0
  183. package/packages/theme-chalk/lib/wujie.css +0 -0
  184. package/packages/theme-chalk/lib/wxlogin.css +1 -0
  185. package/packages/theme-chalk/src/base.scss +261 -261
  186. package/packages/theme-chalk/src/button-group.scss +176 -176
  187. package/packages/theme-chalk/src/button.scss +24 -24
  188. package/packages/theme-chalk/src/calendar.scss +113 -113
  189. package/packages/theme-chalk/src/card.scss +99 -99
  190. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  191. package/packages/theme-chalk/src/clients.scss +87 -87
  192. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  193. package/packages/theme-chalk/src/date-picker.scss +7 -7
  194. package/packages/theme-chalk/src/dialog.scss +77 -77
  195. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  196. package/packages/theme-chalk/src/enterprise.scss +5 -5
  197. package/packages/theme-chalk/src/error-page.scss +18 -18
  198. package/packages/theme-chalk/src/flow-group.scss +110 -110
  199. package/packages/theme-chalk/src/flow.scss +376 -376
  200. package/packages/theme-chalk/src/handle-user.scss +40 -40
  201. package/packages/theme-chalk/src/icons.scss +99 -99
  202. package/packages/theme-chalk/src/input.scss +9 -9
  203. package/packages/theme-chalk/src/label.scss +24 -24
  204. package/packages/theme-chalk/src/layout.scss +46 -46
  205. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  206. package/packages/theme-chalk/src/nav.scss +111 -111
  207. package/packages/theme-chalk/src/page.scss +3 -3
  208. package/packages/theme-chalk/src/pagination.scss +29 -29
  209. package/packages/theme-chalk/src/player.scss +9 -9
  210. package/packages/theme-chalk/src/qr-code.scss +17 -17
  211. package/packages/theme-chalk/src/radio-group.scss +9 -9
  212. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  213. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  214. package/packages/theme-chalk/src/select.scss +8 -8
  215. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  216. package/packages/theme-chalk/src/sizer.scss +36 -36
  217. package/packages/theme-chalk/src/steps.scss +88 -88
  218. package/packages/theme-chalk/src/switch.scss +3 -3
  219. package/packages/theme-chalk/src/table-form.scss +1 -1
  220. package/packages/theme-chalk/src/tabs.scss +87 -87
  221. package/packages/theme-chalk/src/tips.scss +7 -7
  222. package/packages/theme-chalk/src/toolbar.scss +179 -179
  223. package/packages/theme-chalk/src/tree-group.scss +72 -72
  224. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  225. package/packages/tips/index.js +5 -5
  226. package/packages/toolbar/index.js +5 -5
  227. package/packages/toolbar/src/main.vue +430 -430
  228. package/packages/tree/index.js +5 -5
  229. package/packages/tree-group/index.js +5 -5
  230. package/packages/upload/index.js +5 -5
  231. package/packages/upload/src/main.vue +1344 -1344
  232. package/packages/upload/src/picture.js +15 -15
  233. package/packages/wujie/index.js +5 -5
  234. package/packages/wxlogin/index.js +5 -5
  235. package/packages/wxlogin/src/main.vue +128 -128
  236. package/src/config/image.js +2 -2
  237. package/src/index.js +1 -1
  238. package/src/utils/bus.js +3 -3
  239. package/src/utils/date-util.js +312 -312
  240. package/src/utils/http.js +50 -50
  241. package/src/utils/store.js +21 -21
  242. package/src/utils/webSocket.js +107 -107
  243. package/packages/theme-chalk/gulpfile.js +0 -25
@@ -1,311 +1,311 @@
1
- <template>
2
- <div
3
- v-loading="loading"
4
- class="es-flow-form"
5
- element-loading-text="加载中..."
6
- element-loading-spinner="el-icon-loading"
7
- element-loading-background="rgba(255, 255,255, 0.8)"
8
- >
9
- <el-form
10
- ref="nextNode"
11
- :model="nextNode"
12
- class="demo-dynamic"
13
- label-width="100px"
14
- label-align="left"
15
- >
16
- <div style="max-height: 290px; overflow-y: auto; margin-bottom: 10px">
17
- <el-form-item prop="nodeName" label="当前节点">
18
- <el-input v-model="nodeName" disabled />
19
- </el-form-item>
20
- <el-form-item
21
- prop="nextNodeId"
22
- label="驳回对象"
23
- :rules="[
24
- { required: true, message: `请选择驳回对象`, trigger: 'blur' }
25
- ]"
26
- >
27
- <el-radio-group
28
- v-model="nextNode.nextNodeId"
29
- v-if="rejectObj.length != 0"
30
- >
31
- <el-radio v-for="item of rejectObj" :key="item.id" :label="item.id">
32
- {{ item.name }}
33
- </el-radio>
34
- </el-radio-group>
35
- <span v-else>暂无可驳回节点及对象</span>
36
- </el-form-item>
37
- <!-- :rules="[
38
- { required: false, message: `请选择通知方式`, trigger: 'blur' }
39
- ]" -->
40
- <el-form-item
41
- prop="noticeType"
42
- label="通知方式"
43
- v-show="nextNode.noticeList.length != 0 && rejectObj.length != 0 && !hideMessage"
44
- >
45
- <el-checkbox-group v-model="nextNode.noticeType">
46
- <el-checkbox
47
- v-for="item of nextNode.noticeList"
48
- :key="item.cciValue"
49
- :label="item.cciValue"
50
- :disabled="
51
- readOnlyNotificationType
52
- ? readOnlyNotificationType.indexOf(item.cciValue) != -1
53
- : false
54
- "
55
- >
56
- {{ item.shortName }}
57
- </el-checkbox>
58
- </el-checkbox-group>
59
- </el-form-item>
60
- <el-form-item
61
- v-show="nextNode.noticeType.length != 0"
62
- prop="nextNode"
63
- label="通知消息"
64
- >
65
- <!-- <span>{{ newsInfo }}</span> -->
66
- <es-input
67
- type="textarea"
68
- :rows="4"
69
- placeholder="请输入内容"
70
- v-model="newsInformation"
71
- :readonly="notificationMessageReadOnly"
72
- >
73
- </es-input>
74
- </el-form-item>
75
- </div>
76
- <el-form-item>
77
- <!-- size="small" -->
78
- <div style="text-align: right">
79
- <el-button
80
- :type="rejectObj.length == 0 ? '' : 'primary'"
81
- @click="subProcess('nextNode', rejectObj.length == 0)"
82
- >
83
- {{ rejectObj.length == 0 ? '取消' : '提交' }}
84
- </el-button>
85
- </div>
86
- </el-form-item>
87
- </el-form>
88
- <!-- <el-dialog title="下步处理对象" :visible.sync="show" width="60%">
89
- <div>123</div>
90
- </el-dialog> -->
91
- </div>
92
- </template>
93
-
94
- <script>
95
- import {
96
- findSysCodes,
97
- taskRejectHtml,
98
- findCodeValues,
99
- toTaskRejectHtml
100
- } from 'eoss-ui/src/config/api';
101
- import util from 'eoss-ui/src/utils/util';
102
- export default {
103
- name: 'ProcessReject',
104
- props: {
105
- pendingId: { type: String, default: '' },
106
- newsInfo: { type: String, default: '' },
107
- showReject: { type: Boolean },
108
- option: { type: String, default: '' },
109
- simpleTips: { type: Boolean, default: true },
110
- hideMessage: { type: Boolean, default: false },
111
- },
112
- data() {
113
- return {
114
- loading: false,
115
- notificationMessageReadOnly: false,
116
- readOnlyNotificationType: '',
117
- nextNode: {
118
- noticeType: [],
119
- opinion: undefined, // 审批意见
120
- notificationMsg: undefined, // 系统消息
121
- nextNodeId: undefined,
122
- noticeList: []
123
- },
124
- showMsg: false, // 判断是否显示系统消息
125
- showOpinion: false, // 常用意见弹框
126
- nodeName: '',
127
- isOpinionRequired: 0, // 意见是否必填
128
- rejectObj: [], //
129
- isHiddenOftenOpinion: undefined, // 是否隐藏常用意见
130
- nodeDefaultRejectOpinion: undefined, // 默认提交意见
131
- checked: true, // 系统消息是否选中
132
- defaultNotificationType: undefined, // /默认选中通知类型
133
- newsInformation: '' //系统消息
134
- };
135
- },
136
- watch: {
137
- showReject(val) {
138
- if (val) {
139
- this.getProcessReject();
140
- }
141
- }
142
- },
143
- mounted() {
144
- this.newsInformation = this.newsInfo;
145
- this.getNodeType();
146
- this.getProcessReject();
147
- },
148
- methods: {
149
- getNodeType() {
150
- util
151
- .ajax({
152
- url: findCodeValues,
153
- params: {
154
- ccCode: 'notification_type',
155
- userId: util.getStorage('userId'),
156
- pendingId: this.pendingId
157
- }
158
- })
159
- .then((res) => {
160
- const { status, data } = res;
161
- if (status === 'success') {
162
- this.nextNode.noticeList = data;
163
- }
164
- this.getFind();
165
- })
166
- .catch((err) => {
167
- this.loading = false;
168
- if (err.message && err.message !== 'canceled') {
169
- this.$message.error(err.message);
170
- }
171
- });
172
- },
173
- // 提交表单
174
- subProcess(formName, isNoObj) {
175
- if (isNoObj) {
176
- this.quit(false);
177
- return;
178
- }
179
- this.saveProcess(formName);
180
- },
181
- saveProcess(formName) {
182
- this.$refs[formName].validate((valid) => {
183
- if (valid) {
184
- if (!this.option && this.isOpinionRequired === 1) {
185
- this.$message.warning('请选择输入审批意见');
186
- return;
187
- }
188
- this.loading = true;
189
- let noticeType = this.nextNode.noticeType.join(',');
190
- let params = {
191
- pendingId: this.pendingId,
192
- opinion: this.option, // 审批意见
193
- notificationMsg: this.newsInformation, // 系统消息
194
- notificationType: noticeType,
195
- userId: util.getStorage('userId'),
196
- nextNodeId: this.nextNode.nextNodeId
197
- };
198
- util
199
- .ajax({ url: taskRejectHtml, method: 'post', data: params })
200
- .then((res) => {
201
- const { status, message } = res;
202
- this.loading = false;
203
- if (status === 'success') {
204
- this.quit(true);
205
- this.simpleTips && this.$message.success('操作成功');
206
- } else {
207
- this.$message.error(message || '系统错误,请联系管理员!');
208
- this.quit(false);
209
- }
210
- })
211
- .catch((err) => {
212
- this.loading = false;
213
- if (err.message && err.message !== 'canceled') {
214
- this.$message.error(err.message);
215
- }
216
- });
217
- } else {
218
- return false;
219
- }
220
- });
221
- },
222
- // 取消
223
- quit(val) {
224
- this.$emit('cancel', val);
225
- },
226
- getFind() {
227
- util
228
- .ajax({
229
- url: findSysCodes
230
- })
231
- .then((res) => {
232
- const { status, message } = res;
233
- if (status === 'success') {
234
- if(this.hideMessage) return;
235
- this.nextNode.noticeType = message.split(',');
236
- let arr = [];
237
- this.nextNode.noticeList.map((item) => {
238
- this.nextNode.noticeType.map((x) => {
239
- if (x == item.cciValue) {
240
- arr.push(x);
241
- }
242
- });
243
- });
244
- this.nextNode.noticeType = arr;
245
- }
246
- })
247
- .catch((err) => {
248
- this.loading = false;
249
- if (err.message && err.message !== 'canceled') {
250
- this.$message.error(err.message);
251
- }
252
- });
253
- },
254
- getProcessReject() {
255
- this.loading = true;
256
- let params = {
257
- pendingId: this.pendingId,
258
- isSinglePage: false,
259
- opinion: this.option
260
- };
261
- util
262
- .ajax({ url: toTaskRejectHtml, params })
263
- .then((res) => {
264
- this.loading = false;
265
- if (res.status === 'success') {
266
- const {
267
- data: {
268
- rejectTaskNodes,
269
- taskExamine,
270
- nodeInfoMap,
271
- notificationMessageReadOnly,
272
- readOnlyNotificationType
273
- }
274
- } = res;
275
- this.isOpinionRequired = nodeInfoMap.nodeExtAttr.isOpinionRequired;
276
- this.readOnlyNotificationType = readOnlyNotificationType;
277
- this.notificationMessageReadOnly =
278
- notificationMessageReadOnly == 'true';
279
- if (!this.isOpinionRequired) {
280
- this.isOpinionRequired = 0;
281
- }
282
- let list = [];
283
- if (rejectTaskNodes) {
284
- for (let i in rejectTaskNodes) {
285
- let obj = {
286
- id: i,
287
- name: rejectTaskNodes[i]
288
- };
289
- list.push(obj);
290
- }
291
- this.nodeName = taskExamine.nodeName;
292
- this.rejectObj = list;
293
- this.rejectObj.length != 0 &&
294
- (this.nextNode.nextNodeId = this.rejectObj[0].id);
295
- }
296
- } else {
297
- this.$message.error(res.message || '系统错误,请联系管理员!');
298
- this.quit(false);
299
- }
300
- })
301
- .catch((err) => {
302
- this.loading = false;
303
- if (err.message && err.message !== 'canceled') {
304
- this.$message.error(err.message);
305
- }
306
- });
307
-
308
- }
309
- }
310
- };
311
- </script>
1
+ <template>
2
+ <div
3
+ v-loading="loading"
4
+ class="es-flow-form"
5
+ element-loading-text="加载中..."
6
+ element-loading-spinner="el-icon-loading"
7
+ element-loading-background="rgba(255, 255,255, 0.8)"
8
+ >
9
+ <el-form
10
+ ref="nextNode"
11
+ :model="nextNode"
12
+ class="demo-dynamic"
13
+ label-width="100px"
14
+ label-align="left"
15
+ >
16
+ <div style="max-height: 290px; overflow-y: auto; margin-bottom: 10px">
17
+ <el-form-item prop="nodeName" label="当前节点">
18
+ <el-input v-model="nodeName" disabled />
19
+ </el-form-item>
20
+ <el-form-item
21
+ prop="nextNodeId"
22
+ label="驳回对象"
23
+ :rules="[
24
+ { required: true, message: `请选择驳回对象`, trigger: 'blur' }
25
+ ]"
26
+ >
27
+ <el-radio-group
28
+ v-model="nextNode.nextNodeId"
29
+ v-if="rejectObj.length != 0"
30
+ >
31
+ <el-radio v-for="item of rejectObj" :key="item.id" :label="item.id">
32
+ {{ item.name }}
33
+ </el-radio>
34
+ </el-radio-group>
35
+ <span v-else>暂无可驳回节点及对象</span>
36
+ </el-form-item>
37
+ <!-- :rules="[
38
+ { required: false, message: `请选择通知方式`, trigger: 'blur' }
39
+ ]" -->
40
+ <el-form-item
41
+ prop="noticeType"
42
+ label="通知方式"
43
+ v-show="nextNode.noticeList.length != 0 && rejectObj.length != 0 && !hideMessage"
44
+ >
45
+ <el-checkbox-group v-model="nextNode.noticeType">
46
+ <el-checkbox
47
+ v-for="item of nextNode.noticeList"
48
+ :key="item.cciValue"
49
+ :label="item.cciValue"
50
+ :disabled="
51
+ readOnlyNotificationType
52
+ ? readOnlyNotificationType.indexOf(item.cciValue) != -1
53
+ : false
54
+ "
55
+ >
56
+ {{ item.shortName }}
57
+ </el-checkbox>
58
+ </el-checkbox-group>
59
+ </el-form-item>
60
+ <el-form-item
61
+ v-show="nextNode.noticeType.length != 0"
62
+ prop="nextNode"
63
+ label="通知消息"
64
+ >
65
+ <!-- <span>{{ newsInfo }}</span> -->
66
+ <es-input
67
+ type="textarea"
68
+ :rows="4"
69
+ placeholder="请输入内容"
70
+ v-model="newsInformation"
71
+ :readonly="notificationMessageReadOnly"
72
+ >
73
+ </es-input>
74
+ </el-form-item>
75
+ </div>
76
+ <el-form-item>
77
+ <!-- size="small" -->
78
+ <div style="text-align: right">
79
+ <el-button
80
+ :type="rejectObj.length == 0 ? '' : 'primary'"
81
+ @click="subProcess('nextNode', rejectObj.length == 0)"
82
+ >
83
+ {{ rejectObj.length == 0 ? '取消' : '提交' }}
84
+ </el-button>
85
+ </div>
86
+ </el-form-item>
87
+ </el-form>
88
+ <!-- <el-dialog title="下步处理对象" :visible.sync="show" width="60%">
89
+ <div>123</div>
90
+ </el-dialog> -->
91
+ </div>
92
+ </template>
93
+
94
+ <script>
95
+ import {
96
+ findSysCodes,
97
+ taskRejectHtml,
98
+ findCodeValues,
99
+ toTaskRejectHtml
100
+ } from 'eoss-ui/src/config/api';
101
+ import util from 'eoss-ui/src/utils/util';
102
+ export default {
103
+ name: 'ProcessReject',
104
+ props: {
105
+ pendingId: { type: String, default: '' },
106
+ newsInfo: { type: String, default: '' },
107
+ showReject: { type: Boolean },
108
+ option: { type: String, default: '' },
109
+ simpleTips: { type: Boolean, default: true },
110
+ hideMessage: { type: Boolean, default: false },
111
+ },
112
+ data() {
113
+ return {
114
+ loading: false,
115
+ notificationMessageReadOnly: false,
116
+ readOnlyNotificationType: '',
117
+ nextNode: {
118
+ noticeType: [],
119
+ opinion: undefined, // 审批意见
120
+ notificationMsg: undefined, // 系统消息
121
+ nextNodeId: undefined,
122
+ noticeList: []
123
+ },
124
+ showMsg: false, // 判断是否显示系统消息
125
+ showOpinion: false, // 常用意见弹框
126
+ nodeName: '',
127
+ isOpinionRequired: 0, // 意见是否必填
128
+ rejectObj: [], //
129
+ isHiddenOftenOpinion: undefined, // 是否隐藏常用意见
130
+ nodeDefaultRejectOpinion: undefined, // 默认提交意见
131
+ checked: true, // 系统消息是否选中
132
+ defaultNotificationType: undefined, // /默认选中通知类型
133
+ newsInformation: '' //系统消息
134
+ };
135
+ },
136
+ watch: {
137
+ showReject(val) {
138
+ if (val) {
139
+ this.getProcessReject();
140
+ }
141
+ }
142
+ },
143
+ mounted() {
144
+ this.newsInformation = this.newsInfo;
145
+ this.getNodeType();
146
+ this.getProcessReject();
147
+ },
148
+ methods: {
149
+ getNodeType() {
150
+ util
151
+ .ajax({
152
+ url: findCodeValues,
153
+ params: {
154
+ ccCode: 'notification_type',
155
+ userId: util.getStorage('userId'),
156
+ pendingId: this.pendingId
157
+ }
158
+ })
159
+ .then((res) => {
160
+ const { status, data } = res;
161
+ if (status === 'success') {
162
+ this.nextNode.noticeList = data;
163
+ }
164
+ this.getFind();
165
+ })
166
+ .catch((err) => {
167
+ this.loading = false;
168
+ if (err.message && err.message !== 'canceled') {
169
+ this.$message.error(err.message);
170
+ }
171
+ });
172
+ },
173
+ // 提交表单
174
+ subProcess(formName, isNoObj) {
175
+ if (isNoObj) {
176
+ this.quit(false);
177
+ return;
178
+ }
179
+ this.saveProcess(formName);
180
+ },
181
+ saveProcess(formName) {
182
+ this.$refs[formName].validate((valid) => {
183
+ if (valid) {
184
+ if (!this.option && this.isOpinionRequired === 1) {
185
+ this.$message.warning('请选择输入审批意见');
186
+ return;
187
+ }
188
+ this.loading = true;
189
+ let noticeType = this.nextNode.noticeType.join(',');
190
+ let params = {
191
+ pendingId: this.pendingId,
192
+ opinion: this.option, // 审批意见
193
+ notificationMsg: this.newsInformation, // 系统消息
194
+ notificationType: noticeType,
195
+ userId: util.getStorage('userId'),
196
+ nextNodeId: this.nextNode.nextNodeId
197
+ };
198
+ util
199
+ .ajax({ url: taskRejectHtml, method: 'post', data: params })
200
+ .then((res) => {
201
+ const { status, message } = res;
202
+ this.loading = false;
203
+ if (status === 'success') {
204
+ this.quit(true);
205
+ this.simpleTips && this.$message.success('操作成功');
206
+ } else {
207
+ this.$message.error(message || '系统错误,请联系管理员!');
208
+ this.quit(false);
209
+ }
210
+ })
211
+ .catch((err) => {
212
+ this.loading = false;
213
+ if (err.message && err.message !== 'canceled') {
214
+ this.$message.error(err.message);
215
+ }
216
+ });
217
+ } else {
218
+ return false;
219
+ }
220
+ });
221
+ },
222
+ // 取消
223
+ quit(val) {
224
+ this.$emit('cancel', val);
225
+ },
226
+ getFind() {
227
+ util
228
+ .ajax({
229
+ url: findSysCodes
230
+ })
231
+ .then((res) => {
232
+ const { status, message } = res;
233
+ if (status === 'success') {
234
+ if(this.hideMessage) return;
235
+ this.nextNode.noticeType = message.split(',');
236
+ let arr = [];
237
+ this.nextNode.noticeList.map((item) => {
238
+ this.nextNode.noticeType.map((x) => {
239
+ if (x == item.cciValue) {
240
+ arr.push(x);
241
+ }
242
+ });
243
+ });
244
+ this.nextNode.noticeType = arr;
245
+ }
246
+ })
247
+ .catch((err) => {
248
+ this.loading = false;
249
+ if (err.message && err.message !== 'canceled') {
250
+ this.$message.error(err.message);
251
+ }
252
+ });
253
+ },
254
+ getProcessReject() {
255
+ this.loading = true;
256
+ let params = {
257
+ pendingId: this.pendingId,
258
+ isSinglePage: false,
259
+ opinion: this.option
260
+ };
261
+ util
262
+ .ajax({ url: toTaskRejectHtml, params })
263
+ .then((res) => {
264
+ this.loading = false;
265
+ if (res.status === 'success') {
266
+ const {
267
+ data: {
268
+ rejectTaskNodes,
269
+ taskExamine,
270
+ nodeInfoMap,
271
+ notificationMessageReadOnly,
272
+ readOnlyNotificationType
273
+ }
274
+ } = res;
275
+ this.isOpinionRequired = nodeInfoMap.nodeExtAttr.isOpinionRequired;
276
+ this.readOnlyNotificationType = readOnlyNotificationType;
277
+ this.notificationMessageReadOnly =
278
+ notificationMessageReadOnly == 'true';
279
+ if (!this.isOpinionRequired) {
280
+ this.isOpinionRequired = 0;
281
+ }
282
+ let list = [];
283
+ if (rejectTaskNodes) {
284
+ for (let i in rejectTaskNodes) {
285
+ let obj = {
286
+ id: i,
287
+ name: rejectTaskNodes[i]
288
+ };
289
+ list.push(obj);
290
+ }
291
+ this.nodeName = taskExamine.nodeName;
292
+ this.rejectObj = list;
293
+ this.rejectObj.length != 0 &&
294
+ (this.nextNode.nextNodeId = this.rejectObj[0].id);
295
+ }
296
+ } else {
297
+ this.$message.error(res.message || '系统错误,请联系管理员!');
298
+ this.quit(false);
299
+ }
300
+ })
301
+ .catch((err) => {
302
+ this.loading = false;
303
+ if (err.message && err.message !== 'canceled') {
304
+ this.$message.error(err.message);
305
+ }
306
+ });
307
+
308
+ }
309
+ }
310
+ };
311
+ </script>