eoss-ui 0.6.54 → 0.6.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 (258) hide show
  1. package/lib/checkbox-group.js +3 -3
  2. package/lib/data-table.js +6 -6
  3. package/lib/eoss-ui.common.js +801 -695
  4. package/lib/flow-list.js +81 -81
  5. package/lib/flow.js +280 -280
  6. package/lib/form.js +4 -4
  7. package/lib/index.js +1 -1
  8. package/lib/input.js +1 -1
  9. package/lib/login.js +3 -3
  10. package/lib/main.js +280 -215
  11. package/lib/menu.js +46 -10
  12. package/lib/qr-code.js +13 -13
  13. package/lib/radio-group.js +3 -3
  14. package/lib/select-ganged.js +1 -1
  15. package/lib/select.js +3 -1
  16. package/lib/selector-panel.js +3 -3
  17. package/lib/steps.js +3 -3
  18. package/lib/theme-chalk/index.css +1 -1
  19. package/lib/theme-chalk/main.css +1 -1
  20. package/lib/theme-chalk/simplicity.css +1 -1
  21. package/lib/tips.js +3 -3
  22. package/lib/tree.js +3 -3
  23. package/lib/upload.js +20 -17
  24. package/package.json +159 -159
  25. package/packages/.DS_Store +0 -0
  26. package/packages/button/index.js +5 -5
  27. package/packages/button/src/main.vue +418 -418
  28. package/packages/button-group/index.js +5 -5
  29. package/packages/button-group/src/main.vue +298 -298
  30. package/packages/calendar/index.js +5 -5
  31. package/packages/card/index.js +5 -5
  32. package/packages/card/src/main.vue +156 -156
  33. package/packages/cascader/index.js +5 -5
  34. package/packages/cascader/src/main.vue +168 -168
  35. package/packages/checkbox-group/index.js +5 -5
  36. package/packages/checkbox-group/src/main.vue +333 -333
  37. package/packages/clients/index.js +5 -5
  38. package/packages/clients/src/main.vue +144 -144
  39. package/packages/data-table/.DS_Store +0 -0
  40. package/packages/data-table/index.js +5 -5
  41. package/packages/data-table/src/children.vue +39 -39
  42. package/packages/data-table/src/column.vue +989 -989
  43. package/packages/data-table/src/main.vue +1822 -1822
  44. package/packages/data-table/src/sizer.vue +195 -195
  45. package/packages/data-table-form/.DS_Store +0 -0
  46. package/packages/data-table-form/index.js +5 -5
  47. package/packages/data-table-form/src/checkbox.vue +101 -101
  48. package/packages/data-table-form/src/colgroup.vue +17 -17
  49. package/packages/data-table-form/src/main.vue +181 -181
  50. package/packages/data-table-form/src/radio.vue +65 -65
  51. package/packages/data-table-form/src/table.vue +233 -233
  52. package/packages/data-table-form/src/tbody.vue +336 -336
  53. package/packages/data-table-form/src/thead.vue +68 -68
  54. package/packages/date-picker/index.js +5 -5
  55. package/packages/date-picker/src/main.vue +236 -236
  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/.DS_Store +0 -0
  61. package/packages/error-page/index.js +5 -5
  62. package/packages/error-page/src/main.vue +44 -44
  63. package/packages/flow/.DS_Store +0 -0
  64. package/packages/flow/index.js +5 -5
  65. package/packages/flow/src/component/CommonOpinions.vue +345 -345
  66. package/packages/flow/src/component/CustomPreset.vue +322 -322
  67. package/packages/flow/src/component/FileList.vue +99 -99
  68. package/packages/flow/src/component/Preset.vue +255 -255
  69. package/packages/flow/src/component/SendMsg.vue +229 -229
  70. package/packages/flow/src/component/TimeLimit.vue +190 -190
  71. package/packages/flow/src/component/taskUnionExamine.vue +611 -611
  72. package/packages/flow/src/form.vue +121 -121
  73. package/packages/flow/src/freeStartFlow.vue +2843 -2843
  74. package/packages/flow/src/main.vue +3131 -3131
  75. package/packages/flow/src/processForm.vue +1031 -1031
  76. package/packages/flow/src/processReject.vue +293 -293
  77. package/packages/flow/src/reset.vue +900 -900
  78. package/packages/flow/src/startTaskRead.vue +641 -641
  79. package/packages/flow/src/supervise.vue +138 -138
  80. package/packages/flow/src/table.vue +58 -58
  81. package/packages/flow-group/.DS_Store +0 -0
  82. package/packages/flow-group/index.js +5 -5
  83. package/packages/flow-group/src/main.vue +688 -688
  84. package/packages/flow-list/index.js +5 -5
  85. package/packages/flow-list/src/main.vue +1437 -1437
  86. package/packages/form/.DS_Store +0 -0
  87. package/packages/form/index.js +5 -5
  88. package/packages/form/src/main.vue +3583 -3583
  89. package/packages/form/src/table.vue +1426 -1426
  90. package/packages/handle-user/index.js +5 -5
  91. package/packages/handle-user/src/main.vue +138 -138
  92. package/packages/handler/.DS_Store +0 -0
  93. package/packages/handler/index.js +5 -5
  94. package/packages/handler/src/main.vue +493 -493
  95. package/packages/icon/index.js +5 -5
  96. package/packages/icon/src/main.vue +101 -101
  97. package/packages/icons/index.js +5 -5
  98. package/packages/icons/src/main.vue +81 -81
  99. package/packages/input/index.js +5 -5
  100. package/packages/input/src/main.vue +356 -356
  101. package/packages/input-number/index.js +5 -5
  102. package/packages/input-number/src/main.vue +106 -106
  103. package/packages/label/index.js +5 -5
  104. package/packages/label/src/main.vue +457 -457
  105. package/packages/layout/index.js +5 -5
  106. package/packages/layout/src/item.vue +152 -152
  107. package/packages/layout/src/main.vue +31 -31
  108. package/packages/login/.DS_Store +0 -0
  109. package/packages/login/index.js +5 -5
  110. package/packages/login/src/main.vue +1935 -1935
  111. package/packages/login/src/resetPassword.vue +562 -562
  112. package/packages/main/.DS_Store +0 -0
  113. package/packages/main/index.js +5 -5
  114. package/packages/main/src/.DS_Store +0 -0
  115. package/packages/main/src/default/message.vue +249 -249
  116. package/packages/main/src/default/notice.vue +157 -157
  117. package/packages/main/src/default/userinfo.vue +503 -503
  118. package/packages/main/src/public/online.vue +89 -89
  119. package/packages/main/src/public/search.vue +462 -466
  120. package/packages/main/src/public/settings.vue +221 -221
  121. package/packages/main/src/simplicity/apps.vue +388 -388
  122. package/packages/main/src/simplicity/avatar.vue +82 -82
  123. package/packages/main/src/simplicity/handler.vue +259 -259
  124. package/packages/main/src/simplicity/index.vue +2076 -2064
  125. package/packages/main/src/simplicity/lists.vue +84 -84
  126. package/packages/main/src/simplicity/menu-list.vue +135 -128
  127. package/packages/main/src/simplicity/message.vue +259 -259
  128. package/packages/main/src/simplicity/notice.vue +190 -190
  129. package/packages/main/src/simplicity/router-page.vue +45 -45
  130. package/packages/main/src/simplicity/sub-menu.vue +263 -241
  131. package/packages/main/src/simplicity/user.vue +257 -257
  132. package/packages/main/src/simplicity/userinfo.vue +312 -312
  133. package/packages/menu/index.js +5 -5
  134. package/packages/menu/src/main.vue +580 -536
  135. package/packages/nav/index.js +5 -5
  136. package/packages/nav/src/main.vue +351 -351
  137. package/packages/notify/index.js +5 -5
  138. package/packages/notify/src/main.vue +538 -538
  139. package/packages/page/index.js +5 -5
  140. package/packages/page/src/main.vue +167 -167
  141. package/packages/pagination/index.js +5 -5
  142. package/packages/pagination/src/main.vue +96 -96
  143. package/packages/player/index.js +5 -5
  144. package/packages/player/src/main.vue +194 -194
  145. package/packages/qr-code/index.js +5 -5
  146. package/packages/qr-code/src/main.vue +170 -170
  147. package/packages/radio-group/index.js +6 -6
  148. package/packages/radio-group/src/main.vue +319 -319
  149. package/packages/retrial-auth/.DS_Store +0 -0
  150. package/packages/retrial-auth/index.js +5 -5
  151. package/packages/retrial-auth/src/main.vue +280 -280
  152. package/packages/select/.DS_Store +0 -0
  153. package/packages/select/index.js +5 -5
  154. package/packages/select/src/main.vue +778 -776
  155. package/packages/select-ganged/index.js +5 -5
  156. package/packages/select-ganged/src/main.vue +724 -724
  157. package/packages/selector/.DS_Store +0 -0
  158. package/packages/selector/index.js +5 -5
  159. package/packages/selector/src/main.vue +687 -687
  160. package/packages/selector-panel/.DS_Store +0 -0
  161. package/packages/selector-panel/index.js +5 -5
  162. package/packages/selector-panel/src/main.vue +1027 -1027
  163. package/packages/selector-panel/src/selection.vue +177 -177
  164. package/packages/selector-panel/src/tree.vue +129 -129
  165. package/packages/sizer/.DS_Store +0 -0
  166. package/packages/sizer/index.js +5 -5
  167. package/packages/sizer/src/main.vue +254 -254
  168. package/packages/steps/index.js +5 -5
  169. package/packages/steps/src/main.vue +181 -181
  170. package/packages/switch/index.js +5 -5
  171. package/packages/switch/src/main.vue +154 -154
  172. package/packages/table-form/index.js +5 -5
  173. package/packages/tabs/.DS_Store +0 -0
  174. package/packages/tabs/index.js +5 -5
  175. package/packages/tabs/src/main.vue +788 -788
  176. package/packages/tabs-panel/index.js +5 -5
  177. package/packages/tabs-panel/src/main.vue +29 -29
  178. package/packages/theme-chalk/lib/index.css +1 -1
  179. package/packages/theme-chalk/lib/main.css +1 -1
  180. package/packages/theme-chalk/lib/simplicity.css +1 -1
  181. package/packages/theme-chalk/src/.DS_Store +0 -0
  182. package/packages/theme-chalk/src/base.scss +260 -260
  183. package/packages/theme-chalk/src/button-group.scss +175 -175
  184. package/packages/theme-chalk/src/button.scss +24 -24
  185. package/packages/theme-chalk/src/calendar.scss +113 -113
  186. package/packages/theme-chalk/src/card.scss +99 -99
  187. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  188. package/packages/theme-chalk/src/clients.scss +87 -87
  189. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  190. package/packages/theme-chalk/src/data-table.scss +293 -293
  191. package/packages/theme-chalk/src/date-picker.scss +7 -7
  192. package/packages/theme-chalk/src/dialog.scss +77 -77
  193. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  194. package/packages/theme-chalk/src/enterprise.scss +5 -5
  195. package/packages/theme-chalk/src/error-page.scss +18 -18
  196. package/packages/theme-chalk/src/flow-group.scss +110 -110
  197. package/packages/theme-chalk/src/flow-list.scss +36 -36
  198. package/packages/theme-chalk/src/flow.scss +336 -336
  199. package/packages/theme-chalk/src/form.scss +496 -496
  200. package/packages/theme-chalk/src/handle-user.scss +40 -40
  201. package/packages/theme-chalk/src/handler.scss +143 -143
  202. package/packages/theme-chalk/src/icon.scss +1789 -1789
  203. package/packages/theme-chalk/src/icons.scss +99 -99
  204. package/packages/theme-chalk/src/input.scss +9 -9
  205. package/packages/theme-chalk/src/label.scss +24 -24
  206. package/packages/theme-chalk/src/layout.scss +46 -46
  207. package/packages/theme-chalk/src/login.scss +969 -969
  208. package/packages/theme-chalk/src/main.scss +663 -663
  209. package/packages/theme-chalk/src/menu.scss +222 -222
  210. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  211. package/packages/theme-chalk/src/nav.scss +111 -111
  212. package/packages/theme-chalk/src/page.scss +3 -3
  213. package/packages/theme-chalk/src/pagination.scss +29 -29
  214. package/packages/theme-chalk/src/player.scss +9 -9
  215. package/packages/theme-chalk/src/qr-code.scss +17 -17
  216. package/packages/theme-chalk/src/radio-group.scss +9 -9
  217. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  218. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  219. package/packages/theme-chalk/src/select.scss +8 -8
  220. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  221. package/packages/theme-chalk/src/selector.scss +91 -91
  222. package/packages/theme-chalk/src/simplicity.scss +1343 -1265
  223. package/packages/theme-chalk/src/sizer.scss +36 -36
  224. package/packages/theme-chalk/src/steps.scss +88 -88
  225. package/packages/theme-chalk/src/switch.scss +3 -3
  226. package/packages/theme-chalk/src/table-form.scss +1 -1
  227. package/packages/theme-chalk/src/tabs.scss +87 -87
  228. package/packages/theme-chalk/src/tips.scss +7 -7
  229. package/packages/theme-chalk/src/toolbar.scss +179 -179
  230. package/packages/theme-chalk/src/tree-group.scss +72 -72
  231. package/packages/theme-chalk/src/tree.scss +165 -165
  232. package/packages/theme-chalk/src/upload.scss +168 -168
  233. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  234. package/packages/tips/index.js +5 -5
  235. package/packages/tips/src/main.vue +141 -141
  236. package/packages/toolbar/index.js +5 -5
  237. package/packages/toolbar/src/main.vue +430 -430
  238. package/packages/tree/index.js +5 -5
  239. package/packages/tree/src/main.vue +2 -2
  240. package/packages/tree-group/index.js +5 -5
  241. package/packages/upload/.DS_Store +0 -0
  242. package/packages/upload/index.js +5 -5
  243. package/packages/upload/src/main.vue +1347 -1343
  244. package/packages/upload/src/picture.js +15 -15
  245. package/packages/wujie/index.js +5 -5
  246. package/packages/wujie/src/main.vue +145 -145
  247. package/packages/wxlogin/index.js +5 -5
  248. package/packages/wxlogin/src/main.vue +128 -128
  249. package/src/.DS_Store +0 -0
  250. package/src/config/api.js +281 -281
  251. package/src/config/image.js +2 -2
  252. package/src/index.js +160 -160
  253. package/src/utils/bus.js +3 -3
  254. package/src/utils/date-util.js +312 -312
  255. package/src/utils/http.js +50 -50
  256. package/src/utils/rules.js +18 -18
  257. package/src/utils/store.js +21 -21
  258. 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('^(\\d{3,4}-)?\\d{7,8}$'), 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('^(\\d{3,4}-)?\\d{7,8}$'), 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;