eoss-ui 0.7.99 → 0.8.0

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 (231) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/eoss-ui.common.js +660 -655
  3. package/lib/flow.js +118 -118
  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/select.js +12 -7
  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 +39 -39
  26. package/packages/data-table/src/main.vue +1847 -1847
  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/FreeCirculation.vue +245 -245
  46. package/packages/flow/src/component/TimeLimit.vue +190 -190
  47. package/packages/flow/src/main.vue +4145 -4145
  48. package/packages/flow-group/index.js +5 -5
  49. package/packages/flow-group/src/main.vue +750 -750
  50. package/packages/flow-list/index.js +5 -5
  51. package/packages/form/index.js +5 -5
  52. package/packages/handle-user/index.js +5 -5
  53. package/packages/handle-user/src/main.vue +137 -137
  54. package/packages/handler/index.js +5 -5
  55. package/packages/handler/src/main.vue +499 -499
  56. package/packages/icon/index.js +5 -5
  57. package/packages/icons/index.js +5 -5
  58. package/packages/icons/src/main.vue +81 -81
  59. package/packages/input/index.js +5 -5
  60. package/packages/input/src/main.vue +356 -356
  61. package/packages/input-number/index.js +5 -5
  62. package/packages/input-number/src/main.vue +106 -106
  63. package/packages/label/index.js +5 -5
  64. package/packages/label/src/main.vue +457 -457
  65. package/packages/layout/index.js +5 -5
  66. package/packages/layout/src/item.vue +152 -152
  67. package/packages/layout/src/main.vue +31 -31
  68. package/packages/login/index.js +5 -5
  69. package/packages/login/src/main.vue +2088 -2088
  70. package/packages/main/index.js +5 -5
  71. package/packages/main/src/default/message.vue +249 -249
  72. package/packages/main/src/default/notice.vue +157 -157
  73. package/packages/main/src/default/userinfo.vue +513 -513
  74. package/packages/main/src/simplicity/index.vue +2335 -2335
  75. package/packages/main/src/simplicity/lists.vue +84 -84
  76. package/packages/main/src/simplicity/router-page.vue +45 -45
  77. package/packages/main/src/simplicity/userinfo.vue +408 -408
  78. package/packages/main/src/simplicityTop/index.vue +2625 -2625
  79. package/packages/main/src/simplicityTop/userinfo.vue +408 -408
  80. package/packages/menu/index.js +5 -5
  81. package/packages/nav/index.js +5 -5
  82. package/packages/notify/index.js +5 -5
  83. package/packages/notify/src/main.vue +538 -538
  84. package/packages/page/index.js +5 -5
  85. package/packages/page/src/main.vue +167 -167
  86. package/packages/pagination/index.js +5 -5
  87. package/packages/pagination/src/main.vue +96 -96
  88. package/packages/player/index.js +5 -5
  89. package/packages/player/src/main.vue +194 -194
  90. package/packages/qr-code/index.js +5 -5
  91. package/packages/qr-code/src/main.vue +170 -170
  92. package/packages/radio-group/index.js +6 -6
  93. package/packages/radio-group/src/main.vue +319 -319
  94. package/packages/retrial-auth/index.js +5 -5
  95. package/packages/retrial-auth/src/main.vue +299 -299
  96. package/packages/select/index.js +5 -5
  97. package/packages/select/src/main.vue +14 -9
  98. package/packages/select-ganged/index.js +5 -5
  99. package/packages/select-ganged/src/main.vue +724 -724
  100. package/packages/selector/index.js +5 -5
  101. package/packages/selector-panel/index.js +5 -5
  102. package/packages/selector-panel/src/tree.vue +129 -129
  103. package/packages/sizer/index.js +5 -5
  104. package/packages/sizer/src/main.vue +254 -254
  105. package/packages/steps/index.js +5 -5
  106. package/packages/steps/src/main.vue +181 -181
  107. package/packages/switch/index.js +5 -5
  108. package/packages/table-form/index.js +5 -5
  109. package/packages/tabs/index.js +5 -5
  110. package/packages/tabs/src/main.vue +788 -788
  111. package/packages/tabs-panel/index.js +5 -5
  112. package/packages/tabs-panel/src/main.vue +29 -29
  113. package/packages/theme-chalk/gulpfile.js +25 -0
  114. package/packages/theme-chalk/src/base.scss +261 -261
  115. package/packages/theme-chalk/src/button-group.scss +176 -176
  116. package/packages/theme-chalk/src/button.scss +24 -24
  117. package/packages/theme-chalk/src/calendar.scss +113 -113
  118. package/packages/theme-chalk/src/card.scss +99 -99
  119. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  120. package/packages/theme-chalk/src/clients.scss +87 -87
  121. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  122. package/packages/theme-chalk/src/date-picker.scss +7 -7
  123. package/packages/theme-chalk/src/dialog.scss +77 -77
  124. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  125. package/packages/theme-chalk/src/enterprise.scss +5 -5
  126. package/packages/theme-chalk/src/error-page.scss +18 -18
  127. package/packages/theme-chalk/src/flow-group.scss +110 -110
  128. package/packages/theme-chalk/src/handle-user.scss +40 -40
  129. package/packages/theme-chalk/src/icons.scss +99 -99
  130. package/packages/theme-chalk/src/input.scss +9 -9
  131. package/packages/theme-chalk/src/label.scss +24 -24
  132. package/packages/theme-chalk/src/layout.scss +46 -46
  133. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  134. package/packages/theme-chalk/src/nav.scss +111 -111
  135. package/packages/theme-chalk/src/page.scss +3 -3
  136. package/packages/theme-chalk/src/pagination.scss +29 -29
  137. package/packages/theme-chalk/src/player.scss +9 -9
  138. package/packages/theme-chalk/src/qr-code.scss +17 -17
  139. package/packages/theme-chalk/src/radio-group.scss +9 -9
  140. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  141. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  142. package/packages/theme-chalk/src/select.scss +8 -8
  143. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  144. package/packages/theme-chalk/src/sizer.scss +36 -36
  145. package/packages/theme-chalk/src/steps.scss +88 -88
  146. package/packages/theme-chalk/src/switch.scss +3 -3
  147. package/packages/theme-chalk/src/table-form.scss +1 -1
  148. package/packages/theme-chalk/src/tabs.scss +87 -87
  149. package/packages/theme-chalk/src/tips.scss +7 -7
  150. package/packages/theme-chalk/src/toolbar.scss +179 -179
  151. package/packages/theme-chalk/src/tree-group.scss +72 -72
  152. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  153. package/packages/tips/index.js +5 -5
  154. package/packages/toolbar/index.js +5 -5
  155. package/packages/tree/index.js +5 -5
  156. package/packages/tree-group/index.js +5 -5
  157. package/packages/upload/index.js +5 -5
  158. package/packages/upload/src/main.vue +1344 -1344
  159. package/packages/upload/src/picture.js +15 -15
  160. package/packages/wujie/index.js +5 -5
  161. package/packages/wxlogin/index.js +5 -5
  162. package/packages/wxlogin/src/main.vue +128 -128
  163. package/src/config/image.js +2 -2
  164. package/src/index.js +1 -1
  165. package/src/utils/bus.js +3 -3
  166. package/src/utils/date-util.js +312 -312
  167. package/src/utils/http.js +50 -50
  168. package/src/utils/store.js +21 -21
  169. package/src/utils/webSocket.js +107 -107
  170. package/packages/theme-chalk/lib/base.css +0 -1
  171. package/packages/theme-chalk/lib/button-group.css +0 -1
  172. package/packages/theme-chalk/lib/button.css +0 -1
  173. package/packages/theme-chalk/lib/calendar.css +0 -1
  174. package/packages/theme-chalk/lib/calogin.css +0 -0
  175. package/packages/theme-chalk/lib/card.css +0 -1
  176. package/packages/theme-chalk/lib/cascader.css +0 -0
  177. package/packages/theme-chalk/lib/checkbox-group.css +0 -1
  178. package/packages/theme-chalk/lib/clients.css +0 -1
  179. package/packages/theme-chalk/lib/data-table-form.css +0 -1
  180. package/packages/theme-chalk/lib/data-table.css +0 -1
  181. package/packages/theme-chalk/lib/date-picker.css +0 -1
  182. package/packages/theme-chalk/lib/dialog.css +0 -1
  183. package/packages/theme-chalk/lib/enable-drag.css +0 -1
  184. package/packages/theme-chalk/lib/enterprise.css +0 -1
  185. package/packages/theme-chalk/lib/error-page.css +0 -1
  186. package/packages/theme-chalk/lib/flow-chart.css +0 -0
  187. package/packages/theme-chalk/lib/flow-group.css +0 -1
  188. package/packages/theme-chalk/lib/flow-list.css +0 -1
  189. package/packages/theme-chalk/lib/flow.css +0 -1
  190. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  191. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  192. package/packages/theme-chalk/lib/form.css +0 -1
  193. package/packages/theme-chalk/lib/handle-user.css +0 -1
  194. package/packages/theme-chalk/lib/handler.css +0 -1
  195. package/packages/theme-chalk/lib/icon.css +0 -1
  196. package/packages/theme-chalk/lib/icons.css +0 -1
  197. package/packages/theme-chalk/lib/index.css +0 -1
  198. package/packages/theme-chalk/lib/input-number.css +0 -0
  199. package/packages/theme-chalk/lib/input.css +0 -1
  200. package/packages/theme-chalk/lib/label.css +0 -1
  201. package/packages/theme-chalk/lib/layout.css +0 -1
  202. package/packages/theme-chalk/lib/login.css +0 -1
  203. package/packages/theme-chalk/lib/main.css +0 -1
  204. package/packages/theme-chalk/lib/menu.css +0 -1
  205. package/packages/theme-chalk/lib/nav.css +0 -1
  206. package/packages/theme-chalk/lib/notify.css +0 -0
  207. package/packages/theme-chalk/lib/page.css +0 -1
  208. package/packages/theme-chalk/lib/pagination.css +0 -1
  209. package/packages/theme-chalk/lib/player.css +0 -1
  210. package/packages/theme-chalk/lib/qr-code.css +0 -1
  211. package/packages/theme-chalk/lib/radio-group.css +0 -1
  212. package/packages/theme-chalk/lib/retrial-auth.css +0 -1
  213. package/packages/theme-chalk/lib/select-ganged.css +0 -1
  214. package/packages/theme-chalk/lib/select.css +0 -1
  215. package/packages/theme-chalk/lib/selector-panel.css +0 -1
  216. package/packages/theme-chalk/lib/selector.css +0 -1
  217. package/packages/theme-chalk/lib/simplicity-top.css +0 -1
  218. package/packages/theme-chalk/lib/simplicity.css +0 -1
  219. package/packages/theme-chalk/lib/sizer.css +0 -1
  220. package/packages/theme-chalk/lib/steps.css +0 -1
  221. package/packages/theme-chalk/lib/switch.css +0 -1
  222. package/packages/theme-chalk/lib/table-form.css +0 -0
  223. package/packages/theme-chalk/lib/tabs-panel.css +0 -0
  224. package/packages/theme-chalk/lib/tabs.css +0 -1
  225. package/packages/theme-chalk/lib/tips.css +0 -1
  226. package/packages/theme-chalk/lib/toolbar.css +0 -1
  227. package/packages/theme-chalk/lib/tree-group.css +0 -1
  228. package/packages/theme-chalk/lib/tree.css +0 -1
  229. package/packages/theme-chalk/lib/upload.css +0 -1
  230. package/packages/theme-chalk/lib/wujie.css +0 -0
  231. package/packages/theme-chalk/lib/wxlogin.css +0 -1
@@ -1,299 +1,299 @@
1
- <template>
2
- <div class="es-retrial-auth" v-loading.fullscreen.lock="submit">
3
- <es-qr-code
4
- :width="200"
5
- :height="200"
6
- :content="uuid"
7
- :logo="qrImg"
8
- v-if="active === 'SCANCODE'"
9
- ></es-qr-code>
10
- <el-form ref="auth" class="es-retrial-auth-form" :model="formData" v-else>
11
- <el-form-item>
12
- <div>
13
- 验证码将发送至{{
14
- active == 'WEB_SMS' ? `手机号:${phoneText}` : `邮箱:${emailText}`
15
- }}
16
- </div>
17
- </el-form-item>
18
- <el-form-item
19
- size="large"
20
- prop="verificationCode"
21
- :rules="[
22
- { required: true, message: '验证码不能为空', trigger: 'change' }
23
- ]"
24
- >
25
- <el-input
26
- size="large"
27
- name="verificationCode"
28
- type="text"
29
- v-model="formData.verificationCode"
30
- placeholder="请输入验证码"
31
- autocomplete="off"
32
- class="es-label-image-code"
33
- >
34
- <template slot="suffix">
35
- <el-button
36
- class="es-get-code"
37
- type="primary"
38
- :disabled="disabled"
39
- @click.stop="getCode"
40
- >{{ btnText }}</el-button
41
- >
42
- </template>
43
- </el-input>
44
- </el-form-item>
45
- <el-button class="es-button-submit" type="primary" @click="handleAuth"
46
- >提交验证</el-button
47
- >
48
- </el-form>
49
- <div v-if="type && type.length > 1" class="es-login-switchs">
50
- <i
51
- v-for="(item, index) in icons"
52
- @click="handleSwitch(index)"
53
- :key="index"
54
- :class="[item, 'es-icon', { 'es-active': active == index }]"
55
- ></i>
56
- </div>
57
- </div>
58
- </template>
59
- <script>
60
- import util from 'eoss-ui/src/utils/util';
61
- import {
62
- initRetrialAuth,
63
- getRetrialAuthCode,
64
- scanCodeRetrialAuth,
65
- codeRetrialAuth
66
- } from 'eoss-ui/src/config/api.js';
67
- export default {
68
- name: 'EsRetrialAuth',
69
- inheritAttrs: false,
70
- props: {
71
- reload: Boolean,
72
- group: String,
73
- type: Array,
74
- msgBox: {}
75
- },
76
- computed: {
77
- icons() {
78
- let icons = {};
79
- for (let i in this.fonts) {
80
- if (this.type.includes(i)) {
81
- icons[i] = this.fonts[i];
82
- }
83
- }
84
- return icons;
85
- }
86
- },
87
- watch: {
88
- active: {
89
- handler(val) {
90
- if (val === 'SCANCODE' && this.uuid) {
91
- this.$nextTick(() => {
92
- this.handleScanCodeRetrialAuth();
93
- });
94
- }
95
- }
96
- }
97
- },
98
- data() {
99
- return {
100
- userModel: {},
101
- active: this.type[0],
102
- formData: {
103
- verificationCode: ''
104
- },
105
- fonts: {
106
- SCANCODE: 'es-icon-saoma',
107
- WEB_SMS: 'es-icon-solid-duanxin',
108
- WEB_EMAIL: 'es-icon-youxiang'
109
- },
110
- uuid: '',
111
- qrImg: '',
112
- emailText: null,
113
- phoneText: null,
114
- disabled: false,
115
- btnText: '获取验证码',
116
- countdown: 0,
117
- timer: null,
118
- scanCode: null,
119
- submit: false
120
- };
121
- },
122
- created() {
123
- this.init();
124
- },
125
- mounted() {},
126
- methods: {
127
- init() {
128
- let mainConfig = util.getStorage('mainConfig');
129
- mainConfig && (this.userModel = JSON.parse(mainConfig).userModel);
130
- util
131
- .ajax({
132
- url: initRetrialAuth
133
- })
134
- .then((res) => {
135
- let { rCode, results } = res;
136
- if (rCode == 0) {
137
- this.uuid = results.uuid;
138
- this.qrImg = results.qrImg;
139
- this.emailText = results.emailText;
140
- this.phoneText = results.phoneText;
141
- if (this.active === 'SCANCODE') {
142
- this.handleScanCodeRetrialAuth();
143
- }
144
- }
145
- })
146
- .catch();
147
- },
148
- handleAuth() {
149
- if (this.submit) {
150
- return false;
151
- }
152
- this.$refs['auth'].validate((valid) => {
153
- if (valid) {
154
- this.submit = true;
155
- let params = {
156
- retrialAuthGroupIds: this.group,
157
- targetType: this.active === 'WEB_SMS' ? 'SMS' : 'EMAIL',
158
- verificationCode: this.formData.verificationCode
159
- };
160
- util
161
- .ajax({
162
- url: codeRetrialAuth,
163
- method: 'post',
164
- data: params
165
- })
166
- .then((res) => {
167
- let { rCode, msg } = res;
168
- if (rCode == 0) {
169
- this.$message({
170
- message: '认证成功',
171
- type: 'success'
172
- });
173
- this.msgBox.handleClose();
174
- const topWin = util.getWinTop();
175
- try {
176
- if (this.reload) {
177
- topWin.location.reload();
178
- }
179
- } catch (error) {
180
- console.warn('Failed to reload page:', error);
181
- try {
182
- this.reload && topWin.postMessage({ type: 3 }, '*');
183
- } catch (postMessageError) {
184
- console.warn(
185
- 'Failed to send postMessage:',
186
- postMessageError
187
- );
188
- }
189
- }
190
- } else {
191
- this.$message({
192
- message: msg,
193
- type: 'error'
194
- });
195
- this.submit = false;
196
- }
197
- })
198
- .catch();
199
- }
200
- });
201
- },
202
- handleSwitch(res) {
203
- clearTimeout(this.scanCode);
204
- this.active = res;
205
- },
206
- getCode() {
207
- if (this.countdown) {
208
- return false;
209
- }
210
- let params = { targetType: this.active === 'WEB_SMS' ? 'SMS' : 'EMAIL' };
211
- this.countdown = 60;
212
- this.timer = setInterval(() => {
213
- if (this.countdown > 0) {
214
- this.countdown--;
215
- this.disabled = true;
216
- this.btnText = '重新获取' + this.countdown + 's';
217
- } else {
218
- this.btnText = '重新获取';
219
- this.disabled = false;
220
- this.submit = false;
221
- }
222
- }, 1000);
223
- util
224
- .ajax({
225
- url: getRetrialAuthCode,
226
- method: 'post',
227
- data: params,
228
- params: params
229
- })
230
- .then((res) => {
231
- let { rCode } = res;
232
- if (rCode == 0) {
233
- this.$message({
234
- message:
235
- '验证码已发送至' +
236
- (this.active === 'WEB_SMS' ? '手机' : '邮箱') +
237
- ',请注意查收!',
238
- type: 'success'
239
- });
240
- }
241
- })
242
- .catch();
243
- },
244
- handleScanCodeRetrialAuth() {
245
- clearTimeout(this.scanCode);
246
- let params = {
247
- phone: this.userModel.phone,
248
- retrialAuthGroupIds: this.group,
249
- uuid: this.uuid
250
- };
251
- util
252
- .ajax({
253
- url: scanCodeRetrialAuth,
254
- method: 'post',
255
- data: params,
256
- params: params
257
- })
258
- .then((res) => {
259
- let { rCode, results } = res;
260
- if (rCode == 0) {
261
- if (results.authPass) {
262
- this.$message({
263
- message: '认证成功',
264
- type: 'success'
265
- });
266
- this.msgBox.handleClose();
267
- const topWin = util.getWinTop();
268
- try {
269
- if (this.reload) {
270
- topWin.location.reload();
271
- }
272
- } catch (error) {
273
- console.warn('Failed to reload page:', error);
274
- try {
275
- this.reload && topWin.postMessage({ type: 3 }, '*');
276
- } catch (postMessageError) {
277
- console.warn('Failed to send postMessage:', postMessageError);
278
- }
279
- }
280
- } else {
281
- this.scanCode = setTimeout(() => {
282
- this.handleScanCodeRetrialAuth();
283
- }, 1000);
284
- }
285
- }
286
- })
287
- .catch();
288
- },
289
- clearTimeouts() {
290
- clearTimeout(this.scanCode);
291
- clearTimeout(this.timer);
292
- }
293
- },
294
- beforeDestroy() {
295
- clearTimeout(this.scanCode);
296
- clearTimeout(this.timer);
297
- }
298
- };
299
- </script>
1
+ <template>
2
+ <div class="es-retrial-auth" v-loading.fullscreen.lock="submit">
3
+ <es-qr-code
4
+ :width="200"
5
+ :height="200"
6
+ :content="uuid"
7
+ :logo="qrImg"
8
+ v-if="active === 'SCANCODE'"
9
+ ></es-qr-code>
10
+ <el-form ref="auth" class="es-retrial-auth-form" :model="formData" v-else>
11
+ <el-form-item>
12
+ <div>
13
+ 验证码将发送至{{
14
+ active == 'WEB_SMS' ? `手机号:${phoneText}` : `邮箱:${emailText}`
15
+ }}
16
+ </div>
17
+ </el-form-item>
18
+ <el-form-item
19
+ size="large"
20
+ prop="verificationCode"
21
+ :rules="[
22
+ { required: true, message: '验证码不能为空', trigger: 'change' }
23
+ ]"
24
+ >
25
+ <el-input
26
+ size="large"
27
+ name="verificationCode"
28
+ type="text"
29
+ v-model="formData.verificationCode"
30
+ placeholder="请输入验证码"
31
+ autocomplete="off"
32
+ class="es-label-image-code"
33
+ >
34
+ <template slot="suffix">
35
+ <el-button
36
+ class="es-get-code"
37
+ type="primary"
38
+ :disabled="disabled"
39
+ @click.stop="getCode"
40
+ >{{ btnText }}</el-button
41
+ >
42
+ </template>
43
+ </el-input>
44
+ </el-form-item>
45
+ <el-button class="es-button-submit" type="primary" @click="handleAuth"
46
+ >提交验证</el-button
47
+ >
48
+ </el-form>
49
+ <div v-if="type && type.length > 1" class="es-login-switchs">
50
+ <i
51
+ v-for="(item, index) in icons"
52
+ @click="handleSwitch(index)"
53
+ :key="index"
54
+ :class="[item, 'es-icon', { 'es-active': active == index }]"
55
+ ></i>
56
+ </div>
57
+ </div>
58
+ </template>
59
+ <script>
60
+ import util from 'eoss-ui/src/utils/util';
61
+ import {
62
+ initRetrialAuth,
63
+ getRetrialAuthCode,
64
+ scanCodeRetrialAuth,
65
+ codeRetrialAuth
66
+ } from 'eoss-ui/src/config/api.js';
67
+ export default {
68
+ name: 'EsRetrialAuth',
69
+ inheritAttrs: false,
70
+ props: {
71
+ reload: Boolean,
72
+ group: String,
73
+ type: Array,
74
+ msgBox: {}
75
+ },
76
+ computed: {
77
+ icons() {
78
+ let icons = {};
79
+ for (let i in this.fonts) {
80
+ if (this.type.includes(i)) {
81
+ icons[i] = this.fonts[i];
82
+ }
83
+ }
84
+ return icons;
85
+ }
86
+ },
87
+ watch: {
88
+ active: {
89
+ handler(val) {
90
+ if (val === 'SCANCODE' && this.uuid) {
91
+ this.$nextTick(() => {
92
+ this.handleScanCodeRetrialAuth();
93
+ });
94
+ }
95
+ }
96
+ }
97
+ },
98
+ data() {
99
+ return {
100
+ userModel: {},
101
+ active: this.type[0],
102
+ formData: {
103
+ verificationCode: ''
104
+ },
105
+ fonts: {
106
+ SCANCODE: 'es-icon-saoma',
107
+ WEB_SMS: 'es-icon-solid-duanxin',
108
+ WEB_EMAIL: 'es-icon-youxiang'
109
+ },
110
+ uuid: '',
111
+ qrImg: '',
112
+ emailText: null,
113
+ phoneText: null,
114
+ disabled: false,
115
+ btnText: '获取验证码',
116
+ countdown: 0,
117
+ timer: null,
118
+ scanCode: null,
119
+ submit: false
120
+ };
121
+ },
122
+ created() {
123
+ this.init();
124
+ },
125
+ mounted() {},
126
+ methods: {
127
+ init() {
128
+ let mainConfig = util.getStorage('mainConfig');
129
+ mainConfig && (this.userModel = JSON.parse(mainConfig).userModel);
130
+ util
131
+ .ajax({
132
+ url: initRetrialAuth
133
+ })
134
+ .then((res) => {
135
+ let { rCode, results } = res;
136
+ if (rCode == 0) {
137
+ this.uuid = results.uuid;
138
+ this.qrImg = results.qrImg;
139
+ this.emailText = results.emailText;
140
+ this.phoneText = results.phoneText;
141
+ if (this.active === 'SCANCODE') {
142
+ this.handleScanCodeRetrialAuth();
143
+ }
144
+ }
145
+ })
146
+ .catch();
147
+ },
148
+ handleAuth() {
149
+ if (this.submit) {
150
+ return false;
151
+ }
152
+ this.$refs['auth'].validate((valid) => {
153
+ if (valid) {
154
+ this.submit = true;
155
+ let params = {
156
+ retrialAuthGroupIds: this.group,
157
+ targetType: this.active === 'WEB_SMS' ? 'SMS' : 'EMAIL',
158
+ verificationCode: this.formData.verificationCode
159
+ };
160
+ util
161
+ .ajax({
162
+ url: codeRetrialAuth,
163
+ method: 'post',
164
+ data: params
165
+ })
166
+ .then((res) => {
167
+ let { rCode, msg } = res;
168
+ if (rCode == 0) {
169
+ this.$message({
170
+ message: '认证成功',
171
+ type: 'success'
172
+ });
173
+ this.msgBox.handleClose();
174
+ const topWin = util.getWinTop();
175
+ try {
176
+ if (this.reload) {
177
+ topWin.location.reload();
178
+ }
179
+ } catch (error) {
180
+ console.warn('Failed to reload page:', error);
181
+ try {
182
+ this.reload && topWin.postMessage({ type: 3 }, '*');
183
+ } catch (postMessageError) {
184
+ console.warn(
185
+ 'Failed to send postMessage:',
186
+ postMessageError
187
+ );
188
+ }
189
+ }
190
+ } else {
191
+ this.$message({
192
+ message: msg,
193
+ type: 'error'
194
+ });
195
+ this.submit = false;
196
+ }
197
+ })
198
+ .catch();
199
+ }
200
+ });
201
+ },
202
+ handleSwitch(res) {
203
+ clearTimeout(this.scanCode);
204
+ this.active = res;
205
+ },
206
+ getCode() {
207
+ if (this.countdown) {
208
+ return false;
209
+ }
210
+ let params = { targetType: this.active === 'WEB_SMS' ? 'SMS' : 'EMAIL' };
211
+ this.countdown = 60;
212
+ this.timer = setInterval(() => {
213
+ if (this.countdown > 0) {
214
+ this.countdown--;
215
+ this.disabled = true;
216
+ this.btnText = '重新获取' + this.countdown + 's';
217
+ } else {
218
+ this.btnText = '重新获取';
219
+ this.disabled = false;
220
+ this.submit = false;
221
+ }
222
+ }, 1000);
223
+ util
224
+ .ajax({
225
+ url: getRetrialAuthCode,
226
+ method: 'post',
227
+ data: params,
228
+ params: params
229
+ })
230
+ .then((res) => {
231
+ let { rCode } = res;
232
+ if (rCode == 0) {
233
+ this.$message({
234
+ message:
235
+ '验证码已发送至' +
236
+ (this.active === 'WEB_SMS' ? '手机' : '邮箱') +
237
+ ',请注意查收!',
238
+ type: 'success'
239
+ });
240
+ }
241
+ })
242
+ .catch();
243
+ },
244
+ handleScanCodeRetrialAuth() {
245
+ clearTimeout(this.scanCode);
246
+ let params = {
247
+ phone: this.userModel.phone,
248
+ retrialAuthGroupIds: this.group,
249
+ uuid: this.uuid
250
+ };
251
+ util
252
+ .ajax({
253
+ url: scanCodeRetrialAuth,
254
+ method: 'post',
255
+ data: params,
256
+ params: params
257
+ })
258
+ .then((res) => {
259
+ let { rCode, results } = res;
260
+ if (rCode == 0) {
261
+ if (results.authPass) {
262
+ this.$message({
263
+ message: '认证成功',
264
+ type: 'success'
265
+ });
266
+ this.msgBox.handleClose();
267
+ const topWin = util.getWinTop();
268
+ try {
269
+ if (this.reload) {
270
+ topWin.location.reload();
271
+ }
272
+ } catch (error) {
273
+ console.warn('Failed to reload page:', error);
274
+ try {
275
+ this.reload && topWin.postMessage({ type: 3 }, '*');
276
+ } catch (postMessageError) {
277
+ console.warn('Failed to send postMessage:', postMessageError);
278
+ }
279
+ }
280
+ } else {
281
+ this.scanCode = setTimeout(() => {
282
+ this.handleScanCodeRetrialAuth();
283
+ }, 1000);
284
+ }
285
+ }
286
+ })
287
+ .catch();
288
+ },
289
+ clearTimeouts() {
290
+ clearTimeout(this.scanCode);
291
+ clearTimeout(this.timer);
292
+ }
293
+ },
294
+ beforeDestroy() {
295
+ clearTimeout(this.scanCode);
296
+ clearTimeout(this.timer);
297
+ }
298
+ };
299
+ </script>
@@ -1,5 +1,5 @@
1
- import EsSelect from './src/main';
2
-
3
- EsSelect.install = Vue => Vue.component(EsSelect.name, EsSelect);
4
-
5
- export default EsSelect;
1
+ import EsSelect from './src/main';
2
+
3
+ EsSelect.install = Vue => Vue.component(EsSelect.name, EsSelect);
4
+
5
+ export default EsSelect;
@@ -513,8 +513,8 @@ export default {
513
513
  data.children &&
514
514
  data.children.length
515
515
  ) {
516
- let val = this.getLabel(value, data.children);
517
- if (val) {
516
+ const val = this.getLabel(value, data.children);
517
+ if (val !== null) {
518
518
  return val;
519
519
  }
520
520
  }
@@ -527,15 +527,15 @@ export default {
527
527
  }
528
528
  if (Array.isArray(data) && data.length) {
529
529
  for (let i = 0; i < data.length; i++) {
530
- let val = this.getLabel(value, data[i]);
531
- if (val) {
530
+ const val = this.getLabel(value, data[i]);
531
+ if (val !== null) {
532
532
  return val;
533
533
  }
534
534
  }
535
535
  }
536
536
  }
537
537
  }
538
- return value;
538
+ return null;
539
539
  },
540
540
  reload() {
541
541
  this.getData(...arguments);
@@ -650,22 +650,27 @@ export default {
650
650
  dom = models.map((item) => {
651
651
  if (util.isObject(item)) {
652
652
  if (!item[this.label] && !item.label) {
653
- return this.getLabel(value[this.valKey], data);
653
+ const label = this.getLabel(value[this.valKey], data);
654
+ return label !== null ? label : value[this.valKey];
654
655
  }
655
656
  return item[this.label] || item.label;
656
657
  }
657
- return this.getLabel(item, this.results);
658
+ const label = this.getLabel(item, this.results);
659
+ return label !== null ? label : item;
658
660
  });
659
661
  } else if (util.isObject(models)) {
660
662
  if (!models[this.label] && !models.label) {
661
- dom = [this.getLabel(models[this.valKey], this.results)];
663
+ const label = this.getLabel(models[this.valKey], this.results);
664
+ dom = [label !== null ? label : models[this.valKey]];
662
665
  } else {
663
666
  dom = [models[this.label] || models.label];
664
667
  }
665
668
  } else {
666
- dom = [this.getLabel(models, this.results)];
669
+ const label = this.getLabel(models, this.results);
670
+ dom = [label !== null ? label : models];
667
671
  }
668
672
  console.log('dom', dom);
673
+ console.log('dom.join(this.symbol)', dom.join(this.symbol));
669
674
  return h(
670
675
  'div',
671
676
  {
@@ -1,5 +1,5 @@
1
- import EsSelectGanged from './src/main';
2
-
3
- EsSelectGanged.install = Vue => Vue.component(EsSelectGanged.name, EsSelectGanged);
4
-
5
- export default EsSelectGanged;
1
+ import EsSelectGanged from './src/main';
2
+
3
+ EsSelectGanged.install = Vue => Vue.component(EsSelectGanged.name, EsSelectGanged);
4
+
5
+ export default EsSelectGanged;