eoss-ui 0.6.94 → 0.6.96

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 (289) hide show
  1. package/lib/button-group.js +1 -1
  2. package/lib/button.js +1 -1
  3. package/lib/calogin.js +234 -234
  4. package/lib/checkbox-group.js +1 -1
  5. package/lib/config/api.js +1 -1
  6. package/lib/data-table-form.js +1 -1
  7. package/lib/data-table.js +1 -1
  8. package/lib/date-picker.js +1 -1
  9. package/lib/dialog.js +1 -1
  10. package/lib/eoss-ui.common.js +1121 -967
  11. package/lib/flow-group.js +1 -1
  12. package/lib/flow-list.js +82 -82
  13. package/lib/flow.js +370 -335
  14. package/lib/form.js +34 -7
  15. package/lib/handle-user.js +4 -5
  16. package/lib/handler.js +1 -1
  17. package/lib/icon.js +1 -1
  18. package/lib/index.js +1 -1
  19. package/lib/input-number.js +1 -1
  20. package/lib/input.js +2 -2
  21. package/lib/login.js +6 -11
  22. package/lib/main.js +361 -262
  23. package/lib/nav.js +1 -1
  24. package/lib/notify.js +1 -1
  25. package/lib/page.js +1 -1
  26. package/lib/pagination.js +1 -1
  27. package/lib/player.js +1 -1
  28. package/lib/qr-code.js +14 -14
  29. package/lib/radio-group.js +1 -1
  30. package/lib/retrial-auth.js +1 -1
  31. package/lib/select-ganged.js +1 -1
  32. package/lib/select.js +1 -2
  33. package/lib/selector-panel.js +1 -1
  34. package/lib/selector.js +1 -1
  35. package/lib/sizer.js +1 -1
  36. package/lib/steps.js +1 -1
  37. package/lib/switch.js +1 -1
  38. package/lib/table-form.js +2 -2
  39. package/lib/tabs.js +1 -1
  40. package/lib/theme-chalk/index.css +1 -1
  41. package/lib/theme-chalk/main.css +1 -1
  42. package/lib/theme-chalk/simplicity.css +1 -1
  43. package/lib/tips.js +1 -1
  44. package/lib/tree-group.js +1 -1
  45. package/lib/tree.js +1 -1
  46. package/lib/upload.js +1 -1
  47. package/lib/utils/rules.js +1 -1
  48. package/lib/wujie.js +1 -1
  49. package/lib/wxlogin.js +1 -1
  50. package/package.json +160 -160
  51. package/packages/.DS_Store +0 -0
  52. package/packages/autocomplete/.DS_Store +0 -0
  53. package/packages/button/index.js +5 -5
  54. package/packages/button/src/main.vue +418 -418
  55. package/packages/button-group/index.js +5 -5
  56. package/packages/button-group/src/main.vue +298 -298
  57. package/packages/calendar/index.js +5 -5
  58. package/packages/calogin/.DS_Store +0 -0
  59. package/packages/calogin/index.js +5 -5
  60. package/packages/calogin/src/main.vue +412 -412
  61. package/packages/calogin/src/plugin.js +915 -915
  62. package/packages/card/index.js +5 -5
  63. package/packages/card/src/main.vue +156 -156
  64. package/packages/cascader/index.js +5 -5
  65. package/packages/cascader/src/main.vue +168 -168
  66. package/packages/checkbox-group/index.js +5 -5
  67. package/packages/checkbox-group/src/main.vue +333 -333
  68. package/packages/clients/index.js +5 -5
  69. package/packages/clients/src/main.vue +151 -151
  70. package/packages/data-table/index.js +5 -5
  71. package/packages/data-table/src/children.vue +39 -39
  72. package/packages/data-table/src/column.vue +988 -988
  73. package/packages/data-table/src/main.vue +1831 -1831
  74. package/packages/data-table/src/sizer.vue +195 -195
  75. package/packages/data-table-form/index.js +5 -5
  76. package/packages/data-table-form/src/checkbox.vue +101 -101
  77. package/packages/data-table-form/src/colgroup.vue +17 -17
  78. package/packages/data-table-form/src/main.vue +181 -181
  79. package/packages/data-table-form/src/radio.vue +65 -65
  80. package/packages/data-table-form/src/table.vue +233 -233
  81. package/packages/data-table-form/src/tbody.vue +336 -336
  82. package/packages/data-table-form/src/thead.vue +68 -68
  83. package/packages/date-picker/.DS_Store +0 -0
  84. package/packages/date-picker/index.js +5 -5
  85. package/packages/date-picker/src/.DS_Store +0 -0
  86. package/packages/date-picker/src/main.vue +236 -236
  87. package/packages/dialog/index.js +5 -5
  88. package/packages/enable-drag/index.js +5 -5
  89. package/packages/enterprise/index.js +5 -5
  90. package/packages/enterprise/src/main.vue +66 -66
  91. package/packages/error-page/index.js +5 -5
  92. package/packages/error-page/src/main.vue +44 -44
  93. package/packages/flow/.DS_Store +0 -0
  94. package/packages/flow/index.js +5 -5
  95. package/packages/flow/src/.DS_Store +0 -0
  96. package/packages/flow/src/component/Circulate.vue +403 -403
  97. package/packages/flow/src/component/CommonOpinions.vue +364 -364
  98. package/packages/flow/src/component/CustomPreset.vue +322 -322
  99. package/packages/flow/src/component/FileList.vue +99 -99
  100. package/packages/flow/src/component/Preset.vue +255 -255
  101. package/packages/flow/src/component/SendMsg.vue +242 -242
  102. package/packages/flow/src/component/TimeLimit.vue +190 -190
  103. package/packages/flow/src/component/taskUnionExamine.vue +641 -641
  104. package/packages/flow/src/form.vue +121 -121
  105. package/packages/flow/src/freeStartFlow.vue +2844 -2844
  106. package/packages/flow/src/main.vue +3726 -3726
  107. package/packages/flow/src/processForm.vue +1287 -1287
  108. package/packages/flow/src/processReject.vue +308 -299
  109. package/packages/flow/src/reset.vue +941 -941
  110. package/packages/flow/src/startTaskRead.vue +690 -681
  111. package/packages/flow/src/supervise.vue +159 -159
  112. package/packages/flow/src/table.vue +58 -58
  113. package/packages/flow-group/index.js +5 -5
  114. package/packages/flow-group/src/main.vue +692 -692
  115. package/packages/flow-list/.DS_Store +0 -0
  116. package/packages/flow-list/index.js +5 -5
  117. package/packages/flow-list/src/main.vue +1770 -1770
  118. package/packages/form/.DS_Store +0 -0
  119. package/packages/form/index.js +5 -5
  120. package/packages/form/src/main.vue +3846 -3814
  121. package/packages/form/src/table.vue +1508 -1508
  122. package/packages/handle-user/index.js +5 -5
  123. package/packages/handle-user/src/main.vue +137 -138
  124. package/packages/handler/index.js +5 -5
  125. package/packages/handler/src/main.vue +493 -493
  126. package/packages/icon/index.js +5 -5
  127. package/packages/icon/src/main.vue +101 -101
  128. package/packages/icons/index.js +5 -5
  129. package/packages/icons/src/main.vue +81 -81
  130. package/packages/input/index.js +5 -5
  131. package/packages/input/src/main.vue +356 -356
  132. package/packages/input-number/index.js +5 -5
  133. package/packages/input-number/src/main.vue +106 -106
  134. package/packages/label/index.js +5 -5
  135. package/packages/label/src/main.vue +457 -457
  136. package/packages/layout/index.js +5 -5
  137. package/packages/layout/src/item.vue +152 -152
  138. package/packages/layout/src/main.vue +31 -31
  139. package/packages/login/.DS_Store +0 -0
  140. package/packages/login/index.js +5 -5
  141. package/packages/login/src/main.vue +1993 -1998
  142. package/packages/login/src/resetPassword.vue +562 -562
  143. package/packages/main/.DS_Store +0 -0
  144. package/packages/main/index.js +5 -5
  145. package/packages/main/src/.DS_Store +0 -0
  146. package/packages/main/src/default/message.vue +249 -249
  147. package/packages/main/src/default/notice.vue +157 -157
  148. package/packages/main/src/default/userinfo.vue +502 -503
  149. package/packages/main/src/main.vue +0 -2
  150. package/packages/main/src/public/online.vue +89 -89
  151. package/packages/main/src/public/search.vue +464 -464
  152. package/packages/main/src/public/settings.vue +221 -221
  153. package/packages/main/src/simplicity/apps.vue +388 -388
  154. package/packages/main/src/simplicity/avatar.vue +82 -82
  155. package/packages/main/src/simplicity/handler.vue +259 -259
  156. package/packages/main/src/simplicity/index.vue +2125 -2102
  157. package/packages/main/src/simplicity/lists.vue +84 -84
  158. package/packages/main/src/simplicity/menu-list.vue +135 -135
  159. package/packages/main/src/simplicity/message.vue +259 -259
  160. package/packages/main/src/simplicity/notice.vue +190 -190
  161. package/packages/main/src/simplicity/router-page.vue +45 -45
  162. package/packages/main/src/simplicity/sub-menu.vue +264 -264
  163. package/packages/main/src/simplicity/user.vue +258 -260
  164. package/packages/main/src/simplicity/userinfo.vue +356 -308
  165. package/packages/menu/.DS_Store +0 -0
  166. package/packages/menu/index.js +5 -5
  167. package/packages/menu/src/main.vue +584 -584
  168. package/packages/nav/index.js +5 -5
  169. package/packages/nav/src/main.vue +351 -351
  170. package/packages/notify/index.js +5 -5
  171. package/packages/notify/src/main.vue +538 -538
  172. package/packages/page/index.js +5 -5
  173. package/packages/page/src/main.vue +167 -167
  174. package/packages/pagination/index.js +5 -5
  175. package/packages/pagination/src/main.vue +96 -96
  176. package/packages/player/index.js +5 -5
  177. package/packages/player/src/main.vue +194 -194
  178. package/packages/qr-code/index.js +5 -5
  179. package/packages/qr-code/src/main.vue +170 -170
  180. package/packages/radio-group/index.js +6 -6
  181. package/packages/radio-group/src/main.vue +319 -319
  182. package/packages/retrial-auth/index.js +5 -5
  183. package/packages/retrial-auth/src/main.vue +280 -280
  184. package/packages/scrollbar/.DS_Store +0 -0
  185. package/packages/select/.DS_Store +0 -0
  186. package/packages/select/index.js +5 -5
  187. package/packages/select/src/main.vue +781 -782
  188. package/packages/select-ganged/index.js +5 -5
  189. package/packages/select-ganged/src/main.vue +724 -724
  190. package/packages/selector/.DS_Store +0 -0
  191. package/packages/selector/index.js +5 -5
  192. package/packages/selector/src/main.vue +761 -761
  193. package/packages/selector-panel/.DS_Store +0 -0
  194. package/packages/selector-panel/index.js +5 -5
  195. package/packages/selector-panel/src/main.vue +1027 -1027
  196. package/packages/selector-panel/src/selection.vue +170 -170
  197. package/packages/selector-panel/src/tree.vue +129 -129
  198. package/packages/sizer/index.js +5 -5
  199. package/packages/sizer/src/main.vue +254 -254
  200. package/packages/steps/index.js +5 -5
  201. package/packages/steps/src/main.vue +181 -181
  202. package/packages/switch/index.js +5 -5
  203. package/packages/switch/src/main.vue +154 -154
  204. package/packages/table-form/index.js +5 -5
  205. package/packages/tabs/index.js +5 -5
  206. package/packages/tabs/src/main.vue +788 -788
  207. package/packages/tabs-panel/index.js +5 -5
  208. package/packages/tabs-panel/src/main.vue +29 -29
  209. package/packages/theme-chalk/lib/index.css +1 -1
  210. package/packages/theme-chalk/lib/main.css +1 -1
  211. package/packages/theme-chalk/lib/simplicity.css +1 -1
  212. package/packages/theme-chalk/src/.DS_Store +0 -0
  213. package/packages/theme-chalk/src/base.scss +261 -261
  214. package/packages/theme-chalk/src/button-group.scss +176 -176
  215. package/packages/theme-chalk/src/button.scss +24 -24
  216. package/packages/theme-chalk/src/calendar.scss +113 -113
  217. package/packages/theme-chalk/src/card.scss +99 -99
  218. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  219. package/packages/theme-chalk/src/clients.scss +87 -87
  220. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  221. package/packages/theme-chalk/src/data-table.scss +293 -293
  222. package/packages/theme-chalk/src/date-picker.scss +7 -7
  223. package/packages/theme-chalk/src/dialog.scss +77 -77
  224. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  225. package/packages/theme-chalk/src/enterprise.scss +5 -5
  226. package/packages/theme-chalk/src/error-page.scss +18 -18
  227. package/packages/theme-chalk/src/flow-group.scss +110 -110
  228. package/packages/theme-chalk/src/flow-list.scss +39 -39
  229. package/packages/theme-chalk/src/flow.scss +348 -348
  230. package/packages/theme-chalk/src/form.scss +499 -499
  231. package/packages/theme-chalk/src/handle-user.scss +40 -40
  232. package/packages/theme-chalk/src/handler.scss +143 -143
  233. package/packages/theme-chalk/src/icon.scss +1817 -1817
  234. package/packages/theme-chalk/src/icons.scss +99 -99
  235. package/packages/theme-chalk/src/input.scss +9 -9
  236. package/packages/theme-chalk/src/label.scss +24 -24
  237. package/packages/theme-chalk/src/layout.scss +46 -46
  238. package/packages/theme-chalk/src/login.scss +984 -984
  239. package/packages/theme-chalk/src/main.scss +663 -663
  240. package/packages/theme-chalk/src/menu.scss +222 -222
  241. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  242. package/packages/theme-chalk/src/nav.scss +111 -111
  243. package/packages/theme-chalk/src/page.scss +3 -3
  244. package/packages/theme-chalk/src/pagination.scss +29 -29
  245. package/packages/theme-chalk/src/player.scss +9 -9
  246. package/packages/theme-chalk/src/qr-code.scss +17 -17
  247. package/packages/theme-chalk/src/radio-group.scss +9 -9
  248. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  249. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  250. package/packages/theme-chalk/src/select.scss +8 -8
  251. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  252. package/packages/theme-chalk/src/selector.scss +92 -92
  253. package/packages/theme-chalk/src/simplicity.scss +1361 -1355
  254. package/packages/theme-chalk/src/sizer.scss +36 -36
  255. package/packages/theme-chalk/src/steps.scss +88 -88
  256. package/packages/theme-chalk/src/switch.scss +3 -3
  257. package/packages/theme-chalk/src/table-form.scss +1 -1
  258. package/packages/theme-chalk/src/tabs.scss +87 -87
  259. package/packages/theme-chalk/src/tips.scss +7 -7
  260. package/packages/theme-chalk/src/toolbar.scss +179 -179
  261. package/packages/theme-chalk/src/tree-group.scss +72 -72
  262. package/packages/theme-chalk/src/tree.scss +165 -165
  263. package/packages/theme-chalk/src/upload.scss +172 -172
  264. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  265. package/packages/tips/index.js +5 -5
  266. package/packages/tips/src/main.vue +141 -141
  267. package/packages/toolbar/index.js +5 -5
  268. package/packages/toolbar/src/main.vue +430 -430
  269. package/packages/tree/index.js +5 -5
  270. package/packages/tree-group/index.js +5 -5
  271. package/packages/upload/.DS_Store +0 -0
  272. package/packages/upload/index.js +5 -5
  273. package/packages/upload/src/main.vue +1343 -1343
  274. package/packages/upload/src/picture.js +15 -15
  275. package/packages/wujie/index.js +5 -5
  276. package/packages/wujie/src/main.vue +145 -145
  277. package/packages/wxlogin/index.js +5 -5
  278. package/packages/wxlogin/src/main.vue +128 -128
  279. package/src/.DS_Store +0 -0
  280. package/src/config/api.js +308 -308
  281. package/src/config/image.js +2 -2
  282. package/src/index.js +163 -163
  283. package/src/utils/.DS_Store +0 -0
  284. package/src/utils/bus.js +3 -3
  285. package/src/utils/date-util.js +312 -312
  286. package/src/utils/http.js +50 -50
  287. package/src/utils/rules.js +18 -18
  288. package/src/utils/store.js +21 -21
  289. package/src/utils/webSocket.js +107 -107
@@ -1,308 +1,356 @@
1
- <template>
2
- <es-form
3
- ref="form"
4
- :model="model"
5
- :contents="forms"
6
- class="es-user-info"
7
- :autocomplete="false"
8
- @submit="handleFormSubmit"
9
- >
10
- <template slot="other">
11
- <slot></slot>
12
- </template>
13
- </es-form>
14
- </template>
15
- <script>
16
- import { updateUserInfo } from 'eoss-ui/src/config/api.js';
17
- import util from 'eoss-ui/src/utils/util';
18
-
19
- export default {
20
- name: 'UserInfo',
21
- props: {
22
- secret: {
23
- type: Boolean,
24
- default: true
25
- },
26
- contents: Array,
27
- value: {
28
- type: Object,
29
- default() {
30
- return {};
31
- }
32
- }
33
- },
34
- data() {
35
- return {
36
- model: this.value
37
- };
38
- },
39
- computed: {
40
- forms() {
41
- return this.contents
42
- ? this.contents
43
- : [
44
- {
45
- name: 'orgName',
46
- label: '所属机构',
47
- type: 'text',
48
- disabled: true,
49
- col: 6
50
- },
51
- {
52
- name: 'depName',
53
- label: '所属部门',
54
- type: 'text',
55
- disabled: true,
56
- col: 6
57
- },
58
- {
59
- name: 'idCard',
60
- label: '身份证号',
61
- type: 'text',
62
- disabled: true,
63
- col: 6
64
- },
65
- {
66
- name: 'outCode',
67
- label: '工号',
68
- type: 'text',
69
- disabled: true,
70
- col: 6
71
- },
72
- {
73
- name: 'phone',
74
- placeholder: '联系电话',
75
- label: '联系电话',
76
- type: 'text',
77
- col: 6
78
- },
79
- {
80
- name: 'email',
81
- placeholder: '电子邮箱',
82
- label: '电子邮箱',
83
- type: 'text',
84
- rules: {
85
- type: 'email',
86
- message: '请输入正确的邮箱地址',
87
- trigger: 'blur'
88
- },
89
- col: 6
90
- },
91
- {
92
- name: 'officeTel',
93
- placeholder: '座机号',
94
- label: '座机号',
95
- type: 'text',
96
- rules: {
97
- type: 'telephone'
98
- //message: '请输入正确的邮箱地址',
99
- //trigger: 'blur'
100
- },
101
- col: 6
102
- },
103
- {
104
- name: 'oldpassword',
105
- placeholder: '旧密码',
106
- label: '旧密码',
107
- type: 'text',
108
- col: 6,
109
- rules:
110
- this.model.password || this.model.repassword
111
- ? {
112
- required: true,
113
- message: '请输入旧密码'
114
- }
115
- : {},
116
- events: {
117
- change: () => {
118
- if (
119
- !this.model.repassword &&
120
- !this.model.oldpassword &&
121
- !this.model.repassword
122
- ) {
123
- this.$refs.form.clearValidate();
124
- }
125
- }
126
- }
127
- },
128
- {
129
- name: 'password',
130
- placeholder: '新密码',
131
- label: '新密码',
132
- type: 'text',
133
- col: 6,
134
- rules: [
135
- this.model.repassword || this.model.oldpassword
136
- ? {
137
- required: true,
138
- message: '请输入新密码'
139
- }
140
- : {},
141
- {
142
- pattern: this.checkPassword,
143
- message: this.checkPasswordMsg
144
- ? this.checkPasswordMsg
145
- : '密码格式不合法',
146
- trigger: 'blur'
147
- }
148
- ],
149
- events: {
150
- change: () => {
151
- if (
152
- !this.model.repassword &&
153
- !this.model.oldpassword &&
154
- !this.model.repassword
155
- ) {
156
- this.$refs.form.clearValidate();
157
- }
158
- }
159
- }
160
- },
161
- {
162
- name: 'repassword',
163
- placeholder: '确认新密码',
164
- label: '确认新密码',
165
- type: 'text',
166
- col: 6,
167
- rules: [
168
- this.model.password || this.model.oldpassword
169
- ? {
170
- required: true,
171
- message: '请再次输入新密码'
172
- }
173
- : {},
174
- { validator: this.repassword, trigger: 'blur' },
175
- this.checkPassword
176
- ? {
177
- pattern: this.checkPassword,
178
- message: this.checkPasswordMsg
179
- ? this.checkPasswordMsg
180
- : '密码格式不合法',
181
- trigger: 'blur'
182
- }
183
- : {}
184
- ],
185
- events: {
186
- change: () => {
187
- if (
188
- !this.model.repassword &&
189
- !this.model.oldpassword &&
190
- !this.model.repassword
191
- ) {
192
- this.$refs.form.clearValidate();
193
- }
194
- }
195
- }
196
- }
197
- ];
198
- }
199
- },
200
- created() {},
201
- mounted() {},
202
- methods: {
203
- handleFormSubmit() {
204
- let initLogin = util.getStorage('initLogin');
205
- initLogin && (initLogin = JSON.parse(initLogin));
206
- util
207
- .ajax({
208
- url: updateUserInfo,
209
- params: {
210
- email: this.model.email,
211
- officeTel: this.model.officeTel,
212
- phone: this.model.phone,
213
- oldPassword:
214
- this.secret &&
215
- initLogin &&
216
- initLogin.secret &&
217
- this.model.oldpassword
218
- ? util.esmEncrypt({
219
- data: this.model.oldpassword,
220
- key: initLogin.secret
221
- })
222
- : this.model.oldpassword,
223
- password:
224
- this.secret &&
225
- initLogin &&
226
- initLogin.secret &&
227
- this.model.password
228
- ? util.esmEncrypt({
229
- data: this.model.password,
230
- key: initLogin.secret
231
- })
232
- : this.model.password
233
- }
234
- })
235
- .then((res) => {
236
- if (res.rCode === 0) {
237
- if (this.model.oldpassword && this.model.password) {
238
- this.$confirm('密码修改成功,请重新登录!', '提示', {
239
- confirmButtonText: '确定',
240
- cancelButtonText: '取消',
241
- closeOnClickModal: false,
242
- type: 'warning'
243
- })
244
- .then(() => {
245
- const loginPage =
246
- util.getStorage('login') || util.getStorage('loginPage');
247
- try {
248
- if (loginPage) {
249
- let src;
250
- if (!util.startWith(loginPage, ['http', '/'], true)) {
251
- let pathname = util.win.top.location.pathname;
252
- if (pathname !== '/') {
253
- pathname = pathname.split('/');
254
- pathname.splice(pathname.length - 1);
255
- pathname = pathname.join('/');
256
- src = pathname + '/' + loginPage.replace('./', '');
257
- } else {
258
- src = pathname + loginPage.replace('./', '');
259
- }
260
- } else {
261
- src = loginPage;
262
- }
263
- util.win.top.location.href = src;
264
- } else if (
265
- util.win.top.location.href.indexOf('main.html') > -1
266
- ) {
267
- util.win.top.location.href = './login.html';
268
- } else {
269
- const hash = util.win.top.location.hash;
270
- if (hash) {
271
- const len = util.win.top.location.href.indexOf(hash);
272
- util.win.top.location.href =
273
- util.win.location.href.slice(0, len) + '#/login';
274
- } else {
275
- util.win.top.location.href = '/login.html';
276
- }
277
- }
278
- } catch (error) {
279
- util.win.top.postMessage({ type: 1 }, '*');
280
- }
281
- })
282
- .catch((e) => {});
283
- } else {
284
- this.$message({
285
- message: res.msg,
286
- type: 'success',
287
- onClose: () => {
288
- this.$emit('success', this.model);
289
- }
290
- });
291
- }
292
- } else {
293
- let msg = res.msg || '系统错误,请联系管理员!';
294
- this.$message.error(msg);
295
- }
296
- });
297
- },
298
- repassword(rule, value, callback) {
299
- if (this.model.oldpassword && this.model.password && value) {
300
- util.identical({ value: [value, this.model.password], callback });
301
- } else {
302
- callback();
303
- return true;
304
- }
305
- }
306
- }
307
- };
308
- </script>
1
+ <template>
2
+ <es-form
3
+ ref="form"
4
+ class="es-user-info"
5
+ :validate-on-rule-change="false"
6
+ :model="model"
7
+ :contents="forms"
8
+ :autocomplete="false"
9
+ :rules="formRules"
10
+ :events="events"
11
+ @submit="handleFormSubmit"
12
+ >
13
+ <template slot="other">
14
+ <slot></slot>
15
+ </template>
16
+ </es-form>
17
+ </template>
18
+ <script>
19
+ import { updateUserInfo } from 'eoss-ui/src/config/api.js';
20
+ import util from 'eoss-ui/src/utils/util';
21
+
22
+ export default {
23
+ name: 'UserInfo',
24
+ props: {
25
+ secret: {
26
+ type: Boolean,
27
+ default: true
28
+ },
29
+ contents: Array,
30
+ value: {
31
+ type: Object,
32
+ default() {
33
+ return {};
34
+ }
35
+ },
36
+ rules: {
37
+ type: Object,
38
+ default() {
39
+ return {};
40
+ }
41
+ },
42
+ rules: {
43
+ type: Object,
44
+ default() {
45
+ return {};
46
+ }
47
+ }
48
+ },
49
+ data() {
50
+ return {
51
+ model: this.value,
52
+ events: {
53
+ oldpassword: {
54
+ change: () => {
55
+ if (
56
+ !this.model.repassword &&
57
+ !this.model.oldpassword &&
58
+ !this.model.repassword
59
+ ) {
60
+ this.$refs.form.clearValidate();
61
+ }
62
+ }
63
+ },
64
+ password: {
65
+ change: () => {
66
+ if (
67
+ !this.model.repassword &&
68
+ !this.model.oldpassword &&
69
+ !this.model.repassword
70
+ ) {
71
+ this.$refs.form.clearValidate();
72
+ }
73
+ }
74
+ },
75
+ repassword: {
76
+ change: () => {
77
+ if (
78
+ !this.model.repassword &&
79
+ !this.model.oldpassword &&
80
+ !this.model.repassword
81
+ ) {
82
+ this.$refs.form.clearValidate();
83
+ }
84
+ }
85
+ }
86
+ }
87
+ };
88
+ },
89
+ computed: {
90
+ formRules() {
91
+ return {
92
+ idCard: {
93
+ pattern: new RegExp('(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)'),
94
+ message: '身份证号不合法'
95
+ },
96
+ phone: {
97
+ pattern: new RegExp('^[1][3, 4, 5, 6, 7, 8, 9][0-9]{9}$'),
98
+ message: '手机号不合法',
99
+ trigger: 'blur'
100
+ },
101
+ email: {
102
+ type: 'email',
103
+ message: '请输入正确的邮箱地址',
104
+ trigger: 'blur'
105
+ },
106
+ officeTel: {
107
+ pattern: new RegExp(
108
+ '^(?:\\(?0([1-9]\\d{1,2})\\)?[- ]?)?([2-9]\\d{6,7})$'
109
+ ),
110
+ message: '座机号不合法',
111
+ trigger: 'blur'
112
+ },
113
+
114
+ oldpassword:
115
+ this.model.password || this.model.repassword
116
+ ? {
117
+ required: true,
118
+ message: '请输入旧密码'
119
+ }
120
+ : {},
121
+
122
+ password: [
123
+ this.model.repassword || this.model.oldpassword
124
+ ? {
125
+ required: true,
126
+ message: '请输入新密码'
127
+ }
128
+ : {},
129
+ ,
130
+ {
131
+ pattern: this.checkPassword,
132
+ message: this.checkPasswordMsg
133
+ ? this.checkPasswordMsg
134
+ : '密码格式不合法',
135
+ trigger: 'blur'
136
+ }
137
+ ],
138
+ repassword: [
139
+ this.model.password || this.model.oldpassword
140
+ ? {
141
+ required: true,
142
+ message: '请再次输入新密码'
143
+ }
144
+ : {},
145
+ { validator: this.repassword, trigger: 'blur' },
146
+ this.checkPassword
147
+ ? {
148
+ pattern: this.checkPassword,
149
+ message: this.checkPasswordMsg
150
+ ? this.checkPasswordMsg
151
+ : '密码格式不合法',
152
+ trigger: 'blur'
153
+ }
154
+ : {}
155
+ ],
156
+ ...this.rules
157
+ };
158
+ },
159
+ forms() {
160
+ return this.contents
161
+ ? this.contents
162
+ : [
163
+ {
164
+ name: 'orgName',
165
+ label: '所属机构',
166
+ type: 'text',
167
+ disabled: true,
168
+ col: 6
169
+ },
170
+ {
171
+ name: 'depName',
172
+ label: '所属部门',
173
+ type: 'text',
174
+ disabled: true,
175
+ col: 6
176
+ },
177
+ {
178
+ name: 'idCard',
179
+ label: '身份证号',
180
+ type: 'text',
181
+ disabled: true,
182
+ col: 6
183
+ },
184
+ {
185
+ name: 'outCode',
186
+ label: '工号',
187
+ type: 'text',
188
+ disabled: true,
189
+ col: 6
190
+ },
191
+ {
192
+ name: 'phone',
193
+ placeholder: '联系电话',
194
+ label: '联系电话',
195
+ type: 'text',
196
+ col: 6
197
+ },
198
+ {
199
+ name: 'email',
200
+ placeholder: '电子邮箱',
201
+ label: '电子邮箱',
202
+ type: 'text',
203
+ col: 6
204
+ },
205
+ {
206
+ name: 'officeTel',
207
+ placeholder: '座机号',
208
+ label: '座机号',
209
+ type: 'text',
210
+ col: 6
211
+ },
212
+ {
213
+ name: 'oldpassword',
214
+ placeholder: '旧密码',
215
+ label: '旧密码',
216
+ type: 'text',
217
+ col: 6
218
+ },
219
+ {
220
+ name: 'password',
221
+ placeholder: '新密码',
222
+ label: '新密码',
223
+ type: 'text',
224
+ col: 6
225
+ },
226
+ {
227
+ name: 'repassword',
228
+ placeholder: '确认新密码',
229
+ label: '确认新密码',
230
+ type: 'text',
231
+ col: 6
232
+ }
233
+ ];
234
+ },
235
+ formKey() {
236
+ let keys = this.forms
237
+ .filter((item) => {
238
+ return (
239
+ item.disabled !== true &&
240
+ item.readonly !== true &&
241
+ !['oldpassword', 'password', 'repassword'].includes(item.name)
242
+ );
243
+ })
244
+ .map((item) => item.name);
245
+ return keys;
246
+ }
247
+ },
248
+ created() {},
249
+ mounted() {},
250
+ methods: {
251
+ handleFormSubmit() {
252
+ let initLogin = util.getStorage('initLogin');
253
+ initLogin && (initLogin = JSON.parse(initLogin));
254
+ let { oldpassword, password } = this.model;
255
+ let data = {
256
+ ...Object.fromEntries(
257
+ Object.entries(this.model).filter(([key]) =>
258
+ this.formKey.includes(key)
259
+ )
260
+ )
261
+ };
262
+ util
263
+ .ajax({
264
+ url: updateUserInfo,
265
+ params: {
266
+ ...data,
267
+ oldPassword:
268
+ this.secret && initLogin && initLogin.secret && oldpassword
269
+ ? util.esmEncrypt({
270
+ data: oldpassword,
271
+ key: initLogin.secret
272
+ })
273
+ : oldpassword,
274
+ password:
275
+ this.secret && initLogin && initLogin.secret && password
276
+ ? util.esmEncrypt({
277
+ data: password,
278
+ key: initLogin.secret
279
+ })
280
+ : password
281
+ }
282
+ })
283
+ .then((res) => {
284
+ if (res.rCode === 0) {
285
+ if (oldpassword && password) {
286
+ this.$confirm('密码修改成功,请重新登录!', '提示', {
287
+ confirmButtonText: '确定',
288
+ cancelButtonText: '取消',
289
+ closeOnClickModal: false,
290
+ type: 'warning'
291
+ })
292
+ .then(() => {
293
+ const loginPage =
294
+ util.getStorage('login') || util.getStorage('loginPage');
295
+ try {
296
+ if (loginPage) {
297
+ let src;
298
+ if (!util.startWith(loginPage, ['http', '/'], true)) {
299
+ let pathname = util.win.top.location.pathname;
300
+ if (pathname !== '/') {
301
+ pathname = pathname.split('/');
302
+ pathname.splice(pathname.length - 1);
303
+ pathname = pathname.join('/');
304
+ src = pathname + '/' + loginPage.replace('./', '');
305
+ } else {
306
+ src = pathname + loginPage.replace('./', '');
307
+ }
308
+ } else {
309
+ src = loginPage;
310
+ }
311
+ util.win.top.location.href = src;
312
+ } else if (
313
+ util.win.top.location.href.indexOf('main.html') > -1
314
+ ) {
315
+ util.win.top.location.href = './login.html';
316
+ } else {
317
+ const hash = util.win.top.location.hash;
318
+ if (hash) {
319
+ const len = util.win.top.location.href.indexOf(hash);
320
+ util.win.top.location.href =
321
+ util.win.location.href.slice(0, len) + '#/login';
322
+ } else {
323
+ util.win.top.location.href = '/login.html';
324
+ }
325
+ }
326
+ } catch (error) {
327
+ util.win.top.postMessage({ type: 1 }, '*');
328
+ }
329
+ })
330
+ .catch((e) => {});
331
+ } else {
332
+ this.$message({
333
+ message: res.msg,
334
+ type: 'success',
335
+ onClose: () => {
336
+ this.$emit('success', this.model);
337
+ }
338
+ });
339
+ }
340
+ } else {
341
+ let msg = res.msg || '系统错误,请联系管理员!';
342
+ this.$message.error(msg);
343
+ }
344
+ });
345
+ },
346
+ repassword(rule, value, callback) {
347
+ if (this.model.oldpassword && this.model.password && value) {
348
+ util.identical({ value: [value, this.model.password], callback });
349
+ } else {
350
+ callback();
351
+ return true;
352
+ }
353
+ }
354
+ }
355
+ };
356
+ </script>