eoss-ui 0.7.18 → 0.7.20

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