eoss-ui 0.6.54 → 0.6.56

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