cnhis-design-vue 2.1.78 → 2.1.80

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 (598) hide show
  1. package/.prettierrc.js +27 -27
  2. package/CHANGELOG.md +2953 -2911
  3. package/README.md +90 -90
  4. package/commitlint.config.js +1 -1
  5. package/es/affix/index.js +8 -8
  6. package/es/age/index.js +18 -18
  7. package/es/alert/index.js +8 -8
  8. package/es/anchor/index.js +8 -8
  9. package/es/auto-complete/index.js +8 -8
  10. package/es/avatar/index.js +8 -8
  11. package/es/back-top/index.js +8 -8
  12. package/es/badge/index.js +8 -8
  13. package/es/base/index.js +8 -8
  14. package/es/big-table/index.js +358 -338
  15. package/es/big-table/style.css +1 -1
  16. package/es/breadcrumb/index.js +8 -8
  17. package/es/button/index.js +31 -31
  18. package/es/calendar/index.js +8 -8
  19. package/es/captcha/index.js +7 -7
  20. package/es/card/index.js +8 -8
  21. package/es/carousel/index.js +8 -8
  22. package/es/cascader/index.js +8 -8
  23. package/es/checkbox/index.js +17 -17
  24. package/es/col/index.js +8 -8
  25. package/es/collapse/index.js +8 -8
  26. package/es/color-picker/index.js +5 -5
  27. package/es/comment/index.js +8 -8
  28. package/es/config-provider/index.js +8 -8
  29. package/es/date-picker/index.js +30 -30
  30. package/es/descriptions/index.js +8 -8
  31. package/es/divider/index.js +8 -8
  32. package/es/drag-layout/index.js +5 -5
  33. package/es/drawer/index.js +8 -8
  34. package/es/dropdown/index.js +8 -8
  35. package/es/editor/index.js +1 -1
  36. package/es/ellipsis/index.js +1 -1
  37. package/es/empty/index.js +8 -8
  38. package/es/fabric-chart/index.js +45 -45
  39. package/es/form/index.js +8 -8
  40. package/es/form-model/index.js +8 -8
  41. package/es/form-table/index.js +144 -144
  42. package/es/grid/index.js +4 -4
  43. package/es/index/index.js +3657 -2281
  44. package/es/index/style.css +1 -1
  45. package/es/input/index.js +11 -11
  46. package/es/input-number/index.js +8 -8
  47. package/es/keep-cache/index.js +9 -9
  48. package/es/layout/index.js +8 -8
  49. package/es/list/index.js +8 -8
  50. package/es/locale-provider/index.js +8 -8
  51. package/es/map/index.js +13 -13
  52. package/es/mentions/index.js +8 -8
  53. package/es/menu/index.js +8 -8
  54. package/es/message/index.js +8 -8
  55. package/es/multi-chat/index.js +117 -117
  56. package/es/multi-chat-client/index.js +111 -111
  57. package/es/multi-chat-history/index.js +6 -6
  58. package/es/multi-chat-record/index.js +27 -27
  59. package/es/multi-chat-setting/index.js +43 -43
  60. package/es/multi-chat-sip/index.js +1 -1
  61. package/es/notification/index.js +8 -8
  62. package/es/page-header/index.js +8 -8
  63. package/es/pagination/index.js +8 -8
  64. package/es/popconfirm/index.js +8 -8
  65. package/es/popover/index.js +8 -8
  66. package/es/progress/index.js +8 -8
  67. package/es/radio/index.js +17 -17
  68. package/es/rate/index.js +8 -8
  69. package/es/result/index.js +8 -8
  70. package/es/row/index.js +8 -8
  71. package/es/scale-container/index.js +1 -1
  72. package/es/scale-view/index.js +200 -198
  73. package/es/scale-view/style.css +1 -1
  74. package/es/select/index.js +44 -44
  75. package/es/select-label/index.js +75 -73
  76. package/es/select-label/style.css +1 -1
  77. package/es/select-person/index.js +45 -41
  78. package/es/select-person/style.css +1 -1
  79. package/es/shortcut-setter/index.js +10 -10
  80. package/es/skeleton/index.js +8 -8
  81. package/es/slider/index.js +8 -8
  82. package/es/space/index.js +8 -8
  83. package/es/spin/index.js +8 -8
  84. package/es/statistic/index.js +8 -8
  85. package/es/steps/index.js +8 -8
  86. package/es/switch/index.js +8 -8
  87. package/es/table-filter/index.js +2697 -1347
  88. package/es/table-filter/style.css +1 -1
  89. package/es/tabs/index.js +8 -8
  90. package/es/tag/index.js +9 -9
  91. package/es/time-picker/index.js +8 -8
  92. package/es/timeline/index.js +8 -8
  93. package/es/tooltip/index.js +8 -8
  94. package/es/transfer/index.js +8 -8
  95. package/es/tree/index.js +8 -8
  96. package/es/tree-select/index.js +8 -8
  97. package/es/upload/index.js +8 -8
  98. package/es/utils/clickoutside.js +7 -7
  99. package/es/utils/kty.min-1.0.0.js +5 -5
  100. package/es/utils/time-domain.js +16 -16
  101. package/es/utils/utils-map.js +32 -32
  102. package/es/utils/vexutils.js +27 -27
  103. package/es/verification-code/index.js +2 -2
  104. package/lib/cui.common.js +11438 -9918
  105. package/lib/cui.umd.js +11438 -9918
  106. package/lib/cui.umd.min.js +69 -69
  107. package/package.json +110 -110
  108. package/packages/affix/index.js +12 -12
  109. package/packages/affix/src/Affix.jsx +12 -12
  110. package/packages/age/index.js +27 -27
  111. package/packages/age/src/age/index.vue +139 -139
  112. package/packages/age/src/age-com/index.vue +209 -209
  113. package/packages/alert/index.js +12 -12
  114. package/packages/alert/src/Alert.jsx +11 -11
  115. package/packages/anchor/index.js +18 -18
  116. package/packages/anchor/src/Anchor.jsx +11 -11
  117. package/packages/anchor/src/Link.jsx +11 -11
  118. package/packages/auto-complete/index.js +12 -12
  119. package/packages/auto-complete/src/AutoComplete.jsx +12 -12
  120. package/packages/avatar/index.js +12 -12
  121. package/packages/avatar/src/Avatar.jsx +11 -11
  122. package/packages/back-top/index.js +12 -12
  123. package/packages/back-top/src/BackTop.jsx +11 -11
  124. package/packages/badge/index.js +12 -12
  125. package/packages/badge/src/Badge.jsx +11 -11
  126. package/packages/base/index.js +3 -3
  127. package/packages/big-table/index.js +16 -16
  128. package/packages/big-table/src/BigTable.vue +3205 -3193
  129. package/packages/big-table/src/Fieldset.vue +2067 -2067
  130. package/packages/big-table/src/assets/iconfont/iconfont.css +21 -21
  131. package/packages/big-table/src/assets/style/table-base.less +390 -387
  132. package/packages/big-table/src/assets/style/table-global.less +175 -175
  133. package/packages/big-table/src/components/AutoLayoutButton.vue +307 -307
  134. package/packages/big-table/src/components/NoData.vue +81 -81
  135. package/packages/big-table/src/components/TextOverTooltip.vue +120 -120
  136. package/packages/big-table/src/components/edit-form/EditForm.vue +509 -509
  137. package/packages/big-table/src/components/edit-form/edit-component/config-data/index.js +68 -68
  138. package/packages/big-table/src/components/edit-form/edit-component/edit-date-picker/edit-date-picker.vue +60 -60
  139. package/packages/big-table/src/components/edit-form/edit-component/edit-digital/edit-digital.vue +54 -54
  140. package/packages/big-table/src/components/edit-form/edit-component/edit-input/edit-input.vue +39 -39
  141. package/packages/big-table/src/components/edit-form/edit-component/edit-input-password/edit-input-password.vue +79 -79
  142. package/packages/big-table/src/components/edit-form/edit-component/edit-month-picker/edit-month-picker.vue +37 -37
  143. package/packages/big-table/src/components/edit-form/edit-component/edit-search/edit-search.vue +82 -82
  144. package/packages/big-table/src/components/edit-form/edit-component/edit-search-more/edit-search-more.vue +95 -95
  145. package/packages/big-table/src/components/edit-form/edit-component/edit-select/edit-select.vue +40 -40
  146. package/packages/big-table/src/components/edit-form/edit-component/edit-select-multiple/edit-select-multiple.vue +55 -55
  147. package/packages/big-table/src/components/edit-form/edit-component/edit-switch/edit-switch.vue +43 -43
  148. package/packages/big-table/src/components/edit-form/edit-component/edit-textarea/edit-textarea.vue +41 -41
  149. package/packages/big-table/src/components/edit-form/edit-component/edit-time-picker/edit-time-picker.vue +40 -40
  150. package/packages/big-table/src/components/edit-form/edit-component/mixins/bound-date.js +3 -3
  151. package/packages/big-table/src/components/edit-form/edit-component/mixins/dateType.js +217 -217
  152. package/packages/big-table/src/components/edit-form/edit-component/mixins/item-default.js +639 -639
  153. package/packages/big-table/src/components/edit-form/edit-component/mixins/search.js +1247 -1247
  154. package/packages/big-table/src/components/edit-form/edit-component/register-com.js +26 -26
  155. package/packages/big-table/src/components/edit-form/edit-item/form-event.js +80 -80
  156. package/packages/big-table/src/components/edit-form/edit-item/global-props.js +33 -33
  157. package/packages/big-table/src/components/edit-form/edit-item/index.js +4 -4
  158. package/packages/big-table/src/components/edit-form/edit-item/render-methods.js +28 -28
  159. package/packages/big-table/src/components/edit-form/edit-item/validate-rules.js +463 -463
  160. package/packages/big-table/src/components/edit-form/edit-mixins/form-commom.js +673 -673
  161. package/packages/big-table/src/components/edit-form/edit-mixins/index.js +3 -3
  162. package/packages/big-table/src/components/edit-form/edit-utils/index.js +112 -112
  163. package/packages/big-table/src/components/password-com.vue +58 -58
  164. package/packages/big-table/src/components/player-vod/index.vue +57 -57
  165. package/packages/big-table/src/components/player-vod/player.vue +193 -193
  166. package/packages/big-table/src/components/player-vod/video-list.vue +265 -265
  167. package/packages/big-table/src/components/player-vod/video-modal.vue +126 -126
  168. package/packages/big-table/src/utils/CustomPagination.vue +86 -86
  169. package/packages/big-table/src/utils/batchEditing.js +610 -610
  170. package/packages/big-table/src/utils/bigTableProps.js +108 -108
  171. package/packages/big-table/src/utils/eventBroadcast.js +24 -24
  172. package/packages/big-table/src/utils/format.js +557 -557
  173. package/packages/big-table/src/utils/nestTable.js +109 -109
  174. package/packages/big-table/src/utils/tableParse.js +234 -234
  175. package/packages/breadcrumb/index.js +21 -21
  176. package/packages/breadcrumb/src/Breadcrumb.jsx +11 -11
  177. package/packages/breadcrumb/src/BreadcrumbItem.jsx +11 -11
  178. package/packages/breadcrumb/src/BreadcrumbSeparator.jsx +11 -11
  179. package/packages/button/index.js +21 -21
  180. package/packages/button/src/Button.jsx +11 -11
  181. package/packages/button/src/ButtonGroup.jsx +11 -11
  182. package/packages/button/src/ButtonPrint/components/IdentityVerification.vue +181 -181
  183. package/packages/button/src/ButtonPrint/index.vue +766 -766
  184. package/packages/button/src/ButtonPrint/mixin/his-print.js +95 -95
  185. package/packages/calendar/index.js +12 -12
  186. package/packages/calendar/src/Calendar.jsx +11 -11
  187. package/packages/captcha/index.js +9 -9
  188. package/packages/captcha/src/Captcha.vue +164 -164
  189. package/packages/captcha/src/Index.vue +47 -47
  190. package/packages/captcha/src/SlideVerify.vue +285 -285
  191. package/packages/card/index.js +21 -21
  192. package/packages/card/src/Card.jsx +12 -12
  193. package/packages/card/src/CardGrid.js +7 -7
  194. package/packages/card/src/CardMeta.js +7 -7
  195. package/packages/carousel/index.js +12 -12
  196. package/packages/carousel/src/Carousel.jsx +12 -12
  197. package/packages/cascader/index.js +12 -12
  198. package/packages/cascader/src/Cascader.jsx +11 -11
  199. package/packages/checkbox/index.js +30 -30
  200. package/packages/checkbox/src/Checkbox.jsx +11 -11
  201. package/packages/checkbox/src/CheckboxImg/index.vue +141 -141
  202. package/packages/checkbox/src/Group.jsx +11 -11
  203. package/packages/col/index.js +13 -13
  204. package/packages/col/src/Col.jsx +11 -11
  205. package/packages/collapse/index.js +18 -18
  206. package/packages/collapse/src/Collapse.jsx +11 -11
  207. package/packages/collapse/src/Panel.jsx +11 -11
  208. package/packages/color-picker/index.js +10 -10
  209. package/packages/color-picker/src/color-picker.vue +191 -191
  210. package/packages/color-picker/src/style.less +109 -109
  211. package/packages/comment/index.js +12 -12
  212. package/packages/comment/src/Comment.jsx +11 -11
  213. package/packages/config-provider/index.js +12 -12
  214. package/packages/config-provider/src/ConfigProvider.jsx +11 -11
  215. package/packages/date-picker/index.js +26 -26
  216. package/packages/date-picker/src/DatePicker.jsx +12 -12
  217. package/packages/date-picker/src/MonthPicker.jsx +11 -11
  218. package/packages/date-picker/src/RangePicker.jsx +11 -11
  219. package/packages/date-picker/src/WeekPicker.jsx +11 -11
  220. package/packages/date-picker/src/utils/index.js +374 -374
  221. package/packages/descriptions/index.js +18 -18
  222. package/packages/descriptions/src/Descriptions.jsx +11 -11
  223. package/packages/descriptions/src/Item.jsx +11 -11
  224. package/packages/divider/index.js +12 -12
  225. package/packages/divider/src/Divider.jsx +11 -11
  226. package/packages/drag-layout/DragFormLeftItem.vue +173 -173
  227. package/packages/drag-layout/DragFormRightItem.vue +284 -284
  228. package/packages/drag-layout/I18n-mixins.js +10 -10
  229. package/packages/drag-layout/drag-layout.vue +778 -778
  230. package/packages/drag-layout/index.js +12 -12
  231. package/packages/drawer/index.js +12 -12
  232. package/packages/drawer/src/Drawer.jsx +11 -11
  233. package/packages/dropdown/index.js +12 -12
  234. package/packages/dropdown/src/Dropdown.jsx +11 -11
  235. package/packages/editor/index.js +9 -9
  236. package/packages/ellipsis/index.js +8 -8
  237. package/packages/ellipsis/src/Ellipsis.vue +65 -65
  238. package/packages/empty/index.js +12 -12
  239. package/packages/empty/src/Empty.jsx +11 -11
  240. package/packages/fabric-chart/index.js +9 -9
  241. package/packages/fabric-chart/src/FabricGrid.vue +67 -67
  242. package/packages/fabric-chart/src/components/DropPopup.vue +90 -90
  243. package/packages/fabric-chart/src/components/MouseRightClick.vue +168 -168
  244. package/packages/fabric-chart/src/components/TimeScaleValue.vue +125 -125
  245. package/packages/fabric-chart/src/const/defaultVaule.js +60 -60
  246. package/packages/fabric-chart/src/fabric-chart/FabricLines.vue +617 -617
  247. package/packages/fabric-chart/src/fabric-chart/FabricPolylines.vue +1191 -1191
  248. package/packages/fabric-chart/src/fabric-chart/FabricScaleValue.vue +139 -139
  249. package/packages/fabric-chart/src/fabric-chart/FabricTextGroup.vue +651 -651
  250. package/packages/fabric-chart/src/mixins/fabricCommon.js +81 -81
  251. package/packages/fabric-chart/src/mixins/fabricObject.js +193 -193
  252. package/packages/fabric-chart/src/mixins/type.js +5 -5
  253. package/packages/fabric-chart/src/utils/bus.js +2 -2
  254. package/packages/form/index.js +16 -16
  255. package/packages/form/src/Form.jsx +11 -11
  256. package/packages/form/src/Item.jsx +11 -11
  257. package/packages/form-model/index.js +14 -14
  258. package/packages/form-model/src/FormModel.jsx +11 -11
  259. package/packages/form-model/src/Item.jsx +11 -11
  260. package/packages/form-table/index.js +16 -16
  261. package/packages/form-table/src/FormTable.vue +1110 -1110
  262. package/packages/form-table/src/components/table-component/config-data/index.js +80 -80
  263. package/packages/form-table/src/components/table-component/global-props.js +22 -22
  264. package/packages/form-table/src/components/table-component/index.js +8 -8
  265. package/packages/form-table/src/components/table-component/mixins/bound-date.js +455 -455
  266. package/packages/form-table/src/components/table-component/mixins/dateType.js +217 -217
  267. package/packages/form-table/src/components/table-component/mixins/item-default.js +257 -257
  268. package/packages/form-table/src/components/table-component/mixins/search.js +1242 -1242
  269. package/packages/form-table/src/components/table-component/register-com.js +30 -30
  270. package/packages/form-table/src/components/table-component/table-age/table-age.vue +175 -175
  271. package/packages/form-table/src/components/table-component/table-date-picker/table-date-picker.vue +87 -87
  272. package/packages/form-table/src/components/table-component/table-digital/table-digital.vue +93 -93
  273. package/packages/form-table/src/components/table-component/table-input/table-input.vue +81 -81
  274. package/packages/form-table/src/components/table-component/table-input-password/table-input-password.vue +126 -126
  275. package/packages/form-table/src/components/table-component/table-month-picker/table-month-picker.vue +55 -55
  276. package/packages/form-table/src/components/table-component/table-search/table-search.vue +174 -174
  277. package/packages/form-table/src/components/table-component/table-search-more/table-search-more.vue +191 -191
  278. package/packages/form-table/src/components/table-component/table-select/table-select.vue +64 -64
  279. package/packages/form-table/src/components/table-component/table-select-multiple/table-select-multiple.vue +81 -81
  280. package/packages/form-table/src/components/table-component/table-textarea/table-textarea.vue +76 -76
  281. package/packages/form-table/src/components/table-component/table-time-picker/table-time-picker.vue +55 -55
  282. package/packages/form-table/src/components/table-component/table-tree-select/table-tree-select.vue +135 -135
  283. package/packages/form-table/src/components/table-component/text-over-tooltip/TextOverTooltip.vue +97 -97
  284. package/packages/form-table/src/components/table-item/form-event.js +81 -81
  285. package/packages/form-table/src/components/table-item/global-props.js +27 -27
  286. package/packages/form-table/src/components/table-item/index.js +4 -4
  287. package/packages/form-table/src/components/table-item/render-methods.js +28 -28
  288. package/packages/form-table/src/components/table-item/validate-rules.js +520 -520
  289. package/packages/form-table/src/components/table-mixins/form-commom.js +98 -98
  290. package/packages/form-table/src/components/table-mixins/index.js +3 -3
  291. package/packages/form-table/src/components/table-utils/index.js +112 -112
  292. package/packages/form-table/src/disabledDetail.less +46 -46
  293. package/packages/grid/index.js +10 -10
  294. package/packages/grid/src/grid.js +28 -28
  295. package/packages/icon/index.js +10 -10
  296. package/packages/icon/src/icon.js +13 -13
  297. package/packages/index.js +313 -313
  298. package/packages/input/index.js +30 -30
  299. package/packages/input/src/Group.jsx +11 -11
  300. package/packages/input/src/Input.jsx +11 -11
  301. package/packages/input/src/Password.jsx +11 -11
  302. package/packages/input/src/Search.jsx +11 -11
  303. package/packages/input/src/TextArea.jsx +11 -11
  304. package/packages/input/src/input-quick/components/quick-item.vue +284 -284
  305. package/packages/input/src/input-quick/components/quick-popover.vue +596 -596
  306. package/packages/input/src/input-quick/index.vue +137 -137
  307. package/packages/input-number/index.js +12 -12
  308. package/packages/input-number/src/InputNumber.jsx +11 -11
  309. package/packages/keep-cache/KeepCache.js +236 -236
  310. package/packages/keep-cache/index.css +2 -2
  311. package/packages/keep-cache/index.js +8 -8
  312. package/packages/layout/index.js +27 -27
  313. package/packages/layout/src/Content.jsx +11 -11
  314. package/packages/layout/src/Footer.jsx +11 -11
  315. package/packages/layout/src/Header.jsx +11 -11
  316. package/packages/layout/src/Layout.jsx +11 -11
  317. package/packages/layout/src/Sider.jsx +11 -11
  318. package/packages/list/index.js +21 -21
  319. package/packages/list/src/Item.jsx +11 -11
  320. package/packages/list/src/ItemMeta.jsx +11 -11
  321. package/packages/list/src/List.jsx +11 -11
  322. package/packages/locale-provider/index.js +12 -12
  323. package/packages/locale-provider/src/LocaleProvider.jsx +11 -11
  324. package/packages/map/index.js +9 -9
  325. package/packages/map/src/Map.vue +484 -484
  326. package/packages/map/src/popup-map.vue +53 -53
  327. package/packages/mentions/index.js +18 -18
  328. package/packages/mentions/src/Mentions.jsx +11 -11
  329. package/packages/mentions/src/Option.jsx +11 -11
  330. package/packages/menu/index.js +27 -27
  331. package/packages/menu/src/Divider.jsx +11 -11
  332. package/packages/menu/src/Item.jsx +11 -11
  333. package/packages/menu/src/ItemGroup.jsx +11 -11
  334. package/packages/menu/src/Menu.jsx +11 -11
  335. package/packages/menu/src/SubMenu.jsx +11 -11
  336. package/packages/message/index.js +8 -8
  337. package/packages/modal/index.js +10 -10
  338. package/packages/modal/src/Modal.js +7 -7
  339. package/packages/multi-chat/chat/addConference.vue +200 -200
  340. package/packages/multi-chat/chat/addMembers.vue +411 -411
  341. package/packages/multi-chat/chat/advancedFilter.vue +372 -372
  342. package/packages/multi-chat/chat/calling.vue +246 -246
  343. package/packages/multi-chat/chat/chatFooter.vue +1647 -1647
  344. package/packages/multi-chat/chat/chatHistory.vue +605 -605
  345. package/packages/multi-chat/chat/chatMain.vue +1490 -1490
  346. package/packages/multi-chat/chat/client/index.vue +149 -149
  347. package/packages/multi-chat/chat/delay.vue +177 -177
  348. package/packages/multi-chat/chat/evaluate.vue +343 -343
  349. package/packages/multi-chat/chat/messageRecord.vue +324 -324
  350. package/packages/multi-chat/chat/mixins/NoData.js +20 -20
  351. package/packages/multi-chat/chat/mixins/base.js +97 -97
  352. package/packages/multi-chat/chat/mixins/uniRTCAPI.js +80 -80
  353. package/packages/multi-chat/chat/mixins/viewerOptions.js +67 -67
  354. package/packages/multi-chat/chat/quickReply.vue +439 -439
  355. package/packages/multi-chat/chat/robot/index.vue +312 -312
  356. package/packages/multi-chat/chat/scrollList.vue +1259 -1259
  357. package/packages/multi-chat/chat/videoVoiceList.vue +348 -348
  358. package/packages/multi-chat/chat/voice.vue +431 -431
  359. package/packages/multi-chat/components/avatar.vue +113 -113
  360. package/packages/multi-chat/components/chat-tabs-header.vue +251 -251
  361. package/packages/multi-chat/components/classify-tabs.vue +185 -185
  362. package/packages/multi-chat/components/empty.vue +24 -24
  363. package/packages/multi-chat/components/modal-refuse-reason.vue +112 -112
  364. package/packages/multi-chat/components/modal-sip.vue +160 -160
  365. package/packages/multi-chat/components/modal-user-transfer.vue +98 -98
  366. package/packages/multi-chat/components/msg-describe.vue +138 -138
  367. package/packages/multi-chat/components/msg-picture.vue +68 -68
  368. package/packages/multi-chat/components/msg-prescription.vue +205 -205
  369. package/packages/multi-chat/components/read-record.vue +133 -133
  370. package/packages/multi-chat/components/read-status.vue +34 -34
  371. package/packages/multi-chat/components/user-status.vue +198 -198
  372. package/packages/multi-chat/components/vuecmf-dialog.vue +322 -322
  373. package/packages/multi-chat/index.js +7 -7
  374. package/packages/multi-chat/setting/authority/index.vue +156 -156
  375. package/packages/multi-chat/setting/authority/roleSetting.vue +204 -204
  376. package/packages/multi-chat/setting/baseInfo/index.vue +1343 -1343
  377. package/packages/multi-chat/setting/customerService/batchSelect.vue +403 -403
  378. package/packages/multi-chat/setting/customerService/index.vue +273 -273
  379. package/packages/multi-chat/setting/event/edit/condition.vue +128 -128
  380. package/packages/multi-chat/setting/event/edit/index.vue +437 -437
  381. package/packages/multi-chat/setting/event/edit/notice.vue +129 -129
  382. package/packages/multi-chat/setting/event/edit/strategy.vue +98 -98
  383. package/packages/multi-chat/setting/event/index.vue +249 -249
  384. package/packages/multi-chat/setting/index.vue +269 -269
  385. package/packages/multi-chat/setting/page.vue +14 -14
  386. package/packages/multi-chat/setting/sessionList/index.vue +412 -412
  387. package/packages/multi-chat/setting/sessionList/messageRecord.vue +372 -372
  388. package/packages/multi-chat/setting/userConfig/index.vue +124 -124
  389. package/packages/multi-chat/setting/worktime/index.vue +274 -274
  390. package/packages/multi-chat/store/actions.js +452 -452
  391. package/packages/multi-chat/store/getters.js +380 -380
  392. package/packages/multi-chat/store/helper.js +66 -66
  393. package/packages/multi-chat/store/index.js +50 -50
  394. package/packages/multi-chat/store/mutation.js +305 -305
  395. package/packages/multi-chat/store/state.js +120 -120
  396. package/packages/multi-chat/style/emoji.css +315 -315
  397. package/packages/multi-chat/style/message.mixin.less +38 -38
  398. package/packages/multi-chat/utils/chatSock.js +93 -93
  399. package/packages/multi-chat/utils/compressImage.js +115 -115
  400. package/packages/multi-chat/utils/emoji.json +68 -68
  401. package/packages/multi-chat/utils/index.js +259 -259
  402. package/packages/multi-chat/utils/observer-scroll.js +49 -49
  403. package/packages/multi-chat/utils/panelsetting.js +48 -48
  404. package/packages/multi-chat-client/index.js +7 -7
  405. package/packages/multi-chat-history/index.js +7 -7
  406. package/packages/multi-chat-record/index.js +7 -7
  407. package/packages/multi-chat-setting/index.js +7 -7
  408. package/packages/multi-chat-sip/index.js +6 -6
  409. package/packages/notification/index.js +8 -8
  410. package/packages/page-header/index.js +12 -12
  411. package/packages/page-header/src/PageHeader.jsx +11 -11
  412. package/packages/pagination/index.js +12 -12
  413. package/packages/pagination/src/Pagination.jsx +11 -11
  414. package/packages/popconfirm/index.js +12 -12
  415. package/packages/popconfirm/src/Popconfirm.jsx +11 -11
  416. package/packages/popover/index.js +12 -12
  417. package/packages/popover/src/Popover.jsx +11 -11
  418. package/packages/progress/index.js +12 -12
  419. package/packages/progress/src/Progress.jsx +11 -11
  420. package/packages/radio/index.js +33 -33
  421. package/packages/radio/src/Group.jsx +11 -11
  422. package/packages/radio/src/Radio.jsx +11 -11
  423. package/packages/radio/src/RadioButton.jsx +11 -11
  424. package/packages/radio/src/RadioImg/index.vue +124 -124
  425. package/packages/rate/index.js +12 -12
  426. package/packages/rate/src/Rate.jsx +11 -11
  427. package/packages/result/index.js +12 -12
  428. package/packages/result/src/Result.jsx +11 -11
  429. package/packages/row/index.js +12 -12
  430. package/packages/row/src/Row.jsx +11 -11
  431. package/packages/scale-container/index.js +8 -8
  432. package/packages/scale-container/src/ScaleContainer.vue +197 -197
  433. package/packages/scale-view/NoData.vue +81 -81
  434. package/packages/scale-view/answerParse.vue +133 -133
  435. package/packages/scale-view/customList.vue +801 -801
  436. package/packages/scale-view/data.js +80 -80
  437. package/packages/scale-view/evaluateCountdown.vue +155 -155
  438. package/packages/scale-view/evaluatePage.vue +202 -202
  439. package/packages/scale-view/formitem/data.js +3991 -3991
  440. package/packages/scale-view/formitem/index.js +7 -7
  441. package/packages/scale-view/formitem/r-address.vue +245 -245
  442. package/packages/scale-view/formitem/r-choice.vue +746 -746
  443. package/packages/scale-view/formitem/r-input.vue +93 -93
  444. package/packages/scale-view/formitem/r-prompt.vue +52 -52
  445. package/packages/scale-view/formitem/r-sign.vue +218 -218
  446. package/packages/scale-view/formitem/r-time.vue +285 -285
  447. package/packages/scale-view/formitem/r-upload-custom-list.vue +242 -242
  448. package/packages/scale-view/formitem/r-upload.vue +287 -287
  449. package/packages/scale-view/formitem/sign-com.vue +316 -316
  450. package/packages/scale-view/formitem/text-over-tooltip/TextOverTooltip.vue +98 -98
  451. package/packages/scale-view/index.js +17 -17
  452. package/packages/scale-view/mixin/NoData.js +38 -38
  453. package/packages/scale-view/mixin/addressVal.js +156 -156
  454. package/packages/scale-view/mixin/evaluate.js +146 -146
  455. package/packages/scale-view/mixin/index.js +337 -337
  456. package/packages/scale-view/mixin/judgeTypes.js +267 -267
  457. package/packages/scale-view/scaleView.vue +2017 -2017
  458. package/packages/select/index.js +27 -27
  459. package/packages/select/src/CustomSelect/index.vue +130 -130
  460. package/packages/select/src/OptGroup.jsx +11 -11
  461. package/packages/select/src/Option.jsx +11 -11
  462. package/packages/select/src/Select/Select.vue +231 -231
  463. package/packages/select/src/Select/index.js +12 -12
  464. package/packages/select/src/TableSelect/index.vue +514 -514
  465. package/packages/select-label/index.js +14 -14
  466. package/packages/select-label/label-classify.vue +129 -129
  467. package/packages/select-label/labelFormContent.vue +787 -787
  468. package/packages/select-label/select-label.vue +597 -581
  469. package/packages/select-person/index.js +10 -10
  470. package/packages/select-person/search-tree.vue +373 -373
  471. package/packages/select-person/select-person.vue +1703 -1696
  472. package/packages/shortcut-setter/index.js +12 -12
  473. package/packages/shortcut-setter/src/ShortcutSetter.vue +55 -55
  474. package/packages/shortcut-setter/src/ShortcutSetterItem.vue +85 -85
  475. package/packages/shortcut-setter/src/utils/index.js +63 -63
  476. package/packages/skeleton/index.js +12 -12
  477. package/packages/skeleton/src/Skeleton.jsx +11 -11
  478. package/packages/slider/index.js +12 -12
  479. package/packages/slider/src/Slider.jsx +11 -11
  480. package/packages/space/index.js +12 -12
  481. package/packages/space/src/Space.jsx +11 -11
  482. package/packages/spin/index.js +12 -12
  483. package/packages/spin/src/Spin.jsx +11 -11
  484. package/packages/statistic/index.js +18 -18
  485. package/packages/statistic/src/Countdown.jsx +11 -11
  486. package/packages/statistic/src/Statistic.jsx +11 -11
  487. package/packages/steps/index.js +18 -18
  488. package/packages/steps/src/Step.jsx +11 -11
  489. package/packages/steps/src/Steps.jsx +11 -11
  490. package/packages/switch/index.js +12 -12
  491. package/packages/switch/src/Switch.jsx +11 -11
  492. package/packages/table-filter/index.js +27 -27
  493. package/packages/table-filter/src/base-search-com/BaseSearch.vue +2622 -2630
  494. package/packages/table-filter/src/classification/Classification-com.vue +1760 -1760
  495. package/packages/table-filter/src/classification/search-class-name.vue +266 -266
  496. package/packages/table-filter/src/classification/search-professional-model.vue +680 -680
  497. package/packages/table-filter/src/components/TextOverTooltip.vue +120 -107
  498. package/packages/table-filter/src/components/age-com/index.vue +205 -205
  499. package/packages/table-filter/src/components/button-group/ButtonGroup.vue +162 -162
  500. package/packages/table-filter/src/components/button-icon/button-icon.js +33 -33
  501. package/packages/table-filter/src/components/button-icon/getBtnIcon.js +34 -34
  502. package/packages/table-filter/src/components/c-tree-select/tree-select.vue +336 -336
  503. package/packages/table-filter/src/components/checkbox-group/CheckboxGroup.vue +53 -0
  504. package/packages/table-filter/src/components/drop-button/drop-button.vue +224 -224
  505. package/packages/table-filter/src/components/drop-button/head-btn-icon.js +33 -33
  506. package/packages/table-filter/src/components/drop-view/drop-view.vue +89 -89
  507. package/packages/table-filter/src/components/multi-select/multi-select.vue +242 -236
  508. package/packages/table-filter/src/components/out-quick-search/out-quick-search.vue +232 -346
  509. package/packages/table-filter/src/components/range-age/index.vue +171 -172
  510. package/packages/table-filter/src/components/render-widget/components/CheckboxGroup.vue +51 -51
  511. package/packages/table-filter/src/components/render-widget/components/DateRangeQuick.vue +212 -0
  512. package/packages/table-filter/src/components/render-widget/components/NumberRange.vue +145 -0
  513. package/packages/table-filter/src/components/render-widget/components/Select.vue +50 -50
  514. package/packages/table-filter/src/components/render-widget/components/SelectDynamic.vue +304 -0
  515. package/packages/table-filter/src/components/render-widget/components/index.js +7 -7
  516. package/packages/table-filter/src/components/render-widget/enums.js +34 -29
  517. package/packages/table-filter/src/components/render-widget/index.vue +124 -91
  518. package/packages/table-filter/src/components/render-widget/mixins/dynamic-method.js +158 -0
  519. package/packages/table-filter/src/components/render-widget/widgetCfgMaps.js +245 -140
  520. package/packages/table-filter/src/components/search-condition/SearchCondition.vue +1907 -1907
  521. package/packages/table-filter/src/components/search-condition/fieldTypeList.js +169 -169
  522. package/packages/table-filter/src/components/search-filter/SearchFilter.vue +280 -278
  523. package/packages/table-filter/src/components/search-modal/set-classification.vue +336 -336
  524. package/packages/table-filter/src/components/table-modal/TableModal.vue +477 -477
  525. package/packages/table-filter/src/const/dataOptions.js +43 -43
  526. package/packages/table-filter/src/const/index.js +1 -1
  527. package/packages/table-filter/src/index.vue +584 -584
  528. package/packages/table-filter/src/mixins/mixins.js +773 -714
  529. package/packages/table-filter/src/mixins/out-quick-method.js +123 -0
  530. package/packages/table-filter/src/mixins/renderWidget.js +97 -89
  531. package/packages/table-filter/src/mixins/tableSearchCon.js +128 -128
  532. package/packages/table-filter/src/mixins/wordBookutils.js +113 -113
  533. package/packages/table-filter/src/quick-search/QuickSearch.vue +2190 -2167
  534. package/packages/tabs/index.js +18 -18
  535. package/packages/tabs/src/TabPane.jsx +11 -11
  536. package/packages/tabs/src/Tabs.jsx +11 -11
  537. package/packages/tag/index.js +21 -21
  538. package/packages/tag/src/CheckableTag.jsx +11 -11
  539. package/packages/tag/src/Tag.jsx +11 -11
  540. package/packages/tag/src/TagGroup.vue +621 -621
  541. package/packages/time-picker/index.js +12 -12
  542. package/packages/time-picker/src/TimePicker.jsx +11 -11
  543. package/packages/timeline/index.js +14 -14
  544. package/packages/timeline/src/Item.jsx +11 -11
  545. package/packages/timeline/src/Timeline.jsx +11 -11
  546. package/packages/tooltip/index.js +12 -12
  547. package/packages/tooltip/src/Tooltip.jsx +11 -11
  548. package/packages/transfer/index.js +12 -12
  549. package/packages/transfer/src/Transfer.jsx +11 -11
  550. package/packages/tree/index.js +18 -18
  551. package/packages/tree/src/Tree.jsx +11 -11
  552. package/packages/tree/src/TreeNode.jsx +11 -11
  553. package/packages/tree-select/index.js +18 -18
  554. package/packages/tree-select/src/TreeNode.jsx +11 -11
  555. package/packages/tree-select/src/TreeSelect.jsx +11 -11
  556. package/packages/upload/chunk-upload/chunk-upload-new.vue +1001 -1001
  557. package/packages/upload/chunk-upload/vod-chunk-upload.vue +749 -749
  558. package/packages/upload/chunk-upload/vod-upload-modal.vue +100 -100
  559. package/packages/upload/index.js +12 -12
  560. package/packages/upload/src/Upload.jsx +11 -11
  561. package/packages/verification-code/SlideVerify.vue +306 -306
  562. package/packages/verification-code/index.js +17 -17
  563. package/packages/verification-code/verification-code.vue +147 -147
  564. package/src/component/player-vod/index.vue +57 -57
  565. package/src/component/player-vod/player.vue +192 -192
  566. package/src/component/player-vod/video-list.vue +262 -262
  567. package/src/component/player-vod/video-modal.vue +128 -128
  568. package/src/component/select-options/index.vue +430 -430
  569. package/src/component/select-pages/index.vue +95 -95
  570. package/src/component/svg/index.vue +59 -59
  571. package/src/core/create.js +6 -6
  572. package/src/core/event.js +23 -23
  573. package/src/core/table-methods.js +444 -444
  574. package/src/directive/flexibleResize.js +151 -151
  575. package/src/directive/preventReClick.js +12 -12
  576. package/src/directive/scroll.js +230 -230
  577. package/src/global/variable.js +2 -2
  578. package/src/style/normalize.css +424 -424
  579. package/src/style/style.less +49 -49
  580. package/src/utils/UniRTCv2.js +626 -626
  581. package/src/utils/chatFetch.js +61 -61
  582. package/src/utils/clickoutside.js +75 -75
  583. package/src/utils/crypto.js +25 -25
  584. package/src/utils/index.js +81 -81
  585. package/src/utils/kty-sdk.js +582 -582
  586. package/src/utils/kty.min-1.0.0.js +14378 -14378
  587. package/src/utils/sip-device.js +79 -79
  588. package/src/utils/time-domain.js +249 -249
  589. package/src/utils/trtc.js +1 -1
  590. package/src/utils/utils-map.js +485 -485
  591. package/src/utils/vexutils.js +836 -836
  592. package/.idea/cnhis-design-vue.iml +0 -12
  593. package/.idea/codeStyles/Project.xml +0 -57
  594. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  595. package/.idea/git_toolbox_prj.xml +0 -15
  596. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  597. package/.idea/modules.xml +0 -8
  598. package/.idea/vcs.xml +0 -6
@@ -1,627 +1,627 @@
1
- import io from 'socket.io-client';
2
- import fetch, { qs } from './chatFetch';
3
- import vexutils from '../utils/vexutils';
4
-
5
- function UniRTCObject(appId, tokenProvider, vueSelf) {
6
-
7
- if (appId == null || appId == '') {
8
- console.error('参数appId必填');
9
- alert('参数appId必填');
10
- return null;
11
- }
12
-
13
- if (tokenProvider == null || typeof tokenProvider != 'function') {
14
- console.error('参数tokenProvider必填,且是function类型');
15
- // alert('参数tokenProvider必填,且是function类型');
16
- return null;
17
- }
18
-
19
- // *********************私有变量******************//
20
- var _this = this;
21
- var _socket = null;
22
- var _coming = new HashMapObject();
23
- var _outing = new HashMapObject();
24
- var _tokenProvider = tokenProvider;
25
- var _cookieName = 'XKDeviceToken';
26
-
27
- // *********************成员变量******************//
28
- this.appId = appId;
29
- this.appSign = null;
30
- this.deviceToken = null;
31
- this.clientType = '1';
32
- this.client = null;
33
- this.localStream = null;
34
- this.vueSelf = vueSelf;
35
- // ***********************API*********************//
36
-
37
- // 我方接听API
38
- this.acceptCall = function(incoming) {
39
- console.log('我方接听');
40
- incoming.acceptCall();
41
- };
42
-
43
- // 我方拒接API
44
- this.refuseCall = function(incoming) {
45
- console.log('我方拒接');
46
- incoming.refuseCall();
47
- };
48
-
49
- // 我方呼出API
50
- this.startCall = function(targetDeviceToken, message, brand, hostConfig,
51
- guestConfig) {
52
- console.log('我方呼出');
53
- // 校验参数
54
- var valid = true;
55
- if (_this.deviceToken == null || _this.deviceToken == '') {
56
- alert("无法获取本机DeviceToken");
57
- valid = false;
58
- }
59
- if (targetDeviceToken == null || targetDeviceToken == '') {
60
- alert("参数targetDeviceTokenk必填");
61
- valid = false;
62
- }
63
- if (message == null) {
64
- message = '';
65
- }
66
-
67
- if (brand == null || brand == '') {
68
- alert("参数brand必填,可选项:tencent");
69
- valid = false;
70
- }
71
- if (hostConfig == null || hostConfig == '') {
72
- alert("参数hostConfig必填");
73
- valid = false;
74
- }
75
- if (guestConfig == null || guestConfig == '') {
76
- alert("参数guestConfig必填");
77
- valid = false;
78
- }
79
- if (!valid) {
80
- console.warn("终止呼叫,请修改上述错误");
81
- return;
82
- }
83
-
84
- // 开始呼叫
85
- var appId = this.appId;
86
- var source = this.deviceToken;
87
- var target = targetDeviceToken
88
- // var hostConfig = hostConfig;
89
- // var guestConfig = guestConfig;
90
- var timeout = 30000;
91
-
92
- var outing = new OutingCallObject(appId, source, target, brand,
93
- hostConfig, guestConfig, message, timeout);
94
- _outing.put(target, outing);
95
-
96
- outing.startCall();
97
-
98
- this.onCallStarted(outing);
99
-
100
- return outing;
101
- };
102
-
103
- // 我方挂断API
104
- this.stopCall = function(outing) {
105
- console.log('我方挂断' + JSON.stringify(outing));
106
- if (outing == null) {
107
- return;
108
- }
109
- _outing.remove(outing.target);
110
- outing.finishCall();
111
- this.onCallStoped(outing);
112
- };
113
-
114
- // 检查状态
115
- this.checkStatus = function(deviceTokens) {
116
- var msg = {};
117
- msg.appId = this.appId;
118
- msg.deviceArray = [];
119
- for (var i = 0; i < deviceTokens.length; i++) {
120
- var obj = {};
121
- obj.deviceToken = deviceTokens[i];
122
- msg.deviceArray.push(obj);
123
- }
124
- console.log('设备参数', msg);
125
- _socket.emit('onlineStatusQuery', JSON.stringify(msg));
126
- console.log('检查设备状态[' + JSON.stringify(msg) + ']');
127
- }
128
-
129
- // 会议挂断API
130
- this.hangUp = function(targetDeviceToken, brand, message){
131
- var msg = {};
132
- msg.appId = _this.appId;
133
- msg.deviceToken = _this.deviceToken;
134
- msg.targetDeviceToken = targetDeviceToken;
135
- msg.brand = brand;
136
- msg.message = message;
137
- console.log('发送videoHangUp事件');
138
- _socket.emit('videoHangUp', JSON.stringify(msg));
139
- console.log('进行挂断[' + JSON.stringify(msg) + ']');
140
- }
141
-
142
- // *********************回调函数******************//
143
-
144
- // 登录成功callback
145
- this.onLogined = function() {
146
- }
147
-
148
- // 呼入进来callback
149
- this.onCallComing = function(incoming) {
150
- console.log('呼入进来callback', incoming);
151
- };
152
-
153
- // 通话就绪callback
154
- this.onCallReady = function(incoming) {
155
- console.log('通话就绪callback', incoming);
156
- };
157
-
158
- // 开始呼叫callback
159
- this.onCallStarted = function(outing) {
160
- console.log('开始呼叫callback', outing);
161
- };
162
-
163
- // 停止呼叫callback
164
- this.onCallStoped = function(outing) {
165
- console.log('停止呼叫callback', outing);
166
- };
167
-
168
- // 呼出反馈callback
169
- this.onCallReplied = function(outing) {
170
- console.log('呼出反馈callback', outing);
171
- };
172
-
173
- // 呼出被接callback
174
- this.onCallAccepted = function(outing) {
175
- console.log('呼出被接callback', outing);
176
- // let videoData = {
177
- // ...outing.guestConfig.videoData,
178
- // inviteResult: 1
179
- // }
180
- // this.vueSelf.subscribeAcceptedJST(videoData)
181
- };
182
-
183
- // 呼出被拒callback
184
- this.onCallRefused = function(outing) {
185
- console.log('呼出被拒callback', outing);
186
- };
187
-
188
- // 呼出超时callback
189
- this.onCallTimeout = function(outing) {
190
- console.log('呼出超时callback', outing);
191
- };
192
-
193
- // 设备状态检查
194
- this.onStatusChecked = function(stat) {
195
- console.log('设备状态检查', stat);
196
- let index = stat.findIndex(item => item.status == '0')
197
- let outtings =[]
198
- outtings.push(...stat)
199
- let targetInfo = _this.vueSelf.targetInfo
200
- if (index != -1) {
201
- if (_this.vueSelf.callTimer) {
202
- clearInterval(_this.vueSelf.callTimer)
203
- _this.vueSelf.setCallTimer(null)
204
- }
205
- _this.vueSelf.setCallerStatus('在线')
206
- _this.startCall(stat[index].deviceToken, '腾讯视频', 'tencent', {
207
- sdkAppId: Number(_this.vueSelf.sdkInfo.sdkAppId),
208
- userId: _this.vueSelf.isServer ? _this.vueSelf.serviceId : _this.vueSelf.clientId,
209
- userSig: _this.vueSelf.videoData.token,
210
- roomId: Number(_this.vueSelf.roomId),
211
- videoData: _this.vueSelf.videoData
212
- }, {
213
- sdkAppId: Number(_this.vueSelf.sdkInfo.sdkAppId),
214
- userId: targetInfo.username,
215
- userSig: targetInfo.token,
216
- roomId: Number(_this.vueSelf.videoData.roomId),
217
- videoData: _this.vueSelf.videoData
218
- // privateMapKey
219
- })
220
- _this.vueSelf.setOuting( outtings)
221
- } else {
222
- _this.vueSelf.setCallerStatus('离线')
223
- _this.vueSelf.sendVideoCall()
224
- }
225
- }
226
-
227
- // 会议挂断callback
228
- this.onHangup = function() {
229
- console.log('会议挂断callback');
230
- }
231
-
232
- this.reconnect = function() {
233
- _socket = null;
234
- // 一秒钟后重连
235
- setTimeout(function () {
236
- console.log("又一次连接...");
237
- _connect();
238
- console.log("连接成功...");
239
- }, 1000);
240
- }
241
-
242
- // ***********************私有函数(处理消息)*********************//
243
-
244
- // 初始化API
245
- function _initialize() {
246
- _connect();
247
- }
248
-
249
- function _connect() {
250
- // 创建链接
251
- _socket = io.connect('https://video.jsehealth.com:9999'); // 生产环境
252
- // _socket = io.connect('https://t.jsehealth.com:9997'); // 测试环境
253
- // _socket = io.connect('http://127.0.0.1:9090');
254
- // _socket = io.connect("https://dli.xikang.com:9999");
255
- // 注册事件处理函数
256
- _socket.on('connect', function() {
257
- _onDeviceConnected();
258
- _socket.on('registerReturn', _onDeviceRegistered);
259
- _socket.on('deviceLoginReturn', _onDeviceLogined);
260
- _socket.on('videoCallNotification', _onCallComing);
261
- _socket.on('videoCallReturn', _onCallReplied);
262
- _socket.on('videoInfoNotification', _onCallReady);
263
- _socket.on('onlineStatusReturn', _onStatusChecked);
264
- _socket.on('videoHangUp', _onHangUpMeeting);
265
- _socket.on('hangUpReturn', _onHangUpReplied);
266
- });
267
- }
268
-
269
- // 设备注册
270
- function _register() {
271
- var msg = {};
272
- msg.appId = _this.appId;
273
- msg.clientType = _this.clientType;
274
- _socket.emit('registerEvent', JSON.stringify(msg));
275
- console.log('进行设备注册[' + JSON.stringify(msg) + ']');
276
- }
277
-
278
- // 设备登录API
279
- function _login() {
280
- var msg = {};
281
- msg.appId = _this.appId;
282
- msg.clientType = _this.clientType;
283
- msg.deviceToken = _this.deviceToken;
284
- msg.sign = _this.appSign;
285
- _socket.emit('deviceLoginEvent', JSON.stringify(msg));
286
- console.log('进行设备登录[' + JSON.stringify(msg) + ']');
287
- }
288
-
289
- // 设备连接handler
290
- function _onDeviceConnected() {
291
- console.log('设备连接成功');
292
- // 注册
293
- var deviceToken = _getCookie(_cookieName);
294
- console.log('DeviceToken In Cookie : ' + deviceToken);
295
- if (deviceToken != null) {
296
- _this.deviceToken = deviceToken;
297
- // _this.appSign = _tokenProvider();
298
- _tokenProvider().then(res => {
299
- _this.appSign = res;
300
- console.log('appSign=>设备连接handler', res);
301
- _login();
302
- });
303
- } else {
304
- _register();
305
- }
306
- }
307
-
308
- // 设备注册handler
309
- function _onDeviceRegistered(msg) {
310
- var data = JSON.parse(msg);
311
- // 如果注册成功
312
- if (data.code == '0') {
313
- console.log('设备注册成功[' + msg + ']');
314
- // 写入cookie
315
- _setCookie(_cookieName, data.deviceToken, 30);
316
- // 记录deviceToken
317
- _this.deviceToken = data.deviceToken;
318
- // _this.appSign = _tokenProvider();
319
- _tokenProvider().then(res => {
320
- _this.appSign = res;
321
- console.log('appSign=>设备注册handler', res);
322
- _login();
323
- });
324
- } else {
325
- console.error('设备注册失败[' + msg + ']');
326
- alert('设备注册失败\n' + msg);
327
- }
328
- }
329
-
330
- // 设备登录handler
331
- function _onDeviceLogined(msg) {
332
- var data = JSON.parse(msg);
333
- // 如果注册成功
334
- if (data.code == '0') {
335
- console.log('设备登录成功[' + msg + ']');
336
- _this.onLogined();
337
- } else if (data.code == '2007') {
338
- _register();
339
- } else {
340
- console.error('设备登录失败[' + msg + ']');
341
- // alert('设备登录失败\n' + msg);
342
- }
343
- }
344
- const customerConfirmDebounce = vexutils.debounce(customerConfirm, 2000);
345
- // 对方接听/拒绝接听回调
346
- function customerConfirm(vuePage, accept) {
347
- let curScrollParam = vuePage.getRefuseParam();
348
- const videoData = vuePage.videoData;
349
- const params = {
350
- assemblyId: curScrollParam.assemblyId,
351
- orgId: curScrollParam.orgId,
352
- userId: curScrollParam.userId,
353
- sessionId: videoData.sessionId,
354
- recordId: videoData.recordId,
355
- inviteResult: accept ? 1 : 0,
356
- isExpire: ''
357
- };
358
- fetch.post('/chat/access/videoInviteEnter', qs.stringify(params)).then(({ data }) => {
359
- if (data.result === 'SUCCESS') {
360
- vuePage.$message.info(accept ? '接入成功' : '对方拒绝接听');
361
- }
362
- });
363
- }
364
- // 呼出反馈handler
365
- function _onCallReplied(msg) {
366
- console.log('对方反馈[' + msg + ']');
367
- var data = JSON.parse(msg);
368
- var target, outing;
369
-
370
- // 如果对方接听,就向对方发送视频配置
371
- if (data.code == '0') {
372
- // 接听调用接口
373
- customerConfirmDebounce(_this.vueSelf, true)
374
- target = data.deviceToken;
375
- outing = _outing.get(target);
376
- if (outing == null) {
377
- return;
378
- }
379
- outing.finishCall();
380
- var notify = {};
381
- notify.appId = outing.appId;
382
- notify.deviceToken = outing.source;
383
- notify.targetDeviceToken = outing.target;
384
- notify.brand = outing.brand;
385
- notify.rtcInitParam = outing.guestConfig;
386
- _socket.emit('videoInfoNotification', JSON.stringify(notify));
387
- console.log('发送视频配置' + JSON.stringify(notify));
388
- _this.onCallAccepted(outing);
389
- } else if (data.code.substring(0, 1) == '1') {
390
- console.error(msg);
391
- // alert(data.msg);
392
- } else if (data.code === '3001') {
393
- console.log('错误号:'+data.code+'====>错误编码:'+data.msg);
394
- customerConfirmDebounce(_this.vueSelf, false);
395
- target = data.deviceToken;
396
- outing = _outing.get(target);
397
- _this.stopCall(outing);
398
- _this.onCallRefused(outing);
399
- } else {
400
- console.log('错误号:'+data.code+'====>错误编码:'+data.msg);
401
- target = data.deviceToken;
402
- outing = _outing.get(target);
403
- _this.stopCall(outing);
404
- _this.onCallRefused(outing);
405
- }
406
- }
407
-
408
- function _onHangUpReplied(msg) {
409
- console.log('通知挂断后,呼叫中心反馈信息[' + msg + ']');
410
- }
411
-
412
- // 对方呼入handler
413
- function _onCallComing(msg) {
414
- console.log('对方呼入[' + msg + ']');
415
- var data = JSON.parse(msg);
416
- var appId = data.appId;
417
- var source = data.deviceToken;
418
- var target = data.targetDeviceToken;
419
- var brand = data.brand;
420
- var message = data.message;
421
- var incoming = new IncomingCallObject(appId, source, target, brand,
422
- message);
423
- _coming.put(source, incoming);
424
- _this.onCallComing(incoming);
425
- }
426
-
427
- // 视频就绪handler
428
- function _onCallReady(msg) {
429
- console.log('视频就绪[' + msg + ']');
430
- var data = JSON.parse(msg);
431
- var source = data.deviceToken;
432
- var incoming = _coming.get(source);
433
- incoming.config = data.rtcInitParam;
434
- _this.onCallReady(incoming);
435
- }
436
-
437
- // 呼出超时handler
438
- function _onCallTimeout(outing) {
439
- console.log('呼出超时[' + outing.timeout + 'ms]');
440
- _this.onCallTimeout(outing);
441
- }
442
-
443
- // 状态检查handler
444
- function _onStatusChecked(msg) {
445
- console.log('在线状态[' + msg + ']');
446
- var data = JSON.parse(msg);
447
- if (data.code == '0') {
448
- _this.onStatusChecked(JSON.parse(data.deviceArray));
449
- }
450
- }
451
-
452
-
453
- // 状态检查handler
454
- function _onHangUpMeeting(msg) {
455
- console.log('视频完成对方已挂断[' + msg + ']');
456
- _this.onHangup();
457
- }
458
-
459
- // 获取cookie
460
- function _getCookie(cookieName) {
461
- if (document.cookie.length > 0) {
462
- var startIndex = document.cookie.indexOf(cookieName + "=");
463
- if (startIndex != -1) {
464
- startIndex = startIndex + cookieName.length + 1;
465
- var endIndex = document.cookie.indexOf(";", startIndex);
466
- if (endIndex == -1)
467
- endIndex = document.cookie.length;
468
- return unescape(document.cookie.substring(startIndex, endIndex));
469
- }
470
- }
471
- return null;
472
- }
473
-
474
- // 设置cookie
475
- function _setCookie(cookieName, value, expiredays) {
476
- var exdate = new Date();
477
- exdate.setDate(exdate.getDate() + expiredays);
478
- document.cookie = cookieName
479
- + "="
480
- + escape(value)
481
- + ((expiredays == null) ? "" : ";expires="
482
- + exdate.toGMTString());
483
- }
484
-
485
- // ***********************私有函数(内部类)*********************//
486
-
487
- // 视频呼入类
488
- function IncomingCallObject(appId, source, target, brand, message) {
489
-
490
- this.appId = appId;
491
- this.source = source;
492
- this.target = target;
493
- this.brand = brand;
494
- this.message = message;
495
- this.config = null;
496
-
497
- // 我方接听
498
- this.acceptCall = function() {
499
- var msg = {};
500
- msg.deviceToken = this.target;
501
- msg.targetDeviceToken = this.source;
502
- msg.code = '0';
503
- msg.msg = '对方接听';
504
- _socket.emit('videoCallReturn', JSON.stringify(msg));
505
- console.log('我方接听[' + JSON.stringify(msg) + ']');
506
- };
507
-
508
- // 我方拒接
509
- this.refuseCall = function() {
510
- var msg = {};
511
- msg.deviceToken = this.target;
512
- msg.targetDeviceToken = this.source;
513
- msg.code = '3001';
514
- msg.msg = '对方拒接';
515
- _socket.emit('videoCallReturn', JSON.stringify(msg));
516
- console.log('我方拒接[' + JSON.stringify(msg) + ']');
517
- };
518
-
519
- }
520
-
521
- // 视频呼出类
522
- function OutingCallObject(appId, source, target, brand, hostConfig,
523
- guestConfig, message, timeout) {
524
-
525
- this.appId = appId;
526
- this.source = source;
527
- this.target = target;
528
- this.brand = brand;
529
- this.hostConfig = hostConfig;
530
- this.guestConfig = guestConfig;
531
- this.message = message;
532
- this.timeout = timeout;
533
- this.timeoutId;
534
-
535
- // 我方呼叫
536
- this.startCall = function() {
537
- var msg = {};
538
- msg.appId = this.appId;
539
- msg.deviceToken = this.source;
540
- msg.targetDeviceToken = this.target;
541
- msg.brand = this.brand;
542
- msg.message = this.message;
543
- _socket.emit('videoCallNotification', JSON.stringify(msg));
544
- this.timeoutId = setTimeout(_onCallTimeout, this.timeout, this);
545
- console.log('视频呼出[' + JSON.stringify(msg) + ']');
546
- };
547
-
548
- // 呼叫完成
549
- this.finishCall = function() {
550
- if (this.timeoutId != null) {
551
- clearTimeout(this.timeoutId);
552
- }
553
- console.log('呼出完成');
554
- };
555
-
556
- }
557
-
558
- // HashMap
559
- function HashMapObject() {
560
-
561
- var length = 0;
562
- var entries = new Object();
563
-
564
- this.isEmpty = function() {
565
- return length == 0;
566
- };
567
-
568
- this.containsKey = function(key) {
569
- return (key in entries);
570
- };
571
-
572
- this.containsValue = function(value) {
573
- for ( var key in entries) {
574
- if (entries[key] == value) {
575
- return true;
576
- }
577
- }
578
- return false;
579
- };
580
-
581
- this.put = function(key, value) {
582
- if (!this.containsKey(key)) {
583
- length++;
584
- }
585
- entries[key] = value;
586
- };
587
-
588
- this.get = function(key) {
589
- return this.containsKey(key) ? entries[key] : null;
590
- };
591
-
592
- this.remove = function(key) {
593
- if (this.containsKey(key) && (delete entries[key])) {
594
- length--;
595
- }
596
- };
597
-
598
- this.values = function() {
599
- var _values = new Array();
600
- for ( var key in entries) {
601
- _values.push(entries[key]);
602
- }
603
- return _values;
604
- };
605
-
606
- this.keySet = function() {
607
- var _keys = new Array();
608
- for ( var key in entries) {
609
- _keys.push(key);
610
- }
611
- return _keys;
612
- };
613
-
614
- this.size = function() {
615
- return length;
616
- };
617
-
618
- this.clear = function() {
619
- length = 0;
620
- entries = new Object();
621
- };
622
- }
623
-
624
- _initialize();
625
- }
626
-
1
+ import io from 'socket.io-client';
2
+ import fetch, { qs } from './chatFetch';
3
+ import vexutils from '../utils/vexutils';
4
+
5
+ function UniRTCObject(appId, tokenProvider, vueSelf) {
6
+
7
+ if (appId == null || appId == '') {
8
+ console.error('参数appId必填');
9
+ alert('参数appId必填');
10
+ return null;
11
+ }
12
+
13
+ if (tokenProvider == null || typeof tokenProvider != 'function') {
14
+ console.error('参数tokenProvider必填,且是function类型');
15
+ // alert('参数tokenProvider必填,且是function类型');
16
+ return null;
17
+ }
18
+
19
+ // *********************私有变量******************//
20
+ var _this = this;
21
+ var _socket = null;
22
+ var _coming = new HashMapObject();
23
+ var _outing = new HashMapObject();
24
+ var _tokenProvider = tokenProvider;
25
+ var _cookieName = 'XKDeviceToken';
26
+
27
+ // *********************成员变量******************//
28
+ this.appId = appId;
29
+ this.appSign = null;
30
+ this.deviceToken = null;
31
+ this.clientType = '1';
32
+ this.client = null;
33
+ this.localStream = null;
34
+ this.vueSelf = vueSelf;
35
+ // ***********************API*********************//
36
+
37
+ // 我方接听API
38
+ this.acceptCall = function(incoming) {
39
+ console.log('我方接听');
40
+ incoming.acceptCall();
41
+ };
42
+
43
+ // 我方拒接API
44
+ this.refuseCall = function(incoming) {
45
+ console.log('我方拒接');
46
+ incoming.refuseCall();
47
+ };
48
+
49
+ // 我方呼出API
50
+ this.startCall = function(targetDeviceToken, message, brand, hostConfig,
51
+ guestConfig) {
52
+ console.log('我方呼出');
53
+ // 校验参数
54
+ var valid = true;
55
+ if (_this.deviceToken == null || _this.deviceToken == '') {
56
+ alert("无法获取本机DeviceToken");
57
+ valid = false;
58
+ }
59
+ if (targetDeviceToken == null || targetDeviceToken == '') {
60
+ alert("参数targetDeviceTokenk必填");
61
+ valid = false;
62
+ }
63
+ if (message == null) {
64
+ message = '';
65
+ }
66
+
67
+ if (brand == null || brand == '') {
68
+ alert("参数brand必填,可选项:tencent");
69
+ valid = false;
70
+ }
71
+ if (hostConfig == null || hostConfig == '') {
72
+ alert("参数hostConfig必填");
73
+ valid = false;
74
+ }
75
+ if (guestConfig == null || guestConfig == '') {
76
+ alert("参数guestConfig必填");
77
+ valid = false;
78
+ }
79
+ if (!valid) {
80
+ console.warn("终止呼叫,请修改上述错误");
81
+ return;
82
+ }
83
+
84
+ // 开始呼叫
85
+ var appId = this.appId;
86
+ var source = this.deviceToken;
87
+ var target = targetDeviceToken
88
+ // var hostConfig = hostConfig;
89
+ // var guestConfig = guestConfig;
90
+ var timeout = 30000;
91
+
92
+ var outing = new OutingCallObject(appId, source, target, brand,
93
+ hostConfig, guestConfig, message, timeout);
94
+ _outing.put(target, outing);
95
+
96
+ outing.startCall();
97
+
98
+ this.onCallStarted(outing);
99
+
100
+ return outing;
101
+ };
102
+
103
+ // 我方挂断API
104
+ this.stopCall = function(outing) {
105
+ console.log('我方挂断' + JSON.stringify(outing));
106
+ if (outing == null) {
107
+ return;
108
+ }
109
+ _outing.remove(outing.target);
110
+ outing.finishCall();
111
+ this.onCallStoped(outing);
112
+ };
113
+
114
+ // 检查状态
115
+ this.checkStatus = function(deviceTokens) {
116
+ var msg = {};
117
+ msg.appId = this.appId;
118
+ msg.deviceArray = [];
119
+ for (var i = 0; i < deviceTokens.length; i++) {
120
+ var obj = {};
121
+ obj.deviceToken = deviceTokens[i];
122
+ msg.deviceArray.push(obj);
123
+ }
124
+ console.log('设备参数', msg);
125
+ _socket.emit('onlineStatusQuery', JSON.stringify(msg));
126
+ console.log('检查设备状态[' + JSON.stringify(msg) + ']');
127
+ }
128
+
129
+ // 会议挂断API
130
+ this.hangUp = function(targetDeviceToken, brand, message){
131
+ var msg = {};
132
+ msg.appId = _this.appId;
133
+ msg.deviceToken = _this.deviceToken;
134
+ msg.targetDeviceToken = targetDeviceToken;
135
+ msg.brand = brand;
136
+ msg.message = message;
137
+ console.log('发送videoHangUp事件');
138
+ _socket.emit('videoHangUp', JSON.stringify(msg));
139
+ console.log('进行挂断[' + JSON.stringify(msg) + ']');
140
+ }
141
+
142
+ // *********************回调函数******************//
143
+
144
+ // 登录成功callback
145
+ this.onLogined = function() {
146
+ }
147
+
148
+ // 呼入进来callback
149
+ this.onCallComing = function(incoming) {
150
+ console.log('呼入进来callback', incoming);
151
+ };
152
+
153
+ // 通话就绪callback
154
+ this.onCallReady = function(incoming) {
155
+ console.log('通话就绪callback', incoming);
156
+ };
157
+
158
+ // 开始呼叫callback
159
+ this.onCallStarted = function(outing) {
160
+ console.log('开始呼叫callback', outing);
161
+ };
162
+
163
+ // 停止呼叫callback
164
+ this.onCallStoped = function(outing) {
165
+ console.log('停止呼叫callback', outing);
166
+ };
167
+
168
+ // 呼出反馈callback
169
+ this.onCallReplied = function(outing) {
170
+ console.log('呼出反馈callback', outing);
171
+ };
172
+
173
+ // 呼出被接callback
174
+ this.onCallAccepted = function(outing) {
175
+ console.log('呼出被接callback', outing);
176
+ // let videoData = {
177
+ // ...outing.guestConfig.videoData,
178
+ // inviteResult: 1
179
+ // }
180
+ // this.vueSelf.subscribeAcceptedJST(videoData)
181
+ };
182
+
183
+ // 呼出被拒callback
184
+ this.onCallRefused = function(outing) {
185
+ console.log('呼出被拒callback', outing);
186
+ };
187
+
188
+ // 呼出超时callback
189
+ this.onCallTimeout = function(outing) {
190
+ console.log('呼出超时callback', outing);
191
+ };
192
+
193
+ // 设备状态检查
194
+ this.onStatusChecked = function(stat) {
195
+ console.log('设备状态检查', stat);
196
+ let index = stat.findIndex(item => item.status == '0')
197
+ let outtings =[]
198
+ outtings.push(...stat)
199
+ let targetInfo = _this.vueSelf.targetInfo
200
+ if (index != -1) {
201
+ if (_this.vueSelf.callTimer) {
202
+ clearInterval(_this.vueSelf.callTimer)
203
+ _this.vueSelf.setCallTimer(null)
204
+ }
205
+ _this.vueSelf.setCallerStatus('在线')
206
+ _this.startCall(stat[index].deviceToken, '腾讯视频', 'tencent', {
207
+ sdkAppId: Number(_this.vueSelf.sdkInfo.sdkAppId),
208
+ userId: _this.vueSelf.isServer ? _this.vueSelf.serviceId : _this.vueSelf.clientId,
209
+ userSig: _this.vueSelf.videoData.token,
210
+ roomId: Number(_this.vueSelf.roomId),
211
+ videoData: _this.vueSelf.videoData
212
+ }, {
213
+ sdkAppId: Number(_this.vueSelf.sdkInfo.sdkAppId),
214
+ userId: targetInfo.username,
215
+ userSig: targetInfo.token,
216
+ roomId: Number(_this.vueSelf.videoData.roomId),
217
+ videoData: _this.vueSelf.videoData
218
+ // privateMapKey
219
+ })
220
+ _this.vueSelf.setOuting( outtings)
221
+ } else {
222
+ _this.vueSelf.setCallerStatus('离线')
223
+ _this.vueSelf.sendVideoCall()
224
+ }
225
+ }
226
+
227
+ // 会议挂断callback
228
+ this.onHangup = function() {
229
+ console.log('会议挂断callback');
230
+ }
231
+
232
+ this.reconnect = function() {
233
+ _socket = null;
234
+ // 一秒钟后重连
235
+ setTimeout(function () {
236
+ console.log("又一次连接...");
237
+ _connect();
238
+ console.log("连接成功...");
239
+ }, 1000);
240
+ }
241
+
242
+ // ***********************私有函数(处理消息)*********************//
243
+
244
+ // 初始化API
245
+ function _initialize() {
246
+ _connect();
247
+ }
248
+
249
+ function _connect() {
250
+ // 创建链接
251
+ _socket = io.connect('https://video.jsehealth.com:9999'); // 生产环境
252
+ // _socket = io.connect('https://t.jsehealth.com:9997'); // 测试环境
253
+ // _socket = io.connect('http://127.0.0.1:9090');
254
+ // _socket = io.connect("https://dli.xikang.com:9999");
255
+ // 注册事件处理函数
256
+ _socket.on('connect', function() {
257
+ _onDeviceConnected();
258
+ _socket.on('registerReturn', _onDeviceRegistered);
259
+ _socket.on('deviceLoginReturn', _onDeviceLogined);
260
+ _socket.on('videoCallNotification', _onCallComing);
261
+ _socket.on('videoCallReturn', _onCallReplied);
262
+ _socket.on('videoInfoNotification', _onCallReady);
263
+ _socket.on('onlineStatusReturn', _onStatusChecked);
264
+ _socket.on('videoHangUp', _onHangUpMeeting);
265
+ _socket.on('hangUpReturn', _onHangUpReplied);
266
+ });
267
+ }
268
+
269
+ // 设备注册
270
+ function _register() {
271
+ var msg = {};
272
+ msg.appId = _this.appId;
273
+ msg.clientType = _this.clientType;
274
+ _socket.emit('registerEvent', JSON.stringify(msg));
275
+ console.log('进行设备注册[' + JSON.stringify(msg) + ']');
276
+ }
277
+
278
+ // 设备登录API
279
+ function _login() {
280
+ var msg = {};
281
+ msg.appId = _this.appId;
282
+ msg.clientType = _this.clientType;
283
+ msg.deviceToken = _this.deviceToken;
284
+ msg.sign = _this.appSign;
285
+ _socket.emit('deviceLoginEvent', JSON.stringify(msg));
286
+ console.log('进行设备登录[' + JSON.stringify(msg) + ']');
287
+ }
288
+
289
+ // 设备连接handler
290
+ function _onDeviceConnected() {
291
+ console.log('设备连接成功');
292
+ // 注册
293
+ var deviceToken = _getCookie(_cookieName);
294
+ console.log('DeviceToken In Cookie : ' + deviceToken);
295
+ if (deviceToken != null) {
296
+ _this.deviceToken = deviceToken;
297
+ // _this.appSign = _tokenProvider();
298
+ _tokenProvider().then(res => {
299
+ _this.appSign = res;
300
+ console.log('appSign=>设备连接handler', res);
301
+ _login();
302
+ });
303
+ } else {
304
+ _register();
305
+ }
306
+ }
307
+
308
+ // 设备注册handler
309
+ function _onDeviceRegistered(msg) {
310
+ var data = JSON.parse(msg);
311
+ // 如果注册成功
312
+ if (data.code == '0') {
313
+ console.log('设备注册成功[' + msg + ']');
314
+ // 写入cookie
315
+ _setCookie(_cookieName, data.deviceToken, 30);
316
+ // 记录deviceToken
317
+ _this.deviceToken = data.deviceToken;
318
+ // _this.appSign = _tokenProvider();
319
+ _tokenProvider().then(res => {
320
+ _this.appSign = res;
321
+ console.log('appSign=>设备注册handler', res);
322
+ _login();
323
+ });
324
+ } else {
325
+ console.error('设备注册失败[' + msg + ']');
326
+ alert('设备注册失败\n' + msg);
327
+ }
328
+ }
329
+
330
+ // 设备登录handler
331
+ function _onDeviceLogined(msg) {
332
+ var data = JSON.parse(msg);
333
+ // 如果注册成功
334
+ if (data.code == '0') {
335
+ console.log('设备登录成功[' + msg + ']');
336
+ _this.onLogined();
337
+ } else if (data.code == '2007') {
338
+ _register();
339
+ } else {
340
+ console.error('设备登录失败[' + msg + ']');
341
+ // alert('设备登录失败\n' + msg);
342
+ }
343
+ }
344
+ const customerConfirmDebounce = vexutils.debounce(customerConfirm, 2000);
345
+ // 对方接听/拒绝接听回调
346
+ function customerConfirm(vuePage, accept) {
347
+ let curScrollParam = vuePage.getRefuseParam();
348
+ const videoData = vuePage.videoData;
349
+ const params = {
350
+ assemblyId: curScrollParam.assemblyId,
351
+ orgId: curScrollParam.orgId,
352
+ userId: curScrollParam.userId,
353
+ sessionId: videoData.sessionId,
354
+ recordId: videoData.recordId,
355
+ inviteResult: accept ? 1 : 0,
356
+ isExpire: ''
357
+ };
358
+ fetch.post('/chat/access/videoInviteEnter', qs.stringify(params)).then(({ data }) => {
359
+ if (data.result === 'SUCCESS') {
360
+ vuePage.$message.info(accept ? '接入成功' : '对方拒绝接听');
361
+ }
362
+ });
363
+ }
364
+ // 呼出反馈handler
365
+ function _onCallReplied(msg) {
366
+ console.log('对方反馈[' + msg + ']');
367
+ var data = JSON.parse(msg);
368
+ var target, outing;
369
+
370
+ // 如果对方接听,就向对方发送视频配置
371
+ if (data.code == '0') {
372
+ // 接听调用接口
373
+ customerConfirmDebounce(_this.vueSelf, true)
374
+ target = data.deviceToken;
375
+ outing = _outing.get(target);
376
+ if (outing == null) {
377
+ return;
378
+ }
379
+ outing.finishCall();
380
+ var notify = {};
381
+ notify.appId = outing.appId;
382
+ notify.deviceToken = outing.source;
383
+ notify.targetDeviceToken = outing.target;
384
+ notify.brand = outing.brand;
385
+ notify.rtcInitParam = outing.guestConfig;
386
+ _socket.emit('videoInfoNotification', JSON.stringify(notify));
387
+ console.log('发送视频配置' + JSON.stringify(notify));
388
+ _this.onCallAccepted(outing);
389
+ } else if (data.code.substring(0, 1) == '1') {
390
+ console.error(msg);
391
+ // alert(data.msg);
392
+ } else if (data.code === '3001') {
393
+ console.log('错误号:'+data.code+'====>错误编码:'+data.msg);
394
+ customerConfirmDebounce(_this.vueSelf, false);
395
+ target = data.deviceToken;
396
+ outing = _outing.get(target);
397
+ _this.stopCall(outing);
398
+ _this.onCallRefused(outing);
399
+ } else {
400
+ console.log('错误号:'+data.code+'====>错误编码:'+data.msg);
401
+ target = data.deviceToken;
402
+ outing = _outing.get(target);
403
+ _this.stopCall(outing);
404
+ _this.onCallRefused(outing);
405
+ }
406
+ }
407
+
408
+ function _onHangUpReplied(msg) {
409
+ console.log('通知挂断后,呼叫中心反馈信息[' + msg + ']');
410
+ }
411
+
412
+ // 对方呼入handler
413
+ function _onCallComing(msg) {
414
+ console.log('对方呼入[' + msg + ']');
415
+ var data = JSON.parse(msg);
416
+ var appId = data.appId;
417
+ var source = data.deviceToken;
418
+ var target = data.targetDeviceToken;
419
+ var brand = data.brand;
420
+ var message = data.message;
421
+ var incoming = new IncomingCallObject(appId, source, target, brand,
422
+ message);
423
+ _coming.put(source, incoming);
424
+ _this.onCallComing(incoming);
425
+ }
426
+
427
+ // 视频就绪handler
428
+ function _onCallReady(msg) {
429
+ console.log('视频就绪[' + msg + ']');
430
+ var data = JSON.parse(msg);
431
+ var source = data.deviceToken;
432
+ var incoming = _coming.get(source);
433
+ incoming.config = data.rtcInitParam;
434
+ _this.onCallReady(incoming);
435
+ }
436
+
437
+ // 呼出超时handler
438
+ function _onCallTimeout(outing) {
439
+ console.log('呼出超时[' + outing.timeout + 'ms]');
440
+ _this.onCallTimeout(outing);
441
+ }
442
+
443
+ // 状态检查handler
444
+ function _onStatusChecked(msg) {
445
+ console.log('在线状态[' + msg + ']');
446
+ var data = JSON.parse(msg);
447
+ if (data.code == '0') {
448
+ _this.onStatusChecked(JSON.parse(data.deviceArray));
449
+ }
450
+ }
451
+
452
+
453
+ // 状态检查handler
454
+ function _onHangUpMeeting(msg) {
455
+ console.log('视频完成对方已挂断[' + msg + ']');
456
+ _this.onHangup();
457
+ }
458
+
459
+ // 获取cookie
460
+ function _getCookie(cookieName) {
461
+ if (document.cookie.length > 0) {
462
+ var startIndex = document.cookie.indexOf(cookieName + "=");
463
+ if (startIndex != -1) {
464
+ startIndex = startIndex + cookieName.length + 1;
465
+ var endIndex = document.cookie.indexOf(";", startIndex);
466
+ if (endIndex == -1)
467
+ endIndex = document.cookie.length;
468
+ return unescape(document.cookie.substring(startIndex, endIndex));
469
+ }
470
+ }
471
+ return null;
472
+ }
473
+
474
+ // 设置cookie
475
+ function _setCookie(cookieName, value, expiredays) {
476
+ var exdate = new Date();
477
+ exdate.setDate(exdate.getDate() + expiredays);
478
+ document.cookie = cookieName
479
+ + "="
480
+ + escape(value)
481
+ + ((expiredays == null) ? "" : ";expires="
482
+ + exdate.toGMTString());
483
+ }
484
+
485
+ // ***********************私有函数(内部类)*********************//
486
+
487
+ // 视频呼入类
488
+ function IncomingCallObject(appId, source, target, brand, message) {
489
+
490
+ this.appId = appId;
491
+ this.source = source;
492
+ this.target = target;
493
+ this.brand = brand;
494
+ this.message = message;
495
+ this.config = null;
496
+
497
+ // 我方接听
498
+ this.acceptCall = function() {
499
+ var msg = {};
500
+ msg.deviceToken = this.target;
501
+ msg.targetDeviceToken = this.source;
502
+ msg.code = '0';
503
+ msg.msg = '对方接听';
504
+ _socket.emit('videoCallReturn', JSON.stringify(msg));
505
+ console.log('我方接听[' + JSON.stringify(msg) + ']');
506
+ };
507
+
508
+ // 我方拒接
509
+ this.refuseCall = function() {
510
+ var msg = {};
511
+ msg.deviceToken = this.target;
512
+ msg.targetDeviceToken = this.source;
513
+ msg.code = '3001';
514
+ msg.msg = '对方拒接';
515
+ _socket.emit('videoCallReturn', JSON.stringify(msg));
516
+ console.log('我方拒接[' + JSON.stringify(msg) + ']');
517
+ };
518
+
519
+ }
520
+
521
+ // 视频呼出类
522
+ function OutingCallObject(appId, source, target, brand, hostConfig,
523
+ guestConfig, message, timeout) {
524
+
525
+ this.appId = appId;
526
+ this.source = source;
527
+ this.target = target;
528
+ this.brand = brand;
529
+ this.hostConfig = hostConfig;
530
+ this.guestConfig = guestConfig;
531
+ this.message = message;
532
+ this.timeout = timeout;
533
+ this.timeoutId;
534
+
535
+ // 我方呼叫
536
+ this.startCall = function() {
537
+ var msg = {};
538
+ msg.appId = this.appId;
539
+ msg.deviceToken = this.source;
540
+ msg.targetDeviceToken = this.target;
541
+ msg.brand = this.brand;
542
+ msg.message = this.message;
543
+ _socket.emit('videoCallNotification', JSON.stringify(msg));
544
+ this.timeoutId = setTimeout(_onCallTimeout, this.timeout, this);
545
+ console.log('视频呼出[' + JSON.stringify(msg) + ']');
546
+ };
547
+
548
+ // 呼叫完成
549
+ this.finishCall = function() {
550
+ if (this.timeoutId != null) {
551
+ clearTimeout(this.timeoutId);
552
+ }
553
+ console.log('呼出完成');
554
+ };
555
+
556
+ }
557
+
558
+ // HashMap
559
+ function HashMapObject() {
560
+
561
+ var length = 0;
562
+ var entries = new Object();
563
+
564
+ this.isEmpty = function() {
565
+ return length == 0;
566
+ };
567
+
568
+ this.containsKey = function(key) {
569
+ return (key in entries);
570
+ };
571
+
572
+ this.containsValue = function(value) {
573
+ for ( var key in entries) {
574
+ if (entries[key] == value) {
575
+ return true;
576
+ }
577
+ }
578
+ return false;
579
+ };
580
+
581
+ this.put = function(key, value) {
582
+ if (!this.containsKey(key)) {
583
+ length++;
584
+ }
585
+ entries[key] = value;
586
+ };
587
+
588
+ this.get = function(key) {
589
+ return this.containsKey(key) ? entries[key] : null;
590
+ };
591
+
592
+ this.remove = function(key) {
593
+ if (this.containsKey(key) && (delete entries[key])) {
594
+ length--;
595
+ }
596
+ };
597
+
598
+ this.values = function() {
599
+ var _values = new Array();
600
+ for ( var key in entries) {
601
+ _values.push(entries[key]);
602
+ }
603
+ return _values;
604
+ };
605
+
606
+ this.keySet = function() {
607
+ var _keys = new Array();
608
+ for ( var key in entries) {
609
+ _keys.push(key);
610
+ }
611
+ return _keys;
612
+ };
613
+
614
+ this.size = function() {
615
+ return length;
616
+ };
617
+
618
+ this.clear = function() {
619
+ length = 0;
620
+ entries = new Object();
621
+ };
622
+ }
623
+
624
+ _initialize();
625
+ }
626
+
627
627
  export default UniRTCObject;