eoss-ui 0.6.44 → 0.6.45

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