eoss-ui 0.7.54 → 0.7.55

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 (268) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/eoss-ui.common.js +845 -760
  3. package/lib/flow-list.js +81 -81
  4. package/lib/flow.js +280 -280
  5. package/lib/icons.js +1 -1
  6. package/lib/index.js +1 -1
  7. package/lib/main.js +236 -151
  8. package/lib/qr-code.js +13 -13
  9. package/lib/theme-chalk/base.css +1 -1
  10. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  11. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  12. package/lib/theme-chalk/icon.css +1 -1
  13. package/lib/theme-chalk/index.css +1 -1
  14. package/lib/theme-chalk/main.css +1 -1
  15. package/lib/theme-chalk/menu.css +1 -1
  16. package/lib/theme-chalk/simplicity.css +1 -1
  17. package/lib/theme-chalk/sizer.css +1 -1
  18. package/lib/theme-chalk/upload.css +1 -1
  19. package/package.json +160 -160
  20. package/packages/.DS_Store +0 -0
  21. package/packages/button/index.js +5 -5
  22. package/packages/button/src/main.vue +418 -418
  23. package/packages/button-group/index.js +5 -5
  24. package/packages/button-group/src/main.vue +346 -346
  25. package/packages/calendar/index.js +5 -5
  26. package/packages/calogin/.DS_Store +0 -0
  27. package/packages/calogin/index.js +5 -5
  28. package/packages/calogin/src/main.vue +412 -412
  29. package/packages/calogin/src/plugin.js +915 -915
  30. package/packages/card/index.js +5 -5
  31. package/packages/card/src/main.vue +156 -156
  32. package/packages/cascader/index.js +5 -5
  33. package/packages/cascader/src/main.vue +168 -168
  34. package/packages/checkbox-group/index.js +5 -5
  35. package/packages/checkbox-group/src/main.vue +333 -333
  36. package/packages/clients/index.js +5 -5
  37. package/packages/clients/src/main.vue +151 -151
  38. package/packages/data-table/index.js +5 -5
  39. package/packages/data-table/src/children.vue +39 -39
  40. package/packages/data-table/src/column.vue +992 -992
  41. package/packages/data-table/src/main.vue +1840 -1840
  42. package/packages/data-table/src/sizer.vue +195 -195
  43. package/packages/data-table-form/index.js +5 -5
  44. package/packages/data-table-form/src/checkbox.vue +101 -101
  45. package/packages/data-table-form/src/colgroup.vue +17 -17
  46. package/packages/data-table-form/src/main.vue +181 -181
  47. package/packages/data-table-form/src/radio.vue +65 -65
  48. package/packages/data-table-form/src/table.vue +233 -233
  49. package/packages/data-table-form/src/tbody.vue +336 -336
  50. package/packages/data-table-form/src/thead.vue +68 -68
  51. package/packages/date-picker/.DS_Store +0 -0
  52. package/packages/date-picker/index.js +5 -5
  53. package/packages/date-picker/src/.DS_Store +0 -0
  54. package/packages/date-picker/src/main.vue +236 -236
  55. package/packages/dialog/.DS_Store +0 -0
  56. package/packages/dialog/index.js +5 -5
  57. package/packages/enable-drag/index.js +5 -5
  58. package/packages/enterprise/index.js +5 -5
  59. package/packages/enterprise/src/main.vue +66 -66
  60. package/packages/error-page/index.js +5 -5
  61. package/packages/error-page/src/main.vue +44 -44
  62. package/packages/flow/.DS_Store +0 -0
  63. package/packages/flow/index.js +5 -5
  64. package/packages/flow/src/.DS_Store +0 -0
  65. package/packages/flow/src/component/Circulate.vue +413 -413
  66. package/packages/flow/src/component/CommonOpinions.vue +373 -373
  67. package/packages/flow/src/component/CustomPreset.vue +322 -322
  68. package/packages/flow/src/component/FileList.vue +97 -97
  69. package/packages/flow/src/component/FreeCirculation.vue +241 -241
  70. package/packages/flow/src/component/Preset.vue +255 -255
  71. package/packages/flow/src/component/SendMsg.vue +242 -242
  72. package/packages/flow/src/component/TimeLimit.vue +190 -190
  73. package/packages/flow/src/component/taskUnionExamine.vue +756 -756
  74. package/packages/flow/src/form.vue +121 -121
  75. package/packages/flow/src/freeStartFlow.vue +2846 -2846
  76. package/packages/flow/src/main.vue +3878 -3878
  77. package/packages/flow/src/processForm.vue +1365 -1365
  78. package/packages/flow/src/processReject.vue +309 -309
  79. package/packages/flow/src/reset.vue +942 -942
  80. package/packages/flow/src/startTaskRead.vue +692 -692
  81. package/packages/flow/src/supervise.vue +159 -159
  82. package/packages/flow/src/table.vue +58 -58
  83. package/packages/flow-group/index.js +5 -5
  84. package/packages/flow-group/src/main.vue +717 -717
  85. package/packages/flow-list/.DS_Store +0 -0
  86. package/packages/flow-list/index.js +5 -5
  87. package/packages/flow-list/src/main.vue +1801 -1801
  88. package/packages/form/.DS_Store +0 -0
  89. package/packages/form/index.js +5 -5
  90. package/packages/form/src/main.vue +3901 -3901
  91. package/packages/form/src/table.vue +1512 -1512
  92. package/packages/handle-user/index.js +5 -5
  93. package/packages/handle-user/src/main.vue +137 -137
  94. package/packages/handler/index.js +5 -5
  95. package/packages/handler/src/main.vue +496 -496
  96. package/packages/icon/.DS_Store +0 -0
  97. package/packages/icon/index.js +5 -5
  98. package/packages/icon/src/main.vue +104 -104
  99. package/packages/icons/index.js +5 -5
  100. package/packages/icons/src/icon.json +1 -1
  101. package/packages/icons/src/main.vue +81 -81
  102. package/packages/input/index.js +5 -5
  103. package/packages/input/src/main.vue +356 -356
  104. package/packages/input-number/index.js +5 -5
  105. package/packages/input-number/src/main.vue +106 -106
  106. package/packages/label/index.js +5 -5
  107. package/packages/label/src/main.vue +457 -457
  108. package/packages/layout/index.js +5 -5
  109. package/packages/layout/src/item.vue +152 -152
  110. package/packages/layout/src/main.vue +31 -31
  111. package/packages/login/.DS_Store +0 -0
  112. package/packages/login/index.js +5 -5
  113. package/packages/login/src/main.vue +2082 -2082
  114. package/packages/login/src/resetPassword.vue +557 -557
  115. package/packages/main/.DS_Store +0 -0
  116. package/packages/main/index.js +5 -5
  117. package/packages/main/src/.DS_Store +0 -0
  118. package/packages/main/src/default/message.vue +249 -249
  119. package/packages/main/src/default/notice.vue +157 -157
  120. package/packages/main/src/default/userinfo.vue +503 -503
  121. package/packages/main/src/public/online.vue +89 -89
  122. package/packages/main/src/public/search.vue +464 -464
  123. package/packages/main/src/public/settings.vue +227 -227
  124. package/packages/main/src/simplicity/apps.vue +388 -388
  125. package/packages/main/src/simplicity/avatar.vue +82 -82
  126. package/packages/main/src/simplicity/handler.vue +160 -160
  127. package/packages/main/src/simplicity/index.vue +2307 -2277
  128. package/packages/main/src/simplicity/lists.vue +84 -84
  129. package/packages/main/src/simplicity/menu-list.vue +135 -135
  130. package/packages/main/src/simplicity/message.vue +293 -293
  131. package/packages/main/src/simplicity/notice.vue +222 -222
  132. package/packages/main/src/simplicity/router-page.vue +45 -45
  133. package/packages/main/src/simplicity/sub-menu.vue +274 -274
  134. package/packages/main/src/simplicity/user.vue +259 -259
  135. package/packages/main/src/simplicity/userinfo.vue +401 -401
  136. package/packages/menu/.DS_Store +0 -0
  137. package/packages/menu/index.js +5 -5
  138. package/packages/menu/src/main.vue +595 -595
  139. package/packages/nav/index.js +5 -5
  140. package/packages/nav/src/main.vue +351 -351
  141. package/packages/notify/index.js +5 -5
  142. package/packages/notify/src/main.vue +538 -538
  143. package/packages/page/index.js +5 -5
  144. package/packages/page/src/main.vue +167 -167
  145. package/packages/pagination/index.js +5 -5
  146. package/packages/pagination/src/main.vue +96 -96
  147. package/packages/player/index.js +5 -5
  148. package/packages/player/src/main.vue +194 -194
  149. package/packages/qr-code/index.js +5 -5
  150. package/packages/qr-code/src/main.vue +170 -170
  151. package/packages/radio-group/index.js +6 -6
  152. package/packages/radio-group/src/main.vue +319 -319
  153. package/packages/retrial-auth/index.js +5 -5
  154. package/packages/retrial-auth/src/main.vue +280 -280
  155. package/packages/select/.DS_Store +0 -0
  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/.DS_Store +0 -0
  161. package/packages/selector/index.js +5 -5
  162. package/packages/selector/src/main.vue +761 -761
  163. package/packages/selector-panel/.DS_Store +0 -0
  164. package/packages/selector-panel/index.js +5 -5
  165. package/packages/selector-panel/src/main.vue +1027 -1027
  166. package/packages/selector-panel/src/selection.vue +170 -170
  167. package/packages/selector-panel/src/tree.vue +129 -129
  168. package/packages/sizer/index.js +5 -5
  169. package/packages/sizer/src/main.vue +254 -254
  170. package/packages/steps/index.js +5 -5
  171. package/packages/steps/src/main.vue +181 -181
  172. package/packages/switch/index.js +5 -5
  173. package/packages/switch/src/main.vue +170 -170
  174. package/packages/table-form/index.js +5 -5
  175. package/packages/tabs/index.js +5 -5
  176. package/packages/tabs/src/main.vue +788 -788
  177. package/packages/tabs-panel/index.js +5 -5
  178. package/packages/tabs-panel/src/main.vue +29 -29
  179. package/packages/theme-chalk/lib/base.css +1 -1
  180. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  181. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  182. package/packages/theme-chalk/lib/icon.css +1 -1
  183. package/packages/theme-chalk/lib/index.css +1 -1
  184. package/packages/theme-chalk/lib/main.css +1 -1
  185. package/packages/theme-chalk/lib/menu.css +1 -1
  186. package/packages/theme-chalk/lib/simplicity.css +1 -1
  187. package/packages/theme-chalk/lib/sizer.css +1 -1
  188. package/packages/theme-chalk/lib/upload.css +1 -1
  189. package/packages/theme-chalk/src/.DS_Store +0 -0
  190. package/packages/theme-chalk/src/base.scss +261 -261
  191. package/packages/theme-chalk/src/button-group.scss +176 -176
  192. package/packages/theme-chalk/src/button.scss +24 -24
  193. package/packages/theme-chalk/src/calendar.scss +113 -113
  194. package/packages/theme-chalk/src/card.scss +99 -99
  195. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  196. package/packages/theme-chalk/src/clients.scss +87 -87
  197. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  198. package/packages/theme-chalk/src/data-table.scss +297 -297
  199. package/packages/theme-chalk/src/date-picker.scss +7 -7
  200. package/packages/theme-chalk/src/dialog.scss +77 -77
  201. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  202. package/packages/theme-chalk/src/enterprise.scss +5 -5
  203. package/packages/theme-chalk/src/error-page.scss +18 -18
  204. package/packages/theme-chalk/src/flow-group.scss +110 -110
  205. package/packages/theme-chalk/src/flow-list.scss +39 -39
  206. package/packages/theme-chalk/src/flow.scss +351 -351
  207. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  208. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  209. package/packages/theme-chalk/src/form.scss +501 -501
  210. package/packages/theme-chalk/src/handle-user.scss +40 -40
  211. package/packages/theme-chalk/src/handler.scss +148 -148
  212. package/packages/theme-chalk/src/icon.scss +1608 -1540
  213. package/packages/theme-chalk/src/icons.scss +99 -99
  214. package/packages/theme-chalk/src/input.scss +9 -9
  215. package/packages/theme-chalk/src/label.scss +24 -24
  216. package/packages/theme-chalk/src/layout.scss +46 -46
  217. package/packages/theme-chalk/src/login.scss +1006 -1006
  218. package/packages/theme-chalk/src/main.scss +663 -663
  219. package/packages/theme-chalk/src/menu.scss +224 -224
  220. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  221. package/packages/theme-chalk/src/nav.scss +111 -111
  222. package/packages/theme-chalk/src/page.scss +3 -3
  223. package/packages/theme-chalk/src/pagination.scss +29 -29
  224. package/packages/theme-chalk/src/player.scss +9 -9
  225. package/packages/theme-chalk/src/qr-code.scss +17 -17
  226. package/packages/theme-chalk/src/radio-group.scss +9 -9
  227. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  228. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  229. package/packages/theme-chalk/src/select.scss +8 -8
  230. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  231. package/packages/theme-chalk/src/selector.scss +114 -114
  232. package/packages/theme-chalk/src/simplicity.scss +1404 -1395
  233. package/packages/theme-chalk/src/sizer.scss +36 -36
  234. package/packages/theme-chalk/src/steps.scss +88 -88
  235. package/packages/theme-chalk/src/switch.scss +3 -3
  236. package/packages/theme-chalk/src/table-form.scss +1 -1
  237. package/packages/theme-chalk/src/tabs.scss +87 -87
  238. package/packages/theme-chalk/src/tips.scss +7 -7
  239. package/packages/theme-chalk/src/toolbar.scss +179 -179
  240. package/packages/theme-chalk/src/tree-group.scss +72 -72
  241. package/packages/theme-chalk/src/tree.scss +165 -165
  242. package/packages/theme-chalk/src/upload.scss +172 -172
  243. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  244. package/packages/tips/index.js +5 -5
  245. package/packages/tips/src/main.vue +141 -141
  246. package/packages/toolbar/index.js +5 -5
  247. package/packages/toolbar/src/main.vue +430 -430
  248. package/packages/tree/index.js +5 -5
  249. package/packages/tree-group/index.js +5 -5
  250. package/packages/upload/.DS_Store +0 -0
  251. package/packages/upload/index.js +5 -5
  252. package/packages/upload/src/main.vue +1344 -1344
  253. package/packages/upload/src/picture.js +15 -15
  254. package/packages/wujie/index.js +5 -5
  255. package/packages/wujie/src/main.vue +145 -145
  256. package/packages/wxlogin/index.js +5 -5
  257. package/packages/wxlogin/src/main.vue +128 -128
  258. package/src/.DS_Store +0 -0
  259. package/src/config/api.js +317 -317
  260. package/src/config/image.js +2 -2
  261. package/src/index.js +163 -163
  262. package/src/utils/.DS_Store +0 -0
  263. package/src/utils/bus.js +3 -3
  264. package/src/utils/date-util.js +312 -312
  265. package/src/utils/http.js +50 -50
  266. package/src/utils/rules.js +18 -18
  267. package/src/utils/store.js +21 -21
  268. package/src/utils/webSocket.js +107 -107
package/src/utils/http.js CHANGED
@@ -1,50 +1,50 @@
1
- // 封装请求参数
2
- import util from './util.js';
3
-
4
- // function request({
5
- // method = 'get',
6
- // url,
7
- // data = {},
8
- // params = {},
9
- // headers = {},
10
- // format = true,
11
- // mix = true
12
- // }) {
13
- // if (
14
- // method.toLowerCase() === 'post' &&
15
- // !Object.prototype.hasOwnProperty.call(data, 'userId') &&
16
- // util.getStorage('userId')
17
- // ) {
18
- // data.userId = util.getStorage('userId');
19
- // }
20
- // if (
21
- // (method === 'get' || method === 'GET') &&
22
- // !Object.prototype.hasOwnProperty.call(params, 'userId') &&
23
- // util.getStorage('userId')
24
- // ) {
25
- // params.userId = util.getStorage('userId');
26
- // }
27
- // if (format && (method === 'post' || method === 'POST')) {
28
- // data = qs.stringify(data);
29
- // headers['content-type'] = 'application/x-www-form-urlencoded';
30
- // }
31
- // if (!mix && (method === 'get' || method === 'GET')) {
32
- // data = {};
33
- // }
34
- // if (!mix && (method === 'post' || method === 'POST')) {
35
- // params = {};
36
- // }
37
- // return http({
38
- // method,
39
- // url,
40
- // data,
41
- // params,
42
- // headers
43
- // });
44
- // }
45
-
46
- function request(params) {
47
- return util.ajax({mix: true, ...params});
48
- }
49
-
50
- export default request;
1
+ // 封装请求参数
2
+ import util from './util.js';
3
+
4
+ // function request({
5
+ // method = 'get',
6
+ // url,
7
+ // data = {},
8
+ // params = {},
9
+ // headers = {},
10
+ // format = true,
11
+ // mix = true
12
+ // }) {
13
+ // if (
14
+ // method.toLowerCase() === 'post' &&
15
+ // !Object.prototype.hasOwnProperty.call(data, 'userId') &&
16
+ // util.getStorage('userId')
17
+ // ) {
18
+ // data.userId = util.getStorage('userId');
19
+ // }
20
+ // if (
21
+ // (method === 'get' || method === 'GET') &&
22
+ // !Object.prototype.hasOwnProperty.call(params, 'userId') &&
23
+ // util.getStorage('userId')
24
+ // ) {
25
+ // params.userId = util.getStorage('userId');
26
+ // }
27
+ // if (format && (method === 'post' || method === 'POST')) {
28
+ // data = qs.stringify(data);
29
+ // headers['content-type'] = 'application/x-www-form-urlencoded';
30
+ // }
31
+ // if (!mix && (method === 'get' || method === 'GET')) {
32
+ // data = {};
33
+ // }
34
+ // if (!mix && (method === 'post' || method === 'POST')) {
35
+ // params = {};
36
+ // }
37
+ // return http({
38
+ // method,
39
+ // url,
40
+ // data,
41
+ // params,
42
+ // headers
43
+ // });
44
+ // }
45
+
46
+ function request(params) {
47
+ return util.ajax({mix: true, ...params});
48
+ }
49
+
50
+ export default request;
@@ -1,18 +1,18 @@
1
- // 手机号
2
- const phone = {pattern: new RegExp('^[1][3, 4, 5, 6, 7, 8, 9][0-9]{9}$'), message: '手机号不合法'};
3
- // 身份证
4
- const idCard = {pattern: new RegExp('(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)'), message: '身份证号不合法'};
5
- // 座机号
6
- const telephone = {pattern: new RegExp('^(?:\\(?0([1-9]\\d{1,2})\\)?[- ]?)?([2-9]\\d{6,7})$'), message: '座机号不合法'};
7
- // IP
8
- const ip = {pattern: new RegExp('^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$'), message: 'IP地址不合法'};
9
- // 银行卡号
10
- const bankCard = {pattern: new RegExp('^([1-9]{1})(\\d{14}|\\d{18})$'), message: '银行卡号不合法'};
11
-
12
- export default {
13
- phone,
14
- idCard,
15
- telephone,
16
- ip,
17
- bankCard
18
- };
1
+ // 手机号
2
+ const phone = {pattern: new RegExp('^[1][3, 4, 5, 6, 7, 8, 9][0-9]{9}$'), message: '手机号不合法'};
3
+ // 身份证
4
+ const idCard = {pattern: new RegExp('(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)'), message: '身份证号不合法'};
5
+ // 座机号
6
+ const telephone = {pattern: new RegExp('^(?:\\(?0([1-9]\\d{1,2})\\)?[- ]?)?([2-9]\\d{6,7})$'), message: '座机号不合法'};
7
+ // IP
8
+ const ip = {pattern: new RegExp('^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$'), message: 'IP地址不合法'};
9
+ // 银行卡号
10
+ const bankCard = {pattern: new RegExp('^([1-9]{1})(\\d{14}|\\d{18})$'), message: '银行卡号不合法'};
11
+
12
+ export default {
13
+ phone,
14
+ idCard,
15
+ telephone,
16
+ ip,
17
+ bankCard
18
+ };
@@ -1,21 +1,21 @@
1
- let store = {
2
- state: {},
3
- set(name, value) {
4
- this.state[name] = value;
5
- },
6
- get(name) {
7
- return this.state[name];
8
- },
9
- clear(name) {
10
- this.state[name] = null;
11
- },
12
- remove(name) {
13
- if (name) {
14
- delete this.state[name];
15
- } else {
16
- this.state = {};
17
- }
18
- }
19
- };
20
- window.__store = store;
21
- export default store;
1
+ let store = {
2
+ state: {},
3
+ set(name, value) {
4
+ this.state[name] = value;
5
+ },
6
+ get(name) {
7
+ return this.state[name];
8
+ },
9
+ clear(name) {
10
+ this.state[name] = null;
11
+ },
12
+ remove(name) {
13
+ if (name) {
14
+ delete this.state[name];
15
+ } else {
16
+ this.state = {};
17
+ }
18
+ }
19
+ };
20
+ window.__store = store;
21
+ export default store;
@@ -1,107 +1,107 @@
1
- import SockJS from 'sockjs-client';
2
- import Stomp from 'stompjs';
3
- class WebSocket {
4
- // 构造函数
5
- constructor() {
6
- this.host = sessionStorage.getItem('wshost') || '';
7
- this.tryTimes = 1; // 重连次数
8
- this.callback = null; // 回调函数
9
- this.client = null; // stomp对象
10
- this.reconTimeout = null; // 重连延时器
11
- this.debug = true; // 调试
12
- this.interval = 20; // 重连间隔时间
13
- this.vm = null;
14
- this.nextDate = 0;
15
- this.connects = 1;
16
- this.recon = false;
17
- this.sendTimeout = null;
18
- this.socket = null;
19
- this.subscription = null;
20
- }
21
-
22
- /** socket连接 */
23
- connect() {
24
- if (!this.client) {
25
- // 连接SockJS
26
- this.socket = new SockJS(this.host + this.url, {timeout: 60000});
27
- this.client = Stomp.over(this.socket);
28
- }
29
-
30
- // 日志不打印
31
- if (!this.debug) {
32
- this.client.debug = () => {};
33
- }
34
-
35
- // 向服务器发起websocket连接
36
- this.client.connect({}, () => {
37
- this.recon = true;
38
- // tryTimes定义重置
39
- this.connects = 1;
40
- // 订阅消息
41
- this.subscribe();
42
- }, (error) => {
43
- this.unsubscribe();
44
- this.client = null;
45
- let diffSecond = parseInt((new Date() - this.nextDate) / 1000, 10);
46
- if (this.connects > 5 && diffSecond < this.interval) {
47
- this.error && this.error(error);
48
- } else {
49
- this.reconTimeout = setTimeout(() => {
50
- this.connect();
51
- this.connects++;
52
- }, 5000);
53
- }
54
- });
55
- }// 清除订阅
56
- unsubscribe() {
57
- if (this.subscription) {
58
- this.subscription.unsubscribe();
59
- this.subscription = null;
60
- }
61
- }
62
- /** 订阅服务端 */
63
- subscribe() {
64
- // 订阅服务端提供的某个topic
65
- this.subscription = this.client.subscribe(this.take, (response) => {
66
- if (response && (this.callback || this.success)) {
67
- let callback = this.callback || this.success;
68
- callback(JSON.parse(response.body));
69
- }
70
- });
71
- }
72
-
73
- /** 赋值、初始化socket */
74
- init(option, vm) {
75
- for (let i in option) {
76
- this[i] = option[i];
77
- }
78
- this.vm = vm;
79
- // 初始化连接
80
- this.connect();
81
- }
82
-
83
- /** 发送消息 */
84
- send(data) {
85
- if (this.recon) {
86
- clearTimeout(this.sendTimeout);
87
- this.client.send(this.take, {}, typeof data === 'string' ? data : JSON.stringify(data));
88
- } else {
89
- this.sendTimeout = setTimeout(() => {
90
- this.send(data);
91
- }, 1000);
92
- }
93
- }
94
-
95
- /** 销毁 */
96
- destroy() {
97
- // 断开连接,清除定时器
98
- this.unsubscribe();
99
- if (this.client) {
100
- this.client.disconnect();
101
- };
102
- this.reconTimeout && clearTimeout(this.reconTimeout);
103
- this.sendTimeout && clearTimeout(this.sendTimeout);
104
- }
105
- }
106
-
107
- export default WebSocket;
1
+ import SockJS from 'sockjs-client';
2
+ import Stomp from 'stompjs';
3
+ class WebSocket {
4
+ // 构造函数
5
+ constructor() {
6
+ this.host = sessionStorage.getItem('wshost') || '';
7
+ this.tryTimes = 1; // 重连次数
8
+ this.callback = null; // 回调函数
9
+ this.client = null; // stomp对象
10
+ this.reconTimeout = null; // 重连延时器
11
+ this.debug = true; // 调试
12
+ this.interval = 20; // 重连间隔时间
13
+ this.vm = null;
14
+ this.nextDate = 0;
15
+ this.connects = 1;
16
+ this.recon = false;
17
+ this.sendTimeout = null;
18
+ this.socket = null;
19
+ this.subscription = null;
20
+ }
21
+
22
+ /** socket连接 */
23
+ connect() {
24
+ if (!this.client) {
25
+ // 连接SockJS
26
+ this.socket = new SockJS(this.host + this.url, {timeout: 60000});
27
+ this.client = Stomp.over(this.socket);
28
+ }
29
+
30
+ // 日志不打印
31
+ if (!this.debug) {
32
+ this.client.debug = () => {};
33
+ }
34
+
35
+ // 向服务器发起websocket连接
36
+ this.client.connect({}, () => {
37
+ this.recon = true;
38
+ // tryTimes定义重置
39
+ this.connects = 1;
40
+ // 订阅消息
41
+ this.subscribe();
42
+ }, (error) => {
43
+ this.unsubscribe();
44
+ this.client = null;
45
+ let diffSecond = parseInt((new Date() - this.nextDate) / 1000, 10);
46
+ if (this.connects > 5 && diffSecond < this.interval) {
47
+ this.error && this.error(error);
48
+ } else {
49
+ this.reconTimeout = setTimeout(() => {
50
+ this.connect();
51
+ this.connects++;
52
+ }, 5000);
53
+ }
54
+ });
55
+ }// 清除订阅
56
+ unsubscribe() {
57
+ if (this.subscription) {
58
+ this.subscription.unsubscribe();
59
+ this.subscription = null;
60
+ }
61
+ }
62
+ /** 订阅服务端 */
63
+ subscribe() {
64
+ // 订阅服务端提供的某个topic
65
+ this.subscription = this.client.subscribe(this.take, (response) => {
66
+ if (response && (this.callback || this.success)) {
67
+ let callback = this.callback || this.success;
68
+ callback(JSON.parse(response.body));
69
+ }
70
+ });
71
+ }
72
+
73
+ /** 赋值、初始化socket */
74
+ init(option, vm) {
75
+ for (let i in option) {
76
+ this[i] = option[i];
77
+ }
78
+ this.vm = vm;
79
+ // 初始化连接
80
+ this.connect();
81
+ }
82
+
83
+ /** 发送消息 */
84
+ send(data) {
85
+ if (this.recon) {
86
+ clearTimeout(this.sendTimeout);
87
+ this.client.send(this.take, {}, typeof data === 'string' ? data : JSON.stringify(data));
88
+ } else {
89
+ this.sendTimeout = setTimeout(() => {
90
+ this.send(data);
91
+ }, 1000);
92
+ }
93
+ }
94
+
95
+ /** 销毁 */
96
+ destroy() {
97
+ // 断开连接,清除定时器
98
+ this.unsubscribe();
99
+ if (this.client) {
100
+ this.client.disconnect();
101
+ };
102
+ this.reconTimeout && clearTimeout(this.reconTimeout);
103
+ this.sendTimeout && clearTimeout(this.sendTimeout);
104
+ }
105
+ }
106
+
107
+ export default WebSocket;