eoss-ui 0.8.27 → 0.8.28

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 (260) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/eoss-ui.common.js +937 -930
  3. package/lib/flow-list.js +96 -96
  4. package/lib/flow.js +280 -280
  5. package/lib/index.js +1 -1
  6. package/lib/login.js +11 -4
  7. package/lib/main.js +298 -298
  8. package/lib/qr-code.js +13 -13
  9. package/lib/theme-chalk/index.css +1 -1
  10. package/lib/theme-chalk/login.css +1 -1
  11. package/package.json +162 -162
  12. package/packages/.DS_Store +0 -0
  13. package/packages/button/index.js +5 -5
  14. package/packages/button/src/main.vue +418 -418
  15. package/packages/button-group/index.js +5 -5
  16. package/packages/button-group/src/main.vue +346 -346
  17. package/packages/calendar/index.js +5 -5
  18. package/packages/calogin/.DS_Store +0 -0
  19. package/packages/calogin/index.js +5 -5
  20. package/packages/calogin/src/main.vue +412 -412
  21. package/packages/calogin/src/plugin.js +915 -915
  22. package/packages/card/index.js +5 -5
  23. package/packages/card/src/main.vue +156 -156
  24. package/packages/cascader/index.js +5 -5
  25. package/packages/cascader/src/main.vue +168 -168
  26. package/packages/checkbox-group/index.js +5 -5
  27. package/packages/checkbox-group/src/main.vue +333 -333
  28. package/packages/clients/index.js +5 -5
  29. package/packages/clients/src/main.vue +151 -151
  30. package/packages/data-table/index.js +5 -5
  31. package/packages/data-table/src/children.vue +46 -46
  32. package/packages/data-table/src/main.vue +1876 -1876
  33. package/packages/data-table/src/sizer.vue +195 -195
  34. package/packages/data-table-form/index.js +5 -5
  35. package/packages/data-table-form/src/checkbox.vue +101 -101
  36. package/packages/data-table-form/src/colgroup.vue +17 -17
  37. package/packages/data-table-form/src/main.vue +181 -181
  38. package/packages/data-table-form/src/radio.vue +65 -65
  39. package/packages/data-table-form/src/table.vue +233 -233
  40. package/packages/data-table-form/src/tbody.vue +336 -336
  41. package/packages/data-table-form/src/thead.vue +68 -68
  42. package/packages/date-picker/.DS_Store +0 -0
  43. package/packages/date-picker/index.js +5 -5
  44. package/packages/date-picker/src/.DS_Store +0 -0
  45. package/packages/date-picker/src/main.vue +236 -236
  46. package/packages/dialog/.DS_Store +0 -0
  47. package/packages/dialog/index.js +5 -5
  48. package/packages/enable-drag/index.js +5 -5
  49. package/packages/enterprise/index.js +5 -5
  50. package/packages/enterprise/src/main.vue +66 -66
  51. package/packages/error-page/index.js +5 -5
  52. package/packages/error-page/src/main.vue +44 -44
  53. package/packages/flow/.DS_Store +0 -0
  54. package/packages/flow/index.js +5 -5
  55. package/packages/flow/src/.DS_Store +0 -0
  56. package/packages/flow/src/component/Circulate.vue +420 -420
  57. package/packages/flow/src/component/CommonOpinions.vue +376 -376
  58. package/packages/flow/src/component/CustomPreset.vue +324 -324
  59. package/packages/flow/src/component/FileList.vue +97 -97
  60. package/packages/flow/src/component/FreeCirculation.vue +245 -245
  61. package/packages/flow/src/component/Preset.vue +257 -257
  62. package/packages/flow/src/component/SendMsg.vue +242 -242
  63. package/packages/flow/src/component/SortFlow.vue +110 -110
  64. package/packages/flow/src/component/TimeLimit.vue +190 -190
  65. package/packages/flow/src/component/taskUnionExamine.vue +763 -763
  66. package/packages/flow/src/form.vue +123 -123
  67. package/packages/flow/src/freeStartFlow.vue +2898 -2898
  68. package/packages/flow/src/main.vue +4248 -4248
  69. package/packages/flow/src/processForm.vue +1806 -1806
  70. package/packages/flow/src/processReject.vue +311 -311
  71. package/packages/flow/src/reset.vue +952 -952
  72. package/packages/flow/src/startTaskRead.vue +698 -698
  73. package/packages/flow/src/supervise.vue +162 -162
  74. package/packages/flow/src/table.vue +58 -58
  75. package/packages/flow-group/index.js +5 -5
  76. package/packages/flow-group/src/main.vue +750 -750
  77. package/packages/flow-list/.DS_Store +0 -0
  78. package/packages/flow-list/index.js +5 -5
  79. package/packages/flow-list/src/main.vue +2337 -2337
  80. package/packages/form/.DS_Store +0 -0
  81. package/packages/form/index.js +5 -5
  82. package/packages/form/src/form-tab-item-render.vue +145 -145
  83. package/packages/form/src/table.vue +1512 -1512
  84. package/packages/handle-user/index.js +5 -5
  85. package/packages/handle-user/src/main.vue +137 -137
  86. package/packages/handler/index.js +5 -5
  87. package/packages/handler/src/main.vue +499 -499
  88. package/packages/icon/.DS_Store +0 -0
  89. package/packages/icon/index.js +5 -5
  90. package/packages/icon/src/main.vue +104 -104
  91. package/packages/icons/index.js +5 -5
  92. package/packages/icons/src/main.vue +81 -81
  93. package/packages/input/index.js +5 -5
  94. package/packages/input/src/main.vue +356 -356
  95. package/packages/input-number/index.js +5 -5
  96. package/packages/input-number/src/main.vue +106 -106
  97. package/packages/label/index.js +5 -5
  98. package/packages/label/src/main.vue +457 -457
  99. package/packages/layout/index.js +5 -5
  100. package/packages/layout/src/item.vue +152 -152
  101. package/packages/layout/src/main.vue +31 -31
  102. package/packages/login/.DS_Store +0 -0
  103. package/packages/login/index.js +5 -5
  104. package/packages/login/src/main.vue +2093 -2088
  105. package/packages/login/src/resetPassword.vue +557 -557
  106. package/packages/main/.DS_Store +0 -0
  107. package/packages/main/index.js +5 -5
  108. package/packages/main/src/.DS_Store +0 -0
  109. package/packages/main/src/default/message.vue +249 -249
  110. package/packages/main/src/default/notice.vue +157 -157
  111. package/packages/main/src/default/userinfo.vue +513 -513
  112. package/packages/main/src/public/online.vue +89 -89
  113. package/packages/main/src/public/search.vue +464 -464
  114. package/packages/main/src/public/settings.vue +273 -273
  115. package/packages/main/src/simplicity/apps.vue +388 -388
  116. package/packages/main/src/simplicity/avatar.vue +82 -82
  117. package/packages/main/src/simplicity/handler.vue +158 -158
  118. package/packages/main/src/simplicity/index.vue +2403 -2403
  119. package/packages/main/src/simplicity/lists.vue +84 -84
  120. package/packages/main/src/simplicity/menu-list.vue +135 -135
  121. package/packages/main/src/simplicity/message.vue +293 -293
  122. package/packages/main/src/simplicity/notice.vue +222 -222
  123. package/packages/main/src/simplicity/router-page.vue +45 -45
  124. package/packages/main/src/simplicity/sub-menu.vue +276 -276
  125. package/packages/main/src/simplicity/user.vue +259 -259
  126. package/packages/main/src/simplicity/userinfo.vue +408 -408
  127. package/packages/main/src/simplicityTop/apps.vue +388 -388
  128. package/packages/main/src/simplicityTop/avatar.vue +82 -82
  129. package/packages/main/src/simplicityTop/handler.vue +215 -215
  130. package/packages/main/src/simplicityTop/index.vue +2688 -2688
  131. package/packages/main/src/simplicityTop/lists.vue +84 -84
  132. package/packages/main/src/simplicityTop/menu-list.vue +135 -135
  133. package/packages/main/src/simplicityTop/message.vue +293 -293
  134. package/packages/main/src/simplicityTop/notice.vue +222 -222
  135. package/packages/main/src/simplicityTop/router-page.vue +45 -45
  136. package/packages/main/src/simplicityTop/sub-menu.vue +274 -274
  137. package/packages/main/src/simplicityTop/user.vue +259 -259
  138. package/packages/main/src/simplicityTop/userinfo.vue +408 -408
  139. package/packages/menu/.DS_Store +0 -0
  140. package/packages/menu/index.js +5 -5
  141. package/packages/menu/src/main.vue +597 -597
  142. package/packages/nav/index.js +5 -5
  143. package/packages/nav/src/main.vue +351 -351
  144. package/packages/notify/index.js +5 -5
  145. package/packages/notify/src/main.vue +538 -538
  146. package/packages/page/index.js +5 -5
  147. package/packages/page/src/main.vue +167 -167
  148. package/packages/pagination/index.js +5 -5
  149. package/packages/pagination/src/main.vue +96 -96
  150. package/packages/player/index.js +5 -5
  151. package/packages/player/src/main.vue +194 -194
  152. package/packages/qr-code/index.js +5 -5
  153. package/packages/qr-code/src/main.vue +170 -170
  154. package/packages/radio-group/index.js +6 -6
  155. package/packages/radio-group/src/main.vue +319 -319
  156. package/packages/retrial-auth/index.js +5 -5
  157. package/packages/retrial-auth/src/main.vue +299 -299
  158. package/packages/select/.DS_Store +0 -0
  159. package/packages/select/index.js +5 -5
  160. package/packages/select-ganged/index.js +5 -5
  161. package/packages/select-ganged/src/main.vue +724 -724
  162. package/packages/selector/.DS_Store +0 -0
  163. package/packages/selector/index.js +5 -5
  164. package/packages/selector/src/main.vue +761 -761
  165. package/packages/selector-panel/.DS_Store +0 -0
  166. package/packages/selector-panel/index.js +5 -5
  167. package/packages/selector-panel/src/main.vue +1036 -1036
  168. package/packages/selector-panel/src/selection.vue +174 -174
  169. package/packages/selector-panel/src/tree.vue +129 -129
  170. package/packages/sizer/index.js +5 -5
  171. package/packages/sizer/src/main.vue +257 -257
  172. package/packages/steps/index.js +5 -5
  173. package/packages/steps/src/main.vue +181 -181
  174. package/packages/switch/index.js +5 -5
  175. package/packages/switch/src/main.vue +170 -170
  176. package/packages/table-form/index.js +5 -5
  177. package/packages/tabs/index.js +5 -5
  178. package/packages/tabs/src/main.vue +788 -788
  179. package/packages/tabs-panel/index.js +5 -5
  180. package/packages/tabs-panel/src/main.vue +29 -29
  181. package/packages/theme-chalk/lib/index.css +1 -1
  182. package/packages/theme-chalk/lib/login.css +1 -1
  183. package/packages/theme-chalk/src/.DS_Store +0 -0
  184. package/packages/theme-chalk/src/base.scss +261 -261
  185. package/packages/theme-chalk/src/button-group.scss +176 -176
  186. package/packages/theme-chalk/src/button.scss +24 -24
  187. package/packages/theme-chalk/src/calendar.scss +113 -113
  188. package/packages/theme-chalk/src/card.scss +99 -99
  189. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  190. package/packages/theme-chalk/src/clients.scss +87 -87
  191. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  192. package/packages/theme-chalk/src/data-table.scss +297 -297
  193. package/packages/theme-chalk/src/date-picker.scss +7 -7
  194. package/packages/theme-chalk/src/dialog.scss +77 -77
  195. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  196. package/packages/theme-chalk/src/enterprise.scss +5 -5
  197. package/packages/theme-chalk/src/error-page.scss +18 -18
  198. package/packages/theme-chalk/src/flow-group.scss +110 -110
  199. package/packages/theme-chalk/src/flow-list.scss +55 -55
  200. package/packages/theme-chalk/src/flow.scss +376 -376
  201. package/packages/theme-chalk/src/handle-user.scss +40 -40
  202. package/packages/theme-chalk/src/handler.scss +148 -148
  203. package/packages/theme-chalk/src/icon.scss +3452 -3452
  204. package/packages/theme-chalk/src/icons.scss +99 -99
  205. package/packages/theme-chalk/src/input.scss +9 -9
  206. package/packages/theme-chalk/src/label.scss +24 -24
  207. package/packages/theme-chalk/src/layout.scss +46 -46
  208. package/packages/theme-chalk/src/login.scss +1006 -1006
  209. package/packages/theme-chalk/src/main.scss +664 -664
  210. package/packages/theme-chalk/src/menu.scss +224 -224
  211. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  212. package/packages/theme-chalk/src/nav.scss +111 -111
  213. package/packages/theme-chalk/src/page.scss +3 -3
  214. package/packages/theme-chalk/src/pagination.scss +29 -29
  215. package/packages/theme-chalk/src/player.scss +9 -9
  216. package/packages/theme-chalk/src/qr-code.scss +17 -17
  217. package/packages/theme-chalk/src/radio-group.scss +9 -9
  218. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  219. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  220. package/packages/theme-chalk/src/select.scss +8 -8
  221. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  222. package/packages/theme-chalk/src/selector.scss +114 -114
  223. package/packages/theme-chalk/src/simplicity-top.scss +1845 -1845
  224. package/packages/theme-chalk/src/simplicity.scss +1403 -1403
  225. package/packages/theme-chalk/src/sizer.scss +36 -36
  226. package/packages/theme-chalk/src/steps.scss +88 -88
  227. package/packages/theme-chalk/src/switch.scss +3 -3
  228. package/packages/theme-chalk/src/table-form.scss +1 -1
  229. package/packages/theme-chalk/src/tabs.scss +87 -87
  230. package/packages/theme-chalk/src/tips.scss +7 -7
  231. package/packages/theme-chalk/src/toolbar.scss +179 -179
  232. package/packages/theme-chalk/src/tree-group.scss +72 -72
  233. package/packages/theme-chalk/src/tree.scss +167 -167
  234. package/packages/theme-chalk/src/upload.scss +172 -172
  235. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  236. package/packages/tips/index.js +5 -5
  237. package/packages/tips/src/main.vue +141 -141
  238. package/packages/toolbar/index.js +5 -5
  239. package/packages/toolbar/src/main.vue +430 -430
  240. package/packages/tree/index.js +5 -5
  241. package/packages/tree-group/index.js +5 -5
  242. package/packages/upload/.DS_Store +0 -0
  243. package/packages/upload/index.js +5 -5
  244. package/packages/upload/src/main.vue +1813 -1813
  245. package/packages/upload/src/picture.js +15 -15
  246. package/packages/wujie/index.js +5 -5
  247. package/packages/wujie/src/main.vue +146 -146
  248. package/packages/wxlogin/index.js +5 -5
  249. package/packages/wxlogin/src/main.vue +128 -128
  250. package/src/.DS_Store +0 -0
  251. package/src/config/api.js +356 -356
  252. package/src/config/image.js +2 -2
  253. package/src/index.js +163 -163
  254. package/src/utils/.DS_Store +0 -0
  255. package/src/utils/bus.js +3 -3
  256. package/src/utils/date-util.js +312 -312
  257. package/src/utils/http.js +50 -50
  258. package/src/utils/rules.js +18 -18
  259. package/src/utils/store.js +21 -21
  260. 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;