cnhis-design-vue 0.2.63-beta → 0.3.1-beta

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 (768) hide show
  1. package/README.md +23 -81
  2. package/env.d.ts +20 -0
  3. package/es/big-table/index.css +5 -0
  4. package/es/big-table/index.js +8 -19705
  5. package/es/button-print/index.css +7 -0
  6. package/es/button-print/index.js +3 -0
  7. package/es/drag-layout/index.css +10 -0
  8. package/es/drag-layout/index.js +9 -4822
  9. package/es/grid/index.css +10 -0
  10. package/es/grid/index.js +1 -3800
  11. package/es/index.css +10 -0
  12. package/es/index.js +14 -0
  13. package/package.json +45 -87
  14. package/tsconfig.node.json +8 -0
  15. package/.prettierrc.js +0 -27
  16. package/commitlint.config.js +0 -1
  17. package/es/affix/index.js +0 -3008
  18. package/es/affix/style.css +0 -0
  19. package/es/age/index.js +0 -3767
  20. package/es/age/style.css +0 -1
  21. package/es/alert/index.js +0 -3008
  22. package/es/alert/style.css +0 -0
  23. package/es/anchor/index.js +0 -3021
  24. package/es/anchor/style.css +0 -0
  25. package/es/auto-complete/index.js +0 -3008
  26. package/es/auto-complete/style.css +0 -0
  27. package/es/avatar/index.js +0 -3008
  28. package/es/avatar/style.css +0 -0
  29. package/es/back-top/index.js +0 -3008
  30. package/es/back-top/style.css +0 -0
  31. package/es/badge/index.js +0 -3008
  32. package/es/badge/style.css +0 -0
  33. package/es/base/index.js +0 -2896
  34. package/es/base/style.css +0 -0
  35. package/es/big-table/style.css +0 -1
  36. package/es/breadcrumb/index.js +0 -3032
  37. package/es/breadcrumb/style.css +0 -0
  38. package/es/button/index.js +0 -9156
  39. package/es/button/style.css +0 -1
  40. package/es/calendar/index.js +0 -3008
  41. package/es/calendar/style.css +0 -0
  42. package/es/captcha/index.js +0 -3618
  43. package/es/captcha/style.css +0 -1
  44. package/es/card/index.js +0 -3032
  45. package/es/card/style.css +0 -0
  46. package/es/carousel/index.js +0 -3008
  47. package/es/carousel/style.css +0 -0
  48. package/es/cascader/index.js +0 -3008
  49. package/es/cascader/style.css +0 -0
  50. package/es/checkbox/index.js +0 -3343
  51. package/es/checkbox/style.css +0 -1
  52. package/es/col/index.js +0 -3009
  53. package/es/col/style.css +0 -0
  54. package/es/collapse/index.js +0 -3021
  55. package/es/collapse/style.css +0 -0
  56. package/es/color-picker/index.js +0 -3532
  57. package/es/color-picker/style.css +0 -1
  58. package/es/comment/index.js +0 -3008
  59. package/es/comment/style.css +0 -0
  60. package/es/config-provider/index.js +0 -3008
  61. package/es/config-provider/style.css +0 -0
  62. package/es/date-picker/index.js +0 -3043
  63. package/es/date-picker/style.css +0 -0
  64. package/es/descriptions/index.js +0 -3021
  65. package/es/descriptions/style.css +0 -0
  66. package/es/divider/index.js +0 -3008
  67. package/es/divider/style.css +0 -0
  68. package/es/drag-layout/style.css +0 -1
  69. package/es/drawer/index.js +0 -3008
  70. package/es/drawer/style.css +0 -0
  71. package/es/dropdown/index.js +0 -3008
  72. package/es/dropdown/style.css +0 -0
  73. package/es/editor/index.js +0 -3565
  74. package/es/editor/style.css +0 -1
  75. package/es/empty/index.js +0 -3008
  76. package/es/empty/style.css +0 -0
  77. package/es/fabric-chart/index.js +0 -10094
  78. package/es/fabric-chart/style.css +0 -1
  79. package/es/form/index.js +0 -3019
  80. package/es/form/style.css +0 -0
  81. package/es/form-model/index.js +0 -3018
  82. package/es/form-model/style.css +0 -0
  83. package/es/form-table/index.js +0 -12035
  84. package/es/form-table/style.css +0 -1
  85. package/es/grid/style.css +0 -0
  86. package/es/icon/index.js +0 -2962
  87. package/es/icon/style.css +0 -0
  88. package/es/img/calling.ba1a517f.png +0 -0
  89. package/es/img/failure.96c6f004.png +0 -0
  90. package/es/img/no-permission.3aa0dddb.png +0 -0
  91. package/es/img/nodata.bbccf960.png +0 -0
  92. package/es/index/index.js +0 -120162
  93. package/es/index/style.css +0 -1
  94. package/es/input/index.js +0 -4384
  95. package/es/input/style.css +0 -1
  96. package/es/input-number/index.js +0 -3008
  97. package/es/input-number/style.css +0 -0
  98. package/es/keep-cache/index.js +0 -3299
  99. package/es/keep-cache/style.css +0 -1
  100. package/es/layout/index.js +0 -3054
  101. package/es/layout/style.css +0 -0
  102. package/es/list/index.js +0 -3032
  103. package/es/list/style.css +0 -0
  104. package/es/locale-provider/index.js +0 -3008
  105. package/es/locale-provider/style.css +0 -0
  106. package/es/map/index.js +0 -3677
  107. package/es/map/style.css +0 -1
  108. package/es/media/msgTip.6865f0c7.mp3 +0 -0
  109. package/es/mentions/index.js +0 -3021
  110. package/es/mentions/style.css +0 -0
  111. package/es/menu/index.js +0 -3054
  112. package/es/menu/style.css +0 -0
  113. package/es/message/index.js +0 -2896
  114. package/es/message/style.css +0 -0
  115. package/es/modal/index.js +0 -2962
  116. package/es/modal/style.css +0 -0
  117. package/es/multi-chat/index.js +0 -24374
  118. package/es/multi-chat/style.css +0 -1
  119. package/es/multi-chat-client/index.js +0 -18383
  120. package/es/multi-chat-client/style.css +0 -1
  121. package/es/multi-chat-history/index.js +0 -4600
  122. package/es/multi-chat-history/style.css +0 -1
  123. package/es/multi-chat-record/index.js +0 -4864
  124. package/es/multi-chat-record/style.css +0 -1
  125. package/es/multi-chat-setting/index.js +0 -13540
  126. package/es/multi-chat-setting/style.css +0 -1
  127. package/es/multi-chat-sip/index.js +0 -3313
  128. package/es/multi-chat-sip/style.css +0 -1
  129. package/es/notification/index.js +0 -2896
  130. package/es/notification/style.css +0 -0
  131. package/es/page-header/index.js +0 -3008
  132. package/es/page-header/style.css +0 -0
  133. package/es/pagination/index.js +0 -3008
  134. package/es/pagination/style.css +0 -0
  135. package/es/popconfirm/index.js +0 -3008
  136. package/es/popconfirm/style.css +0 -0
  137. package/es/popover/index.js +0 -3008
  138. package/es/popover/style.css +0 -0
  139. package/es/progress/index.js +0 -3008
  140. package/es/progress/style.css +0 -0
  141. package/es/radio/index.js +0 -3334
  142. package/es/radio/style.css +0 -1
  143. package/es/rate/index.js +0 -3008
  144. package/es/rate/style.css +0 -0
  145. package/es/result/index.js +0 -3008
  146. package/es/result/style.css +0 -0
  147. package/es/row/index.js +0 -3008
  148. package/es/row/style.css +0 -0
  149. package/es/scale-view/index.js +0 -18420
  150. package/es/scale-view/style.css +0 -1
  151. package/es/select/index.js +0 -4783
  152. package/es/select/style.css +0 -1
  153. package/es/select-label/index.js +0 -5647
  154. package/es/select-label/style.css +0 -1
  155. package/es/select-person/index.js +0 -5427
  156. package/es/select-person/style.css +0 -1
  157. package/es/skeleton/index.js +0 -3008
  158. package/es/skeleton/style.css +0 -0
  159. package/es/slider/index.js +0 -3008
  160. package/es/slider/style.css +0 -0
  161. package/es/space/index.js +0 -3008
  162. package/es/space/style.css +0 -0
  163. package/es/spin/index.js +0 -3008
  164. package/es/spin/style.css +0 -0
  165. package/es/statistic/index.js +0 -3021
  166. package/es/statistic/style.css +0 -0
  167. package/es/steps/index.js +0 -3021
  168. package/es/steps/style.css +0 -0
  169. package/es/switch/index.js +0 -3008
  170. package/es/switch/style.css +0 -0
  171. package/es/table-filter/index.js +0 -24332
  172. package/es/table-filter/style.css +0 -1
  173. package/es/tabs/index.js +0 -3021
  174. package/es/tabs/style.css +0 -0
  175. package/es/tag/index.js +0 -3912
  176. package/es/tag/style.css +0 -1
  177. package/es/time-picker/index.js +0 -3008
  178. package/es/time-picker/style.css +0 -0
  179. package/es/timeline/index.js +0 -3018
  180. package/es/timeline/style.css +0 -0
  181. package/es/tooltip/index.js +0 -3008
  182. package/es/tooltip/style.css +0 -0
  183. package/es/transfer/index.js +0 -3008
  184. package/es/transfer/style.css +0 -0
  185. package/es/tree/index.js +0 -3021
  186. package/es/tree/style.css +0 -0
  187. package/es/tree-select/index.js +0 -3021
  188. package/es/tree-select/style.css +0 -0
  189. package/es/upload/index.js +0 -3008
  190. package/es/upload/style.css +0 -0
  191. package/es/utils/UniRTCv2.js +0 -586
  192. package/es/utils/chatFetch.js +0 -85
  193. package/es/utils/clickoutside.js +0 -76
  194. package/es/utils/crypto.js +0 -40
  195. package/es/utils/kty-sdk.js +0 -1030
  196. package/es/utils/kty.min-1.0.0.js +0 -6
  197. package/es/utils/sip-device.js +0 -112
  198. package/es/utils/time-domain.js +0 -195
  199. package/es/utils/utils-map.js +0 -547
  200. package/es/utils/vexutils.js +0 -977
  201. package/es/verification-code/index.js +0 -3487
  202. package/es/verification-code/style.css +0 -1
  203. package/packages/affix/index.js +0 -12
  204. package/packages/affix/src/Affix.jsx +0 -12
  205. package/packages/age/index.js +0 -27
  206. package/packages/age/src/age/index.vue +0 -140
  207. package/packages/age/src/age-com/index.vue +0 -210
  208. package/packages/alert/index.js +0 -12
  209. package/packages/alert/src/Alert.jsx +0 -11
  210. package/packages/anchor/index.js +0 -18
  211. package/packages/anchor/src/Anchor.jsx +0 -11
  212. package/packages/anchor/src/Link.jsx +0 -11
  213. package/packages/auto-complete/index.js +0 -12
  214. package/packages/auto-complete/src/AutoComplete.jsx +0 -12
  215. package/packages/avatar/index.js +0 -12
  216. package/packages/avatar/src/Avatar.jsx +0 -11
  217. package/packages/back-top/index.js +0 -12
  218. package/packages/back-top/src/BackTop.jsx +0 -11
  219. package/packages/badge/index.js +0 -12
  220. package/packages/badge/src/Badge.jsx +0 -11
  221. package/packages/base/index.js +0 -3
  222. package/packages/big-table/index.js +0 -16
  223. package/packages/big-table/src/BigTable.vue +0 -3051
  224. package/packages/big-table/src/Fieldset.vue +0 -2067
  225. package/packages/big-table/src/assets/iconfont/iconfont.css +0 -21
  226. package/packages/big-table/src/assets/iconfont/iconfont.ttf +0 -0
  227. package/packages/big-table/src/assets/img/failure.png +0 -0
  228. package/packages/big-table/src/assets/img/icon-asc.png +0 -0
  229. package/packages/big-table/src/assets/img/icon-desc.png +0 -0
  230. package/packages/big-table/src/assets/img/no-permission.png +0 -0
  231. package/packages/big-table/src/assets/img/nodata.png +0 -0
  232. package/packages/big-table/src/assets/img/notfound.png +0 -0
  233. package/packages/big-table/src/assets/img/qr.png +0 -0
  234. package/packages/big-table/src/assets/img/video_default_cover.png +0 -0
  235. package/packages/big-table/src/assets/img/xb_big.png +0 -0
  236. package/packages/big-table/src/assets/img/xb_small.png +0 -0
  237. package/packages/big-table/src/assets/style/table-base.less +0 -345
  238. package/packages/big-table/src/assets/style/table-global.less +0 -175
  239. package/packages/big-table/src/components/NoData.vue +0 -81
  240. package/packages/big-table/src/components/TextOverTooltip.vue +0 -120
  241. package/packages/big-table/src/components/edit-form/EditForm.vue +0 -491
  242. package/packages/big-table/src/components/edit-form/edit-component/config-data/index.js +0 -67
  243. package/packages/big-table/src/components/edit-form/edit-component/edit-date-picker/edit-date-picker.vue +0 -60
  244. package/packages/big-table/src/components/edit-form/edit-component/edit-digital/edit-digital.vue +0 -54
  245. package/packages/big-table/src/components/edit-form/edit-component/edit-input/edit-input.vue +0 -39
  246. package/packages/big-table/src/components/edit-form/edit-component/edit-input-password/edit-input-password.vue +0 -79
  247. package/packages/big-table/src/components/edit-form/edit-component/edit-month-picker/edit-month-picker.vue +0 -37
  248. package/packages/big-table/src/components/edit-form/edit-component/edit-search/edit-search.vue +0 -83
  249. package/packages/big-table/src/components/edit-form/edit-component/edit-search-more/edit-search-more.vue +0 -95
  250. package/packages/big-table/src/components/edit-form/edit-component/edit-select/edit-select.vue +0 -40
  251. package/packages/big-table/src/components/edit-form/edit-component/edit-select-multiple/edit-select-multiple.vue +0 -55
  252. package/packages/big-table/src/components/edit-form/edit-component/edit-textarea/edit-textarea.vue +0 -41
  253. package/packages/big-table/src/components/edit-form/edit-component/edit-time-picker/edit-time-picker.vue +0 -40
  254. package/packages/big-table/src/components/edit-form/edit-component/global-props.js +0 -33
  255. package/packages/big-table/src/components/edit-form/edit-component/index.js +0 -8
  256. package/packages/big-table/src/components/edit-form/edit-component/mixins/bound-date.js +0 -3
  257. package/packages/big-table/src/components/edit-form/edit-component/mixins/dateType.js +0 -216
  258. package/packages/big-table/src/components/edit-form/edit-component/mixins/item-default.js +0 -594
  259. package/packages/big-table/src/components/edit-form/edit-component/mixins/search.js +0 -1198
  260. package/packages/big-table/src/components/edit-form/edit-component/register-com.js +0 -26
  261. package/packages/big-table/src/components/edit-form/edit-item/form-event.js +0 -79
  262. package/packages/big-table/src/components/edit-form/edit-item/global-props.js +0 -33
  263. package/packages/big-table/src/components/edit-form/edit-item/index.js +0 -4
  264. package/packages/big-table/src/components/edit-form/edit-item/render-methods.js +0 -28
  265. package/packages/big-table/src/components/edit-form/edit-item/validate-rules.js +0 -463
  266. package/packages/big-table/src/components/edit-form/edit-mixins/form-commom.js +0 -668
  267. package/packages/big-table/src/components/edit-form/edit-mixins/index.js +0 -3
  268. package/packages/big-table/src/components/edit-form/edit-utils/index.js +0 -112
  269. package/packages/big-table/src/components/password-com.vue +0 -58
  270. package/packages/big-table/src/components/player-vod/index.vue +0 -57
  271. package/packages/big-table/src/components/player-vod/player.vue +0 -189
  272. package/packages/big-table/src/components/player-vod/video-list.vue +0 -264
  273. package/packages/big-table/src/components/player-vod/video-modal.vue +0 -126
  274. package/packages/big-table/src/utils/CustomPagination.vue +0 -86
  275. package/packages/big-table/src/utils/batchEditing.js +0 -534
  276. package/packages/big-table/src/utils/bigTableProps.js +0 -94
  277. package/packages/big-table/src/utils/format.js +0 -557
  278. package/packages/big-table/src/utils/nestTable.js +0 -109
  279. package/packages/big-table/src/utils/tableParse.js +0 -153
  280. package/packages/breadcrumb/index.js +0 -21
  281. package/packages/breadcrumb/src/Breadcrumb.jsx +0 -11
  282. package/packages/breadcrumb/src/BreadcrumbItem.jsx +0 -11
  283. package/packages/breadcrumb/src/BreadcrumbSeparator.jsx +0 -11
  284. package/packages/button/index.js +0 -21
  285. package/packages/button/src/Button.jsx +0 -11
  286. package/packages/button/src/ButtonGroup.jsx +0 -11
  287. package/packages/button/src/ButtonPrint/components/IdentityVerification.vue +0 -176
  288. package/packages/button/src/ButtonPrint/index.vue +0 -687
  289. package/packages/button/src/ButtonPrint/js/print.es.min.js +0 -1
  290. package/packages/button/src/ButtonPrint/mixin/his-print.js +0 -95
  291. package/packages/calendar/index.js +0 -12
  292. package/packages/calendar/src/Calendar.jsx +0 -11
  293. package/packages/captcha/index.js +0 -10
  294. package/packages/captcha/src/Captcha.vue +0 -164
  295. package/packages/captcha/src/Index.vue +0 -47
  296. package/packages/captcha/src/SlideVerify.vue +0 -285
  297. package/packages/card/index.js +0 -21
  298. package/packages/card/src/Card.jsx +0 -12
  299. package/packages/card/src/CardGrid.js +0 -7
  300. package/packages/card/src/CardMeta.js +0 -7
  301. package/packages/carousel/index.js +0 -12
  302. package/packages/carousel/src/Carousel.jsx +0 -12
  303. package/packages/cascader/index.js +0 -12
  304. package/packages/cascader/src/Cascader.jsx +0 -11
  305. package/packages/checkbox/index.js +0 -30
  306. package/packages/checkbox/src/Checkbox.jsx +0 -11
  307. package/packages/checkbox/src/CheckboxImg/index.vue +0 -142
  308. package/packages/checkbox/src/Group.jsx +0 -11
  309. package/packages/col/index.js +0 -13
  310. package/packages/col/src/Col.jsx +0 -11
  311. package/packages/collapse/index.js +0 -18
  312. package/packages/collapse/src/Collapse.jsx +0 -11
  313. package/packages/collapse/src/Panel.jsx +0 -11
  314. package/packages/color-picker/index.js +0 -10
  315. package/packages/color-picker/src/color-picker.vue +0 -191
  316. package/packages/color-picker/src/style.less +0 -109
  317. package/packages/comment/index.js +0 -12
  318. package/packages/comment/src/Comment.jsx +0 -11
  319. package/packages/config-provider/index.js +0 -12
  320. package/packages/config-provider/src/ConfigProvider.jsx +0 -11
  321. package/packages/date-picker/index.js +0 -24
  322. package/packages/date-picker/src/DatePicker.jsx +0 -12
  323. package/packages/date-picker/src/MonthPicker.jsx +0 -11
  324. package/packages/date-picker/src/RangePicker.jsx +0 -11
  325. package/packages/date-picker/src/WeekPicker.jsx +0 -11
  326. package/packages/descriptions/index.js +0 -18
  327. package/packages/descriptions/src/Descriptions.jsx +0 -11
  328. package/packages/descriptions/src/Item.jsx +0 -11
  329. package/packages/divider/index.js +0 -12
  330. package/packages/divider/src/Divider.jsx +0 -11
  331. package/packages/drag-layout/DragFormLeftItem.vue +0 -173
  332. package/packages/drag-layout/DragFormRightItem.vue +0 -284
  333. package/packages/drag-layout/I18n-mixins.js +0 -10
  334. package/packages/drag-layout/drag-layout.vue +0 -778
  335. package/packages/drag-layout/index.js +0 -12
  336. package/packages/drawer/index.js +0 -12
  337. package/packages/drawer/src/Drawer.jsx +0 -11
  338. package/packages/dropdown/index.js +0 -12
  339. package/packages/dropdown/src/Dropdown.jsx +0 -11
  340. package/packages/editor/index.js +0 -10
  341. package/packages/editor/src/Editor.vue +0 -180
  342. package/packages/empty/index.js +0 -12
  343. package/packages/empty/src/Empty.jsx +0 -11
  344. package/packages/fabric-chart/index.js +0 -10
  345. package/packages/fabric-chart/src/FabricChart.vue +0 -179
  346. package/packages/fabric-chart/src/FabricGrid.vue +0 -73
  347. package/packages/fabric-chart/src/components/DropPopup.vue +0 -90
  348. package/packages/fabric-chart/src/components/MouseRightClick.vue +0 -168
  349. package/packages/fabric-chart/src/const/defaultVaule.js +0 -58
  350. package/packages/fabric-chart/src/fabric-chart/FabricCanvas.vue +0 -296
  351. package/packages/fabric-chart/src/fabric-chart/FabricLines.vue +0 -546
  352. package/packages/fabric-chart/src/fabric-chart/FabricPolylines.vue +0 -933
  353. package/packages/fabric-chart/src/fabric-chart/FabricScaleValue.vue +0 -120
  354. package/packages/fabric-chart/src/fabric-chart/FabricTextGroup.vue +0 -526
  355. package/packages/fabric-chart/src/fabric-chart2/FabricBottom.vue +0 -108
  356. package/packages/fabric-chart/src/fabric-chart2/FabricCanvas.vue +0 -181
  357. package/packages/fabric-chart/src/fabric-chart2/FabricCenter.vue +0 -612
  358. package/packages/fabric-chart/src/fabric-chart2/FabricLeft.vue +0 -104
  359. package/packages/fabric-chart/src/fabric-chart2/FabricRight.vue +0 -112
  360. package/packages/fabric-chart/src/fabric-chart2/FabricTop.vue +0 -172
  361. package/packages/fabric-chart/src/mixins/draw.js +0 -290
  362. package/packages/fabric-chart/src/mixins/eventCommon.js +0 -74
  363. package/packages/fabric-chart/src/mixins/fabricCommon.js +0 -85
  364. package/packages/fabric-chart/src/mixins/fabricObject.js +0 -193
  365. package/packages/fabric-chart/src/mixins/type.js +0 -6
  366. package/packages/form/index.js +0 -16
  367. package/packages/form/src/Form.jsx +0 -11
  368. package/packages/form/src/Item.jsx +0 -11
  369. package/packages/form-model/index.js +0 -14
  370. package/packages/form-model/src/FormModel.jsx +0 -11
  371. package/packages/form-model/src/Item.jsx +0 -11
  372. package/packages/form-table/index.js +0 -10
  373. package/packages/form-table/src/FormTable.vue +0 -1103
  374. package/packages/form-table/src/components/table-component/config-data/index.js +0 -80
  375. package/packages/form-table/src/components/table-component/global-props.js +0 -22
  376. package/packages/form-table/src/components/table-component/index.js +0 -8
  377. package/packages/form-table/src/components/table-component/mixins/bound-date.js +0 -455
  378. package/packages/form-table/src/components/table-component/mixins/dateType.js +0 -217
  379. package/packages/form-table/src/components/table-component/mixins/item-default.js +0 -257
  380. package/packages/form-table/src/components/table-component/mixins/search.js +0 -1228
  381. package/packages/form-table/src/components/table-component/register-com.js +0 -30
  382. package/packages/form-table/src/components/table-component/table-age/table-age.vue +0 -175
  383. package/packages/form-table/src/components/table-component/table-date-picker/table-date-picker.vue +0 -87
  384. package/packages/form-table/src/components/table-component/table-digital/table-digital.vue +0 -93
  385. package/packages/form-table/src/components/table-component/table-input/table-input.vue +0 -81
  386. package/packages/form-table/src/components/table-component/table-input-password/table-input-password.vue +0 -126
  387. package/packages/form-table/src/components/table-component/table-month-picker/table-month-picker.vue +0 -53
  388. package/packages/form-table/src/components/table-component/table-search/table-search.vue +0 -128
  389. package/packages/form-table/src/components/table-component/table-search-more/table-search-more.vue +0 -144
  390. package/packages/form-table/src/components/table-component/table-select/table-select.vue +0 -64
  391. package/packages/form-table/src/components/table-component/table-select-multiple/table-select-multiple.vue +0 -81
  392. package/packages/form-table/src/components/table-component/table-textarea/table-textarea.vue +0 -76
  393. package/packages/form-table/src/components/table-component/table-time-picker/table-time-picker.vue +0 -55
  394. package/packages/form-table/src/components/table-component/table-tree-select/table-tree-select.vue +0 -135
  395. package/packages/form-table/src/components/table-component/text-over-tooltip/TextOverTooltip.vue +0 -97
  396. package/packages/form-table/src/components/table-item/form-event.js +0 -81
  397. package/packages/form-table/src/components/table-item/global-props.js +0 -27
  398. package/packages/form-table/src/components/table-item/index.js +0 -4
  399. package/packages/form-table/src/components/table-item/render-methods.js +0 -28
  400. package/packages/form-table/src/components/table-item/validate-rules.js +0 -520
  401. package/packages/form-table/src/components/table-mixins/form-commom.js +0 -98
  402. package/packages/form-table/src/components/table-mixins/index.js +0 -3
  403. package/packages/form-table/src/components/table-utils/index.js +0 -112
  404. package/packages/form-table/src/disabledDetail.less +0 -46
  405. package/packages/grid/index.js +0 -10
  406. package/packages/grid/src/grid.js +0 -28
  407. package/packages/icon/index.js +0 -10
  408. package/packages/icon/src/icon.js +0 -13
  409. package/packages/index.js +0 -304
  410. package/packages/input/index.js +0 -30
  411. package/packages/input/src/Group.jsx +0 -11
  412. package/packages/input/src/Input.jsx +0 -11
  413. package/packages/input/src/Password.jsx +0 -11
  414. package/packages/input/src/Search.jsx +0 -11
  415. package/packages/input/src/TextArea.jsx +0 -11
  416. package/packages/input/src/input-quick/components/quick-item.vue +0 -284
  417. package/packages/input/src/input-quick/components/quick-popover.vue +0 -596
  418. package/packages/input/src/input-quick/index.vue +0 -137
  419. package/packages/input-number/index.js +0 -12
  420. package/packages/input-number/src/InputNumber.jsx +0 -11
  421. package/packages/keep-cache/KeepCache.js +0 -236
  422. package/packages/keep-cache/index.css +0 -3
  423. package/packages/keep-cache/index.js +0 -8
  424. package/packages/layout/index.js +0 -27
  425. package/packages/layout/src/Content.jsx +0 -11
  426. package/packages/layout/src/Footer.jsx +0 -11
  427. package/packages/layout/src/Header.jsx +0 -11
  428. package/packages/layout/src/Layout.jsx +0 -11
  429. package/packages/layout/src/Sider.jsx +0 -11
  430. package/packages/list/index.js +0 -21
  431. package/packages/list/src/Item.jsx +0 -11
  432. package/packages/list/src/ItemMeta.jsx +0 -11
  433. package/packages/list/src/List.jsx +0 -11
  434. package/packages/locale-provider/index.js +0 -12
  435. package/packages/locale-provider/src/LocaleProvider.jsx +0 -11
  436. package/packages/map/index.js +0 -10
  437. package/packages/map/src/Map.vue +0 -480
  438. package/packages/map/src/popup-map.vue +0 -53
  439. package/packages/mentions/index.js +0 -18
  440. package/packages/mentions/src/Mentions.jsx +0 -11
  441. package/packages/mentions/src/Option.jsx +0 -11
  442. package/packages/menu/index.js +0 -27
  443. package/packages/menu/src/Divider.jsx +0 -11
  444. package/packages/menu/src/Item.jsx +0 -11
  445. package/packages/menu/src/ItemGroup.jsx +0 -11
  446. package/packages/menu/src/Menu.jsx +0 -11
  447. package/packages/menu/src/SubMenu.jsx +0 -11
  448. package/packages/message/index.js +0 -8
  449. package/packages/modal/index.js +0 -10
  450. package/packages/modal/src/Modal.js +0 -7
  451. package/packages/multi-chat/chat/addConference.vue +0 -200
  452. package/packages/multi-chat/chat/addMembers.vue +0 -411
  453. package/packages/multi-chat/chat/advancedFilter.vue +0 -372
  454. package/packages/multi-chat/chat/audio.vue +0 -511
  455. package/packages/multi-chat/chat/calling.vue +0 -246
  456. package/packages/multi-chat/chat/chatFooter.vue +0 -1590
  457. package/packages/multi-chat/chat/chatHeader.vue +0 -473
  458. package/packages/multi-chat/chat/chatHistory.vue +0 -601
  459. package/packages/multi-chat/chat/chatMain.vue +0 -1446
  460. package/packages/multi-chat/chat/client/clientChat.vue +0 -716
  461. package/packages/multi-chat/chat/client/index.vue +0 -149
  462. package/packages/multi-chat/chat/delay.vue +0 -177
  463. package/packages/multi-chat/chat/evaluate.vue +0 -343
  464. package/packages/multi-chat/chat/index.vue +0 -2341
  465. package/packages/multi-chat/chat/messageRecord.vue +0 -333
  466. package/packages/multi-chat/chat/mixins/NoData.js +0 -20
  467. package/packages/multi-chat/chat/mixins/base.js +0 -92
  468. package/packages/multi-chat/chat/mixins/uniRTCAPI.js +0 -77
  469. package/packages/multi-chat/chat/multiVideo.vue +0 -1409
  470. package/packages/multi-chat/chat/quickReply.vue +0 -361
  471. package/packages/multi-chat/chat/robot/index.vue +0 -312
  472. package/packages/multi-chat/chat/scrollList.vue +0 -1229
  473. package/packages/multi-chat/chat/video.vue +0 -399
  474. package/packages/multi-chat/chat/videoVoiceList.vue +0 -348
  475. package/packages/multi-chat/chat/voice.vue +0 -431
  476. package/packages/multi-chat/components/avatar.vue +0 -76
  477. package/packages/multi-chat/components/chat-tabs-header.vue +0 -251
  478. package/packages/multi-chat/components/classify-tabs.vue +0 -185
  479. package/packages/multi-chat/components/empty.vue +0 -24
  480. package/packages/multi-chat/components/modal-refuse-reason.vue +0 -112
  481. package/packages/multi-chat/components/modal-sip.vue +0 -160
  482. package/packages/multi-chat/components/modal-user-transfer.vue +0 -98
  483. package/packages/multi-chat/components/msg-describe.vue +0 -138
  484. package/packages/multi-chat/components/msg-picture.vue +0 -68
  485. package/packages/multi-chat/components/msg-prescription.vue +0 -205
  486. package/packages/multi-chat/components/read-record.vue +0 -133
  487. package/packages/multi-chat/components/read-status.vue +0 -34
  488. package/packages/multi-chat/components/user-status.vue +0 -198
  489. package/packages/multi-chat/img/OFF-LINE.png +0 -0
  490. package/packages/multi-chat/img/ON-LINE.png +0 -0
  491. package/packages/multi-chat/img/accept.png +0 -0
  492. package/packages/multi-chat/img/add-person.png +0 -0
  493. package/packages/multi-chat/img/add_prescription.png +0 -0
  494. package/packages/multi-chat/img/all-voice.png +0 -0
  495. package/packages/multi-chat/img/audio-new.png +0 -0
  496. package/packages/multi-chat/img/audio-play.gif +0 -0
  497. package/packages/multi-chat/img/audio.png +0 -0
  498. package/packages/multi-chat/img/base-info-active.png +0 -0
  499. package/packages/multi-chat/img/base-info.png +0 -0
  500. package/packages/multi-chat/img/busy_line.png +0 -0
  501. package/packages/multi-chat/img/call.png +0 -0
  502. package/packages/multi-chat/img/callin.png +0 -0
  503. package/packages/multi-chat/img/callin_cancel.png +0 -0
  504. package/packages/multi-chat/img/calling.png +0 -0
  505. package/packages/multi-chat/img/callout.png +0 -0
  506. package/packages/multi-chat/img/callout_cancel.png +0 -0
  507. package/packages/multi-chat/img/close.png +0 -0
  508. package/packages/multi-chat/img/close_video.png +0 -0
  509. package/packages/multi-chat/img/customer-service-active.png +0 -0
  510. package/packages/multi-chat/img/customer-service.png +0 -0
  511. package/packages/multi-chat/img/customer.png +0 -0
  512. package/packages/multi-chat/img/customer_staff.png +0 -0
  513. package/packages/multi-chat/img/default.png +0 -0
  514. package/packages/multi-chat/img/ellipsis.png +0 -0
  515. package/packages/multi-chat/img/end-voice.png +0 -0
  516. package/packages/multi-chat/img/event-active.png +0 -0
  517. package/packages/multi-chat/img/event.png +0 -0
  518. package/packages/multi-chat/img/exp.png +0 -0
  519. package/packages/multi-chat/img/full-sceen-close.png +0 -0
  520. package/packages/multi-chat/img/full-sceen.png +0 -0
  521. package/packages/multi-chat/img/icon_list.png +0 -0
  522. package/packages/multi-chat/img/icon_list_active.png +0 -0
  523. package/packages/multi-chat/img/icon_table.png +0 -0
  524. package/packages/multi-chat/img/icon_table_active.png +0 -0
  525. package/packages/multi-chat/img/join-video.png +0 -0
  526. package/packages/multi-chat/img/large.png +0 -0
  527. package/packages/multi-chat/img/left-wrapper.png +0 -0
  528. package/packages/multi-chat/img/left.png +0 -0
  529. package/packages/multi-chat/img/medical_record.png +0 -0
  530. package/packages/multi-chat/img/middle.png +0 -0
  531. package/packages/multi-chat/img/msgTip.mp3 +0 -0
  532. package/packages/multi-chat/img/multi-video.png +0 -0
  533. package/packages/multi-chat/img/multi-voice.png +0 -0
  534. package/packages/multi-chat/img/mute-audio.png +0 -0
  535. package/packages/multi-chat/img/muted-audio.png +0 -0
  536. package/packages/multi-chat/img/muted-screen.png +0 -0
  537. package/packages/multi-chat/img/muted-video.png +0 -0
  538. package/packages/multi-chat/img/no-all-voice.png +0 -0
  539. package/packages/multi-chat/img/no-data.png +0 -0
  540. package/packages/multi-chat/img/no-data2.png +0 -0
  541. package/packages/multi-chat/img/no-screen.png +0 -0
  542. package/packages/multi-chat/img/no-video.png +0 -0
  543. package/packages/multi-chat/img/no-voice.png +0 -0
  544. package/packages/multi-chat/img/no-voiced.png +0 -0
  545. package/packages/multi-chat/img/normal-screen.png +0 -0
  546. package/packages/multi-chat/img/normal-video.png +0 -0
  547. package/packages/multi-chat/img/over.png +0 -0
  548. package/packages/multi-chat/img/portrait.png +0 -0
  549. package/packages/multi-chat/img/prescription.png +0 -0
  550. package/packages/multi-chat/img/receive.png +0 -0
  551. package/packages/multi-chat/img/reject.png +0 -0
  552. package/packages/multi-chat/img/remove.png +0 -0
  553. package/packages/multi-chat/img/required.png +0 -0
  554. package/packages/multi-chat/img/screen.png +0 -0
  555. package/packages/multi-chat/img/send_prescription.png +0 -0
  556. package/packages/multi-chat/img/setting.png +0 -0
  557. package/packages/multi-chat/img/small.png +0 -0
  558. package/packages/multi-chat/img/sound.png +0 -0
  559. package/packages/multi-chat/img/sound_forbid.png +0 -0
  560. package/packages/multi-chat/img/start_video.png +0 -0
  561. package/packages/multi-chat/img/system_message.png +0 -0
  562. package/packages/multi-chat/img/to-session.png +0 -0
  563. package/packages/multi-chat/img/transfer.png +0 -0
  564. package/packages/multi-chat/img/transfer2.png +0 -0
  565. package/packages/multi-chat/img/video-accept.png +0 -0
  566. package/packages/multi-chat/img/video.png +0 -0
  567. package/packages/multi-chat/img/video_consult.png +0 -0
  568. package/packages/multi-chat/img/voice.png +0 -0
  569. package/packages/multi-chat/img/worktime-active.png +0 -0
  570. package/packages/multi-chat/img/worktime.png +0 -0
  571. package/packages/multi-chat/index.js +0 -7
  572. package/packages/multi-chat/setting/authority/index.vue +0 -156
  573. package/packages/multi-chat/setting/authority/roleSetting.vue +0 -204
  574. package/packages/multi-chat/setting/baseInfo/index.vue +0 -1241
  575. package/packages/multi-chat/setting/configuration/index.vue +0 -277
  576. package/packages/multi-chat/setting/customerService/batchSelect.vue +0 -403
  577. package/packages/multi-chat/setting/customerService/index.vue +0 -273
  578. package/packages/multi-chat/setting/event/edit/condition.vue +0 -128
  579. package/packages/multi-chat/setting/event/edit/index.vue +0 -437
  580. package/packages/multi-chat/setting/event/edit/notice.vue +0 -129
  581. package/packages/multi-chat/setting/event/edit/strategy.vue +0 -98
  582. package/packages/multi-chat/setting/event/index.vue +0 -249
  583. package/packages/multi-chat/setting/index.vue +0 -269
  584. package/packages/multi-chat/setting/page.vue +0 -14
  585. package/packages/multi-chat/setting/sessionList/index.vue +0 -412
  586. package/packages/multi-chat/setting/sessionList/messageRecord.vue +0 -372
  587. package/packages/multi-chat/setting/userConfig/index.vue +0 -124
  588. package/packages/multi-chat/setting/worktime/index.vue +0 -274
  589. package/packages/multi-chat/store/actions.js +0 -448
  590. package/packages/multi-chat/store/getters.js +0 -353
  591. package/packages/multi-chat/store/helper.js +0 -66
  592. package/packages/multi-chat/store/index.js +0 -50
  593. package/packages/multi-chat/store/mutation.js +0 -278
  594. package/packages/multi-chat/store/state.js +0 -111
  595. package/packages/multi-chat/style/emoji.css +0 -315
  596. package/packages/multi-chat/style/message.mixin.less +0 -38
  597. package/packages/multi-chat/utils/chatSock.js +0 -93
  598. package/packages/multi-chat/utils/compressImage.js +0 -115
  599. package/packages/multi-chat/utils/emoji.json +0 -68
  600. package/packages/multi-chat/utils/index.js +0 -181
  601. package/packages/multi-chat/utils/observer-scroll.js +0 -49
  602. package/packages/multi-chat/utils/panelsetting.js +0 -48
  603. package/packages/multi-chat/utils/rtc-client-multi.js +0 -376
  604. package/packages/multi-chat/utils/rtc-client.js +0 -381
  605. package/packages/multi-chat-client/index.js +0 -7
  606. package/packages/multi-chat-history/index.js +0 -7
  607. package/packages/multi-chat-record/index.js +0 -7
  608. package/packages/multi-chat-setting/index.js +0 -7
  609. package/packages/multi-chat-sip/index.js +0 -6
  610. package/packages/notification/index.js +0 -8
  611. package/packages/page-header/index.js +0 -12
  612. package/packages/page-header/src/PageHeader.jsx +0 -11
  613. package/packages/pagination/index.js +0 -12
  614. package/packages/pagination/src/Pagination.jsx +0 -11
  615. package/packages/popconfirm/index.js +0 -12
  616. package/packages/popconfirm/src/Popconfirm.jsx +0 -11
  617. package/packages/popover/index.js +0 -12
  618. package/packages/popover/src/Popover.jsx +0 -11
  619. package/packages/progress/index.js +0 -12
  620. package/packages/progress/src/Progress.jsx +0 -11
  621. package/packages/radio/index.js +0 -33
  622. package/packages/radio/src/Group.jsx +0 -11
  623. package/packages/radio/src/Radio.jsx +0 -11
  624. package/packages/radio/src/RadioButton.jsx +0 -11
  625. package/packages/radio/src/RadioImg/index.vue +0 -125
  626. package/packages/rate/index.js +0 -12
  627. package/packages/rate/src/Rate.jsx +0 -11
  628. package/packages/result/index.js +0 -12
  629. package/packages/result/src/Result.jsx +0 -11
  630. package/packages/row/index.js +0 -12
  631. package/packages/row/src/Row.jsx +0 -11
  632. package/packages/scale-view/answerParse.vue +0 -124
  633. package/packages/scale-view/customList.vue +0 -801
  634. package/packages/scale-view/data.js +0 -80
  635. package/packages/scale-view/evaluateCountdown.vue +0 -155
  636. package/packages/scale-view/evaluatePage.vue +0 -202
  637. package/packages/scale-view/formitem/data.js +0 -3991
  638. package/packages/scale-view/formitem/index.js +0 -6
  639. package/packages/scale-view/formitem/r-address.vue +0 -238
  640. package/packages/scale-view/formitem/r-choice.vue +0 -534
  641. package/packages/scale-view/formitem/r-input.vue +0 -96
  642. package/packages/scale-view/formitem/r-prompt.vue +0 -52
  643. package/packages/scale-view/formitem/r-time.vue +0 -285
  644. package/packages/scale-view/formitem/r-upload-custom-list.vue +0 -242
  645. package/packages/scale-view/formitem/r-upload.vue +0 -287
  646. package/packages/scale-view/formitem/text-over-tooltip/TextOverTooltip.vue +0 -98
  647. package/packages/scale-view/index.js +0 -17
  648. package/packages/scale-view/mixin/NoData.js +0 -24
  649. package/packages/scale-view/mixin/evaluate.js +0 -146
  650. package/packages/scale-view/mixin/index.js +0 -337
  651. package/packages/scale-view/mixin/judgeTypes.js +0 -267
  652. package/packages/scale-view/scaleView.vue +0 -1836
  653. package/packages/select/index.js +0 -27
  654. package/packages/select/src/CustomSelect/index.vue +0 -130
  655. package/packages/select/src/OptGroup.jsx +0 -11
  656. package/packages/select/src/Option.jsx +0 -11
  657. package/packages/select/src/Select.jsx +0 -11
  658. package/packages/select/src/TableSelect/index.vue +0 -497
  659. package/packages/select-label/index.js +0 -14
  660. package/packages/select-label/label-classify.vue +0 -129
  661. package/packages/select-label/labelFormContent.vue +0 -787
  662. package/packages/select-label/select-label.vue +0 -581
  663. package/packages/select-person/index.js +0 -10
  664. package/packages/select-person/search-tree.vue +0 -373
  665. package/packages/select-person/select-person.vue +0 -1302
  666. package/packages/skeleton/index.js +0 -12
  667. package/packages/skeleton/src/Skeleton.jsx +0 -11
  668. package/packages/slider/index.js +0 -12
  669. package/packages/slider/src/Slider.jsx +0 -11
  670. package/packages/space/index.js +0 -12
  671. package/packages/space/src/Space.jsx +0 -11
  672. package/packages/spin/index.js +0 -12
  673. package/packages/spin/src/Spin.jsx +0 -11
  674. package/packages/statistic/index.js +0 -18
  675. package/packages/statistic/src/Countdown.jsx +0 -11
  676. package/packages/statistic/src/Statistic.jsx +0 -11
  677. package/packages/steps/index.js +0 -18
  678. package/packages/steps/src/Step.jsx +0 -11
  679. package/packages/steps/src/Steps.jsx +0 -11
  680. package/packages/switch/index.js +0 -12
  681. package/packages/switch/src/Switch.jsx +0 -11
  682. package/packages/table-filter/index.js +0 -27
  683. package/packages/table-filter/src/base-search-com/BaseSearch.vue +0 -2442
  684. package/packages/table-filter/src/classification/Classification-com.vue +0 -1756
  685. package/packages/table-filter/src/classification/search-class-name.vue +0 -266
  686. package/packages/table-filter/src/classification/search-professional-model.vue +0 -680
  687. package/packages/table-filter/src/components/TextOverTooltip.vue +0 -107
  688. package/packages/table-filter/src/components/age-com/index.vue +0 -205
  689. package/packages/table-filter/src/components/button-group/ButtonGroup.vue +0 -162
  690. package/packages/table-filter/src/components/button-icon/button-icon.js +0 -33
  691. package/packages/table-filter/src/components/button-icon/getBtnIcon.js +0 -34
  692. package/packages/table-filter/src/components/c-tree-select/tree-select.vue +0 -336
  693. package/packages/table-filter/src/components/drop-button/drop-button.vue +0 -224
  694. package/packages/table-filter/src/components/drop-button/head-btn-icon.js +0 -33
  695. package/packages/table-filter/src/components/drop-view/drop-view.vue +0 -89
  696. package/packages/table-filter/src/components/multi-select/multi-select.vue +0 -215
  697. package/packages/table-filter/src/components/out-quick-search/out-quick-search.vue +0 -337
  698. package/packages/table-filter/src/components/range-age/index.vue +0 -172
  699. package/packages/table-filter/src/components/search-condition/SearchCondition.vue +0 -1819
  700. package/packages/table-filter/src/components/search-condition/fieldTypeList.js +0 -169
  701. package/packages/table-filter/src/components/search-filter/SearchFilter.vue +0 -270
  702. package/packages/table-filter/src/components/search-modal/set-classification.vue +0 -310
  703. package/packages/table-filter/src/components/table-modal/TableModal.vue +0 -463
  704. package/packages/table-filter/src/const/index.js +0 -1
  705. package/packages/table-filter/src/index.vue +0 -584
  706. package/packages/table-filter/src/mixins/mixins.js +0 -682
  707. package/packages/table-filter/src/mixins/tableSearchCon.js +0 -128
  708. package/packages/table-filter/src/mixins/wordBookutils.js +0 -99
  709. package/packages/table-filter/src/quick-search/QuickSearch.vue +0 -2003
  710. package/packages/tabs/index.js +0 -18
  711. package/packages/tabs/src/TabPane.jsx +0 -11
  712. package/packages/tabs/src/Tabs.jsx +0 -11
  713. package/packages/tag/index.js +0 -21
  714. package/packages/tag/src/CheckableTag.jsx +0 -11
  715. package/packages/tag/src/Tag.jsx +0 -11
  716. package/packages/tag/src/TagGroup.vue +0 -622
  717. package/packages/time-picker/index.js +0 -12
  718. package/packages/time-picker/src/TimePicker.jsx +0 -11
  719. package/packages/timeline/index.js +0 -14
  720. package/packages/timeline/src/Item.jsx +0 -11
  721. package/packages/timeline/src/Timeline.jsx +0 -11
  722. package/packages/tooltip/index.js +0 -12
  723. package/packages/tooltip/src/Tooltip.jsx +0 -11
  724. package/packages/transfer/index.js +0 -12
  725. package/packages/transfer/src/Transfer.jsx +0 -11
  726. package/packages/tree/index.js +0 -18
  727. package/packages/tree/src/Tree.jsx +0 -11
  728. package/packages/tree/src/TreeNode.jsx +0 -11
  729. package/packages/tree-select/index.js +0 -18
  730. package/packages/tree-select/src/TreeNode.jsx +0 -11
  731. package/packages/tree-select/src/TreeSelect.jsx +0 -11
  732. package/packages/upload/chunk-upload/chunk-upload-new.vue +0 -1001
  733. package/packages/upload/chunk-upload/vod-chunk-upload.vue +0 -749
  734. package/packages/upload/chunk-upload/vod-upload-modal.vue +0 -100
  735. package/packages/upload/index.js +0 -12
  736. package/packages/upload/src/Upload.jsx +0 -11
  737. package/packages/verification-code/SlideVerify.vue +0 -306
  738. package/packages/verification-code/index.js +0 -17
  739. package/packages/verification-code/verification-code.vue +0 -147
  740. package/src/assets/img/success.png +0 -0
  741. package/src/assets/img/video.png +0 -0
  742. package/src/assets/img/video_default_cover.png +0 -0
  743. package/src/assets/img/video_hover.png +0 -0
  744. package/src/assets/img/video_play_hover.png +0 -0
  745. package/src/component/player-vod/index.vue +0 -57
  746. package/src/component/player-vod/player.vue +0 -188
  747. package/src/component/player-vod/video-list.vue +0 -262
  748. package/src/component/player-vod/video-modal.vue +0 -128
  749. package/src/component/select-pages/index.vue +0 -72
  750. package/src/component/svg/index.vue +0 -59
  751. package/src/core/create.js +0 -6
  752. package/src/core/event.js +0 -23
  753. package/src/core/table-methods.js +0 -444
  754. package/src/directive/flexibleResize.js +0 -151
  755. package/src/directive/scroll.js +0 -230
  756. package/src/global/variable.js +0 -2
  757. package/src/style/normalize.css +0 -424
  758. package/src/style/style.less +0 -49
  759. package/src/utils/UniRTCv2.js +0 -561
  760. package/src/utils/chatFetch.js +0 -61
  761. package/src/utils/clickoutside.js +0 -75
  762. package/src/utils/crypto.js +0 -25
  763. package/src/utils/kty-sdk.js +0 -582
  764. package/src/utils/kty.min-1.0.0.js +0 -14378
  765. package/src/utils/sip-device.js +0 -79
  766. package/src/utils/time-domain.js +0 -193
  767. package/src/utils/utils-map.js +0 -450
  768. package/src/utils/vexutils.js +0 -811
@@ -1,1590 +0,0 @@
1
- <template>
2
- <a-layout-footer style="position: relative;cursor:pointer" v-show="!queueItem || !hideQueueBtns">
3
- <div class="message-operate">
4
- <a-upload
5
- v-if="isShow('PICTURE')"
6
- class="operate-icon"
7
- v-decorator="[
8
- 'upload',
9
- {
10
- valuePropName: 'fileList'
11
- }
12
- ]"
13
- :beforeUpload="beforeUpload"
14
- >
15
- <a-tooltip placement="top">
16
- <template slot="title">{{ i18nText('1.9.181') }}</template>
17
- <svg-icon icon-class="liaotiantupian1" class="toolbar"></svg-icon>
18
- </a-tooltip>
19
- </a-upload>
20
- <a-popover :title="i18nText('1.9.354')" trigger="click" v-model="visible">
21
- <a slot="content">
22
- <div class="emoji-wrapper">
23
- <p v-for="(item, index) in emojiList" :key="index" @click="() => handleEmojiClick(item)" :class="['twa', 'emoji', item]"></p>
24
- </div>
25
- </a>
26
-
27
- <a-tooltip placement="top">
28
- <template slot="title">{{ i18nText('1.9.354') }}</template>
29
- <svg-icon icon-class="liaotianbiaoqing1" @click="showEmoji" class="toolbar" v-if="isShow('SMILINEFACE')"></svg-icon>
30
- </a-tooltip>
31
- </a-popover>
32
- <template v-for="(item, index) in toolbar">
33
- <a-tooltip placement="top" :key="index">
34
- <template slot="title">{{ item.name }}</template>
35
- <svg-icon :icon-class="item.icon" class="toolbar" @click="handleToolBarClick(item)"></svg-icon>
36
- </a-tooltip>
37
- </template>
38
- <!-- 快捷回复 -->
39
- <a-tooltip placement="top" :title="'快捷回复'">
40
- <a-popover trigger="click" overlayClassName="quick-reply" placement="topLeft" v-model="quickShow">
41
- <template slot="content">
42
- <quick-reply :quickShow.sync="quickShow" :quickData="quickData"></quick-reply>
43
- </template>
44
- <svg-icon icon-class="liaotiankuaijiehuifu1" class="toolbar" @click="openQuickData" v-if="isShow('FASTREPLY') && isServer"></svg-icon>
45
- </a-popover>
46
- </a-tooltip>
47
- <a-tooltip :title="'语音通话'">
48
- <svg-icon icon-class="liaotianyuyindianhua" @click="handleVideoClick('voice')" class="toolbar" v-if="isShow('VOICE_CALL')"></svg-icon>
49
- <!-- <img
50
- width="20"
51
- src="../img/multi-voice.png"
52
- @click="handleVideoClick('voice')"
53
- v-if="isShow('VOICE_CALL') && isServer"
54
- /> -->
55
- </a-tooltip>
56
- <a-tooltip :title="'发送语音'">
57
- <svg-icon icon-class="liaotianyuyin1" @click="handleVoice(true)" class="toolbar" :class="{ 'click-voice': showVoice }" v-if="isShow('VOICE')"></svg-icon>
58
- <!-- <img
59
- width="20"
60
- src="../img/multi-video.png"
61
- @click="handleVideoClick('video')"
62
- v-if="isShow('VIDEO') && isServer"
63
- /> -->
64
- </a-tooltip>
65
- <a-tooltip :title="'视频通话'">
66
- <svg-icon icon-class="liaotianshipin1" @click="handleVideoClick('video')" class="toolbar" v-if="isShow('VIDEO')"></svg-icon>
67
- <!-- <img
68
- width="20"
69
- src="../img/multi-video.png"
70
- @click="handleVideoClick('video')"
71
- v-if="isShow('VIDEO') && isServer"
72
- /> -->
73
- </a-tooltip>
74
- </div>
75
- <div class="message" style="text-align: left">
76
- <div class="content-edit">
77
- <div
78
- ref="contentEdit"
79
- @click="saveRange"
80
- @keyup.exact="saveRange"
81
- @change="changeData"
82
- @input="handleInput"
83
- @compositionstart="() => (this.ping = true)"
84
- @compositionend="() => (this.ping = false)"
85
- @keydown="handleKeyDown"
86
- @paste="handlePaste"
87
- contenteditable="true"
88
- ></div>
89
- </div>
90
- <span class="prompt">Enter {{ i18nText('1.2.1.11.6') }}, Ctrl + Enter {{ i18nText('1.9.356') }}</span>
91
- <a-button :disabled="sendDisabled" class="message-send" @click="handleMsgSend">{{ i18nText('1.2.1.11.6') }}</a-button>
92
- </div>
93
- <div id="canvas-wrapper" style="display: none">
94
- <canvas id="canvas"></canvas>
95
- </div>
96
- <template v-if="showOverlay">
97
- <div class="overlay" v-if="(!onChating || sessionEnd) && !queueItem"></div>
98
- </template>
99
- <div class="queue-page" v-if="queueItem">
100
- <div v-if="accessDesc" class="queue-tips">{{ accessDesc }}</div>
101
- <div class="queue-btns">
102
- <div v-if="enableTransfer" class="toSession" @click="handleOpenTransfer">
103
- {{ i18nText('1.10.201') }}
104
- </div>
105
- <div class="toSession primary" @click="handleAccess">
106
- {{ accessText || i18nText('1.9.352') }}
107
- </div>
108
- <div v-if="enableRefuse" class="toSession danger" @click="openRefuseReason">
109
- {{ i18nText('1.9.353') }}
110
- </div>
111
- </div>
112
- </div>
113
- <!-- 操作栏弹窗 -->
114
- <a-modal
115
- :wrapClassName="isFullScreen ? 'chat-footer-modal-big' : 'chat-footer-modal-small'"
116
- :title="modalData.name"
117
- :visible="modalShow"
118
- :maskClosable="false"
119
- :mask="true"
120
- :width="isFullScreen ? '100%' : '80%'"
121
- destroyOnClose
122
- :okText="i18nText('1.2.1.11.6')"
123
- :footer="null"
124
- @cancel="
125
- () => {
126
- this.modalShow = false;
127
- }
128
- "
129
- @ok="handleOk"
130
- >
131
- <iframe id="toolbarIframe" v-if="modalData.targetType === 'LINK_ADDRESS'" width="100%" height="100%" frameborder="0" :src="modalData.address" allow="camera;midi"></iframe>
132
- </a-modal>
133
- <!-- 接入拦截 -->
134
- <a-modal
135
- :title="accessInterceptTitle"
136
- :visible="accessIntercept"
137
- :maskClosable="false"
138
- :mask="true"
139
- :footer="null"
140
- destroyOnClose
141
- :width="600"
142
- :bodyStyle="{ height: '280px' }"
143
- @cancel="
144
- () => {
145
- this.accessIntercept = false;
146
- }
147
- "
148
- >
149
- <iframe width="100%" height="100%" frameborder="0" :src="accessInterceptUrl"></iframe>
150
- </a-modal>
151
- <!-- 语音消息 -->
152
- <voice v-if="showVoice" :showVoice="showVoice" @closeVoice="handleVoice"></voice>
153
- <ModalUserTransfer v-if="enableTransfer" :title="i18nText('1.10.201')" :visible.sync="transferVisible" :assemblyId="assemblyId" @ok="handleTransfer" />
154
- <ModalRefuseReason v-if="refuseVisible" :visible.sync="refuseVisible" :reasonList="refuseReasonList" @ok="handleRefuse" />
155
- </a-layout-footer>
156
- </template>
157
-
158
- <script>
159
- import { Layout, Tooltip, Upload, Modal, Popover, Button } from 'ant-design-vue';
160
- import SvgIcon from '@/component/svg/index.vue';
161
- import ImageCompress from '../utils/compressImage';
162
- import { parseParams } from '../utils/panelsetting';
163
-
164
- import { mapState, mapGetters, mapMutations, mapActions } from '../store/helper';
165
- import fetch, { qs } from '@/utils/chatFetch';
166
- import QuickReply from './quickReply';
167
- import voice from './voice';
168
- import ModalUserTransfer from '../components/modal-user-transfer';
169
- import ModalRefuseReason from '../components/modal-refuse-reason';
170
- import vexutils from '@/utils/vexutils';
171
- export default {
172
- inject: ['store', 'i18nText', 'dispatchEvent', 'registerEvent', 'unregisterEvent'],
173
- components: {
174
- AModal: Modal,
175
- [Layout.Footer.name]: Layout.Footer,
176
- [Tooltip.name]: Tooltip,
177
- [Upload.name]: Upload,
178
- [Button.name]: Button,
179
- [Popover.name]: Popover,
180
- SvgIcon,
181
- ModalRefuseReason,
182
- ModalUserTransfer,
183
- QuickReply,
184
- voice
185
- },
186
- props: {
187
- // 隐藏排队状态底部信息
188
- hideQueueBtns: {
189
- type: Boolean,
190
- default: false
191
- },
192
- validTalkingEnv: {
193
- type: Function
194
- },
195
- curChatType: {
196
- type: String
197
- },
198
- clientFinish: {
199
- type: Boolean,
200
- default: true
201
- },
202
- addvisible: {
203
- type: Boolean,
204
- default: false
205
- },
206
- isShowVoice: {
207
- type: Boolean,
208
- default: false
209
- }
210
- },
211
- data() {
212
- return {
213
- // message: "",
214
- visible: false,
215
- modalShow: false,
216
- modalData: {},
217
- ping: false,
218
- templateId: null, // 卡片模板
219
- isFullScreen: false,
220
- emojiList: require('../utils/emoji.json'),
221
- quickData: [],
222
- quickShow: false,
223
- screenshot: false,
224
- screenshotFile: null,
225
- timer: null,
226
- accessIntercept: false,
227
- curToolbarItem: {},
228
- showVoice: false,
229
- transferVisible: false,
230
- refuseVisible: false,
231
-
232
- apiResult: {}, // 前置条件的返回值
233
- };
234
- },
235
- computed: {
236
- ...mapGetters([
237
- 'userInfo',
238
- 'assemblyId',
239
- 'sessionId',
240
- 'serviceId',
241
- 'onChating',
242
- 'roomId',
243
- 'isServer',
244
- 'assemblySetting',
245
- 'chatType',
246
- 'sessionEnd',
247
- 'clientParams',
248
- 'footerMessage',
249
- 'queueItem',
250
- 'sessionType',
251
- 'groupMembers',
252
- 'curScrollItem'
253
- ]),
254
- ...mapState({
255
- classify: state => state.lastClassify || state.classify
256
- }),
257
- message() {
258
- return this.footerMessage;
259
- },
260
- sendDisabled() {
261
- return this.message.length === 0;
262
- },
263
- orgId() {
264
- return this.userInfo?.sysParams?.orgId;
265
- },
266
- userId() {
267
- return this.userInfo?.sysParams?.userId;
268
- },
269
- toolbar() {
270
- if (!this.isServer) return [];
271
- let toolbar = this.assemblySetting.toolbar || [];
272
- toolbar = toolbar.filter(item => {
273
- const { source, isChecked } = item;
274
- if (source === 'PC' && isChecked === 'Y') {
275
- const showCondition = item.showCondition || [];
276
- const i = showCondition.findIndex(({ p_name, p_value }) => {
277
- const params = this.clientParams;
278
- const value = params[p_name];
279
- if (p_value.startsWith('form.')) {
280
- return value !== p_name[p_value.slice(5)];
281
- }
282
- return value !== p_value;
283
- });
284
- return i < 0;
285
- }
286
- return false;
287
- });
288
- return toolbar;
289
- },
290
- isListClassify() {
291
- return this.assemblySetting.isListClassify === 'Y';
292
- },
293
- showOverlay() {
294
- return this.curChatType != 'robot' || this.clientFinish;
295
- },
296
- accessText() {
297
- let obj = this.assemblySetting.serverSetting.serverInfo.filter(item => item.key === 'ongoingButton')[0];
298
- return obj?.value;
299
- },
300
- accessDesc() {
301
- let obj = this.assemblySetting.serverSetting.serverInfo.filter(item => item.key === 'ongoingDescription')[0];
302
- return obj?.value;
303
- },
304
- accessInterceptObj() {
305
- let obj = this.assemblySetting.accessInterceptSetting?.filter(item => item.source === 'PC');
306
- if (obj && obj[0]) {
307
- return obj[0];
308
- }
309
- return undefined;
310
- },
311
- // 拦截url
312
- accessInterceptUrl() {
313
- const { accessInterceptObj: obj, apiResult } = this;
314
- if (obj) {
315
- return this.getLinkAddress(obj,{result:apiResult});
316
- }
317
- return '';
318
- },
319
- // 拦截title
320
- accessInterceptTitle() {
321
- const { accessInterceptObj: obj } = this;
322
- if (obj) {
323
- let res = obj.titleI18n ? this.i18nText(obj.titleI18n) : obj.title;
324
- return res || '接入拦截';
325
- }
326
- return '接入拦截';
327
- },
328
- // 是否开启 排队转接
329
- enableTransfer() {
330
- if (this.assemblySetting.type === 'single') {
331
- let setting = null;
332
- if (this.isListClassify) {
333
- const classify = this.classify;
334
- const { listClassify = [] } = this.assemblySetting;
335
- const target = listClassify.find(item => item.classify === classify);
336
- setting = target ? target.serverFunctionSetting : null;
337
- } else {
338
- setting = this.assemblySetting?.serverSetting?.functionSetting;
339
- }
340
- if (setting) {
341
- const v = setting.find(item => item.function === 'TRANSFER_BEFORE');
342
- return v ? v.isChecked == 'Y' : false;
343
- }
344
- }
345
- return false;
346
- },
347
- enableRefuse() {
348
- let setting = null;
349
- if (this.isListClassify) {
350
- const classify = this.classify;
351
- const { listClassify = [] } = this.assemblySetting;
352
- const target = listClassify.find(item => item.classify === classify);
353
- setting = target ? target.serverFunctionSetting : null;
354
- } else {
355
- setting = this.assemblySetting?.serverSetting?.functionSetting;
356
- }
357
- if (setting) {
358
- const v = setting.find(item => item.function === 'ACCESS_REFUSE');
359
- return v ? v.isChecked == 'Y' : false;
360
- }
361
- return false;
362
- },
363
- refuseReasonList() {
364
- const list = this.assemblySetting?.refuseReasonSetting?.list || [];
365
- return list.filter(v => !!v.text);
366
- }
367
- },
368
-
369
- mounted() {
370
- this.bindEvents();
371
- },
372
- methods: {
373
- ...mapMutations([
374
- 'setLastClassify',
375
- 'setSessionTimer',
376
- 'setScrollQueueId',
377
- 'setCurScrollItem',
378
- 'setIsAppendMsg',
379
- 'setMessage',
380
- 'setShowVideo',
381
- 'setCaller',
382
- 'setMedicalOrPrescription',
383
- 'setModalVisible',
384
- 'setFooterMessage',
385
- 'setQueueItem',
386
- 'setSessionId',
387
- 'setCurrentTab',
388
- 'setClientId',
389
- 'setOnChating',
390
- 'setClientParams',
391
- 'setSessionHistoryList',
392
- 'setSessionEnd',
393
- 'setQuestionId',
394
- 'setDictionaryKey',
395
- 'setMultiVideoShow',
396
- 'setVideoStatus',
397
- 'setVideoMode',
398
- 'setAddMemberType',
399
- 'setShowAudio',
400
- 'setVideoMembers',
401
- 'setLastCurrentTab',
402
- 'setIsRecorderVoice',
403
- 'setVideoData',
404
- 'setSessionType'
405
- ]),
406
- ...mapMutations({
407
- clearMsgList: 'setMsgList'
408
- }),
409
- ...mapActions(['sendMessage', 'sendRobotMessage', 'handleBotChat', 'setMsgList', 'setChatTimer']),
410
- deleteStyle(value) {
411
- // 去掉样式
412
- value = value.replace(/style\s*?=\s*?(['"])[\s\S]*?\1/g, '');
413
- value = value.replace(/data\s*?=\s*?(['"])[\s\S]*?\1/g, '');
414
- value = value.replace(/class\s*?=\s*?(['"])[\s\S]*?\1/g, match => {
415
- if (match.includes('twa')) {
416
- return match;
417
- } else {
418
- return '';
419
- }
420
- });
421
- value = value.replace(/face\s*?=\s*?(['"])[\s\S]*?\1/g, '');
422
- value = value.replace(/<a/g, '<span');
423
- value = value.replace(/a>/g, 'span>');
424
- value = value.replace(/<i/g, '<span');
425
- value = value.replace(/i>/g, 'span>');
426
- value = value.replace(/<u/g, '<span');
427
- value = value.replace(/u>/g, 'span>');
428
- value = value.replace(/<strong/g, '<span');
429
- value = value.replace(/strong>/g, 'span>');
430
- value = value.replace(/<h\d/g, '<span');
431
- value = value.replace(/h\d>/g, 'span>');
432
- value = value.replace(/<b>/g, '<span>');
433
- value = value.replace(/b>/g, 'span>');
434
- value = value.replace(/<font/g, '<span');
435
- value = value.replace(/font>/g, 'span>');
436
- return value;
437
- },
438
- // 更新 message值 (未用v-html,修改后需要手动设置聊天框html内容)
439
- updateMessage(value) {
440
- this._editValue = value;
441
- this.setFooterMessage(`${value}`);
442
- const editRef = this.$refs.contentEdit;
443
- if (!editRef) return;
444
- editRef.innerHTML = value;
445
- },
446
- // 根据 聊天框 html节点内容 设置 message值 (未用v-html,html内容更改需主动设置message值)
447
- setMessageByHTML() {
448
- const editRef = this.$refs.contentEdit;
449
- if (!editRef) return;
450
- const message = editRef.innerHTML;
451
- this._editValue = message;
452
- this.setFooterMessage(`${message}`);
453
- },
454
-
455
- showEmoji() {
456
- // this.visible = true;
457
- },
458
-
459
- isShow(type) {
460
- if (type === 'SMILINEFACE' && this.curChatType === 'robot') return true;
461
- if (this.isListClassify) {
462
- let label;
463
- if (this.isServer) {
464
- label = 'serverFunctionSetting';
465
- } else {
466
- label = 'clientFunctionSetting';
467
- }
468
- let classifyItem = this.assemblySetting.listClassify.filter(item => item.classify === this.classify);
469
- if (!classifyItem || !classifyItem.length) return;
470
- let funs = classifyItem[0][label] || [];
471
- return funs.find(item => item.function === type)?.isChecked === 'Y';
472
- }
473
- let label;
474
- if (this.isServer) {
475
- label = 'serverSetting';
476
- } else {
477
- label = 'clientSetting';
478
- }
479
- let funs = this.assemblySetting[label]?.functionSetting || [];
480
- return funs.find(item => item.function === type)?.isChecked === 'Y';
481
- },
482
-
483
- handleEmojiClick(item) {
484
- let emojiHtml = `<p contenteditable="false" class="twa emoji ${item}"></p>&nbsp`;
485
- this.insertToEdit(emojiHtml);
486
- },
487
- /* edit-content光标定位 */
488
- resetSelection() {
489
- let edit = this.$refs.contentEdit;
490
- let sel, range;
491
- if (window.getSelection && document.createRange) {
492
- range = document.createRange();
493
- range.selectNodeContents(edit);
494
- range.collapse(true);
495
- range.setEnd(edit, edit.childNodes.length);
496
- range.setStart(edit, edit.childNodes.length);
497
- sel = window.getSelection();
498
- sel.removeAllRanges();
499
- sel.addRange(range);
500
- }
501
- },
502
-
503
- insertToEdit(value, isEditing) {
504
- const { _editSel, _editRange } = this;
505
- let sel, range;
506
- if (window.getSelection) {
507
- if (!isEditing) {
508
- if (_editRange) {
509
- sel = _editSel;
510
- range = _editRange;
511
- } else {
512
- // 初始状态没有focus聊天框,需要手动focus 获取光标位置
513
- const editRef = this.$refs.contentEdit;
514
- if (!editRef) return;
515
- editRef.focus();
516
- this.saveRange();
517
- sel = this._editSel;
518
- range = this._editRange;
519
- }
520
- } else {
521
- sel = window.getSelection();
522
- range = sel.getRangeAt(0);
523
- }
524
- range.deleteContents();
525
- let frag;
526
- if (range.createContextualFragment) {
527
- frag = range.createContextualFragment(value);
528
- } else {
529
- const el = document.createElement('div');
530
- el.innerHTML = value;
531
- frag = document.createDocumentFragment();
532
- let node, lastNode;
533
- while ((node = el.firstChild)) {
534
- lastNode = frag.appendChild(node); // 之所以能终止循环,是因为el的child一旦添加到dom后,作为fragment里的的child就没了。那么el.firstChild就会返回null
535
- }
536
- }
537
- const lastNode = frag.lastChild;
538
- range.insertNode(frag);
539
- // 把光标挪到插入的元素后面
540
- range.setStartAfter(lastNode);
541
- sel.removeAllRanges();
542
- sel.addRange(range);
543
- } else {
544
- range = isEditing || !_editRange ? document.selection.createRange() : _editRange;
545
- range.pasteHTML(value);
546
- range.select();
547
- }
548
- this.setMessageByHTML();
549
- },
550
- saveRange() {
551
- if (window.getSelection) {
552
- this._editSel = window.getSelection();
553
- this._editRange = this._editSel.getRangeAt(0);
554
- } else {
555
- this._editRange = document.selection.createRange();
556
- }
557
- },
558
- handleInput(e) {
559
- if (e.inputType === 'deleteContentBackward') {
560
- this.screenshot = false;
561
- this.screenshotFile = null;
562
- }
563
- setTimeout(() => {
564
- if (this.ping || this.pasteTimer) return;
565
- this.setMessageByHTML();
566
- }, 0);
567
- },
568
- changeData(e) {
569
- let message = e.srcElement.innerHTML;
570
- if (e.inputType === 'deleteContentBackward') {
571
- let div = document.createElement('div');
572
- div.innerHTML = e.srcElement.innerHTML;
573
- if (div.lastChild?.className?.startsWith('twa emoji')) {
574
- div.removeChild(div.lastChild);
575
- message = div.innerHTML;
576
- }
577
- this.screenshot = false;
578
- this.screenshotFile = null;
579
- }
580
-
581
- setTimeout(() => {
582
- if (this.ping) return;
583
- this.setFooterMessage(`${message}`);
584
- this.$nextTick().then(() => {
585
- this.resetSelection();
586
- this.ping = false;
587
- });
588
- }, 0);
589
- },
590
-
591
- beforeUpload(data) {
592
- let { type } = data;
593
- if (!type.startsWith('image/')) {
594
- this.$message.warning(`${this.i18nText('1.9.357')}!`);
595
- return;
596
- }
597
- let that = this;
598
- this.$confirm({
599
- title: this.i18nText('1.9.331'),
600
- content: `${this.i18nText('1.9.358')}?`,
601
- okText: '确定',
602
- cancelText: '取消',
603
- onOk() {
604
- return that.uploadImg(data);
605
- },
606
- onCancel() {
607
- return false;
608
- }
609
- });
610
- },
611
-
612
- /* 压缩上传 */
613
- uploadImg(file) {
614
- const hide = this.$message.loading(`${this.i18nText('1.9.199')}...`, 0);
615
- new ImageCompress(file, 'canvas', fetch, {
616
- url: '/hospitalUpload/picture'
617
- })
618
- .execute()
619
- .then(({ data }) => {
620
- if (data.result === 'SUCCESS') {
621
- this.doMsgSend(1, data.map.url);
622
- hide();
623
- } else {
624
- hide();
625
- this.$message.info(data.msg || `${this.i18nText('1.9.174')}!`);
626
- }
627
- })
628
- .catch(() => {
629
- hide();
630
- this.$message.info(`${this.i18nText('1.9.174')}!`);
631
- })
632
- .finally(() => {
633
- this.screenshotFile = null;
634
- this.screenshot = false;
635
- this.updateMessage('');
636
- });
637
- },
638
-
639
- /* 发送消息 */
640
- doMsgSend(type, content) {
641
- let body = {
642
- content: type === 0 ? `<div>${content}</div>` : content,
643
- type: type
644
- };
645
- if (this.curChatType === 'robot') {
646
- // this.setQuestionId("");
647
- // this.setDictionaryKey("");
648
- this.sendRobotMessage(content);
649
- } else {
650
- this.sendMessage(body);
651
- }
652
- },
653
- handleMsgSend() {
654
- // 截图上传
655
- if (this.screenshot) {
656
- this.uploadImg(this.screenshotFile);
657
- return;
658
- }
659
- if (this.chatType === 'bot') {
660
- this.handleBotChat(this.message).then(isHuman => {
661
- if (isHuman) {
662
- this.$parent.$parent.$parent.initWebSocket();
663
- }
664
- this.updateMessage('');
665
- });
666
- return;
667
- }
668
-
669
- const editRef = this.$refs.contentEdit;
670
- if (editRef) {
671
- const message = editRef.innerText;
672
- if (message.length > 2000) {
673
- this.$message.warning('请控制在2000字以内!');
674
- return;
675
- }
676
- }
677
- // let reg = /(.*?)(<div><br><\/div>)*?$/;
678
- let reg = /(.*?)(<div>(<span>)?<br>(<\/span>)?<\/div>)*?$/;
679
- let message = this.message.match(reg);
680
- if (message[2]) {
681
- this.updateMessage(message[1]);
682
- }
683
- this.updateMessage(this.message.replace(/style/g, 'data'));
684
- if (this.message.trim()) {
685
- this.doMsgSend(0, this.message);
686
- } else {
687
- return this.$message.warning(this.i18nText('1.9.359'));
688
- }
689
- this.updateMessage('');
690
- },
691
- handleKeyDown(e) {
692
- // 判断enter 发送还是换行
693
- if (e.keyCode === 13) {
694
- e.preventDefault();
695
- if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) {
696
- this.handleWrap();
697
- } else {
698
- this.handleMsgSend();
699
- }
700
- }
701
- },
702
- handleWrap() {
703
- let ctn = `<br>`;
704
- // 非ie环境 元素后面没有node的时候换行需要两个<br>
705
- if (!/msie/.test(navigator.userAgent) && window.getSelection) {
706
- const focusNode = window.getSelection().focusNode;
707
- let nextSibling = focusNode.nextSibling;
708
- if (focusNode === this.$refs.contentEdit) {
709
- nextSibling = focusNode.childNodes[0];
710
- }
711
- do {
712
- if (!nextSibling || nextSibling.nodeValue || nextSibling.tagName == 'BR') break;
713
- } while ((nextSibling = nextSibling.nextSibling));
714
- if (!nextSibling) {
715
- ctn += ctn;
716
- }
717
- }
718
- this.insertToEdit(ctn);
719
- this.$nextTick().then(() => {
720
- this.ping = false;
721
- });
722
- },
723
- handleVideoClick(type) {
724
- // this.curScrollItem.type 2多人 1单人
725
- if (this.sessionType === 2) {
726
- this.$emit('update:addvisible', true);
727
- this.setAddMemberType(2);
728
- this.setVideoMode(type === 'voice' ? 1 : 2);
729
- } else {
730
- const openTalking = sip => {
731
- this.setShowAudio(true);
732
- this.setVideoMode(type === 'voice' ? 1 : 2);
733
- this.$nextTick(() => {
734
- this.setVideoMembers([]);
735
- });
736
- this.setVideoData({
737
- callerSipKey: sip?.username,
738
- callerSipName: sip?.name
739
- });
740
- };
741
- if (this.validTalkingEnv) {
742
- this.validTalkingEnv().then(res => {
743
- if (res.status) {
744
- openTalking(res.sip);
745
- }
746
- });
747
- } else {
748
- openTalking();
749
- }
750
- }
751
- // this.groupMembers.length > 2
752
- return;
753
- },
754
- handleVoice(val) {
755
- val && this.setIsRecorderVoice(true);
756
- this.showVoice = val;
757
- },
758
- showPrescription() {
759
- this.setModalVisible(true);
760
- this.setMedicalOrPrescription('prescription');
761
- },
762
- showMedicalRecord() {
763
- this.setModalVisible(true);
764
- this.setMedicalOrPrescription('medical');
765
- },
766
- beofreToolBarClick(item) {
767
- // 操作栏前置条件
768
- return new Promise((resolve, reject) => {
769
- const { precondition } = item;
770
- if (precondition) {
771
- this.requestPreCondition(precondition)
772
- .then(res => {
773
- const result = res.data.result === 'SUCCESS';
774
- !result && this.$message.error(res.data.resultMsg || this.i18nText('1.9.22'));
775
- resolve(result);
776
- })
777
- .catch(error => {
778
- this.$message.error(error.resultMsg || this.i18nText('1.9.22'));
779
- resolve(false);
780
- });
781
- } else {
782
- resolve(true);
783
- }
784
- });
785
- },
786
- async handleToolBarClick(item) {
787
- const validate = await this.beofreToolBarClick(item);
788
- if (!validate) return;
789
- let { openMode, name, templateId, isFullScreen } = item;
790
- this.dispatchEvent('click_toolbar', { ...item });
791
- if (!item.address) return;
792
- this.curToolbarItem = item;
793
- this.templateId = templateId;
794
- this.isFullScreen = isFullScreen === 'Y';
795
- let address = this.getLinkAddress(item);
796
- if (openMode === 'WINDOW') {
797
- window.open(address, name);
798
- return;
799
- }
800
- if (openMode === 'EJECT') {
801
- this.modalShow = true;
802
- this.modalData = Object.assign({}, item, { address });
803
- this.$nextTick().then(() => {
804
- window.addEventListener('message', this.iframeEvent);
805
- });
806
- return;
807
- }
808
- },
809
- iframeEvent(event) {
810
- const method = event?.data?.method;
811
- this[method]?.(event);
812
- },
813
- // 发送
814
- handleParentMessageSend({ data, source, origin }) {
815
- let params = {
816
- assemblyId: this.assemblyId,
817
- sessionId: this.sessionId,
818
- orgId: this.orgId
819
- };
820
- params = Object.assign(params, data.data);
821
- let { actionType } = this.curToolbarItem;
822
- actionType && Object.assign(params, { actionType });
823
- return fetch.post('/chat/access/sendToolBarData', qs.stringify(params)).then(({ data }) => {
824
- if (data.result === 'SUCCESS') {
825
- source.postMessage({ status: 0, resultMsg: data.resultMsg }, origin);
826
- } else {
827
- source.postMessage({ status: 1, resultMsg: data.resultMsg }, origin);
828
- }
829
- });
830
- },
831
- // 关闭
832
- handleClose() {
833
- this.modalShow = false;
834
- window.removeEventListener('message', this.iframeEvent);
835
- },
836
- getLinkAddress(item,paramsData= {}) {
837
- let t = {talbe:{},form:{},sys:{}};
838
- Object.assign(t,paramsData ||{})
839
- let { address = '', params = [] } = item;
840
- let urlParams = [];
841
- params.forEach(({ p_name, p_value }) => {
842
- let value;
843
- if (p_value.startsWith('form.')) {
844
- value = this.clientParams[p_value.slice(5)];
845
- } else if( /\${result.(.*?)\}/g.test(p_value)) {
846
- value = vexutils.handleSysParams(p_value,t)
847
- } else {
848
- value = p_value;
849
- }
850
- urlParams.push(`${p_name}=${value}`);
851
- });
852
- if(/\${result.(.*?)\}/g.test(address)){
853
- address = vexutils.handleSysParams(address,t)
854
- }
855
- let { actionType } = this.curToolbarItem;
856
- actionType && urlParams.push(`actionType=${actionType}`);
857
- if (address.includes('?')) {
858
- address += `&${urlParams.join('&')}`;
859
- } else {
860
- address += `?${urlParams.join('&')}`;
861
- }
862
- return address;
863
- },
864
- handleOk() {
865
- window.handleParentMessageSend();
866
- },
867
- // 剪切板粘贴
868
- handlePaste(e) {
869
- const cbd = e.clipboardData;
870
- const ua = window.navigator.userAgent;
871
- // 如果是 Safari 直接 return
872
- if (!(e.clipboardData && e.clipboardData.items)) {
873
- this.handlePasteText(e);
874
- return;
875
- }
876
- if (
877
- cbd.items &&
878
- cbd.items.length === 2 &&
879
- cbd.items[0].kind === 'string' &&
880
- cbd.items[1].kind === 'file' &&
881
- cbd.types &&
882
- cbd.types.length === 2 &&
883
- cbd.types[0] === 'text/plain' &&
884
- cbd.types[1] === 'Files' &&
885
- ua.match(/Macintosh/i) &&
886
- Number(ua.match(/Chrome\/(\d{2})/i)[1]) < 49
887
- ) {
888
- this.handlePasteText(e);
889
- return;
890
- }
891
- const hasFile = this.handleImgPaste(cbd.items);
892
- if (hasFile) {
893
- e.stopPropagation();
894
- e.preventDefault();
895
- return;
896
- }
897
- this.handlePasteText(e);
898
- },
899
- handleImgPaste(files) {
900
- let hasFile = false;
901
- for (let i = 0; i < files.length; i++) {
902
- let item = files[i];
903
- if (item.kind == 'file') {
904
- hasFile = true;
905
- // blob 就是从剪切板获得的文件,可以进行上传或其他操作
906
- const blob = item.getAsFile();
907
- if (blob.size === 0) {
908
- return;
909
- }
910
- const reader = new FileReader();
911
- const imgs = new Image();
912
- imgs.file = blob;
913
- reader.onload = e => {
914
- imgs.src = e.target.result;
915
- imgs.width = '150';
916
- this.updateMessage(this.htmlToString(imgs));
917
- this.$nextTick().then(() => {
918
- this.resetSelection();
919
- this.screenshot = true;
920
- this.screenshotFile = blob;
921
- });
922
- };
923
- reader.readAsDataURL(blob);
924
- }
925
- }
926
- return hasFile;
927
- },
928
- // 处理文本粘贴
929
- handlePasteText() {
930
- if (this.pasteTimer) clearTimeout(this.pasteTimer);
931
- const ele = this.$refs.contentEdit;
932
- if (!ele) return;
933
- let before = ele.innerHTML;
934
- this.pasteTimer = setTimeout(() => {
935
- function getPasteHtml(before, after) {
936
- // 计算粘贴后html不同的位置起点和终点(插入"abc",则得出sPos为0,ePos为2)
937
- var sPos = -1,
938
- ePos = -1;
939
- for (var i = 0, len = after.length; i < len; ++i) {
940
- if (sPos == -1 && before.substr(i, 1) != after.substr(i, 1)) sPos = i;
941
- if (ePos == -1 && before.substr(before.length - i - 1, 1) != after.substr(after.length - i - 1, 1)) ePos = i;
942
-
943
- if ((sPos != -1 && ePos != -1) || len - 1 - ePos <= sPos) break;
944
- }
945
- if (sPos == -1 || ePos == -1) return;
946
- ePos = len - 1 - ePos;
947
-
948
- if (ePos <= sPos) {
949
- // 遇到像ab,粘贴ab后变成abab这种了,这是需要从sPos开始往后找,找到和before一样的为止
950
- i = sPos;
951
- var beforeSPosNext = before.substr(i + 1, 10); // 取后10个来对比,如果没有10个,则取最多
952
- while (++i < len) {
953
- if (beforeSPosNext == after.substr(i, beforeSPosNext.length)) {
954
- ePos = i;
955
- break;
956
- }
957
- }
958
- i == len && (ePos = len - 1);
959
- }
960
- // 如果有<和>,则需要计算在内
961
- if (after.substr(sPos - 1, 1) == '<') --sPos;
962
- if (after.substr(ePos + 1, 1) == '>') ++ePos;
963
-
964
- // 分段获得文本,前半段 插入段 后半段
965
- var pastedText = after.substring(sPos, ePos + 1),
966
- formerText = after.substr(0, sPos),
967
- latterText = after.substr(sPos + pastedText.length);
968
-
969
- // 判断formerText和pastedText是否闭合了
970
- var lastLT = formerText.lastIndexOf('<'),
971
- lastGT = formerText.lastIndexOf('>');
972
- if (lastGT < lastLT) {
973
- // 标签断了xxxxx<
974
- pastedText = formerText.slice(lastLT) + pastedText;
975
- formerText = formerText.slice(0, lastLT);
976
- }
977
-
978
- lastLT = pastedText.lastIndexOf('<');
979
- lastGT = pastedText.lastIndexOf('>');
980
- if (lastGT < lastLT) {
981
- // 标签断了<xxxxxx
982
- var _insertGT = latterText.indexOf('>') + 1;
983
- pastedText += latterText.slice(0, _insertGT);
984
- latterText = latterText.slice(_insertGT);
985
- }
986
- return [formerText, pastedText, latterText];
987
- }
988
- var after = ele.innerHTML;
989
- const data = getPasteHtml(before, after);
990
- if (data) {
991
- let [formerText, insertText, latterText] = data;
992
- insertText = this.deleteStyle(insertText);
993
- ele.innerHTML = formerText + insertText + "<span class='pasteCaretPosHelper'></span>" + latterText; // 插入pasteCaretPosHelper以帮助定位光标位置
994
- var pasteCaretPosHelper = ele.querySelector('.pasteCaretPosHelper'),
995
- range,
996
- selection;
997
- if (pasteCaretPosHelper) {
998
- if (document.createRange) {
999
- // Chrome, IE 9+
1000
- range = document.createRange();
1001
- range.setStartAfter(pasteCaretPosHelper);
1002
- range.collapse(false);
1003
- selection = window.getSelection();
1004
- selection.removeAllRanges();
1005
- selection.addRange(range);
1006
- } else if (document.selection) {
1007
- // IE 8 and lower
1008
- range = document.body.createTextRange();
1009
- range.moveToElementText(pasteCaretPosHelper);
1010
- range.collapse(false);
1011
- range.select();
1012
- }
1013
- pasteCaretPosHelper.parentNode.removeChild(pasteCaretPosHelper);
1014
- }
1015
- }
1016
- this.setMessageByHTML();
1017
- this.saveRange();
1018
- this.pasteTimer = null;
1019
- }, 50);
1020
- },
1021
- // 拖拽上传图片
1022
- handleFiles(files) {
1023
- this.handleImgPaste(files);
1024
- },
1025
- htmlToString(dom) {
1026
- let div = document.createElement('div');
1027
- div.appendChild(dom);
1028
- return div.innerHTML;
1029
- },
1030
- /**
1031
- * 接入拦截
1032
- */
1033
- handleAccessIntercept(result) {
1034
- let { data } = result;
1035
- let { status, data: param } = data;
1036
- if (status === 1) {
1037
- this.accessChat(param).finally(() => {
1038
- this.accessIntercept = false;
1039
- });
1040
- } else {
1041
- this.accessIntercept = false;
1042
- }
1043
- },
1044
- /* 客服点击接入按钮进入会话 */
1045
- async handleAccess() {
1046
- this.apiResult = {};
1047
- let accessInterceptValidate = this.handleAccessInterceptValue();
1048
- let data = null; // 接口参数
1049
- if (accessInterceptValidate && this.accessInterceptUrl) {
1050
- const r = await this.beforeAccessIntercept();
1051
- if (!r) return;
1052
- if (r.value == 'Y') {
1053
- this.accessIntercept = true;
1054
- this.$nextTick().then(() => {
1055
- window.addEventListener('message', this.handleAccessIntercept);
1056
- });
1057
- return;
1058
- } else {
1059
- data = r.data; // 获取接入拦截返回参数
1060
- }
1061
- }
1062
- clearTimeout(this.timer);
1063
- this.timer = setTimeout(() => {
1064
- this.accessChat(data);
1065
- }, 300);
1066
- },
1067
- // 条件转换请求
1068
- requestPreCondition(precondition) {
1069
- const { targetType, targetName, targetId, params } = precondition;
1070
- const data = parseParams(params, this.clientParams);
1071
- let url = '';
1072
- if (targetType === 'API') {
1073
- data.url = targetName;
1074
- url = `/api/executeApi`;
1075
- } else {
1076
- data.sqlEnterId = targetId;
1077
- url = `/form/saveSqlEnter`;
1078
- }
1079
- return fetch.post(url, qs.stringify(data));
1080
- },
1081
- async beforeAccessIntercept() {
1082
- function parseResult(r) {
1083
- let value = 'Y';
1084
- const data = r.split('&').reduce((obj, str) => {
1085
- const [k, v] = str.split('=');
1086
- if (k) {
1087
- if (k == 'value') {
1088
- value = v || value;
1089
- } else {
1090
- obj = obj || {};
1091
- obj[k] = v || '';
1092
- }
1093
- }
1094
- return obj;
1095
- }, null);
1096
- return {
1097
- value,
1098
- data
1099
- };
1100
- }
1101
- this.apiResult = {};
1102
- const accessInterceptSetting = this.assemblySetting.accessInterceptSetting || [];
1103
- const setting = accessInterceptSetting.find(item => item.source == 'PC' && item.isChecked == 'Y' && item.precondition);
1104
- if (setting) {
1105
- const precondition = setting.precondition;
1106
- try {
1107
- let res = await this.requestPreCondition(precondition);
1108
- this.apiResult = res?.data?.map || {};
1109
- if (res.data.result === 'SUCCESS') {
1110
- let value = res.data.map?.result;
1111
- value = value ? JSON.parse(value) : {};
1112
- return value.value ? parseResult(value.value) : false;
1113
- } else {
1114
- this.$message.error(res.data.resultMsg || this.i18nText('1.9.22'));
1115
- return false;
1116
- }
1117
- } catch (error) {
1118
- this.$message.error(error.resultMsg || this.i18nText('1.9.22'));
1119
- return false;
1120
- }
1121
- }
1122
- return {
1123
- value: 'Y',
1124
- data: null
1125
- };
1126
- },
1127
- handleAccessInterceptValue() {
1128
- let { listClassify = [], isListClassify, serverSetting = {} } = this.assemblySetting;
1129
- let list = [];
1130
- if (isListClassify != 'Y') {
1131
- let { functionSetting = [] } = serverSetting;
1132
- list = functionSetting;
1133
- } else {
1134
- let curList = listClassify.find(item => item.classify == this.classify);
1135
- if (!curList) return false;
1136
- list = curList.serverFunctionSetting || [];
1137
- }
1138
- if (!list.length) return true;
1139
- let curItem = list.find(item => item.function == 'ACCESS_INTERCEPT');
1140
- if (!curItem) return true;
1141
- return curItem.isChecked == 'Y';
1142
- },
1143
- accessChat(data) {
1144
- let { bid: userId, username, userType } = this.queueItem;
1145
- let params = {
1146
- assemblyId: this.assemblyId,
1147
- userId,
1148
- userType,
1149
- lastSessionId: this.sessionId,
1150
- relateId: this.clientParams.relateId
1151
- };
1152
- if (data) {
1153
- params.addParams = JSON.stringify(data);
1154
- }
1155
- return fetch.post('/chat/service/accessChat', qs.stringify(params)).then(({ data }) => {
1156
- if (data.result === 'SUCCESS') {
1157
- let { countdown, clientParams, sessionType, countdownDesc } = data.map;
1158
- this.setSessionId(data.map.sessionId);
1159
- this.clearMsgList();
1160
- this.setMsgList();
1161
- this.setCurrentTab('session');
1162
- this.setLastCurrentTab('session');
1163
- this.setClientId(username);
1164
- this.setOnChating(true);
1165
- this.setSessionEnd(false);
1166
- this.setQueueItem(null);
1167
- sessionType && this.setSessionType(sessionType);
1168
- if (countdown >= 0) {
1169
- this.setChatTimer({ countdown, countdownDesc });
1170
- }
1171
- this.setClientParams(clientParams);
1172
- this.getSessionHistoryList();
1173
- this.dispatchEvent('user_accessSuccess', {
1174
- map: data.map,
1175
- user: { ...this.curScrollItem }
1176
- });
1177
- } else {
1178
- this.$message.warning(data.resultMsg);
1179
- }
1180
- });
1181
- },
1182
- handleOpenTransfer() {
1183
- if (this.enableTransfer) {
1184
- this.transferVisible = true;
1185
- }
1186
- },
1187
- handleTransfer(data) {
1188
- const receiveId = data.converUserId;
1189
- if (receiveId) {
1190
- if (this.userId == receiveId) {
1191
- this.$message.warning(this.i18nText('1.2.7.14.1'));
1192
- return;
1193
- }
1194
- this.transferVisible = false;
1195
- fetch({
1196
- url: '/chat/service/transferQueue',
1197
- method: 'POST',
1198
- data: qs.stringify({
1199
- relateId: this.clientParams.relateId,
1200
- orgId: this.orgId,
1201
- assemblyId: this.assemblyId,
1202
- userId: this.curScrollItem?.bid,
1203
- userType: this.curScrollItem?.userType || '',
1204
- receiveId: receiveId,
1205
- deptId: data.deptId,
1206
- remark: data.converMark
1207
- })
1208
- })
1209
- .then(({ data }) => {
1210
- if (data.result === 'SUCCESS') {
1211
- this.dispatchEvent('user_transferQueueSuccess', {
1212
- user: { ...this.curScrollItem }
1213
- });
1214
- this.$message.success(this.i18nText('1.9.336'));
1215
- this.clearCurrentSession(true);
1216
- } else {
1217
- this.$message.warning(data.resultMsg || this.i18nText('1.10.201') + this.i18nText('1.9.22'));
1218
- }
1219
- })
1220
- .catch(err => {
1221
- this.$message.warning(err.resultMsg || this.i18nText('1.10.201') + this.i18nText('1.9.22'));
1222
- });
1223
- } else {
1224
- this.$message.warning(this.i18nText('1.9.335'));
1225
- }
1226
- },
1227
- getSessionHistoryList() {
1228
- this.setSessionHistoryList([]);
1229
- if (this.assemblySetting.recordScopeSetting === 'CURRENT') return;
1230
- fetch
1231
- .get('/chat/service/getPastSessionList', {
1232
- params: { sessionId: this.sessionId }
1233
- })
1234
- .then(({ data }) => {
1235
- if (data.result === 'SUCCESS') {
1236
- let list = data.list.map(item => {
1237
- if (item.id === this.sessionId || this.type === 'session') {
1238
- item.onChating = true;
1239
- }
1240
- return item;
1241
- });
1242
- this.setSessionHistoryList(list);
1243
- }
1244
- });
1245
- },
1246
- openQuickData() {
1247
- // this.quickShow = true;
1248
- if (this.quickData.length < 1) {
1249
- fetch
1250
- .get('/fastReply/getChatList', {
1251
- params: {
1252
- category: this.assemblySetting.chatPublicCategory
1253
- }
1254
- })
1255
- .then(({ data }) => {
1256
- if (data.result === 'SUCCESS') {
1257
- this.quickData = data.list;
1258
- }
1259
- });
1260
- }
1261
- },
1262
- // 清除当前会话
1263
- clearCurrentSession(update = false) {
1264
- this.clearMsgList([]);
1265
- this.setSessionHistoryList([]);
1266
- this.setSessionTimer('');
1267
- this.setClientId('');
1268
- this.setSessionId('');
1269
- this.setScrollQueueId('');
1270
- this.setLastClassify('');
1271
- this.setCurScrollItem(null);
1272
- this.setQueueItem(null);
1273
- this.setClientParams(null);
1274
- if (update) {
1275
- // 重新设置 currentTab 触发 scrollList 组件 更新排队列表
1276
- const currentTab = this.store.state?.currentTab;
1277
- if (currentTab === 'queue') {
1278
- this.setCurrentTab('');
1279
- this.$nextTick(() => {
1280
- this.setCurrentTab(this.store.state?.currentTab || currentTab);
1281
- });
1282
- }
1283
- }
1284
- },
1285
- openRefuseReason() {
1286
- if (this.enableRefuse) {
1287
- this.refuseVisible = true;
1288
- }
1289
- },
1290
- handleRefuse(remark) {
1291
- if (!this.enableRefuse) return;
1292
- fetch({
1293
- url: '/chat/service/accessRefuse',
1294
- method: 'POST',
1295
- data: qs.stringify({
1296
- relateId: this.clientParams.relateId,
1297
- orgId: this.orgId,
1298
- assemblyId: this.assemblyId,
1299
- userId: this.curScrollItem?.bid,
1300
- userType: this.curScrollItem?.userType || '',
1301
- remark: remark || '其他'
1302
- })
1303
- })
1304
- .then(({ data }) => {
1305
- if (data.result === 'SUCCESS') {
1306
- this.dispatchEvent('user_refuseSuccess', {
1307
- user: { ...this.curScrollItem }
1308
- });
1309
- this.$message.success(this.i18nText('1.10.184'));
1310
- this.clearCurrentSession(true);
1311
- } else {
1312
- this.$message.warning(data.resultMsg || this.i18nText('1.9.353') + this.i18nText('1.9.22'));
1313
- }
1314
- })
1315
- .catch(err => {
1316
- this.$message.warning(err.resultMsg || this.i18nText('1.9.353') + this.i18nText('1.9.22'));
1317
- });
1318
- this.refuseVisible = false;
1319
- },
1320
- bindEvents() {
1321
- const handleDrop = e => {
1322
- e.stopPropagation();
1323
- e.preventDefault();
1324
- this.handleFiles(e.dataTransfer.items);
1325
- };
1326
- document.addEventListener('drop', handleDrop, false);
1327
- this.registerEvent('accessCurrentSession', this.handleAccess);
1328
- this.registerEvent('refuseCurrentSession', this.openRefuseReason);
1329
- this.registerEvent('transferCurrentQueueSession', this.handleOpenTransfer);
1330
- this.$on('hook:beforeDestroy', () => {
1331
- document.removeEventListener('drop', handleDrop, false);
1332
- window.removeEventListener('message', this.iframeEvent);
1333
- window.removeEventListener('message', this.handleAccessIntercept);
1334
- this.unregisterEvent('accessCurrentSession', this.handleAccess);
1335
- this.unregisterEvent('refuseCurrentSession', this.openRefuseReason);
1336
- this.unregisterEvent('transferCurrentQueueSession', this.handleOpenTransfer);
1337
- });
1338
- }
1339
- },
1340
- watch: {
1341
- accessIntercept: {
1342
- handler(val) {
1343
- if (!val) {
1344
- window.removeEventListener('message', this.handleAccessIntercept);
1345
- }
1346
- }
1347
- },
1348
- message: {
1349
- handler(v) {
1350
- // 使用 _editValue 判断是否组件外修改 message,并更新聊天框
1351
- if (this._editValue !== v) {
1352
- this.updateMessage(v);
1353
- }
1354
- }
1355
- }
1356
- }
1357
- };
1358
- </script>
1359
-
1360
- <style lang="less">
1361
- .chat-footer-modal-big {
1362
- padding: 10px;
1363
- &.ant-modal-wrap {
1364
- overflow: none;
1365
- }
1366
- .ant-modal {
1367
- width: 100%;
1368
- height: 100%;
1369
- top: 0;
1370
- padding-bottom: 0;
1371
- }
1372
- .ant-modal-content {
1373
- height: 100%;
1374
- }
1375
- .ant-modal-body {
1376
- height: calc(100% - 55px);
1377
- }
1378
- }
1379
- .chat-footer-modal-small {
1380
- &.ant-modal-wrap {
1381
- overflow: none;
1382
- }
1383
- .ant-modal {
1384
- width: 80%;
1385
- height: 80%;
1386
- padding-bottom: 0;
1387
- top: 60px;
1388
- }
1389
- .ant-modal-content {
1390
- height: 100%;
1391
- }
1392
- .ant-modal-body {
1393
- height: 100%;
1394
- padding: 0;
1395
- }
1396
- }
1397
-
1398
- </style>
1399
- <style lang="less" scoped>
1400
- .message-operate {
1401
- display: flex;
1402
- align-items: center;
1403
- height: 40px;
1404
- line-height: 18px;
1405
- background: #fff;
1406
- overflow-x: auto;
1407
- overflow-y: hidden;
1408
- border-top: 1px solid #e6e6e6;
1409
- &::-webkit-scrollbar {
1410
- height: 5px;
1411
- }
1412
- > img {
1413
- // > .operate-icon {
1414
- margin-left: 10px;
1415
- }
1416
- /deep/ .ant-tabs .ant-tabs-top-content > .ant-tabs-tabpane {
1417
- height: 300px !important;
1418
- overflow: auto !important;
1419
- }
1420
- /deep/ .ant-upload-list {
1421
- display: none;
1422
- }
1423
- /deep/ .ant-upload {
1424
- height: 32px;
1425
- vertical-align: middle;
1426
- display: inline-block;
1427
- }
1428
- .no-click {
1429
- pointer-events: none;
1430
- opacity: 0.4;
1431
- }
1432
- .svg-icon {
1433
- color: rgba(0, 0, 0, 0.6);
1434
- }
1435
- }
1436
- .emoji-wrapper {
1437
- width: 500px;
1438
- height: 300px;
1439
- overflow: auto;
1440
- display: grid;
1441
- grid-template-columns: repeat(10, 1fr);
1442
- .emoji {
1443
- display: inline-block;
1444
- font-size: 20px;
1445
- margin: 10px;
1446
- text-align: center;
1447
- }
1448
- &::-webkit-scrollbar {
1449
- width: 5px;
1450
- }
1451
- }
1452
- .message {
1453
- position: relative;
1454
- height: 150px;
1455
- .message-send {
1456
- position: absolute;
1457
- bottom: 8px;
1458
- right: 14px;
1459
- height: 40px;
1460
- border-radius: 20px;
1461
- width: 86px;
1462
- font-weight: 600;
1463
- font-size: 18px;
1464
- color: #fff;
1465
- background-color: @primary-color;
1466
- border-color: @primary-color;
1467
- &:hover {
1468
- background-color: rgba(@primary-color, 0.7);
1469
- border-color: rgba(@primary-color, 0.7);
1470
- }
1471
- &[disabled]:hover,
1472
- &[disabled] {
1473
- background-color: #f5f5f5;
1474
- border-color: #d9d9d9;
1475
- color: #bebebe;
1476
- }
1477
- }
1478
- .prompt {
1479
- position: absolute;
1480
- bottom: 16px;
1481
- right: 120px;
1482
- color: #a6a6a6;
1483
- }
1484
- }
1485
- .infinite-container {
1486
- overflow-y: auto;
1487
- }
1488
- .message-wrapper {
1489
- position: relative;
1490
- .loading-icon {
1491
- position: absolute;
1492
- top: 0;
1493
- left: 50%;
1494
- }
1495
- }
1496
- .content-edit {
1497
- width: 100%;
1498
- height: 100%;
1499
- padding: 0 16px 56px;
1500
- word-break: break-word;
1501
- &::-webkit-scrollbar {
1502
- width: 5px;
1503
- }
1504
- cursor: text;
1505
- > div {
1506
- height: 100%;
1507
- outline: none;
1508
- overflow-y: auto;
1509
- overflow-x: hidden;
1510
- }
1511
- }
1512
- .overlay {
1513
- position: absolute;
1514
- width: 100%;
1515
- height: 100%;
1516
- top: 0;
1517
- cursor: not-allowed;
1518
- }
1519
- .queue-page {
1520
- display: flex;
1521
- flex-direction: column;
1522
- align-items: center;
1523
- justify-content: center;
1524
- position: absolute;
1525
- width: 100%;
1526
- height: 100%;
1527
- top: 0;
1528
- background: #fff;
1529
- z-index: 500;
1530
- border-top: 1px solid #e6e6e6;
1531
- .queue-tips {
1532
- font-size: 16px;
1533
- color: #272727;
1534
- line-height: 22px;
1535
- margin-bottom: 16px;
1536
- }
1537
- .queue-btns {
1538
- display: flex;
1539
- justify-content: center;
1540
- }
1541
- .toSession {
1542
- width: 80px;
1543
- height: 80px;
1544
- line-height: 80px;
1545
- text-align: center;
1546
- background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%);
1547
- box-shadow: 0px 4px 9px 0px rgba(186, 186, 186, 0.79);
1548
- border-radius: 50%;
1549
- color: #4b4b4b;
1550
- font-size: 20px;
1551
- font-weight: 500;
1552
- font-family: PingFangSC-Medium, PingFang SC;
1553
- transition: transform 0.3s ease;
1554
- &.primary {
1555
- background: linear-gradient(180deg, #2d7aff 0%, #2c5df4 100%);
1556
- box-shadow: 0px 5px 8px 0px rgba(44, 101, 247, 0.39);
1557
- color: #fff;
1558
- }
1559
- &.danger {
1560
- background: linear-gradient(180deg, #ff4b4b 0%, #c80606 100%);
1561
- box-shadow: 0px 5px 8px 0px rgba(217, 26, 26, 0.35);
1562
- color: #fff;
1563
- }
1564
- &:hover {
1565
- transform: scale(1.2);
1566
- }
1567
- & + .toSession {
1568
- margin-left: 36px;
1569
- }
1570
- }
1571
- }
1572
- .toolbar {
1573
- // margin-left: 10px;
1574
- margin: 0 5px;
1575
- font-size: 20px;
1576
- outline: none;
1577
- padding: 6px;
1578
- box-sizing: content-box;
1579
- &:hover {
1580
- background-color: #ebebeb;
1581
- border-radius: 6px;
1582
- }
1583
- }
1584
- /deep/ p {
1585
- margin-bottom: 0;
1586
- }
1587
- .click-voice {
1588
- color: #2d7aff;
1589
- }
1590
- </style>