eoss-ui 0.6.48 → 0.6.49

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