eoss-ui 0.7.45 → 0.7.47

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 (283) hide show
  1. package/lib/button-group.js +3 -3
  2. package/lib/calendar.js +6 -6
  3. package/lib/calogin.js +233 -233
  4. package/lib/clients.js +5 -5
  5. package/lib/data-table.js +21 -16
  6. package/lib/enable-drag.js +9 -8
  7. package/lib/eoss-ui.common.js +1126 -1082
  8. package/lib/flow-list.js +81 -81
  9. package/lib/flow.js +354 -348
  10. package/lib/handler.js +8 -8
  11. package/lib/icon.js +3 -3
  12. package/lib/icons.js +1 -1
  13. package/lib/index.js +1 -1
  14. package/lib/login.js +22 -19
  15. package/lib/main.js +296 -267
  16. package/lib/nav.js +4 -4
  17. package/lib/qr-code.js +13 -13
  18. package/lib/theme-chalk/base.css +1 -1
  19. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  20. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  21. package/lib/theme-chalk/icon.css +1 -1
  22. package/lib/theme-chalk/index.css +1 -1
  23. package/lib/theme-chalk/login.css +1 -1
  24. package/lib/theme-chalk/main.css +1 -1
  25. package/lib/theme-chalk/menu.css +1 -1
  26. package/lib/theme-chalk/simplicity.css +1 -1
  27. package/lib/theme-chalk/sizer.css +1 -1
  28. package/lib/theme-chalk/upload.css +1 -1
  29. package/lib/tips.js +3 -3
  30. package/lib/upload.js +9 -9
  31. package/package.json +160 -160
  32. package/packages/button/index.js +5 -5
  33. package/packages/button/src/main.vue +418 -418
  34. package/packages/button-group/index.js +5 -5
  35. package/packages/button-group/src/main.vue +346 -346
  36. package/packages/calendar/index.js +5 -5
  37. package/packages/calendar/src/main.vue +4 -4
  38. package/packages/calogin/index.js +5 -5
  39. package/packages/calogin/src/main.vue +412 -412
  40. package/packages/calogin/src/plugin.js +915 -915
  41. package/packages/card/index.js +5 -5
  42. package/packages/card/src/main.vue +156 -156
  43. package/packages/cascader/index.js +5 -5
  44. package/packages/cascader/src/main.vue +168 -168
  45. package/packages/checkbox-group/index.js +5 -5
  46. package/packages/checkbox-group/src/main.vue +333 -333
  47. package/packages/clients/index.js +5 -5
  48. package/packages/clients/src/main.vue +151 -151
  49. package/packages/data-table/index.js +5 -5
  50. package/packages/data-table/src/children.vue +39 -39
  51. package/packages/data-table/src/column.vue +992 -992
  52. package/packages/data-table/src/main.vue +1840 -1831
  53. package/packages/data-table/src/sizer.vue +195 -195
  54. package/packages/data-table-form/index.js +5 -5
  55. package/packages/data-table-form/src/checkbox.vue +101 -101
  56. package/packages/data-table-form/src/colgroup.vue +17 -17
  57. package/packages/data-table-form/src/main.vue +181 -181
  58. package/packages/data-table-form/src/radio.vue +65 -65
  59. package/packages/data-table-form/src/table.vue +233 -233
  60. package/packages/data-table-form/src/tbody.vue +336 -336
  61. package/packages/data-table-form/src/thead.vue +68 -68
  62. package/packages/date-picker/index.js +5 -5
  63. package/packages/date-picker/src/main.vue +236 -236
  64. package/packages/dialog/index.js +5 -5
  65. package/packages/enable-drag/index.js +5 -5
  66. package/packages/enable-drag/src/main.vue +5 -5
  67. package/packages/enterprise/index.js +5 -5
  68. package/packages/enterprise/src/main.vue +66 -66
  69. package/packages/error-page/index.js +5 -5
  70. package/packages/error-page/src/main.vue +44 -44
  71. package/packages/flow/index.js +5 -5
  72. package/packages/flow/src/component/Circulate.vue +413 -413
  73. package/packages/flow/src/component/CommonOpinions.vue +373 -373
  74. package/packages/flow/src/component/CustomPreset.vue +322 -322
  75. package/packages/flow/src/component/FileList.vue +97 -97
  76. package/packages/flow/src/component/FreeCirculation.vue +240 -240
  77. package/packages/flow/src/component/Preset.vue +255 -255
  78. package/packages/flow/src/component/SendMsg.vue +242 -242
  79. package/packages/flow/src/component/TimeLimit.vue +190 -190
  80. package/packages/flow/src/component/taskUnionExamine.vue +756 -756
  81. package/packages/flow/src/form.vue +121 -121
  82. package/packages/flow/src/freeStartFlow.vue +2846 -2847
  83. package/packages/flow/src/main.vue +3861 -3855
  84. package/packages/flow/src/processForm.vue +1365 -1365
  85. package/packages/flow/src/processReject.vue +309 -309
  86. package/packages/flow/src/reset.vue +942 -941
  87. package/packages/flow/src/selectUser.vue +2 -1
  88. package/packages/flow/src/startTaskRead.vue +692 -691
  89. package/packages/flow/src/supervise.vue +159 -159
  90. package/packages/flow/src/table.vue +58 -58
  91. package/packages/flow-group/index.js +5 -5
  92. package/packages/flow-group/src/main.vue +717 -717
  93. package/packages/flow-list/index.js +5 -5
  94. package/packages/flow-list/src/main.vue +1787 -1787
  95. package/packages/form/index.js +5 -5
  96. package/packages/form/src/main.vue +3901 -3901
  97. package/packages/form/src/table.vue +1512 -1512
  98. package/packages/handle-user/index.js +5 -5
  99. package/packages/handle-user/src/main.vue +137 -137
  100. package/packages/handler/index.js +5 -5
  101. package/packages/handler/src/main.vue +496 -496
  102. package/packages/icon/index.js +5 -5
  103. package/packages/icon/src/main.vue +104 -104
  104. package/packages/icons/index.js +5 -5
  105. package/packages/icons/src/icon.json +1 -1
  106. package/packages/icons/src/main.vue +81 -81
  107. package/packages/input/index.js +5 -5
  108. package/packages/input/src/main.vue +356 -356
  109. package/packages/input-number/index.js +5 -5
  110. package/packages/input-number/src/main.vue +106 -106
  111. package/packages/label/index.js +5 -5
  112. package/packages/label/src/main.vue +457 -457
  113. package/packages/layout/index.js +5 -5
  114. package/packages/layout/src/item.vue +152 -152
  115. package/packages/layout/src/main.vue +31 -31
  116. package/packages/login/index.js +5 -5
  117. package/packages/login/src/main.vue +2082 -2078
  118. package/packages/login/src/resetPassword.vue +557 -557
  119. package/packages/main/index.js +5 -5
  120. package/packages/main/src/default/message.vue +249 -249
  121. package/packages/main/src/default/notice.vue +157 -157
  122. package/packages/main/src/default/userinfo.vue +503 -503
  123. package/packages/main/src/public/online.vue +89 -89
  124. package/packages/main/src/public/search.vue +464 -464
  125. package/packages/main/src/public/settings.vue +227 -221
  126. package/packages/main/src/simplicity/apps.vue +388 -388
  127. package/packages/main/src/simplicity/avatar.vue +82 -82
  128. package/packages/main/src/simplicity/handler.vue +160 -158
  129. package/packages/main/src/simplicity/index.vue +2277 -2277
  130. package/packages/main/src/simplicity/lists.vue +84 -84
  131. package/packages/main/src/simplicity/menu-list.vue +135 -135
  132. package/packages/main/src/simplicity/message.vue +293 -293
  133. package/packages/main/src/simplicity/notice.vue +222 -222
  134. package/packages/main/src/simplicity/router-page.vue +45 -45
  135. package/packages/main/src/simplicity/sub-menu.vue +274 -274
  136. package/packages/main/src/simplicity/user.vue +259 -259
  137. package/packages/main/src/simplicity/userinfo.vue +401 -401
  138. package/packages/menu/index.js +5 -5
  139. package/packages/menu/src/main.vue +595 -595
  140. package/packages/nav/index.js +5 -5
  141. package/packages/nav/src/main.vue +351 -351
  142. package/packages/notify/index.js +5 -5
  143. package/packages/notify/src/main.vue +538 -538
  144. package/packages/page/index.js +5 -5
  145. package/packages/page/src/main.vue +167 -167
  146. package/packages/pagination/index.js +5 -5
  147. package/packages/pagination/src/main.vue +96 -96
  148. package/packages/player/index.js +5 -5
  149. package/packages/player/src/main.vue +194 -194
  150. package/packages/qr-code/index.js +5 -5
  151. package/packages/qr-code/src/main.vue +170 -170
  152. package/packages/radio-group/index.js +6 -6
  153. package/packages/radio-group/src/main.vue +319 -319
  154. package/packages/retrial-auth/index.js +5 -5
  155. package/packages/retrial-auth/src/main.vue +280 -280
  156. package/packages/select/index.js +5 -5
  157. package/packages/select/src/main.vue +782 -782
  158. package/packages/select-ganged/index.js +5 -5
  159. package/packages/select-ganged/src/main.vue +724 -724
  160. package/packages/selector/index.js +5 -5
  161. package/packages/selector/src/main.vue +761 -761
  162. package/packages/selector-panel/index.js +5 -5
  163. package/packages/selector-panel/src/main.vue +1027 -1027
  164. package/packages/selector-panel/src/selection.vue +170 -170
  165. package/packages/selector-panel/src/tree.vue +129 -129
  166. package/packages/sizer/index.js +5 -5
  167. package/packages/sizer/src/main.vue +254 -254
  168. package/packages/steps/index.js +5 -5
  169. package/packages/steps/src/main.vue +181 -181
  170. package/packages/switch/index.js +5 -5
  171. package/packages/switch/src/main.vue +170 -170
  172. package/packages/table-form/index.js +5 -5
  173. package/packages/tabs/index.js +5 -5
  174. package/packages/tabs/src/main.vue +788 -788
  175. package/packages/tabs-panel/index.js +5 -5
  176. package/packages/tabs-panel/src/main.vue +29 -29
  177. package/packages/theme-chalk/lib/base.css +1 -1
  178. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  179. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  180. package/packages/theme-chalk/lib/icon.css +1 -1
  181. package/packages/theme-chalk/lib/index.css +1 -1
  182. package/packages/theme-chalk/lib/login.css +1 -1
  183. package/packages/theme-chalk/lib/main.css +1 -1
  184. package/packages/theme-chalk/lib/menu.css +1 -1
  185. package/packages/theme-chalk/lib/simplicity.css +1 -1
  186. package/packages/theme-chalk/lib/sizer.css +1 -1
  187. package/packages/theme-chalk/lib/upload.css +1 -1
  188. package/packages/theme-chalk/src/base.scss +261 -261
  189. package/packages/theme-chalk/src/button-group.scss +176 -176
  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/enable-drag.scss +181 -181
  200. package/packages/theme-chalk/src/enterprise.scss +5 -5
  201. package/packages/theme-chalk/src/error-page.scss +18 -18
  202. package/packages/theme-chalk/src/flow-group.scss +110 -110
  203. package/packages/theme-chalk/src/flow-list.scss +39 -39
  204. package/packages/theme-chalk/src/flow.scss +351 -351
  205. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  206. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  207. package/packages/theme-chalk/src/form.scss +501 -501
  208. package/packages/theme-chalk/src/handle-user.scss +40 -40
  209. package/packages/theme-chalk/src/handler.scss +148 -148
  210. package/packages/theme-chalk/src/icon.scss +1429 -1817
  211. package/packages/theme-chalk/src/icons.scss +99 -99
  212. package/packages/theme-chalk/src/input.scss +9 -9
  213. package/packages/theme-chalk/src/label.scss +24 -24
  214. package/packages/theme-chalk/src/layout.scss +46 -46
  215. package/packages/theme-chalk/src/login.scss +1006 -987
  216. package/packages/theme-chalk/src/main.scss +663 -663
  217. package/packages/theme-chalk/src/menu.scss +224 -224
  218. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  219. package/packages/theme-chalk/src/nav.scss +111 -111
  220. package/packages/theme-chalk/src/page.scss +3 -3
  221. package/packages/theme-chalk/src/pagination.scss +29 -29
  222. package/packages/theme-chalk/src/player.scss +9 -9
  223. package/packages/theme-chalk/src/qr-code.scss +17 -17
  224. package/packages/theme-chalk/src/radio-group.scss +9 -9
  225. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  226. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  227. package/packages/theme-chalk/src/select.scss +8 -8
  228. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  229. package/packages/theme-chalk/src/selector.scss +114 -114
  230. package/packages/theme-chalk/src/simplicity.scss +1380 -1380
  231. package/packages/theme-chalk/src/sizer.scss +36 -36
  232. package/packages/theme-chalk/src/steps.scss +88 -88
  233. package/packages/theme-chalk/src/switch.scss +3 -3
  234. package/packages/theme-chalk/src/table-form.scss +1 -1
  235. package/packages/theme-chalk/src/tabs.scss +87 -87
  236. package/packages/theme-chalk/src/tips.scss +7 -7
  237. package/packages/theme-chalk/src/toolbar.scss +179 -179
  238. package/packages/theme-chalk/src/tree-group.scss +72 -72
  239. package/packages/theme-chalk/src/tree.scss +165 -165
  240. package/packages/theme-chalk/src/upload.scss +172 -172
  241. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  242. package/packages/tips/index.js +5 -5
  243. package/packages/tips/src/main.vue +141 -141
  244. package/packages/toolbar/index.js +5 -5
  245. package/packages/toolbar/src/main.vue +430 -430
  246. package/packages/tree/index.js +5 -5
  247. package/packages/tree-group/index.js +5 -5
  248. package/packages/upload/index.js +5 -5
  249. package/packages/upload/src/main.vue +1344 -1344
  250. package/packages/upload/src/picture.js +15 -15
  251. package/packages/wujie/index.js +5 -5
  252. package/packages/wujie/src/main.vue +145 -145
  253. package/packages/wxlogin/index.js +5 -5
  254. package/packages/wxlogin/src/main.vue +128 -128
  255. package/src/config/api.js +315 -315
  256. package/src/config/image.js +2 -2
  257. package/src/index.js +163 -163
  258. package/src/utils/bus.js +3 -3
  259. package/src/utils/date-util.js +312 -312
  260. package/src/utils/http.js +50 -50
  261. package/src/utils/rules.js +18 -18
  262. package/src/utils/store.js +21 -21
  263. package/src/utils/webSocket.js +107 -107
  264. package/packages/.DS_Store +0 -0
  265. package/packages/calogin/.DS_Store +0 -0
  266. package/packages/date-picker/.DS_Store +0 -0
  267. package/packages/date-picker/src/.DS_Store +0 -0
  268. package/packages/dialog/.DS_Store +0 -0
  269. package/packages/flow/.DS_Store +0 -0
  270. package/packages/flow/src/.DS_Store +0 -0
  271. package/packages/flow-list/.DS_Store +0 -0
  272. package/packages/form/.DS_Store +0 -0
  273. package/packages/login/.DS_Store +0 -0
  274. package/packages/main/.DS_Store +0 -0
  275. package/packages/main/src/.DS_Store +0 -0
  276. package/packages/menu/.DS_Store +0 -0
  277. package/packages/select/.DS_Store +0 -0
  278. package/packages/selector/.DS_Store +0 -0
  279. package/packages/selector-panel/.DS_Store +0 -0
  280. package/packages/theme-chalk/src/.DS_Store +0 -0
  281. package/packages/upload/.DS_Store +0 -0
  282. package/src/.DS_Store +0 -0
  283. package/src/utils/.DS_Store +0 -0
@@ -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;