eoss-ui 0.6.37 → 0.6.39

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 (261) hide show
  1. package/lib/button-group.js +535 -374
  2. package/lib/button.js +535 -374
  3. package/lib/checkbox-group.js +536 -375
  4. package/lib/config/api.js +31 -19
  5. package/lib/data-table-form.js +547 -386
  6. package/lib/data-table.js +547 -382
  7. package/lib/date-picker.js +535 -374
  8. package/lib/dialog.js +535 -374
  9. package/lib/eoss-ui.common.js +12508 -5609
  10. package/lib/error-page.js +4 -4
  11. package/lib/flow-group.js +553 -377
  12. package/lib/flow-list.js +621 -460
  13. package/lib/flow.js +9822 -2988
  14. package/lib/form.js +552 -380
  15. package/lib/handle-user.js +536 -375
  16. package/lib/handler.js +536 -375
  17. package/lib/icon.js +536 -375
  18. package/lib/index.js +1 -1
  19. package/lib/input-number.js +535 -374
  20. package/lib/input.js +535 -374
  21. package/lib/layout.js +2 -2
  22. package/lib/login.js +550 -389
  23. package/lib/main.js +704 -543
  24. package/lib/nav.js +535 -374
  25. package/lib/notify.js +127 -109
  26. package/lib/page.js +535 -374
  27. package/lib/pagination.js +535 -374
  28. package/lib/player.js +535 -374
  29. package/lib/qr-code.js +548 -387
  30. package/lib/radio-group.js +536 -375
  31. package/lib/retrial-auth.js +538 -377
  32. package/lib/select-ganged.js +536 -375
  33. package/lib/select.js +536 -375
  34. package/lib/selector-panel.js +594 -409
  35. package/lib/selector.js +539 -378
  36. package/lib/sizer.js +541 -380
  37. package/lib/steps.js +535 -374
  38. package/lib/switch.js +535 -374
  39. package/lib/table-form.js +535 -374
  40. package/lib/tabs.js +539 -378
  41. package/lib/theme-chalk/flow.css +1 -1
  42. package/lib/theme-chalk/index.css +1 -1
  43. package/lib/tips.js +536 -375
  44. package/lib/tree-group.js +535 -374
  45. package/lib/tree.js +536 -375
  46. package/lib/upload.js +564 -392
  47. package/lib/utils/util.js +411 -268
  48. package/lib/wujie.js +535 -374
  49. package/lib/wxlogin.js +535 -374
  50. package/package.json +159 -158
  51. package/packages/button/index.js +5 -5
  52. package/packages/button/src/main.vue +418 -418
  53. package/packages/button-group/index.js +5 -5
  54. package/packages/button-group/src/main.vue +298 -298
  55. package/packages/calendar/index.js +5 -5
  56. package/packages/card/index.js +5 -5
  57. package/packages/card/src/main.vue +156 -156
  58. package/packages/cascader/index.js +5 -5
  59. package/packages/cascader/src/main.vue +168 -168
  60. package/packages/checkbox-group/index.js +5 -5
  61. package/packages/checkbox-group/src/main.vue +333 -333
  62. package/packages/clients/index.js +5 -5
  63. package/packages/clients/src/main.vue +144 -144
  64. package/packages/data-table/index.js +5 -5
  65. package/packages/data-table/src/children.vue +39 -39
  66. package/packages/data-table/src/column.vue +983 -983
  67. package/packages/data-table/src/main.vue +1820 -1816
  68. package/packages/data-table/src/sizer.vue +195 -195
  69. package/packages/data-table-form/index.js +5 -5
  70. package/packages/data-table-form/src/checkbox.vue +101 -101
  71. package/packages/data-table-form/src/colgroup.vue +17 -17
  72. package/packages/data-table-form/src/main.vue +181 -181
  73. package/packages/data-table-form/src/radio.vue +65 -65
  74. package/packages/data-table-form/src/table.vue +233 -233
  75. package/packages/data-table-form/src/tbody.vue +336 -336
  76. package/packages/data-table-form/src/thead.vue +68 -68
  77. package/packages/date-picker/index.js +5 -5
  78. package/packages/date-picker/src/main.vue +236 -236
  79. package/packages/dialog/index.js +5 -5
  80. package/packages/enterprise/index.js +5 -5
  81. package/packages/enterprise/src/main.vue +66 -66
  82. package/packages/error-page/index.js +5 -5
  83. package/packages/error-page/src/main.vue +44 -44
  84. package/packages/flow/index.js +5 -5
  85. package/packages/flow/src/component/CommonOpinions.vue +345 -341
  86. package/packages/flow/src/component/CustomPreset.vue +322 -322
  87. package/packages/flow/src/component/FileList.vue +99 -99
  88. package/packages/flow/src/component/Preset.vue +255 -255
  89. package/packages/flow/src/component/SendMsg.vue +229 -229
  90. package/packages/flow/src/component/TimeLimit.vue +190 -190
  91. package/packages/flow/src/component/taskUnionExamine.vue +603 -547
  92. package/packages/flow/src/form.vue +121 -121
  93. package/packages/flow/src/freeStartFlow.vue +2843 -0
  94. package/packages/flow/src/main.vue +2864 -2731
  95. package/packages/flow/src/processForm.vue +1007 -954
  96. package/packages/flow/src/processReject.vue +293 -293
  97. package/packages/flow/src/reset.vue +901 -0
  98. package/packages/flow/src/selectUser.vue +5 -0
  99. package/packages/flow/src/startTaskRead.vue +596 -596
  100. package/packages/flow/src/table.vue +58 -58
  101. package/packages/flow-group/index.js +5 -5
  102. package/packages/flow-group/src/main.vue +688 -684
  103. package/packages/flow-list/index.js +5 -5
  104. package/packages/flow-list/src/main.vue +1172 -1172
  105. package/packages/form/index.js +5 -5
  106. package/packages/form/src/main.vue +3584 -3582
  107. package/packages/form/src/table.vue +1420 -1420
  108. package/packages/handle-user/index.js +5 -5
  109. package/packages/handle-user/src/main.vue +138 -138
  110. package/packages/handler/index.js +5 -5
  111. package/packages/handler/src/main.vue +388 -388
  112. package/packages/icon/index.js +5 -5
  113. package/packages/icon/src/main.vue +101 -101
  114. package/packages/icons/index.js +5 -5
  115. package/packages/icons/src/main.vue +81 -81
  116. package/packages/input/index.js +5 -5
  117. package/packages/input/src/main.vue +356 -356
  118. package/packages/input-number/index.js +5 -5
  119. package/packages/input-number/src/main.vue +106 -106
  120. package/packages/label/index.js +5 -5
  121. package/packages/label/src/main.vue +457 -457
  122. package/packages/layout/index.js +5 -5
  123. package/packages/layout/src/item.vue +152 -152
  124. package/packages/layout/src/main.vue +31 -31
  125. package/packages/login/index.js +5 -5
  126. package/packages/login/src/main.vue +1892 -1894
  127. package/packages/login/src/resetPassword.vue +562 -562
  128. package/packages/main/index.js +5 -5
  129. package/packages/main/src/default/message.vue +249 -249
  130. package/packages/main/src/default/notice.vue +157 -157
  131. package/packages/main/src/default/userinfo.vue +505 -505
  132. package/packages/main/src/public/online.vue +89 -89
  133. package/packages/main/src/public/search.vue +454 -454
  134. package/packages/main/src/public/settings.vue +221 -221
  135. package/packages/main/src/simplicity/apps.vue +388 -388
  136. package/packages/main/src/simplicity/avatar.vue +82 -82
  137. package/packages/main/src/simplicity/handler.vue +221 -221
  138. package/packages/main/src/simplicity/index.vue +1993 -1993
  139. package/packages/main/src/simplicity/lists.vue +84 -84
  140. package/packages/main/src/simplicity/menu-list.vue +128 -128
  141. package/packages/main/src/simplicity/message.vue +259 -259
  142. package/packages/main/src/simplicity/notice.vue +190 -190
  143. package/packages/main/src/simplicity/router-page.vue +45 -45
  144. package/packages/main/src/simplicity/sub-menu.vue +241 -241
  145. package/packages/main/src/simplicity/user.vue +257 -257
  146. package/packages/main/src/simplicity/userinfo.vue +312 -312
  147. package/packages/menu/index.js +5 -5
  148. package/packages/menu/src/main.vue +536 -536
  149. package/packages/nav/index.js +5 -5
  150. package/packages/nav/src/main.vue +402 -402
  151. package/packages/notify/index.js +5 -5
  152. package/packages/notify/src/main.vue +538 -538
  153. package/packages/page/index.js +5 -5
  154. package/packages/page/src/main.vue +167 -167
  155. package/packages/pagination/index.js +5 -5
  156. package/packages/pagination/src/main.vue +96 -96
  157. package/packages/player/index.js +5 -5
  158. package/packages/player/src/main.vue +194 -194
  159. package/packages/qr-code/index.js +5 -5
  160. package/packages/qr-code/src/main.vue +170 -170
  161. package/packages/radio-group/index.js +6 -6
  162. package/packages/radio-group/src/main.vue +319 -319
  163. package/packages/retrial-auth/index.js +5 -5
  164. package/packages/retrial-auth/src/main.vue +280 -280
  165. package/packages/select/index.js +5 -5
  166. package/packages/select/src/main.vue +775 -775
  167. package/packages/select-ganged/index.js +5 -5
  168. package/packages/select-ganged/src/main.vue +724 -724
  169. package/packages/selector/index.js +5 -5
  170. package/packages/selector/src/main.vue +677 -677
  171. package/packages/selector-panel/index.js +5 -5
  172. package/packages/selector-panel/src/main.vue +1028 -1020
  173. package/packages/selector-panel/src/selection.vue +177 -160
  174. package/packages/selector-panel/src/tree.vue +129 -129
  175. package/packages/sizer/index.js +5 -5
  176. package/packages/sizer/src/main.vue +254 -254
  177. package/packages/steps/index.js +5 -5
  178. package/packages/steps/src/main.vue +181 -181
  179. package/packages/switch/index.js +5 -5
  180. package/packages/switch/src/main.vue +154 -154
  181. package/packages/table-form/index.js +5 -5
  182. package/packages/tabs/index.js +5 -5
  183. package/packages/tabs/src/main.vue +788 -788
  184. package/packages/tabs-panel/index.js +5 -5
  185. package/packages/tabs-panel/src/main.vue +29 -29
  186. package/packages/theme-chalk/lib/flow.css +1 -1
  187. package/packages/theme-chalk/lib/index.css +1 -1
  188. package/packages/theme-chalk/src/base.scss +260 -260
  189. package/packages/theme-chalk/src/button-group.scss +175 -175
  190. package/packages/theme-chalk/src/button.scss +24 -24
  191. package/packages/theme-chalk/src/calendar.scss +113 -113
  192. package/packages/theme-chalk/src/card.scss +99 -99
  193. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  194. package/packages/theme-chalk/src/clients.scss +87 -87
  195. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  196. package/packages/theme-chalk/src/data-table.scss +293 -293
  197. package/packages/theme-chalk/src/date-picker.scss +7 -7
  198. package/packages/theme-chalk/src/dialog.scss +77 -77
  199. package/packages/theme-chalk/src/enterprise.scss +5 -5
  200. package/packages/theme-chalk/src/error-page.scss +18 -18
  201. package/packages/theme-chalk/src/flow-group.scss +110 -110
  202. package/packages/theme-chalk/src/flow-list.scss +36 -36
  203. package/packages/theme-chalk/src/flow.scss +310 -308
  204. package/packages/theme-chalk/src/form.scss +496 -496
  205. package/packages/theme-chalk/src/handle-user.scss +40 -40
  206. package/packages/theme-chalk/src/handler.scss +143 -143
  207. package/packages/theme-chalk/src/icon.scss +1760 -1760
  208. package/packages/theme-chalk/src/icons.scss +99 -99
  209. package/packages/theme-chalk/src/input.scss +9 -9
  210. package/packages/theme-chalk/src/label.scss +24 -24
  211. package/packages/theme-chalk/src/layout.scss +46 -46
  212. package/packages/theme-chalk/src/login.scss +939 -939
  213. package/packages/theme-chalk/src/main.scss +632 -632
  214. package/packages/theme-chalk/src/menu.scss +222 -222
  215. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  216. package/packages/theme-chalk/src/nav.scss +125 -125
  217. package/packages/theme-chalk/src/page.scss +3 -3
  218. package/packages/theme-chalk/src/pagination.scss +29 -29
  219. package/packages/theme-chalk/src/player.scss +9 -9
  220. package/packages/theme-chalk/src/qr-code.scss +17 -17
  221. package/packages/theme-chalk/src/radio-group.scss +9 -9
  222. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  223. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  224. package/packages/theme-chalk/src/select.scss +8 -8
  225. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  226. package/packages/theme-chalk/src/selector.scss +91 -91
  227. package/packages/theme-chalk/src/simplicity.scss +1262 -1262
  228. package/packages/theme-chalk/src/sizer.scss +36 -36
  229. package/packages/theme-chalk/src/steps.scss +88 -88
  230. package/packages/theme-chalk/src/switch.scss +3 -3
  231. package/packages/theme-chalk/src/table-form.scss +1 -1
  232. package/packages/theme-chalk/src/tabs.scss +87 -87
  233. package/packages/theme-chalk/src/tips.scss +7 -7
  234. package/packages/theme-chalk/src/toolbar.scss +179 -179
  235. package/packages/theme-chalk/src/tree-group.scss +72 -72
  236. package/packages/theme-chalk/src/tree.scss +165 -165
  237. package/packages/theme-chalk/src/upload.scss +167 -167
  238. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  239. package/packages/tips/index.js +5 -5
  240. package/packages/tips/src/main.vue +141 -141
  241. package/packages/toolbar/index.js +5 -5
  242. package/packages/toolbar/src/main.vue +430 -430
  243. package/packages/tree/index.js +5 -5
  244. package/packages/tree-group/index.js +5 -5
  245. package/packages/upload/index.js +5 -5
  246. package/packages/upload/src/main.vue +1334 -1323
  247. package/packages/upload/src/picture.js +15 -15
  248. package/packages/wujie/index.js +5 -5
  249. package/packages/wujie/src/main.vue +145 -145
  250. package/packages/wxlogin/index.js +5 -5
  251. package/packages/wxlogin/src/main.vue +128 -128
  252. package/src/config/api.js +248 -236
  253. package/src/config/image.js +2 -2
  254. package/src/index.js +1 -1
  255. package/src/utils/bus.js +3 -3
  256. package/src/utils/date-util.js +312 -312
  257. package/src/utils/http.js +50 -50
  258. package/src/utils/rules.js +18 -18
  259. package/src/utils/store.js +21 -21
  260. package/src/utils/util.js +398 -258
  261. package/src/utils/webSocket.js +107 -107
@@ -1,333 +1,333 @@
1
- <template>
2
- <div v-if="!hide" class="es-checkbox-group">
3
- <div
4
- v-if="readonly"
5
- class="es-input__inner"
6
- :class="{ 'es-plain': this.plain || $attrs.text }"
7
- >
8
- {{ labelVal }}
9
- </div>
10
- <el-checkbox-group
11
- v-else
12
- v-show="display"
13
- v-model="model"
14
- v-bind="{ valueKey: valKey, labelKey: label, ...$attrs }"
15
- v-on="$listeners"
16
- >
17
- <template v-if="genre === 'button'">
18
- <el-checkbox-button
19
- v-for="(item, index) in results"
20
- :key="index"
21
- v-bind="getprops($attrs, item)"
22
- :label="isObject || typeof item == 'string' ? item : item[valKey]"
23
- :disabled="typeof item == 'string' ? false : item.disabled"
24
- >
25
- {{
26
- typeof item == 'string'
27
- ? item
28
- : item[label]
29
- ? item[label]
30
- : item.label || item[valKey]
31
- }}
32
- </el-checkbox-button>
33
- </template>
34
- <template v-else>
35
- <el-checkbox
36
- v-for="(item, index) in results"
37
- :key="index"
38
- v-bind="getprops($attrs, item)"
39
- :label="isObject || typeof item == 'string' ? item : item[valKey]"
40
- :disabled="typeof item == 'string' ? false : item.disabled"
41
- :border="genre === 'border'"
42
- >
43
- {{
44
- typeof item == 'string'
45
- ? item
46
- : item[label]
47
- ? item[label]
48
- : item.label || item[valKey]
49
- }}
50
- </el-checkbox>
51
- </template>
52
- </el-checkbox-group>
53
- </div>
54
- </template>
55
-
56
- <script>
57
- import { findSysCode, getDictList } from 'eoss-ui/src/config/api.js';
58
- import { debounce } from 'throttle-debounce';
59
- import store from 'eoss-ui/src/utils/store';
60
- import util from 'eoss-ui/src/utils/util';
61
- export default {
62
- name: 'EsCheckboxGroup',
63
- inheritAttrs: false,
64
- inject: {
65
- esForm: {
66
- default: ''
67
- }
68
- },
69
- props: {
70
- method: {
71
- type: String,
72
- default: 'get'
73
- },
74
- service: String,
75
- // 选择项本地数据
76
- data: {
77
- type: Array,
78
- default() {
79
- return [];
80
- }
81
- },
82
- param: {
83
- type: Object,
84
- default() {
85
- return {};
86
- }
87
- },
88
- // 选择项远程地址
89
- url: String,
90
- hide: {
91
- type: Boolean,
92
- default: false
93
- },
94
- // 选择项获取代码表数据(优先级大于url)
95
- sysCode: String,
96
- // 样式风格 button(按钮样式), border(带有边框)
97
- genre: {
98
- type: String,
99
- default: ''
100
- },
101
- separator: {
102
- type: String,
103
- default: '、'
104
- },
105
- display: {
106
- type: Boolean,
107
- default: true
108
- },
109
- valueType: {
110
- type: String,
111
- default: 'string',
112
- validator: function (value) {
113
- return ['string', 'object'].includes(value);
114
- }
115
- },
116
- valueKey: {
117
- type: String,
118
- default: 'value'
119
- },
120
- // 指定选择项显示值的键名,data元素是对象类型时必填
121
- labelKey: {
122
- type: String,
123
- default: 'name'
124
- },
125
- value: [Array, String],
126
- readonly: Boolean,
127
- plain: Boolean,
128
- ajax: {
129
- type: Boolean,
130
- default: true
131
- },
132
- isNoParamRequest: {
133
- type: Boolean,
134
- default: true
135
- },
136
- dataKey: String
137
- },
138
- data() {
139
- return {
140
- options: '',
141
- canceled: false
142
- };
143
- },
144
- computed: {
145
- isObject() {
146
- if (
147
- this.value !== '' &&
148
- Array.isArray(this.value) &&
149
- this.value.length > 0 &&
150
- util.isObject(this.value[0])
151
- ) {
152
- return true;
153
- } else {
154
- if (this.valueType === 'object') {
155
- return true;
156
- } else {
157
- return false;
158
- }
159
- }
160
- },
161
- model: {
162
- get() {
163
- return this.value === undefined ? [] : this.value;
164
- },
165
- set(val) {
166
- return val;
167
- }
168
- },
169
- label() {
170
- if (this.sysCode) {
171
- return this.service ? 'label' : 'shortName';
172
- }
173
- return this.labelKey;
174
- },
175
- valKey() {
176
- if (this.sysCode) {
177
- return this.service ? 'value' : 'cciValue';
178
- }
179
- return this.valueKey;
180
- },
181
- results() {
182
- return this.options ? this.options : this.data;
183
- },
184
- labelVal() {
185
- let model =
186
- typeof this.model === 'string'
187
- ? this.model.split(',')
188
- : this.model || [];
189
- let label = model.map((item) => {
190
- if (util.isObject(item)) {
191
- return item[this.label];
192
- }
193
- if (util.isObject(this.results[0])) {
194
- let vals = [];
195
- this.results.forEach((ele) => {
196
- if (ele[this.valKey] === item) {
197
- vals.push(ele[this.label]);
198
- }
199
- });
200
- return vals.join(this.separator);
201
- }
202
- return item;
203
- });
204
- return label.join(this.separator);
205
- },
206
- findCode() {
207
- if (this.service) {
208
- return `/${this.service}${getDictList}`;
209
- }
210
- return findSysCode;
211
- }
212
- },
213
- watch: {
214
- sysCode: {
215
- immediate: true,
216
- handler(val, old) {
217
- if (val && val != old) {
218
- const options = store.get(val);
219
- if (options) {
220
- this.options = JSON.parse(JSON.stringify(options));
221
- } else {
222
- this.getData(this.findCode, val);
223
- }
224
- }
225
- }
226
- },
227
- url: {
228
- immediate: true,
229
- handler(val) {
230
- if (val && !this.sysCode) {
231
- this.getData(val);
232
- }
233
- }
234
- },
235
- param: {
236
- deep: true,
237
- handler() {
238
- this.url && this.getData(this.url);
239
- }
240
- }
241
- },
242
- beforeCreate() {
243
- this.getData = debounce(500, (url, sysCode) => {
244
- this.getDatas(url, sysCode);
245
- });
246
- },
247
- created() {
248
- this.bindEventBus();
249
- },
250
- mounted() {},
251
- methods: {
252
- getDatas(url, sysCode) {
253
- let params = {};
254
- if (this.results.length === 0) {
255
- params = util.extend(
256
- {},
257
- this.param,
258
- sysCode ? { sysAppCode: sysCode, code: sysCode } : {}
259
- );
260
- } else {
261
- return false;
262
- }
263
- if (
264
- !this.ajax ||
265
- (!this.isNoParamRequest && Object.keys(this.param).length == 0)
266
- ) {
267
- return false;
268
- }
269
- this.loading = true;
270
- util
271
- .ajax({
272
- url: url,
273
- method: this.method,
274
- params: params,
275
- data: params
276
- })
277
- .then((res) => {
278
- this.loading = false;
279
- this.canceled = false;
280
- if (res.rCode === 0) {
281
- this.options = JSON.parse(JSON.stringify(res.results));
282
- if (sysCode || this.dataKey) {
283
- const bus = this.bus || this.$root.Bus;
284
- bus &&
285
- bus.$emit(
286
- sysCode || this.dataKey,
287
- JSON.parse(JSON.stringify(this.options))
288
- );
289
- store.set(sysCode, JSON.parse(JSON.stringify(res.results)));
290
- }
291
- } else {
292
- let msg = res.msg || '系统错误,请联系管理员!';
293
- this.$message.error(msg);
294
- }
295
- })
296
- .catch((err) => {
297
- this.loading = false;
298
- if (err.message) {
299
- if (err.message !== 'canceled') {
300
- this.$message.error(err.message);
301
- }
302
- if (err.message === 'canceled' && sysCode) {
303
- this.canceled = true;
304
- }
305
- }
306
- });
307
- },
308
- getprops(attrs, res) {
309
- if (res.checked && this.model) {
310
- this.$emit(
311
- 'input',
312
- this.valueType === 'object' ? res : res[this.valKey]
313
- );
314
- }
315
- return util.isObject(res) ? { ...attrs, ...res } : attrs;
316
- },
317
- setOptions(val) {
318
- this.options = val;
319
- },
320
- bindEventBus() {
321
- const bus = this.bus || this.$root.Bus;
322
- bus && bus.$on(this.sysCode || this.dataKey, this.setOptions);
323
- },
324
- unbindEventBus() {
325
- const bus = this.bus || this.$root.Bus;
326
- bus && bus.$off(this.sysCode || this.dataKey, this.setOptions);
327
- }
328
- },
329
- beforeDestroy() {
330
- this.unbindEventBus();
331
- }
332
- };
333
- </script>
1
+ <template>
2
+ <div v-if="!hide" class="es-checkbox-group">
3
+ <div
4
+ v-if="readonly"
5
+ class="es-input__inner"
6
+ :class="{ 'es-plain': this.plain || $attrs.text }"
7
+ >
8
+ {{ labelVal }}
9
+ </div>
10
+ <el-checkbox-group
11
+ v-else
12
+ v-show="display"
13
+ v-model="model"
14
+ v-bind="{ valueKey: valKey, labelKey: label, ...$attrs }"
15
+ v-on="$listeners"
16
+ >
17
+ <template v-if="genre === 'button'">
18
+ <el-checkbox-button
19
+ v-for="(item, index) in results"
20
+ :key="index"
21
+ v-bind="getprops($attrs, item)"
22
+ :label="isObject || typeof item == 'string' ? item : item[valKey]"
23
+ :disabled="typeof item == 'string' ? false : item.disabled"
24
+ >
25
+ {{
26
+ typeof item == 'string'
27
+ ? item
28
+ : item[label]
29
+ ? item[label]
30
+ : item.label || item[valKey]
31
+ }}
32
+ </el-checkbox-button>
33
+ </template>
34
+ <template v-else>
35
+ <el-checkbox
36
+ v-for="(item, index) in results"
37
+ :key="index"
38
+ v-bind="getprops($attrs, item)"
39
+ :label="isObject || typeof item == 'string' ? item : item[valKey]"
40
+ :disabled="typeof item == 'string' ? false : item.disabled"
41
+ :border="genre === 'border'"
42
+ >
43
+ {{
44
+ typeof item == 'string'
45
+ ? item
46
+ : item[label]
47
+ ? item[label]
48
+ : item.label || item[valKey]
49
+ }}
50
+ </el-checkbox>
51
+ </template>
52
+ </el-checkbox-group>
53
+ </div>
54
+ </template>
55
+
56
+ <script>
57
+ import { findSysCode, getDictList } from 'eoss-ui/src/config/api.js';
58
+ import { debounce } from 'throttle-debounce';
59
+ import store from 'eoss-ui/src/utils/store';
60
+ import util from 'eoss-ui/src/utils/util';
61
+ export default {
62
+ name: 'EsCheckboxGroup',
63
+ inheritAttrs: false,
64
+ inject: {
65
+ esForm: {
66
+ default: ''
67
+ }
68
+ },
69
+ props: {
70
+ method: {
71
+ type: String,
72
+ default: 'get'
73
+ },
74
+ service: String,
75
+ // 选择项本地数据
76
+ data: {
77
+ type: Array,
78
+ default() {
79
+ return [];
80
+ }
81
+ },
82
+ param: {
83
+ type: Object,
84
+ default() {
85
+ return {};
86
+ }
87
+ },
88
+ // 选择项远程地址
89
+ url: String,
90
+ hide: {
91
+ type: Boolean,
92
+ default: false
93
+ },
94
+ // 选择项获取代码表数据(优先级大于url)
95
+ sysCode: String,
96
+ // 样式风格 button(按钮样式), border(带有边框)
97
+ genre: {
98
+ type: String,
99
+ default: ''
100
+ },
101
+ separator: {
102
+ type: String,
103
+ default: '、'
104
+ },
105
+ display: {
106
+ type: Boolean,
107
+ default: true
108
+ },
109
+ valueType: {
110
+ type: String,
111
+ default: 'string',
112
+ validator: function (value) {
113
+ return ['string', 'object'].includes(value);
114
+ }
115
+ },
116
+ valueKey: {
117
+ type: String,
118
+ default: 'value'
119
+ },
120
+ // 指定选择项显示值的键名,data元素是对象类型时必填
121
+ labelKey: {
122
+ type: String,
123
+ default: 'name'
124
+ },
125
+ value: [Array, String],
126
+ readonly: Boolean,
127
+ plain: Boolean,
128
+ ajax: {
129
+ type: Boolean,
130
+ default: true
131
+ },
132
+ isNoParamRequest: {
133
+ type: Boolean,
134
+ default: true
135
+ },
136
+ dataKey: String
137
+ },
138
+ data() {
139
+ return {
140
+ options: '',
141
+ canceled: false
142
+ };
143
+ },
144
+ computed: {
145
+ isObject() {
146
+ if (
147
+ this.value !== '' &&
148
+ Array.isArray(this.value) &&
149
+ this.value.length > 0 &&
150
+ util.isObject(this.value[0])
151
+ ) {
152
+ return true;
153
+ } else {
154
+ if (this.valueType === 'object') {
155
+ return true;
156
+ } else {
157
+ return false;
158
+ }
159
+ }
160
+ },
161
+ model: {
162
+ get() {
163
+ return this.value === undefined ? [] : this.value;
164
+ },
165
+ set(val) {
166
+ return val;
167
+ }
168
+ },
169
+ label() {
170
+ if (this.sysCode) {
171
+ return this.service ? 'label' : 'shortName';
172
+ }
173
+ return this.labelKey;
174
+ },
175
+ valKey() {
176
+ if (this.sysCode) {
177
+ return this.service ? 'value' : 'cciValue';
178
+ }
179
+ return this.valueKey;
180
+ },
181
+ results() {
182
+ return this.options ? this.options : this.data;
183
+ },
184
+ labelVal() {
185
+ let model =
186
+ typeof this.model === 'string'
187
+ ? this.model.split(',')
188
+ : this.model || [];
189
+ let label = model.map((item) => {
190
+ if (util.isObject(item)) {
191
+ return item[this.label];
192
+ }
193
+ if (util.isObject(this.results[0])) {
194
+ let vals = [];
195
+ this.results.forEach((ele) => {
196
+ if (ele[this.valKey] === item) {
197
+ vals.push(ele[this.label]);
198
+ }
199
+ });
200
+ return vals.join(this.separator);
201
+ }
202
+ return item;
203
+ });
204
+ return label.join(this.separator);
205
+ },
206
+ findCode() {
207
+ if (this.service) {
208
+ return `/${this.service}${getDictList}`;
209
+ }
210
+ return findSysCode;
211
+ }
212
+ },
213
+ watch: {
214
+ sysCode: {
215
+ immediate: true,
216
+ handler(val, old) {
217
+ if (val && val != old) {
218
+ const options = store.get(val);
219
+ if (options) {
220
+ this.options = JSON.parse(JSON.stringify(options));
221
+ } else {
222
+ this.getData(this.findCode, val);
223
+ }
224
+ }
225
+ }
226
+ },
227
+ url: {
228
+ immediate: true,
229
+ handler(val) {
230
+ if (val && !this.sysCode) {
231
+ this.getData(val);
232
+ }
233
+ }
234
+ },
235
+ param: {
236
+ deep: true,
237
+ handler() {
238
+ this.url && this.getData(this.url);
239
+ }
240
+ }
241
+ },
242
+ beforeCreate() {
243
+ this.getData = debounce(500, (url, sysCode) => {
244
+ this.getDatas(url, sysCode);
245
+ });
246
+ },
247
+ created() {
248
+ this.bindEventBus();
249
+ },
250
+ mounted() {},
251
+ methods: {
252
+ getDatas(url, sysCode) {
253
+ let params = {};
254
+ if (this.results.length === 0) {
255
+ params = util.extend(
256
+ {},
257
+ this.param,
258
+ sysCode ? { sysAppCode: sysCode, code: sysCode } : {}
259
+ );
260
+ } else {
261
+ return false;
262
+ }
263
+ if (
264
+ !this.ajax ||
265
+ (!this.isNoParamRequest && Object.keys(this.param).length == 0)
266
+ ) {
267
+ return false;
268
+ }
269
+ this.loading = true;
270
+ util
271
+ .ajax({
272
+ url: url,
273
+ method: this.method,
274
+ params: params,
275
+ data: params
276
+ })
277
+ .then((res) => {
278
+ this.loading = false;
279
+ this.canceled = false;
280
+ if (res.rCode === 0) {
281
+ this.options = JSON.parse(JSON.stringify(res.results));
282
+ if (sysCode || this.dataKey) {
283
+ const bus = this.bus || this.$root.Bus;
284
+ bus &&
285
+ bus.$emit(
286
+ sysCode || this.dataKey,
287
+ JSON.parse(JSON.stringify(this.options))
288
+ );
289
+ store.set(sysCode, JSON.parse(JSON.stringify(res.results)));
290
+ }
291
+ } else {
292
+ let msg = res.msg || '系统错误,请联系管理员!';
293
+ this.$message.error(msg);
294
+ }
295
+ })
296
+ .catch((err) => {
297
+ this.loading = false;
298
+ if (err.message) {
299
+ if (err.message !== 'canceled') {
300
+ this.$message.error(err.message);
301
+ }
302
+ if (err.message === 'canceled' && sysCode) {
303
+ this.canceled = true;
304
+ }
305
+ }
306
+ });
307
+ },
308
+ getprops(attrs, res) {
309
+ if (res.checked && this.model) {
310
+ this.$emit(
311
+ 'input',
312
+ this.valueType === 'object' ? res : res[this.valKey]
313
+ );
314
+ }
315
+ return util.isObject(res) ? { ...attrs, ...res } : attrs;
316
+ },
317
+ setOptions(val) {
318
+ this.options = val;
319
+ },
320
+ bindEventBus() {
321
+ const bus = this.bus || this.$root.Bus;
322
+ bus && bus.$on(this.sysCode || this.dataKey, this.setOptions);
323
+ },
324
+ unbindEventBus() {
325
+ const bus = this.bus || this.$root.Bus;
326
+ bus && bus.$off(this.sysCode || this.dataKey, this.setOptions);
327
+ }
328
+ },
329
+ beforeDestroy() {
330
+ this.unbindEventBus();
331
+ }
332
+ };
333
+ </script>
@@ -1,5 +1,5 @@
1
- import EsClients from './src/main';
2
-
3
- EsClients.install = Vue => Vue.component(EsClients.name, EsClients);
4
-
5
- export default EsClients;
1
+ import EsClients from './src/main';
2
+
3
+ EsClients.install = Vue => Vue.component(EsClients.name, EsClients);
4
+
5
+ export default EsClients;