cnhis-design-vue 3.2.4-beta.0 → 3.2.4-beta.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (304) hide show
  1. package/README.md +87 -87
  2. package/es/components/biunique-chat/index.d.ts +9 -6
  3. package/es/components/biunique-chat/src/Index.vue.d.ts +9 -6
  4. package/es/components/biunique-chat/src/Index.vue2.js +1 -1
  5. package/es/components/biunique-chat/src/api/index.d.ts +1 -0
  6. package/es/components/biunique-chat/src/api/index.js +1 -1
  7. package/es/components/biunique-chat/src/components/ChatFooter.vue2.js +1 -1
  8. package/es/components/biunique-chat/src/components/ChatHeader.vue.d.ts +2 -2
  9. package/es/components/biunique-chat/src/components/ChatHeader.vue2.js +1 -1
  10. package/es/components/biunique-chat/src/components/ChatMain.vue.d.ts +2 -1
  11. package/es/components/biunique-chat/src/components/ChatMain.vue2.js +1 -1
  12. package/es/components/biunique-chat/src/components/ChatSearch.vue.d.ts +3 -1
  13. package/es/components/biunique-chat/src/components/ChatSearch.vue2.js +1 -1
  14. package/es/components/biunique-chat/src/components/ChatSet.vue.d.ts +1 -1
  15. package/es/components/biunique-chat/src/components/ChatSet.vue2.js +1 -1
  16. package/es/components/biunique-chat/src/components/MessageTemplate.vue2.js +1 -1
  17. package/es/components/biunique-chat/src/components/PersonProfile.vue.d.ts +1 -1
  18. package/es/components/biunique-chat/src/components/SiderList.vue.d.ts +1 -1
  19. package/es/components/biunique-chat/src/components/SiderList.vue2.js +1 -1
  20. package/es/components/biunique-chat/src/hooks/useSession.d.ts +1 -1
  21. package/es/components/biunique-chat/src/hooks/useSession.js +1 -1
  22. package/es/components/biunique-chat/style/index.css +1 -1
  23. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  24. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
  25. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
  26. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
  27. package/es/components/button-print/src/components/IdentityVerification.vue2.js +1 -1
  28. package/es/components/callback/src/components/render/popupMaps.d.ts +5 -0
  29. package/es/components/card-reader-sdk/src/cardReaderSDK.js +1 -1
  30. package/es/components/card-reader-sdk/src/constants/index.d.ts +92 -0
  31. package/es/components/card-reader-sdk/src/constants/index.js +1 -1
  32. package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
  33. package/es/components/classification/src/index.vue.d.ts +3 -3
  34. package/es/components/date-picker/src/DatePicker.vue2.js +1 -1
  35. package/es/components/form-config/index.d.ts +23 -0
  36. package/es/components/form-config/src/FormConfig.vue.d.ts +23 -0
  37. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +5 -0
  38. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +11 -0
  39. package/es/components/form-render/index.d.ts +5 -0
  40. package/es/components/form-render/index.js +1 -1
  41. package/es/components/form-render/src/FormRender.vue.d.ts +5 -0
  42. package/es/components/form-render/src/FormRender.vue2.js +1 -1
  43. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +5 -0
  44. package/es/components/form-render/src/components/renderer/formItem.d.ts +14 -0
  45. package/es/components/form-render/src/components/renderer/formItem.js +1 -1
  46. package/es/components/form-render/src/components/renderer/lineBar/FormCollapse.vue.d.ts +1 -0
  47. package/es/components/form-render/src/components/renderer/lineBar/index.d.ts +1 -0
  48. package/es/components/form-render/src/hooks/useFieldNormalize.d.ts +2 -0
  49. package/es/components/form-render/src/hooks/useFieldNormalize.js +1 -1
  50. package/es/components/form-render/src/types/fieldItem.d.ts +1 -0
  51. package/es/components/form-render/src/types/index.d.ts +1 -0
  52. package/es/components/form-render/src/utils/dom.js +1 -1
  53. package/es/components/form-render/src/utils/schema.d.ts +1 -0
  54. package/es/components/form-render/src/utils/schema.js +1 -1
  55. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/index.js +1 -1
  56. package/es/components/index.css +1 -1
  57. package/es/components/index.d.ts +2 -1
  58. package/es/components/index.js +1 -1
  59. package/es/components/info-header/index.d.ts +15 -0
  60. package/es/components/info-header/src/InfoHeader.vue.d.ts +15 -0
  61. package/es/components/info-header/src/components/infoDescription/DescriptionItem.vue.d.ts +1 -0
  62. package/es/components/info-header/src/components/infoDescription/DescriptionList.vue.d.ts +1 -0
  63. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +6 -0
  64. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +5 -0
  65. package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
  66. package/es/components/search-cascader/src/SearchCascader.vue2.js +1 -1
  67. package/es/components/select-label/src/LabelFormContent.vue2.js +1 -1
  68. package/es/components/select-person/src/SearchMultiple.vue.d.ts +0 -6
  69. package/es/components/shortcut-setter/index.d.ts +6 -0
  70. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +6 -0
  71. package/es/components/tooth-bitmap/index.d.ts +45 -0
  72. package/es/components/tooth-bitmap/index.js +1 -0
  73. package/es/components/tooth-bitmap/src/ToothBitmap.vue.d.ts +45 -0
  74. package/es/components/tooth-bitmap/src/ToothBitmap.vue.js +1 -0
  75. package/es/components/tooth-bitmap/src/ToothBitmap.vue2.js +1 -0
  76. package/es/components/tooth-bitmap/style/index.css +1 -0
  77. package/es/env.d.ts +25 -25
  78. package/es/shared/assets/img/defaultCover/10review_successful.png.js +1 -1
  79. package/es/shared/assets/img/defaultCover/11review_fail.png.js +1 -1
  80. package/es/shared/assets/img/defaultCover/12no_setting.png.js +1 -1
  81. package/es/shared/assets/img/defaultCover/1location.png.js +1 -1
  82. package/es/shared/assets/img/defaultCover/2notfound.png.js +1 -1
  83. package/es/shared/assets/img/defaultCover/3loading.png.js +1 -1
  84. package/es/shared/assets/img/defaultCover/4no_permission.png.js +1 -1
  85. package/es/shared/assets/img/defaultCover/5no_data.png.js +1 -1
  86. package/es/shared/assets/img/defaultCover/6no_network.png.js +1 -1
  87. package/es/shared/assets/img/defaultCover/7no_doctor.png.js +1 -1
  88. package/es/shared/assets/img/defaultCover/8system_error.png.js +1 -1
  89. package/es/shared/assets/img/defaultCover/9system_upgrade.png.js +1 -1
  90. package/es/shared/assets/img/emoji/emotion_001.png.js +1 -1
  91. package/es/shared/assets/img/emoji/emotion_002.png.js +1 -1
  92. package/es/shared/assets/img/emoji/emotion_003.png.js +1 -1
  93. package/es/shared/assets/img/emoji/emotion_004.png.js +1 -1
  94. package/es/shared/assets/img/emoji/emotion_005.png.js +1 -1
  95. package/es/shared/assets/img/emoji/emotion_006.png.js +1 -1
  96. package/es/shared/assets/img/emoji/emotion_007.png.js +1 -1
  97. package/es/shared/assets/img/emoji/emotion_008.png.js +1 -1
  98. package/es/shared/assets/img/emoji/emotion_009.png.js +1 -1
  99. package/es/shared/assets/img/emoji/emotion_010.png.js +1 -1
  100. package/es/shared/assets/img/emoji/emotion_011.png.js +1 -1
  101. package/es/shared/assets/img/emoji/emotion_012.png.js +1 -1
  102. package/es/shared/assets/img/emoji/emotion_013.png.js +1 -1
  103. package/es/shared/assets/img/emoji/emotion_014.png.js +1 -1
  104. package/es/shared/assets/img/emoji/emotion_015.png.js +1 -1
  105. package/es/shared/assets/img/emoji/emotion_016.png.js +1 -1
  106. package/es/shared/assets/img/emoji/emotion_017.png.js +1 -1
  107. package/es/shared/assets/img/emoji/emotion_018.png.js +1 -1
  108. package/es/shared/assets/img/emoji/emotion_019.png.js +1 -1
  109. package/es/shared/assets/img/emoji/emotion_020.png.js +1 -1
  110. package/es/shared/assets/img/emoji/emotion_021.png.js +1 -1
  111. package/es/shared/assets/img/emoji/emotion_022.png.js +1 -1
  112. package/es/shared/assets/img/emoji/emotion_023.png.js +1 -1
  113. package/es/shared/assets/img/emoji/emotion_024.png.js +1 -1
  114. package/es/shared/assets/img/emoji/emotion_025.png.js +1 -1
  115. package/es/shared/assets/img/emoji/emotion_026.png.js +1 -1
  116. package/es/shared/assets/img/emoji/emotion_027.png.js +1 -1
  117. package/es/shared/assets/img/emoji/emotion_028.png.js +1 -1
  118. package/es/shared/assets/img/emoji/emotion_029.png.js +1 -1
  119. package/es/shared/assets/img/emoji/emotion_030.png.js +1 -1
  120. package/es/shared/assets/img/emoji/emotion_031.png.js +1 -1
  121. package/es/shared/assets/img/emoji/emotion_032.png.js +1 -1
  122. package/es/shared/assets/img/emoji/emotion_033.png.js +1 -1
  123. package/es/shared/assets/img/emoji/emotion_034.png.js +1 -1
  124. package/es/shared/assets/img/emoji/emotion_035.png.js +1 -1
  125. package/es/shared/assets/img/emoji/emotion_036.png.js +1 -1
  126. package/es/shared/assets/img/emoji/emotion_037.png.js +1 -1
  127. package/es/shared/assets/img/emoji/emotion_038.png.js +1 -1
  128. package/es/shared/assets/img/emoji/emotion_039.png.js +1 -1
  129. package/es/shared/assets/img/emoji/emotion_040.png.js +1 -1
  130. package/es/shared/assets/img/emoji/emotion_041.png.js +1 -1
  131. package/es/shared/assets/img/emoji/emotion_042.png.js +1 -1
  132. package/es/shared/assets/img/emoji/emotion_043.png.js +1 -1
  133. package/es/shared/assets/img/emoji/emotion_044.png.js +1 -1
  134. package/es/shared/assets/img/emoji/emotion_045.png.js +1 -1
  135. package/es/shared/assets/img/emoji/emotion_046.png.js +1 -1
  136. package/es/shared/assets/img/emoji/emotion_047.png.js +1 -1
  137. package/es/shared/assets/img/emoji/emotion_048.png.js +1 -1
  138. package/es/shared/assets/img/emoji/emotion_049.png.js +1 -1
  139. package/es/shared/assets/img/emoji/emotion_050.png.js +1 -1
  140. package/es/shared/assets/img/emoji/emotion_051.png.js +1 -1
  141. package/es/shared/assets/img/emoji/emotion_052.png.js +1 -1
  142. package/es/shared/assets/img/emoji/emotion_053.png.js +1 -1
  143. package/es/shared/assets/img/emoji/emotion_054.png.js +1 -1
  144. package/es/shared/assets/img/emoji/emotion_055.png.js +1 -1
  145. package/es/shared/assets/img/emoji/emotion_056.png.js +1 -1
  146. package/es/shared/assets/img/emoji/emotion_057.png.js +1 -1
  147. package/es/shared/assets/img/emoji/emotion_058.png.js +1 -1
  148. package/es/shared/assets/img/emoji/emotion_059.png.js +1 -1
  149. package/es/shared/assets/img/emoji/emotion_060.png.js +1 -1
  150. package/es/shared/assets/img/emoji/emotion_061.png.js +1 -1
  151. package/es/shared/assets/img/emoji/emotion_062.png.js +1 -1
  152. package/es/shared/assets/img/emoji/emotion_063.png.js +1 -1
  153. package/es/shared/assets/img/emoji/emotion_064.png.js +1 -1
  154. package/es/shared/assets/img/emoji/emotion_065.png.js +1 -1
  155. package/es/shared/assets/img/emoji/emotion_066.png.js +1 -1
  156. package/es/shared/assets/img/emoji/emotion_067.png.js +1 -1
  157. package/es/shared/assets/img/emoji/emotion_068.png.js +1 -1
  158. package/es/shared/assets/img/emoji/emotion_069.png.js +1 -1
  159. package/es/shared/assets/img/emoji/emotion_070.png.js +1 -1
  160. package/es/shared/assets/img/emoji/emotion_071.png.js +1 -1
  161. package/es/shared/assets/img/emoji/emotion_072.png.js +1 -1
  162. package/es/shared/assets/img/emoji/emotion_073.png.js +1 -1
  163. package/es/shared/assets/img/emoji/emotion_074.png.js +1 -1
  164. package/es/shared/assets/img/emoji/emotion_075.png.js +1 -1
  165. package/es/shared/assets/img/emoji/emotion_076.png.js +1 -1
  166. package/es/shared/assets/img/emoji/emotion_077.png.js +1 -1
  167. package/es/shared/assets/img/emoji/emotion_078.png.js +1 -1
  168. package/es/shared/assets/img/emoji/emotion_079.png.js +1 -1
  169. package/es/shared/assets/img/emoji/emotion_080.png.js +1 -1
  170. package/es/shared/assets/img/emoji/emotion_081.png.js +1 -1
  171. package/es/shared/assets/img/emoji/emotion_082.png.js +1 -1
  172. package/es/shared/assets/img/emoji/emotion_083.png.js +1 -1
  173. package/es/shared/assets/img/emoji/emotion_084.png.js +1 -1
  174. package/es/shared/assets/img/emoji/emotion_085.png.js +1 -1
  175. package/es/shared/assets/img/emoji/emotion_086.png.js +1 -1
  176. package/es/shared/assets/img/emoji/emotion_087.png.js +1 -1
  177. package/es/shared/assets/img/emoji/emotion_088.png.js +1 -1
  178. package/es/shared/assets/img/emoji/emotion_089.png.js +1 -1
  179. package/es/shared/assets/img/emoji/emotion_090.png.js +1 -1
  180. package/es/shared/assets/img/emoji/emotion_091.png.js +1 -1
  181. package/es/shared/assets/img/emoji/emotion_092.png.js +1 -1
  182. package/es/shared/assets/img/emoji/emotion_093.png.js +1 -1
  183. package/es/shared/assets/img/emoji/emotion_094.png.js +1 -1
  184. package/es/shared/assets/img/emoji/emotion_095.png.js +1 -1
  185. package/es/shared/assets/img/emoji/emotion_096.png.js +1 -1
  186. package/es/shared/assets/img/emoji/emotion_097.png.js +1 -1
  187. package/es/shared/assets/img/emoji/emotion_098.png.js +1 -1
  188. package/es/shared/assets/img/emoji/emotion_099.png.js +1 -1
  189. package/es/shared/assets/img/emoji/emotion_100.png.js +1 -1
  190. package/es/shared/assets/img/emoji/emotion_101.png.js +1 -1
  191. package/es/shared/assets/img/emoji/emotion_102.png.js +1 -1
  192. package/es/shared/assets/img/emoji/emotion_103.png.js +1 -1
  193. package/es/shared/assets/img/emoji/emotion_104.png.js +1 -1
  194. package/es/shared/assets/img/emoji/emotion_105.png.js +1 -1
  195. package/es/shared/assets/img/emoji/emotion_106.png.js +1 -1
  196. package/es/shared/assets/img/emoji/emotion_107.png.js +1 -1
  197. package/es/shared/assets/img/emoji/emotion_108.png.js +1 -1
  198. package/es/shared/assets/img/emoji/emotion_109.png.js +1 -1
  199. package/es/shared/assets/img/emoji/emotion_110.png.js +1 -1
  200. package/es/shared/assets/img/emoji/emotion_111.png.js +1 -1
  201. package/es/shared/assets/img/emoji/emotion_112.png.js +1 -1
  202. package/es/shared/assets/img/emoji/emotion_113.png.js +1 -1
  203. package/es/shared/assets/img/emoji/emotion_114.png.js +1 -1
  204. package/es/shared/assets/img/emoji/emotion_115.png.js +1 -1
  205. package/es/shared/assets/img/emoji/emotion_116.png.js +1 -1
  206. package/es/shared/assets/img/emoji/emotion_117.png.js +1 -1
  207. package/es/shared/assets/img/emoji/emotion_118.png.js +1 -1
  208. package/es/shared/assets/img/emoji/emotion_119.png.js +1 -1
  209. package/es/shared/assets/img/emoji/emotion_120.png.js +1 -1
  210. package/es/shared/assets/img/emoji/emotion_121.png.js +1 -1
  211. package/es/shared/assets/img/emoji/emotion_122.png.js +1 -1
  212. package/es/shared/assets/img/emoji/emotion_123.png.js +1 -1
  213. package/es/shared/assets/img/emoji/emotion_124.png.js +1 -1
  214. package/es/shared/assets/img/emoji/emotion_125.png.js +1 -1
  215. package/es/shared/assets/img/emoji/emotion_126.png.js +1 -1
  216. package/es/shared/assets/img/emoji/emotion_127.png.js +1 -1
  217. package/es/shared/assets/img/emoji/emotion_128.png.js +1 -1
  218. package/es/shared/assets/img/emoji/emotion_129.png.js +1 -1
  219. package/es/shared/assets/img/emoji/emotion_130.png.js +1 -1
  220. package/es/shared/assets/img/emoji/emotion_131.png.js +1 -1
  221. package/es/shared/assets/img/emoji/emotion_132.png.js +1 -1
  222. package/es/shared/assets/img/emoji/emotion_133.png.js +1 -1
  223. package/es/shared/assets/img/emoji/emotion_134.png.js +1 -1
  224. package/es/shared/assets/img/emoji/emotion_135.png.js +1 -1
  225. package/es/shared/assets/img/emoji/emotion_136.png.js +1 -1
  226. package/es/shared/assets/img/emoji/emotion_137.png.js +1 -1
  227. package/es/shared/assets/img/emoji/emotion_138.png.js +1 -1
  228. package/es/shared/assets/img/emoji/emotion_139.png.js +1 -1
  229. package/es/shared/assets/img/emoji/emotion_140.png.js +1 -1
  230. package/es/shared/assets/img/emoji/emotion_141.png.js +1 -1
  231. package/es/shared/assets/img/emoji/emotion_142.png.js +1 -1
  232. package/es/shared/assets/img/emoji/emotion_143.png.js +1 -1
  233. package/es/shared/assets/img/emoji/emotion_144.png.js +1 -1
  234. package/es/shared/assets/img/emoji/emotion_145.png.js +1 -1
  235. package/es/shared/assets/img/emoji/emotion_146.png.js +1 -1
  236. package/es/shared/assets/img/emoji/emotion_147.png.js +1 -1
  237. package/es/shared/assets/img/emoji/emotion_148.png.js +1 -1
  238. package/es/shared/assets/img/emoji/emotion_149.png.js +1 -1
  239. package/es/shared/assets/img/emoji/emotion_150.png.js +1 -1
  240. package/es/shared/assets/img/emoji/emotion_151.png.js +1 -1
  241. package/es/shared/assets/img/emoji/emotion_152.png.js +1 -1
  242. package/es/shared/assets/img/emoji/emotion_153.png.js +1 -1
  243. package/es/shared/assets/img/emoji/emotion_154.png.js +1 -1
  244. package/es/shared/assets/img/emoji/emotion_155.png.js +1 -1
  245. package/es/shared/assets/img/emoji/emotion_156.png.js +1 -1
  246. package/es/shared/assets/img/emoji/emotion_157.png.js +1 -1
  247. package/es/shared/assets/img/emoji/emotion_158.png.js +1 -1
  248. package/es/shared/assets/img/emoji/emotion_159.png.js +1 -1
  249. package/es/shared/assets/img/emoji/emotion_160.png.js +1 -1
  250. package/es/shared/assets/img/emoji/emotion_161.png.js +1 -1
  251. package/es/shared/assets/img/emoji/emotion_162.png.js +1 -1
  252. package/es/shared/assets/img/emoji/emotion_163.png.js +1 -1
  253. package/es/shared/assets/img/emoji/emotion_164.png.js +1 -1
  254. package/es/shared/assets/img/emoji/emotion_165.png.js +1 -1
  255. package/es/shared/assets/img/emoji/emotion_166.png.js +1 -1
  256. package/es/shared/assets/img/emoji/emotion_167.png.js +1 -1
  257. package/es/shared/assets/img/failure.png.js +1 -1
  258. package/es/shared/assets/img/no-permission.png.js +1 -1
  259. package/es/shared/assets/img/nodata.png.js +1 -1
  260. package/es/shared/assets/img/notfound.png.js +1 -1
  261. package/es/shared/assets/img/qr.png.js +1 -1
  262. package/es/shared/assets/img/success.png.js +1 -1
  263. package/es/shared/assets/img/table_style_2.png.js +1 -1
  264. package/es/shared/assets/img/tooth/l-b-1.png.js +1 -0
  265. package/es/shared/assets/img/tooth/l-b-2.png.js +1 -0
  266. package/es/shared/assets/img/tooth/l-b-3.png.js +1 -0
  267. package/es/shared/assets/img/tooth/l-b-4.png.js +1 -0
  268. package/es/shared/assets/img/tooth/l-b-5.png.js +1 -0
  269. package/es/shared/assets/img/tooth/l-b-6.png.js +1 -0
  270. package/es/shared/assets/img/tooth/l-b-7.png.js +1 -0
  271. package/es/shared/assets/img/tooth/l-b-8.png.js +1 -0
  272. package/es/shared/assets/img/tooth/l-t-1.png.js +1 -0
  273. package/es/shared/assets/img/tooth/l-t-2.png.js +1 -0
  274. package/es/shared/assets/img/tooth/l-t-3.png.js +1 -0
  275. package/es/shared/assets/img/tooth/l-t-4.png.js +1 -0
  276. package/es/shared/assets/img/tooth/l-t-5.png.js +1 -0
  277. package/es/shared/assets/img/tooth/l-t-6.png.js +1 -0
  278. package/es/shared/assets/img/tooth/l-t-7.png.js +1 -0
  279. package/es/shared/assets/img/tooth/l-t-8.png.js +1 -0
  280. package/es/shared/assets/img/tooth/r-b-1.png.js +1 -0
  281. package/es/shared/assets/img/tooth/r-b-2.png.js +1 -0
  282. package/es/shared/assets/img/tooth/r-b-3.png.js +1 -0
  283. package/es/shared/assets/img/tooth/r-b-4.png.js +1 -0
  284. package/es/shared/assets/img/tooth/r-b-5.png.js +1 -0
  285. package/es/shared/assets/img/tooth/r-b-6.png.js +1 -0
  286. package/es/shared/assets/img/tooth/r-b-7.png.js +1 -0
  287. package/es/shared/assets/img/tooth/r-b-8.png.js +1 -0
  288. package/es/shared/assets/img/tooth/r-t-1.png.js +1 -0
  289. package/es/shared/assets/img/tooth/r-t-2.png.js +1 -0
  290. package/es/shared/assets/img/tooth/r-t-3.png.js +1 -0
  291. package/es/shared/assets/img/tooth/r-t-4.png.js +1 -0
  292. package/es/shared/assets/img/tooth/r-t-5.png.js +1 -0
  293. package/es/shared/assets/img/tooth/r-t-6.png.js +1 -0
  294. package/es/shared/assets/img/tooth/r-t-7.png.js +1 -0
  295. package/es/shared/assets/img/tooth/r-t-8.png.js +1 -0
  296. package/es/shared/assets/img/video.png.js +1 -1
  297. package/es/shared/assets/img/video_default_cover.png.js +1 -1
  298. package/es/shared/assets/img/xb_big.png.js +1 -1
  299. package/es/shared/assets/img/xb_small.png.js +1 -1
  300. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
  301. package/es/shared/package.json.js +1 -1
  302. package/es/shared/utils/fabricjs/index.d.ts +6823 -0
  303. package/es/shared/utils/tapable/index.d.ts +139 -0
  304. package/package.json +2 -2
package/README.md CHANGED
@@ -1,87 +1,87 @@
1
- # 安装
2
-
3
- ```shell
4
- npm i cnhis-design-vue@[版本号]
5
- # or
6
- yarn add cnhis-design-vue@[版本号] #推荐
7
- ```
8
-
9
- ## 1.全局引入
10
-
11
- ```typescript
12
- // main.ts
13
- import { createApp } from 'vue';
14
- import App from './App.vue';
15
- import 'cnhis-design-vue/es/packages/index.css';
16
- import cui from 'cnhis-design-vue';
17
-
18
- const app = createApp(App);
19
- app.use(cui).mount('#app');
20
- ```
21
-
22
- ## 2. 按需引入
23
-
24
- 组件现在支持了自动按需引入, 但是样式文件需要额外的处理
25
-
26
- ### 2.1 样式处理方式1 (按需引入样式)
27
-
28
- ```shell
29
- # 安装自动导入样式的插件
30
- npm i -d vite-plugin-style-import
31
- ```
32
-
33
- ```typescript
34
- // vite.config.ts
35
- import { defineConfig } from 'vite';
36
- import { createStyleImportPlugin } from 'vite-plugin-style-import';
37
-
38
- export default defineConfig({
39
- plugins: [
40
- // ...otherPlugins
41
- createStyleImportPlugin({
42
- libs: [
43
- {
44
- libraryName: 'cnhis-design-vue',
45
- esModule: true,
46
- ensureStyleFile: true,
47
- resolveStyle: name => {
48
- return `cnhis-design-vue/es/components/${ name.slice(2) }/style/index.css`;
49
- }
50
- }
51
- ]
52
- })
53
- ]
54
- });
55
- ```
56
-
57
- ### 2.2 样式处理方式2 (全局引入样式)
58
-
59
- ```typescript
60
- // main.ts
61
- import 'cnhis-design-vue/es/components/index.css';
62
- ```
63
-
64
- ## 3.FAQ
65
-
66
- ### 3.1 项目打包后样式丢失
67
-
68
- 处理方法, 将 cnhis-design-vue 从 vendor 包中移除 (没有出现此问题则不需要)
69
-
70
- ```typescript
71
- // vite.config.ts
72
- import { defineConfig } from 'vite';
73
-
74
- export default defineConfig({
75
- build: {
76
- rollupOptions: {
77
- // ..otherOptions
78
- output: {
79
- dir: './dist',
80
- manualChunks: {
81
- 'cnhis-vendor': ['cnhis-design-vue']
82
- }
83
- }
84
- }
85
- }
86
- });
87
- ```
1
+ # 安装
2
+
3
+ ```shell
4
+ npm i cnhis-design-vue@[版本号]
5
+ # or
6
+ yarn add cnhis-design-vue@[版本号] #推荐
7
+ ```
8
+
9
+ ## 1.全局引入
10
+
11
+ ```typescript
12
+ // main.ts
13
+ import { createApp } from 'vue';
14
+ import App from './App.vue';
15
+ import 'cnhis-design-vue/es/packages/index.css';
16
+ import cui from 'cnhis-design-vue';
17
+
18
+ const app = createApp(App);
19
+ app.use(cui).mount('#app');
20
+ ```
21
+
22
+ ## 2. 按需引入
23
+
24
+ 组件现在支持了自动按需引入, 但是样式文件需要额外的处理
25
+
26
+ ### 2.1 样式处理方式1 (按需引入样式)
27
+
28
+ ```shell
29
+ # 安装自动导入样式的插件
30
+ npm i -d vite-plugin-style-import
31
+ ```
32
+
33
+ ```typescript
34
+ // vite.config.ts
35
+ import { defineConfig } from 'vite';
36
+ import { createStyleImportPlugin } from 'vite-plugin-style-import';
37
+
38
+ export default defineConfig({
39
+ plugins: [
40
+ // ...otherPlugins
41
+ createStyleImportPlugin({
42
+ libs: [
43
+ {
44
+ libraryName: 'cnhis-design-vue',
45
+ esModule: true,
46
+ ensureStyleFile: true,
47
+ resolveStyle: name => {
48
+ return `cnhis-design-vue/es/components/${ name.slice(2) }/style/index.css`;
49
+ }
50
+ }
51
+ ]
52
+ })
53
+ ]
54
+ });
55
+ ```
56
+
57
+ ### 2.2 样式处理方式2 (全局引入样式)
58
+
59
+ ```typescript
60
+ // main.ts
61
+ import 'cnhis-design-vue/es/components/index.css';
62
+ ```
63
+
64
+ ## 3.FAQ
65
+
66
+ ### 3.1 项目打包后样式丢失
67
+
68
+ 处理方法, 将 cnhis-design-vue 从 vendor 包中移除 (没有出现此问题则不需要)
69
+
70
+ ```typescript
71
+ // vite.config.ts
72
+ import { defineConfig } from 'vite';
73
+
74
+ export default defineConfig({
75
+ build: {
76
+ rollupOptions: {
77
+ // ..otherOptions
78
+ output: {
79
+ dir: './dist',
80
+ manualChunks: {
81
+ 'cnhis-vendor': ['cnhis-design-vue']
82
+ }
83
+ }
84
+ }
85
+ }
86
+ });
87
+ ```
@@ -56,7 +56,7 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
56
56
  isUpdateSession: boolean;
57
57
  };
58
58
  reConnention: number;
59
- openSession: (item: import("../../shared/types").AnyObject) => void;
59
+ openSession: (item: import("../../shared/types").AnyObject) => Promise<void>;
60
60
  closeSession: () => import("../../shared/types").AnyObject | null;
61
61
  getCurrentSession: () => import("../../shared/types").AnyObject | null;
62
62
  setSessionList: (list: import("../../shared/types").AnyObject[]) => void;
@@ -484,7 +484,7 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
484
484
  currentFilterKey: import("vue").Ref<string>;
485
485
  state: import("./src/types").IState;
486
486
  emit: (event: string, ...args: any[]) => void;
487
- openSession: (item: import("../../shared/types").AnyObject) => void;
487
+ openSession: (item: import("../../shared/types").AnyObject) => Promise<void>;
488
488
  unreadTotal: import("vue").ComputedRef<number>;
489
489
  setSessionList: (list: import("../../shared/types").AnyObject[]) => void;
490
490
  currentWidth: import("vue").ComputedRef<number>;
@@ -527,7 +527,7 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
527
527
  }>>;
528
528
  emit: (event: "close", ...args: any[]) => void;
529
529
  state: import("./src/types").IState;
530
- openSession: (item: import("../../shared/types").AnyObject) => void;
530
+ openSession: (item: import("../../shared/types").AnyObject) => Promise<void>;
531
531
  showUserDetail: import("vue").Ref<boolean>;
532
532
  showLargeAvatar: import("vue").Ref<boolean>;
533
533
  showPhone: import("vue").Ref<boolean>;
@@ -782,7 +782,7 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
782
782
  }>>;
783
783
  emit: (event: "close", ...args: any[]) => void;
784
784
  state: import("./src/types").IState;
785
- openSession: (item: import("../../shared/types").AnyObject) => void;
785
+ openSession: (item: import("../../shared/types").AnyObject) => Promise<void>;
786
786
  showUserDetail: import("vue").Ref<boolean>;
787
787
  showLargeAvatar: import("vue").Ref<boolean>;
788
788
  showPhone: import("vue").Ref<boolean>;
@@ -1174,6 +1174,7 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
1174
1174
  chatMainRef: import("vue").Ref<HTMLElement | undefined>;
1175
1175
  state: import("./src/types").IState;
1176
1176
  setMsgList: (list?: import("../../shared/types").AnyObject[]) => void;
1177
+ setCurrentSessionItem: (item: import("../../shared/types").AnyObject) => void;
1177
1178
  currentInfo: {
1178
1179
  page: number;
1179
1180
  hasMore: boolean;
@@ -1405,7 +1406,7 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
1405
1406
  }>>;
1406
1407
  emit: (event: "close", ...args: any[]) => void;
1407
1408
  state: import("./src/types").IState;
1408
- openSession: (item: import("../../shared/types").AnyObject) => void;
1409
+ openSession: (item: import("../../shared/types").AnyObject) => Promise<void>;
1409
1410
  showUserDetail: import("vue").Ref<boolean>;
1410
1411
  showLargeAvatar: import("vue").Ref<boolean>;
1411
1412
  showPhone: import("vue").Ref<boolean>;
@@ -1569,12 +1570,14 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
1569
1570
  MESSAGE_TYPE: typeof import("./src/constants").MESSAGE_TYPE;
1570
1571
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
1571
1572
  ChatSearch: import("vue").DefineComponent<{}, {
1573
+ cssVars: import("vue").ComputedRef<import("vue").CSSProperties>;
1572
1574
  inputRef: import("vue").Ref<any>;
1573
1575
  showSearch: import("vue").Ref<boolean>;
1574
1576
  keyword: import("vue").Ref<any>;
1575
1577
  userList: import("vue").Ref<any>;
1576
1578
  state: import("./src/types").IState;
1577
- openSession: (item: import("../../shared/types").AnyObject) => void;
1579
+ openSession: (item: import("../../shared/types").AnyObject) => Promise<void>;
1580
+ handleInput: () => Promise<void>;
1578
1581
  handleSearch: () => Promise<void>;
1579
1582
  addSession: (userId: string) => Promise<void>;
1580
1583
  NPopover: any;
@@ -59,7 +59,7 @@ declare const _default: import("vue").DefineComponent<{
59
59
  isUpdateSession: boolean;
60
60
  };
61
61
  reConnention: number;
62
- openSession: (item: AnyObject) => void;
62
+ openSession: (item: AnyObject) => Promise<void>;
63
63
  closeSession: () => AnyObject | null;
64
64
  getCurrentSession: () => AnyObject | null;
65
65
  setSessionList: (list: AnyObject[]) => void;
@@ -487,7 +487,7 @@ declare const _default: import("vue").DefineComponent<{
487
487
  currentFilterKey: import("vue").Ref<string>;
488
488
  state: IState;
489
489
  emit: (event: string, ...args: any[]) => void;
490
- openSession: (item: AnyObject) => void;
490
+ openSession: (item: AnyObject) => Promise<void>;
491
491
  unreadTotal: import("vue").ComputedRef<number>;
492
492
  setSessionList: (list: AnyObject[]) => void;
493
493
  currentWidth: import("vue").ComputedRef<number>;
@@ -530,7 +530,7 @@ declare const _default: import("vue").DefineComponent<{
530
530
  }>>;
531
531
  emit: (event: "close", ...args: any[]) => void;
532
532
  state: IState;
533
- openSession: (item: AnyObject) => void;
533
+ openSession: (item: AnyObject) => Promise<void>;
534
534
  showUserDetail: import("vue").Ref<boolean>;
535
535
  showLargeAvatar: import("vue").Ref<boolean>;
536
536
  showPhone: import("vue").Ref<boolean>;
@@ -785,7 +785,7 @@ declare const _default: import("vue").DefineComponent<{
785
785
  }>>;
786
786
  emit: (event: "close", ...args: any[]) => void;
787
787
  state: IState;
788
- openSession: (item: AnyObject) => void;
788
+ openSession: (item: AnyObject) => Promise<void>;
789
789
  showUserDetail: import("vue").Ref<boolean>;
790
790
  showLargeAvatar: import("vue").Ref<boolean>;
791
791
  showPhone: import("vue").Ref<boolean>;
@@ -1177,6 +1177,7 @@ declare const _default: import("vue").DefineComponent<{
1177
1177
  chatMainRef: import("vue").Ref<HTMLElement | undefined>;
1178
1178
  state: IState;
1179
1179
  setMsgList: (list?: AnyObject[]) => void;
1180
+ setCurrentSessionItem: (item: AnyObject) => void;
1180
1181
  currentInfo: {
1181
1182
  page: number;
1182
1183
  hasMore: boolean;
@@ -1408,7 +1409,7 @@ declare const _default: import("vue").DefineComponent<{
1408
1409
  }>>;
1409
1410
  emit: (event: "close", ...args: any[]) => void;
1410
1411
  state: IState;
1411
- openSession: (item: AnyObject) => void;
1412
+ openSession: (item: AnyObject) => Promise<void>;
1412
1413
  showUserDetail: import("vue").Ref<boolean>;
1413
1414
  showLargeAvatar: import("vue").Ref<boolean>;
1414
1415
  showPhone: import("vue").Ref<boolean>;
@@ -1572,12 +1573,14 @@ declare const _default: import("vue").DefineComponent<{
1572
1573
  MESSAGE_TYPE: typeof import("./constants").MESSAGE_TYPE;
1573
1574
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
1574
1575
  ChatSearch: import("vue").DefineComponent<{}, {
1576
+ cssVars: import("vue").ComputedRef<import("vue").CSSProperties>;
1575
1577
  inputRef: import("vue").Ref<any>;
1576
1578
  showSearch: import("vue").Ref<boolean>;
1577
1579
  keyword: import("vue").Ref<any>;
1578
1580
  userList: import("vue").Ref<any>;
1579
1581
  state: IState;
1580
- openSession: (item: AnyObject) => void;
1582
+ openSession: (item: AnyObject) => Promise<void>;
1583
+ handleInput: () => Promise<void>;
1581
1584
  handleSearch: () => Promise<void>;
1582
1585
  addSession: (userId: string) => Promise<void>;
1583
1586
  NPopover: any;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as s,reactive as o,provide as t,onBeforeUnmount as r,openBlock as n,createElementBlock as i,normalizeStyle as a,unref as c,createVNode as u,withCtx as d,createBlock as m,Fragment as p,createElementVNode as l,renderSlot as h}from"vue";import{NConfigProvider as f,NSpin as S,NLayout as g,NLayoutContent as v}from"naive-ui";import b from"./components/SiderList.vue.js";import j from"./components/ChatHeader.vue.js";import y from"./components/ChatMain.vue.js";import I from"./components/ChatFooter.vue.js";import k from"./components/ChatSearch.vue.js";import{ChatSock as _}from"./utils/chatSock.js";import{instanceAxios as C}from"./api/index.js";import{useTheme as L}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import{isNumber as x}from"lodash-es";import"@vue/shared";import"../../../shared/utils/index.js";import"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{SUBSCRIBE_MESSAGE_TYPE as M}from"./constants/index.js";import{InjectionIChatState as N,InjectionIChatStompClient as U,InjectionIChatEmits as q}from"./types/index.js";import"./utils/emoji.js";import{useSession as T}from"./hooks/useSession.js";const A={class:"c-biunique-chat__header"},O={class:"toolbar"};var E=e({__name:"Index",props:{token:{type:String,required:!0},orgId:{type:[String,Number],required:!0},userId:{type:String,required:!0},baseURL:{type:String,default:"/fdp-chat"}},emits:["template-click","unread-message-update"],setup(e,{expose:E,emit:V}){const w=e;C.defaults.baseURL=w.baseURL,C.defaults.headers.Authorization="bearer "+w.token;const J=L(),R=s(!1),F=s(),H=o({orgId:w.orgId,currentSessionItem:{},id:"",userInfo:{id:w.userId},msgList:[],currentMsg:{},isAppendMsg:!1,sessionList:[],isChangeSession:!1,updateSessionItem:{},isUpdateSession:!1});t(N,H),t(U,F),t(q,V);const{openSession:$,closeSession:z,getCurrentSession:D,setSessionList:G,setUpdateSessionItem:W}=T(H);function B(){const e={headers:{AccessToken:w.token,UserId:w.userId},heartbeatFn(){try{F.value.send("test")}catch(e){F.value.disconnect(),B()}},connectCb(){console.log("连接成功"),F.value.subscribe("/user/topic/single",(({body:e})=>{try{console.log(JSON.parse(e),"订阅新增消息");const s=JSON.parse(e),{messageVo:o,sessionVo:t}=s;switch(s.event){case M.MESSAGE:if(s.messageVo.sender===H.userInfo.id)return;o.sender===H.currentSessionItem.receiver&&(H.currentMsg=o,H.isAppendMsg=!0),W({receiver:o.sender,lastMessageSendTime:o.sendTime,sortTime:o.sendTime,lastMessage:o.content});break;case M.NEW_SESSION:W(t)}}catch(e){console.log(e)}})),F.value.subscribe("/app/sessionList",(({body:e})=>{try{const s=JSON.parse(e),{currentUser:o,sessionVos:t}=s;if(console.log("body",s),Object.assign(H.userInfo,o),!(null==t?void 0:t.length))return;G(t)}catch(e){console.log(e)}}))},errorCb(e,s){console.log("断线了,正在重连...")}};F.value=new _("/fdp-chat/websocket",e)}return async function(){B()}(),r((()=>{var e;null==(e=F.value)||e.disconnect()})),E({getUnreadData:function(){return H.sessionList.filter((e=>x(e.unreadNum)&&e.unreadNum>0))},openSession:$,closeSession:z,getCurrentSession:D}),(e,s)=>(n(),i("div",{class:"c-biunique-chat",style:a(c(J))},[u(c(f),{abstract:"",namespace:"c-biunique-chat__popover"},{default:d((()=>[R.value?(n(),m(c(S),{key:0,stroke:"#5585f5"})):(n(),i(p,{key:1},[l("div",A,[u(k),l("div",O,[h(e.$slots,"toolbar")])]),u(c(g),{class:"c-biunique-chat__body","has-sider":""},{default:d((()=>[u(b),u(c(v),{class:"chat-content"},{default:d((()=>[u(j),u(y),u(I)])),_:1}),h(e.$slots,"external")])),_:3})],64))])),_:3})],4))}});export{E as default};
1
+ import{defineComponent as e,ref as s,reactive as o,provide as t,onBeforeUnmount as r,openBlock as n,createElementBlock as i,normalizeStyle as a,unref as c,createVNode as u,withCtx as d,createBlock as m,Fragment as p,createElementVNode as l,renderSlot as h}from"vue";import{NConfigProvider as f,NSpin as S,NLayout as g,NLayoutContent as v}from"naive-ui";import b from"./components/SiderList.vue.js";import I from"./components/ChatHeader.vue.js";import y from"./components/ChatMain.vue.js";import j from"./components/ChatFooter.vue.js";import k from"./components/ChatSearch.vue.js";import{ChatSock as _}from"./utils/chatSock.js";import{instanceAxios as C,readMessageApi as L}from"./api/index.js";import{useTheme as N}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import{isNumber as x}from"lodash-es";import"@vue/shared";import"../../../shared/utils/index.js";import"@vueuse/shared";import"../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{SUBSCRIBE_MESSAGE_TYPE as M}from"./constants/index.js";import{InjectionIChatState as U,InjectionIChatStompClient as q,InjectionIChatEmits as T}from"./types/index.js";import"./utils/emoji.js";import{useSession as A}from"./hooks/useSession.js";const E={class:"c-biunique-chat__header"},O={class:"toolbar"};var w=e({__name:"Index",props:{token:{type:String,required:!0},orgId:{type:[String,Number],required:!0},userId:{type:String,required:!0},baseURL:{type:String,default:"/fdp-chat"}},emits:["template-click","unread-message-update"],setup(e,{expose:w,emit:V}){const J=e;C.defaults.baseURL=J.baseURL,C.defaults.headers.Authorization="bearer "+J.token;const R=N(),F=s(!1),G=s(),H=o({orgId:J.orgId,currentSessionItem:{},id:"",userInfo:{id:J.userId},msgList:[],currentMsg:{},isAppendMsg:!1,sessionList:[],isChangeSession:!1,updateSessionItem:{},isUpdateSession:!1});t(U,H),t(q,G),t(T,V);const{openSession:$,closeSession:z,getCurrentSession:D,setSessionList:W,setUpdateSessionItem:B}=A(H);function K(){const e={headers:{AccessToken:J.token,UserId:J.userId},heartbeatFn(){try{G.value.send("test")}catch(e){G.value.disconnect(),K()}},connectCb(){console.log("连接成功"),G.value.subscribe("/user/topic/single",(async({body:e})=>{try{console.log(JSON.parse(e),"订阅新增消息");const s=JSON.parse(e),{messageVo:o,sessionVo:t}=s;switch(s.event){case M.MESSAGE:{if(s.messageVo.sender===H.userInfo.id)return;const e={receiver:o.sender,lastMessageSendTime:o.sendTime,sortTime:o.sendTime,lastMessage:o.content};o.sender===H.currentSessionItem.receiver&&(H.currentMsg=o,H.isAppendMsg=!0,await L({chatType:"SINGLE",messageIdSet:o.id,receiver:H.userInfo.id,sender:o.sender}),e.unreadNum=0),B(e);break}case M.NEW_SESSION:B(t)}}catch(e){console.log(e)}})),G.value.subscribe("/app/sessionList",(({body:e})=>{try{const s=JSON.parse(e),{currentUser:o,sessionVos:t}=s;if(console.log("body",s),Object.assign(H.userInfo,o),!(null==t?void 0:t.length))return;W(t)}catch(e){console.log(e)}}))},errorCb(e,s){console.log("断线了,正在重连...")}};G.value=new _("/fdp-chat/websocket",e)}return async function(){K()}(),r((()=>{var e;null==(e=G.value)||e.disconnect()})),w({getUnreadData:function(){return H.sessionList.filter((e=>x(e.unreadNum)&&e.unreadNum>0))},openSession:$,closeSession:z,getCurrentSession:D}),(e,s)=>(n(),i("div",{class:"c-biunique-chat",style:a(c(R))},[u(c(f),{abstract:"",namespace:"c-biunique-chat__popover"},{default:d((()=>[F.value?(n(),m(c(S),{key:0,stroke:"#5585f5"})):(n(),i(p,{key:1},[l("div",E,[u(k),l("div",O,[h(e.$slots,"toolbar")])]),u(c(g),{class:"c-biunique-chat__body","has-sider":""},{default:d((()=>[u(b),u(c(v),{class:"chat-content"},{default:d((()=>[u(I),u(y),u(j)])),_:1}),h(e.$slots,"external")])),_:3})],64))])),_:3})],4))}});export{w as default};
@@ -6,3 +6,4 @@ export declare function toppingSessionApi(params: AnyObject): import("axios").Ax
6
6
  export declare function uploadFileApi(params: FormData): import("axios").AxiosPromise<any>;
7
7
  export declare function listUserApi(params: AnyObject): import("axios").AxiosPromise<any>;
8
8
  export declare function getUserDetailApi(params: AnyObject): import("axios").AxiosPromise<any>;
9
+ export declare function readMessageApi(params: AnyObject): import("axios").AxiosPromise<any>;
@@ -1 +1 @@
1
- import t from"axios";function e(t){const e=[];for(const o in t){const n=t[o];Array.isArray(n)?n.forEach((t=>{e.push(`${encodeURIComponent(o)}=${encodeURIComponent(t)}`)})):e.push(`${encodeURIComponent(o)}=${encodeURIComponent(n)}`)}return e.join("&")}const o=t.create({withCredentials:!0,timeout:5e3});function n(t){return o({headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"post",url:"/chat/openSession",data:e(t)})}function r(t){return o({method:"get",url:"/chat/recordList",params:t})}function a(t){return o({method:"post",url:"/chat/toppingSession",data:t})}function s(t){return o({headers:{"Content-Type":"multipart/form-data"},method:"post",url:"/chat/uploadFile",data:t})}function u(t){return o({method:"get",url:"/user/listUser",params:t})}function i(t){return o({method:"get",url:"/user/getUserDetail",params:t})}o.interceptors.response.use((t=>{var e,o;if(null==(e=t.data)?void 0:e.result)return null==(o=t.data)?void 0:o.data;console.log("请求错误")}));export{r as getHistoryRecordApi,i as getUserDetailApi,o as instanceAxios,u as listUserApi,n as openSessionApi,a as toppingSessionApi,s as uploadFileApi};
1
+ import t from"axios";function e(t){const e=[];for(const o in t){const n=t[o];Array.isArray(n)?n.forEach((t=>{e.push(`${encodeURIComponent(o)}=${encodeURIComponent(t)}`)})):e.push(`${encodeURIComponent(o)}=${encodeURIComponent(n)}`)}return e.join("&")}const o=t.create({withCredentials:!0,timeout:5e3});function n(t){return o({headers:{"Content-Type":"application/x-www-form-urlencoded"},method:"post",url:"/chat/openSession",data:e(t)})}function r(t){return o({method:"get",url:"/chat/recordList",params:t})}function a(t){return o({method:"post",url:"/chat/toppingSession",data:t})}function s(t){return o({headers:{"Content-Type":"multipart/form-data"},method:"post",url:"/chat/uploadFile",data:t})}function u(t){return o({method:"get",url:"/user/listUser",params:t})}function i(t){return o({method:"get",url:"/user/getUserDetail",params:t})}function d(t){return o({method:"post",url:"/chat/readMessage",data:t})}o.interceptors.response.use((t=>{var e,o;if(null==(e=t.data)?void 0:e.result)return null==(o=t.data)?void 0:o.data;console.log("请求错误")}));export{r as getHistoryRecordApi,i as getUserDetailApi,o as instanceAxios,u as listUserApi,n as openSessionApi,d as readMessageApi,a as toppingSessionApi,s as uploadFileApi};
@@ -1 +1 @@
1
- import{defineComponent as t,ref as e,withDirectives as n,openBlock as s,createElementBlock as i,normalizeStyle as a,unref as o,createElementVNode as l,createVNode as r,withCtx as c,createCommentVNode as u,Fragment as d,renderList as f,createBlock as p,createTextVNode as m,toDisplayString as g,vShow as h}from"vue";import{NPopover as v,NTooltip as y,NUpload as M,NUploadTrigger as k,NButton as x}from"naive-ui";import{format as C}from"date-fns";import{useState as T}from"../hooks/useState.js";import{useSession as b}from"../hooks/useSession.js";import{images as w,alt as E}from"../utils/emoji.js";import{MESSAGE_TYPE as I}from"../constants/index.js";import{uploadFileApi as _}from"../api/index.js";const S={class:"tool-box"},j=l("span",null,[l("i",{class:"chat--iconfont chat--icon-face"})],-1),L={class:"emoji-box"},F=l("span",null,"默认表情",-1),K={class:"list-box"},D=["onClick"],H=["src"],J=[l("i",{class:"chat--iconfont chat--icon-good"},null,-1)],N=["onClick"],O=[l("i",{class:"chat--iconfont chat--icon-image"},null,-1)],A=["onClick"],G=[l("i",{class:"chat--iconfont chat--icon-folder"},null,-1)],U={class:"btn-box"},X=l("span",{class:"tip"},"Enter 发送, Shift + Enter 换行",-1);var z=t({__name:"ChatFooter",setup(t){const z=e(),B=e(""),{state:R,stompClient:q}=T(),{setCurrentSessionItem:P}=b(R),Q=e(!1);function V(t){["Enter"].includes(t.key)&&(function(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}(t)||(t.preventDefault(),Z()))}function W(){var t,e;B.value=(null==(e=null==(t=z.value)?void 0:t.innerText)?void 0:e.trim())||""}async function Y(t,e){const{file:n,name:s}=t.file,i=new FormData;i.append("sender",R.userInfo.id),i.append("file",n);const a=await _(i);if(!a)return console.log("上传失败");$({chatMessageType:e,msg:e===I.FILE?s:a,url:a})}function Z(){if(!(B.value.length>2e3))return B.value?void $({msg:B.value}):console.log("请输入内容");console.log("请控制在2000字以内")}async function $(t){const{chatMessageType:e=I.TEXT,msg:n,url:s}=t,i={msg:n,chatMessageType:e};e===I.FILE&&(i.fileUrl=s),[I.TEXT,I.BLEND].includes(e)&&(z.value.innerHTML="",B.value="");const a=C(new Date,"yyyy-MM-dd HH:mm:ss");R.currentMsg={content:i,sender:R.userInfo.id,id:"",sendTime:a,sending:!0,fail:!1},R.isAppendMsg=!0,P({lastMessageSendTime:a,lastMessage:i,sortTime:a});try{q.value.send("/app/chat/send",{},JSON.stringify({chatType:"SINGLE",content:i,receiver:R.currentSessionItem.receiver})),R.currentMsg={...R.currentMsg,fail:!1}}catch(t){R.currentMsg={...R.currentMsg,fail:!0}}finally{R.currentMsg={...R.currentMsg,sending:!1}}}return(t,e)=>n((s(),i("section",{class:"chat-footer",style:a({cursor:o(R).id?"default":"not-allowed"})},[l("div",S,[r(o(v),{show:Q.value,"onUpdate:show":e[0]||(e[0]=t=>Q.value=t),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:c((()=>[j])),default:c((()=>[l("div",L,[u(' <span>最近使用</span>\r\n\t\t\t\t\t<div class="list-box">\r\n\t\t\t\t\t\t<template v-for="(img, index) in images" :key="index">\r\n\t\t\t\t\t\t\t<i>\r\n\t\t\t\t\t\t\t\t<img :src="img" />\r\n\t\t\t\t\t\t\t</i>\r\n\t\t\t\t\t\t</template>\r\n\t\t\t\t\t</div> '),F,l("div",K,[(s(!0),i(d,null,f(o(w),((t,e)=>(s(),i(d,{key:e},[e>0?(s(),p(o(y),{key:0,"show-arrow":!1,trigger:"hover"},{trigger:c((()=>[l("i",{onClick:()=>function(t){Q.value=!1,$({chatMessageType:I.EMOJI,msg:t})}(e)},[l("img",{src:t},null,8,H)],8,D)])),default:c((()=>[m(" "+g(o(E)[e-1]||"微笑"),1)])),_:2},1024)):u("v-if",!0)],64)))),128))])])])),_:1},8,["show"]),l("span",{onClick:e[1]||(e[1]=()=>$({chatMessageType:o(I).EMOJI,msg:0}))},J),r(o(M),{abstract:"",multiple:"",accept:"image/*",onChange:e[2]||(e[2]=t=>Y(t,o(I).IMAGE))},{default:c((()=>[r(o(k),{abstract:""},{default:c((({handleClick:t})=>[l("span",{onClick:t},O,8,N)])),_:1})])),_:1}),r(o(M),{abstract:"",multiple:"",accept:"video/*,.pdf,.doc.docx,,.zip,.xlsx,.txt",onChange:e[3]||(e[3]=t=>Y(t,o(I).FILE))},{default:c((()=>[r(o(k),{abstract:""},{default:c((({handleClick:t})=>[l("span",{onClick:t},G,8,A)])),_:1})])),_:1})]),n(l("div",{ref_key:"inputRef",ref:z,class:"input-box",contenteditable:"",onKeydown:V,onInput:W},null,544),[[h,o(R).id]]),l("div",U,[X,r(o(x),{type:"primary",round:"",disabled:!B.value,onClick:Z},{default:c((()=>[m("发送")])),_:1},8,["disabled"])])],4)),[[h,o(R).id]])}});export{z as default};
1
+ import{defineComponent as t,ref as e,withDirectives as n,openBlock as s,createElementBlock as i,normalizeStyle as a,unref as o,createElementVNode as l,createVNode as c,withCtx as r,createCommentVNode as u,Fragment as d,renderList as f,createBlock as p,createTextVNode as m,toDisplayString as g,vShow as h}from"vue";import{NPopover as v,NTooltip as y,NUpload as M,NUploadTrigger as k,NButton as x}from"naive-ui";import{format as C}from"date-fns";import{useState as T}from"../hooks/useState.js";import{useSession as b}from"../hooks/useSession.js";import{images as w,alt as E}from"../utils/emoji.js";import{MESSAGE_TYPE as I}from"../constants/index.js";import{uploadFileApi as _}from"../api/index.js";const S={class:"tool-box"},j=l("span",null,[l("i",{class:"chat--iconfont chat--icon-face"})],-1),L={class:"emoji-box"},F=l("span",null,"默认表情",-1),K={class:"list-box"},D=["onClick"],H=["src"],J=[l("i",{class:"chat--iconfont chat--icon-good"},null,-1)],N=["onClick"],O=[l("i",{class:"chat--iconfont chat--icon-image"},null,-1)],A=["onClick"],G=[l("i",{class:"chat--iconfont chat--icon-folder"},null,-1)],U={class:"btn-box"},X=l("span",{class:"tip"},"Enter 发送, Shift + Enter 换行",-1);var z=t({__name:"ChatFooter",setup(t){const z=e(),B=e(""),{state:R,stompClient:q}=T(),{setCurrentSessionItem:P}=b(R),Q=e(!1);function V(t){["Enter"].includes(t.key)&&(function(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}(t)||(t.preventDefault(),Z()))}function W(){var t,e;B.value=(null==(e=null==(t=z.value)?void 0:t.innerText)?void 0:e.trim())||""}async function Y(t,e){const{file:n,name:s}=t.file,i=new FormData;i.append("sender",R.userInfo.id),i.append("file",n);const a=await _(i);if(!a)return console.log("上传失败");$({chatMessageType:e,msg:e===I.FILE?s:a,url:a})}function Z(){if(!(B.value.length>2e3))return B.value?void $({msg:B.value}):console.log("请输入内容");console.log("请控制在2000字以内")}async function $(t){const{chatMessageType:e=I.TEXT,msg:n,url:s}=t,i={msg:n,chatMessageType:e};e===I.FILE&&(i.fileUrl=s),[I.TEXT,I.BLEND].includes(e)&&(z.value.innerHTML="",B.value="");const a=C(new Date,"yyyy-MM-dd HH:mm:ss");R.currentMsg={content:i,sender:R.userInfo.id,id:"",sendTime:a,sending:!0,fail:!1},R.isAppendMsg=!0,P({lastMessageSendTime:a,lastMessage:i,sortTime:a});try{q.value.send("/app/chat/send",{},JSON.stringify({chatType:"SINGLE",content:i,receiver:R.currentSessionItem.receiver})),R.currentMsg={...R.currentMsg,fail:!1}}catch(t){R.currentMsg={...R.currentMsg,fail:!0}}finally{R.currentMsg={...R.currentMsg,sending:!1}}}return(t,e)=>n((s(),i("section",{class:"chat-footer",style:a({cursor:o(R).id?"default":"not-allowed"})},[l("div",S,[c(o(v),{show:Q.value,"onUpdate:show":e[0]||(e[0]=t=>Q.value=t),placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show",delay:0},{trigger:r((()=>[j])),default:r((()=>[l("div",L,[u(' <span>最近使用</span>\n\t\t\t\t\t<div class="list-box">\n\t\t\t\t\t\t<template v-for="(img, index) in images" :key="index">\n\t\t\t\t\t\t\t<i>\n\t\t\t\t\t\t\t\t<img :src="img" />\n\t\t\t\t\t\t\t</i>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</div> '),F,l("div",K,[(s(!0),i(d,null,f(o(w),((t,e)=>(s(),i(d,{key:e},[e>0?(s(),p(o(y),{key:0,"show-arrow":!1,trigger:"hover"},{trigger:r((()=>[l("i",{onClick:()=>function(t){Q.value=!1,$({chatMessageType:I.EMOJI,msg:t})}(e)},[l("img",{src:t},null,8,H)],8,D)])),default:r((()=>[m(" "+g(o(E)[e-1]||"微笑"),1)])),_:2},1024)):u("v-if",!0)],64)))),128))])])])),_:1},8,["show"]),l("span",{onClick:e[1]||(e[1]=()=>$({chatMessageType:o(I).EMOJI,msg:0}))},J),c(o(M),{abstract:"",multiple:"",accept:"image/*",onChange:e[2]||(e[2]=t=>Y(t,o(I).IMAGE))},{default:r((()=>[c(o(k),{abstract:""},{default:r((({handleClick:t})=>[l("span",{onClick:t},O,8,N)])),_:1})])),_:1}),c(o(M),{abstract:"",multiple:"",accept:"video/*,.pdf,.doc.docx,,.zip,.xlsx,.txt",onChange:e[3]||(e[3]=t=>Y(t,o(I).FILE))},{default:r((()=>[c(o(k),{abstract:""},{default:r((({handleClick:t})=>[l("span",{onClick:t},G,8,A)])),_:1})])),_:1})]),n(l("div",{ref_key:"inputRef",ref:z,class:"input-box",contenteditable:"",onKeydown:V,onInput:W},null,544),[[h,o(R).id]]),l("div",U,[X,c(o(x),{type:"primary",round:"",disabled:!B.value,onClick:Z},{default:r((()=>[m("发送")])),_:1},8,["disabled"])])],4)),[[h,o(R).id]])}});export{z as default};
@@ -23,7 +23,7 @@ declare const _default: import("vue").DefineComponent<{}, {
23
23
  }>>;
24
24
  emit: (event: "close", ...args: any[]) => void;
25
25
  state: import("../types").IState;
26
- openSession: (item: AnyObject) => void;
26
+ openSession: (item: AnyObject) => Promise<void>;
27
27
  showUserDetail: import("vue").Ref<boolean>;
28
28
  showLargeAvatar: import("vue").Ref<boolean>;
29
29
  showPhone: import("vue").Ref<boolean>;
@@ -278,7 +278,7 @@ declare const _default: import("vue").DefineComponent<{}, {
278
278
  }>>;
279
279
  emit: (event: "close", ...args: any[]) => void;
280
280
  state: import("../types").IState;
281
- openSession: (item: AnyObject) => void;
281
+ openSession: (item: AnyObject) => Promise<void>;
282
282
  showUserDetail: import("vue").Ref<boolean>;
283
283
  showLargeAvatar: import("vue").Ref<boolean>;
284
284
  showPhone: import("vue").Ref<boolean>;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as a,openBlock as o,createElementBlock as t,Fragment as s,withDirectives as i,createElementVNode as r,createVNode as c,unref as n,withCtx as l,toDisplayString as u,vShow as h}from"vue";import{NAvatar as m}from"naive-ui";import{useState as v}from"../hooks/useState.js";import d from"./PersonProfile.vue.js";import f from"./ChatSet.vue.js";import p from"./ChatFile.vue.js";import w from"./ChatRecord.vue.js";const C={class:"chat-header box-shadow"},_={class:"chat-header__left"},g={class:"name"},j={class:"chat-header__right"};var k=e({__name:"ChatHeader",setup(e){const{state:k}=v(),S=a(!1),I=a(!1),U=a("image"),x=a(!1);function y(e){U.value=e,I.value=!0}return(e,a)=>(o(),t(s,null,[i(r("section",C,[r("div",_,[c(d,{"user-id":n(k).currentSessionItem.receiver},{trigger:l((()=>[c(n(m),{round:"",size:30,src:n(k).currentSessionItem.avatar},null,8,["src"])])),_:1},8,["user-id"]),r("span",g,u(n(k).currentSessionItem.name),1)]),r("div",j,[r("i",{class:"chat--iconfont chat--icon-image",onClick:a[0]||(a[0]=()=>y("image"))}),r("i",{class:"chat--iconfont chat--icon-folder",onClick:a[1]||(a[1]=()=>y("file"))}),r("i",{class:"chat--iconfont chat--icon-list-search",onClick:a[2]||(a[2]=e=>x.value=!0)}),r("i",{class:"chat--iconfont chat--icon-set",onClick:a[3]||(a[3]=e=>S.value=!0)})])],512),[[h,n(k).id]]),c(f,{show:S.value,"onUpdate:show":a[4]||(a[4]=e=>S.value=e)},null,8,["show"]),c(p,{show:I.value,"onUpdate:show":a[5]||(a[5]=e=>I.value=e),type:U.value},null,8,["show","type"]),c(w,{show:x.value,"onUpdate:show":a[6]||(a[6]=e=>x.value=e)},null,8,["show"])],64))}});export{k as default};
1
+ import{defineComponent as e,ref as a,openBlock as o,createElementBlock as t,Fragment as s,unref as i,createElementVNode as r,createVNode as c,withCtx as n,toDisplayString as l,createCommentVNode as u}from"vue";import{NAvatar as h}from"naive-ui";import{useState as m}from"../hooks/useState.js";import v from"./PersonProfile.vue.js";import f from"./ChatSet.vue.js";import d from"./ChatFile.vue.js";import p from"./ChatRecord.vue.js";const w={key:0,class:"chat-header box-shadow"},C={class:"chat-header__left"},_={class:"name"},g={class:"chat-header__right"};var k=e({__name:"ChatHeader",setup(e){const{state:k}=m(),j=a(!1),S=a(!1),y=a("image"),I=a(!1);function U(e){y.value=e,S.value=!0}return(e,a)=>(o(),t(s,null,[i(k).id?(o(),t("section",w,[r("div",C,[c(v,{"user-id":i(k).currentSessionItem.receiver},{trigger:n((()=>[c(i(h),{round:"",size:30,src:i(k).currentSessionItem.avatar},null,8,["src"])])),_:1},8,["user-id"]),r("span",_,l(i(k).currentSessionItem.name),1)]),r("div",g,[r("i",{class:"chat--iconfont chat--icon-image",onClick:a[0]||(a[0]=()=>U("image"))}),r("i",{class:"chat--iconfont chat--icon-folder",onClick:a[1]||(a[1]=()=>U("file"))}),r("i",{class:"chat--iconfont chat--icon-list-search",onClick:a[2]||(a[2]=e=>I.value=!0)}),r("i",{class:"chat--iconfont chat--icon-set",onClick:a[3]||(a[3]=e=>j.value=!0)})])])):u("v-if",!0),c(f,{show:j.value,"onUpdate:show":a[4]||(a[4]=e=>j.value=e)},null,8,["show"]),c(d,{show:S.value,"onUpdate:show":a[5]||(a[5]=e=>S.value=e),type:y.value},null,8,["show","type"]),c(p,{show:I.value,"onUpdate:show":a[6]||(a[6]=e=>I.value=e)},null,8,["show"])],64))}});export{k as default};
@@ -4,6 +4,7 @@ declare const _default: import("vue").DefineComponent<{}, {
4
4
  chatMainRef: import("vue").Ref<HTMLElement | undefined>;
5
5
  state: import("../types").IState;
6
6
  setMsgList: (list?: AnyObject[]) => void;
7
+ setCurrentSessionItem: (item: AnyObject) => void;
7
8
  currentInfo: {
8
9
  page: number;
9
10
  hasMore: boolean;
@@ -235,7 +236,7 @@ declare const _default: import("vue").DefineComponent<{}, {
235
236
  }>>;
236
237
  emit: (event: "close", ...args: any[]) => void;
237
238
  state: import("../types").IState;
238
- openSession: (item: AnyObject) => void;
239
+ openSession: (item: AnyObject) => Promise<void>;
239
240
  showUserDetail: import("vue").Ref<boolean>;
240
241
  showLargeAvatar: import("vue").Ref<boolean>;
241
242
  showPhone: import("vue").Ref<boolean>;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,watch as n,openBlock as s,createElementBlock as o,normalizeClass as i,unref as a,createVNode as r,withCtx as l,Fragment as c,renderList as m,toDisplayString as d,createCommentVNode as u,createBlock as p,withModifiers as f}from"vue";import{NImageGroup as g,NAvatar as y,NImage as T}from"naive-ui";import{format as v,isToday as M,isYesterday as h}from"date-fns";import{getHistoryRecordApi as k}from"../api/index.js";import{useState as L}from"../hooks/useState.js";import{last as E,isNumber as _}from"lodash-es";import H from"./PersonProfile.vue.js";import w from"./MessageTemplate.vue.js";import{images as j}from"../utils/emoji.js";import{MESSAGE_TYPE as A}from"../constants/index.js";import{useScrollLoading as b}from"../hooks/useScrollLoading.js";const S={key:0,class:"time"},D={key:2,class:"message-box"},I=["data-time"],P=["innerHTML"],R=["src"],U=["href","onClick"];var O=e({__name:"ChatMain",setup(e){const O=t(),{state:x,setMsgList:C}=L(),F={page:0,hasMore:!0,lastSendTime:v(new Date,"yyyy-MM-dd HH:mm:ss")};async function G(){try{if(!F.hasMore)return;F.page++;const e=await k({sessionKey:x.currentSessionItem.sessionKey,page:F.page,lastSendTime:F.lastSendTime});if(!Array.isArray(e)||0===e.length)return F.hasMore=!1,console.log("接口返回不是一个数组,或者没有更多消息了");F.lastSendTime=E(e).sendTime,C(F.page>1?[...e,...x.msgList]:e)}catch(e){console.log(e)}}function J(e){const{chatMessageType:t,messageTemplate:n}=e.content;return t!==A.TEMPLATE||!!n}function K(e,t){var n,s;const{chatMessageType:o,messageTemplate:i}=e.content;if(o===A.TEMPLATE)return"system"===t?2==(null==(n=null==i?void 0:i.setting)?void 0:n.style.id):2!=(null==(s=null==i?void 0:i.setting)?void 0:s.style.id)}function X(e){var t,n;const{chatMessageType:s,messageTemplate:o}=e;return s===A.TEMPLATE&&3==(null==(n=null==(t=null==o?void 0:o.setting)?void 0:t.style)?void 0:n.id)}function Y(e,t){var n;const s=_(e.sendTime)?e.sendTime:Date.parse(e.sendTime),o=null==(n=x.msgList[t-1])?void 0:n.sendTime;return s-(0===t?0:_(o)?o:Date.parse(o))>3e5}function q(e){const t=new Date(e),n=Date.now()-t.getTime();if(n<6e4)return"刚刚";if(n<36e5)return Math.ceil(n/1e3/60)+"分钟前";if(M(t))return"今天 "+v(t,"HH:mm");if(h(t))return"昨天 "+v(t,"HH:mm");{const e=t.getFullYear(),n=(new Date).getFullYear();return v(t,e<n?"yyyy年M月d日 HH:mm":"M月d日 HH:mm")}}return b(O,(()=>{G()}),"top"),n((()=>x.id),(e=>{e&&(Object.assign(F,{page:0,hasMore:!0,lastSendTime:v(new Date,"yyyy-MM-dd HH:mm:ss")}),G())}),{immediate:!0}),n((()=>x.isAppendMsg),(e=>{e&&(C([...x.msgList,x.currentMsg]),x.isAppendMsg=!1,async function(){var e,t,n;const s=null!=(t=null==(e=O.value)?void 0:e.scrollHeight)?t:0;null==(n=O.value)||n.scrollTo({top:s,behavior:"auto"})}())}),{immediate:!0}),(e,t)=>(s(),o("div",{class:i(["chat-main",{"home-bg":!a(x).id}]),ref_key:"chatMainRef",ref:O},[r(a(g),{"show-toolbar-tooltip":""},{default:l((()=>[(s(!0),o(c,null,m(a(x).msgList,((e,t)=>(s(),o(c,{key:t},[J(e)?(s(),o("div",{key:0,class:i(["message-item",{"message-item--mine":e.sender==a(x).userInfo.id}])},[Y(e,t)?(s(),o("p",S,d(q(e.sendTime)),1)):u("v-if",!0),K(e,"system")?(s(),p(w,{key:1,data:e},null,8,["data"])):(s(),o("div",D,[r(H,{"user-id":e.sender},{trigger:l((()=>[r(a(y),{round:"",size:38,src:e.senderAvatar},null,8,["src"])])),_:2},1032,["user-id"]),e.content?(s(),o("div",{key:0,class:i(["content",{emoji:e.content.chatMessageType===a(A).EMOJI,template:e.content.chatMessageType===a(A).TEMPLATE,"template--3":X(e.content)}]),"data-time":e.__time},[e.content.chatMessageType===a(A).TEXT?(s(),o("pre",{key:0,innerHTML:e.__content},null,8,P)):u("v-if",!0),e.content.chatMessageType===a(A).EMOJI?(s(),o("img",{key:1,src:a(j)[e.__content]},null,8,R)):u("v-if",!0),K(e,"template")?(s(),p(w,{key:2,data:e},null,8,["data"])):u("v-if",!0),e.content.chatMessageType===a(A).IMAGE?(s(),p(a(T),{key:3,width:"240",src:e.__content},null,8,["src"])):u("v-if",!0),e.content.chatMessageType===a(A).FILE?(s(),o("a",{key:4,href:e.content.fileUrl,onClick:f((()=>function(e,t){const n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="blob",n.onload=function(s){if(200===n.status){const s=window.URL.createObjectURL(n.response),o=document.createElement("a");o.href=s,o.download=t,o.dispatchEvent(new MouseEvent("click")),window.URL.revokeObjectURL(e)}},n.send()}(e.content.fileUrl,e.__content)),["prevent"])},d(e.__content),9,U)):u("v-if",!0)],10,I)):u("v-if",!0)]))],2)):u("v-if",!0)],64)))),128))])),_:1})],2))}});export{O as default};
1
+ import{defineComponent as e,ref as t,watch as s,openBlock as n,createElementBlock as o,normalizeClass as i,unref as a,createVNode as r,withCtx as m,Fragment as l,renderList as c,toDisplayString as d,createCommentVNode as u,createBlock as p,withModifiers as f}from"vue";import{NImageGroup as g,NAvatar as y,NImage as T}from"naive-ui";import{format as v,isToday as M,isYesterday as h}from"date-fns";import{getHistoryRecordApi as k,readMessageApi as L}from"../api/index.js";import{useState as E}from"../hooks/useState.js";import{useSession as _}from"../hooks/useSession.js";import{first as w,last as H,isNumber as S}from"lodash-es";import j from"./PersonProfile.vue.js";import I from"./MessageTemplate.vue.js";import{images as A}from"../utils/emoji.js";import{MESSAGE_TYPE as b}from"../constants/index.js";import{useScrollLoading as D}from"../hooks/useScrollLoading.js";const P={key:0,class:"time"},R={key:2,class:"message-box"},U=["data-time"],O=["innerHTML"],x=["src"],C=["href","onClick"];var F=e({__name:"ChatMain",setup(e){const F=t(),{state:G,setMsgList:N}=E(),{setCurrentSessionItem:J}=_(G),K={page:0,hasMore:!0,lastSendTime:v(new Date,"yyyy-MM-dd HH:mm:ss")};async function X(){try{if(!K.hasMore)return;K.page++;const e=await k({sessionKey:G.currentSessionItem.sessionKey,page:K.page,lastSendTime:K.lastSendTime});if(!Array.isArray(e)||0===e.length)return K.hasMore=!1,console.log("接口返回不是一个数组,或者没有更多消息了");const t=w(e).id;K.lastSendTime=H(e).sendTime,N(K.page>1?[...e,...G.msgList]:e),1===K.page&&G.currentSessionItem.unreadNum&&(await L({chatType:"SINGLE",messageIdSet:t,receiver:G.userInfo.id,sender:G.currentSessionItem.receiver}),J({unreadNum:0}))}catch(e){console.log(e)}}function Y(e){const{chatMessageType:t,messageTemplate:s}=e.content;return t!==b.TEMPLATE||!!s}function q(e,t){var s,n;const{chatMessageType:o,messageTemplate:i}=e.content;if(o===b.TEMPLATE)return"system"===t?2==(null==(s=null==i?void 0:i.setting)?void 0:s.style.id):2!=(null==(n=null==i?void 0:i.setting)?void 0:n.style.id)}function z(e){var t,s;const{chatMessageType:n,messageTemplate:o}=e;return n===b.TEMPLATE&&3==(null==(s=null==(t=null==o?void 0:o.setting)?void 0:t.style)?void 0:s.id)}function B(e,t){var s;const n=S(e.sendTime)?e.sendTime:Date.parse(e.sendTime),o=null==(s=G.msgList[t-1])?void 0:s.sendTime;return n-(0===t?0:S(o)?o:Date.parse(o))>3e5}function Q(e){const t=new Date(e),s=Date.now()-t.getTime();if(s<6e4)return"刚刚";if(s<36e5)return Math.ceil(s/1e3/60)+"分钟前";if(M(t))return"今天 "+v(t,"HH:mm");if(h(t))return"昨天 "+v(t,"HH:mm");{const e=t.getFullYear(),s=(new Date).getFullYear();return v(t,e<s?"yyyy年M月d日 HH:mm":"M月d日 HH:mm")}}return D(F,(()=>{X()}),"top"),s((()=>G.id),(e=>{e&&(Object.assign(K,{page:0,hasMore:!0,lastSendTime:v(new Date,"yyyy-MM-dd HH:mm:ss")}),X())}),{immediate:!0}),s((()=>G.isAppendMsg),(e=>{e&&(N([...G.msgList,G.currentMsg]),G.isAppendMsg=!1,async function(){var e,t,s;const n=null!=(t=null==(e=F.value)?void 0:e.scrollHeight)?t:0;null==(s=F.value)||s.scrollTo({top:n,behavior:"auto"})}())}),{immediate:!0}),(e,t)=>(n(),o("div",{class:i(["chat-main",{"home-bg":!a(G).id}]),ref_key:"chatMainRef",ref:F},[r(a(g),{"show-toolbar-tooltip":""},{default:m((()=>[(n(!0),o(l,null,c(a(G).msgList,((e,t)=>(n(),o(l,{key:t},[Y(e)?(n(),o("div",{key:0,class:i(["message-item",{"message-item--mine":e.sender==a(G).userInfo.id}])},[B(e,t)?(n(),o("p",P,d(Q(e.sendTime)),1)):u("v-if",!0),q(e,"system")?(n(),p(I,{key:1,data:e},null,8,["data"])):(n(),o("div",R,[r(j,{"user-id":e.sender},{trigger:m((()=>[r(a(y),{round:"",size:38,src:e.senderAvatar},null,8,["src"])])),_:2},1032,["user-id"]),e.content?(n(),o("div",{key:0,class:i(["content",{emoji:e.content.chatMessageType===a(b).EMOJI,template:e.content.chatMessageType===a(b).TEMPLATE,"template--3":z(e.content)}]),"data-time":e.__time},[e.content.chatMessageType===a(b).TEXT?(n(),o("pre",{key:0,innerHTML:e.__content},null,8,O)):u("v-if",!0),e.content.chatMessageType===a(b).EMOJI?(n(),o("img",{key:1,src:a(A)[e.__content]},null,8,x)):u("v-if",!0),q(e,"template")?(n(),p(I,{key:2,data:e},null,8,["data"])):u("v-if",!0),e.content.chatMessageType===a(b).IMAGE?(n(),p(a(T),{key:3,width:"240",src:e.__content},null,8,["src"])):u("v-if",!0),e.content.chatMessageType===a(b).FILE?(n(),o("a",{key:4,href:e.content.fileUrl,onClick:f((()=>function(e,t){const s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="blob",s.onload=function(n){if(200===s.status){const n=window.URL.createObjectURL(s.response),o=document.createElement("a");o.href=n,o.download=t,o.dispatchEvent(new MouseEvent("click")),window.URL.revokeObjectURL(e)}},s.send()}(e.content.fileUrl,e.__content)),["prevent"])},d(e.__content),9,C)):u("v-if",!0)],10,U)):u("v-if",!0)]))],2)):u("v-if",!0)],64)))),128))])),_:1})],2))}});export{F as default};
@@ -1,10 +1,12 @@
1
1
  declare const _default: import("vue").DefineComponent<{}, {
2
+ cssVars: import("vue").ComputedRef<import("vue").CSSProperties>;
2
3
  inputRef: import("vue").Ref<any>;
3
4
  showSearch: import("vue").Ref<boolean>;
4
5
  keyword: import("vue").Ref<any>;
5
6
  userList: import("vue").Ref<any>;
6
7
  state: import("../types").IState;
7
- openSession: (item: import("../../..").AnyObject) => void;
8
+ openSession: (item: import("../../..").AnyObject) => Promise<void>;
9
+ handleInput: () => Promise<void>;
8
10
  handleSearch: () => Promise<void>;
9
11
  addSession: (userId: string) => Promise<void>;
10
12
  NPopover: any;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as o,watch as a,nextTick as n,openBlock as r,createBlock as s,unref as l,withCtx as t,createVNode as i,createTextVNode as u,createElementVNode as c,withKeys as p,withModifiers as d,createElementBlock as v,Fragment as f,renderList as m,toDisplayString as h}from"vue";import{NPopover as w,NButton as y,NIcon as g,NInput as k,NAvatar as _}from"naive-ui";import{SearchOutline as S}from"@vicons/ionicons5";import{useState as I}from"../hooks/useState.js";import{useSession as j}from"../hooks/useSession.js";import{listUserApi as x,openSessionApi as C}from"../api/index.js";import{isArray as b}from"lodash-es";const z={class:"popover-search"},K={class:"user-list-wrapper"},U=["onClick"],E={class:"user-info"},G=c("span",null,"职务",-1),L=c("span",null,"部门",-1);var N=e({__name:"ChatSearch",setup(e){const N=o(),R=o(!1),T=o(),q=o(),{state:A}=I(),{openSession:B}=j(A);async function D(){const e=await x({orgId:A.orgId,keyword:T.value});b(e)&&(q.value=e)}return a((()=>R.value),(async e=>{var o;e&&(await n(),null==(o=N.value)||o.focus())})),(e,o)=>(r(),s(l(w),{show:R.value,"onUpdate:show":o[1]||(o[1]=e=>R.value=e),placement:"top",trigger:"click","display-directive":"show","show-arrow":!1,delay:0,overlap:""},{trigger:t((()=>[i(l(y),{color:"#d8dce34f",class:"search-trigger-btn"},{icon:t((()=>[i(l(g),{component:l(S),color:"#ffffff80"},null,8,["component"])])),default:t((()=>[u(" 搜索联系人 ")])),_:1})])),default:t((()=>[c("div",z,[i(l(k),{ref_key:"inputRef",ref:N,placeholder:"",size:"small",clearable:"",autofocus:"",round:"",onKeydown:p(d(D,["prevent"]),["enter"]),value:T.value,"onUpdate:value":o[0]||(o[0]=e=>T.value=e)},{prefix:t((()=>[i(l(g),{component:l(S)},null,8,["component"])])),_:1},8,["onKeydown","value"]),c("div",K,[(r(!0),v(f,null,m(q.value,(e=>(r(),v("div",{class:"user-item",key:e.id,onClick:()=>async function(e){R.value=!1;const o=await C({chatType:"SINGLE",receiver:e,sender:A.userInfo.id});B(o)}(e.id)},[i(l(_),{round:"",size:32,src:e.avatar},null,8,["src"]),c("div",E,[c("span",null,h(e.name),1),G,L])],8,U)))),128))])])])),_:1},8,["show"]))}});export{N as default};
1
+ import{defineComponent as e,ref as o,watch as s,nextTick as r,openBlock as a,createBlock as t,unref as n,withCtx as i,createVNode as l,createTextVNode as u,createElementVNode as f,normalizeStyle as c,createElementBlock as p,Fragment as m,renderList as v,toDisplayString as d}from"vue";import{NPopover as h,NButton as k,NIcon as w,NInput as y,NAvatar as g}from"naive-ui";import{SearchOutline as j}from"@vicons/ionicons5";import{useState as I}from"../hooks/useState.js";import{useSession as S}from"../hooks/useSession.js";import{listUserApi as _,openSessionApi as x}from"../api/index.js";import{isArray as C}from"lodash-es";import{useDebounceFn as b}from"@vueuse/core";import{useTheme as z}from"../../../../shared/hooks/useTheme.js";import"date-fns";import"@vue/shared";import"../../../../shared/utils/index.js";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";const T={class:"user-list-wrapper"},U=["onClick"],D={class:"user-info"},E=f("span",null,"职务",-1),G=f("span",null,"部门",-1);var H=e({__name:"ChatSearch",setup(e){const H=z(),L=o(),M=o(!1),N=o(),R=o(),{state:q}=I(),{openSession:A}=S(q),B=b((async function(){if(!N.value)return void(R.value=[]);const e=await _({orgId:q.orgId,keyword:N.value});if(!C(e))return;R.value=e}),300);return s((()=>M.value),(async e=>{var o;e&&(await r(),null==(o=L.value)||o.focus())})),(e,o)=>(a(),t(n(h),{show:M.value,"onUpdate:show":o[1]||(o[1]=e=>M.value=e),placement:"top",trigger:"click","display-directive":"show","show-arrow":!1,delay:0,overlap:""},{trigger:i((()=>[l(n(k),{color:"#ffffff4D",class:"search-trigger-btn"},{icon:i((()=>[l(n(w),{component:n(j),color:"#ffffff80"},null,8,["component"])])),default:i((()=>[u(" 搜索联系人 ")])),_:1})])),default:i((()=>[f("div",{class:"popover-search",style:c(n(H))},[l(n(y),{ref_key:"inputRef",ref:L,size:"small",clearable:"",autofocus:"",value:N.value,"onUpdate:value":o[0]||(o[0]=e=>N.value=e),valueModifiers:{trim:!0},onInput:n(B)},{prefix:i((()=>[l(n(w),{color:"#ffffff80",component:n(j)},null,8,["component"])])),_:1},8,["value","onInput"]),f("div",T,[(a(!0),p(m,null,v(R.value,(e=>(a(),p("div",{class:"user-item",key:e.id,onClick:()=>async function(e){M.value=!1;const o=await x({chatType:"SINGLE",receiver:e,sender:q.userInfo.id});A(o)}(e.id)},[l(n(g),{round:"",size:32,src:e.avatar},null,8,["src"]),f("div",D,[f("span",null,d(e.name),1),E,G])],8,U)))),128))])],4)])),_:1},8,["show"]))}});export{H as default};
@@ -206,7 +206,7 @@ declare const _default: import("vue").DefineComponent<{}, {
206
206
  }>>;
207
207
  emit: (event: "close", ...args: any[]) => void;
208
208
  state: import("../types").IState;
209
- openSession: (item: AnyObject) => void;
209
+ openSession: (item: AnyObject) => Promise<void>;
210
210
  showUserDetail: import("vue").Ref<boolean>;
211
211
  showLargeAvatar: import("vue").Ref<boolean>;
212
212
  showPhone: import("vue").Ref<boolean>;
@@ -1 +1 @@
1
- import{defineComponent as e,useAttrs as s,openBlock as o,createBlock as t,unref as n,withCtx as i,createVNode as r,createElementVNode as a,toDisplayString as u}from"vue";import{NDrawer as c,NDrawerContent as l,NAvatar as m,NIcon as p,NSwitch as f}from"naive-ui";import{ChevronForwardOutline as d}from"@vicons/ionicons5";import{useState as v}from"../hooks/useState.js";import{useSession as h}from"../hooks/useSession.js";import g from"./PersonProfile.vue.js";import{toppingSessionApi as S}from"../api/index.js";import{isFunction as _}from"lodash-es";const I={class:"chat-set-wrapper"},w={class:"item user-info"},j={class:"item"},y=a("span",{class:"label"},"置顶聊天",-1);var b=e({__name:"ChatSet",setup(e){const b=s(),{state:k}=v(),{setCurrentSessionItem:C}=h(k);async function U(e){try{await S({sessionKey:k.currentSessionItem.sessionKey,id:k.currentSessionItem.id,topping:e}),C({topping:e})}catch(e){console.log(e)}}function x(){_(b["onUpdate:show"])&&b["onUpdate:show"](!1)}return(e,s)=>(o(),t(n(c),{width:320,"trap-focus":!1,"block-scroll":!1,to:".c-biunique-chat"},{default:i((()=>[r(n(l),{title:"聊天设置"},{default:i((()=>[a("div",I,[r(g,{"user-id":n(k).currentSessionItem.receiver,onClose:x},{trigger:i((()=>[a("div",w,[r(n(m),{round:"",size:40,src:n(k).currentSessionItem.avatar},null,8,["src"]),a("span",null,u(n(k).currentSessionItem.name),1),r(n(p),{size:24,component:n(d),class:"item__right"},null,8,["component"])])])),_:1},8,["user-id"]),a("div",j,[y,r(n(f),{value:n(k).userInfo.topping,"onUpdate:value":[s[0]||(s[0]=e=>n(k).userInfo.topping=e),U],class:"item__right"},null,8,["value"])])])])),_:1})])),_:1}))}});export{b as default};
1
+ import{defineComponent as e,useAttrs as s,openBlock as t,createBlock as o,unref as n,withCtx as i,createVNode as r,createElementVNode as a,toDisplayString as c}from"vue";import{NDrawer as u,NDrawerContent as m,NAvatar as l,NIcon as p,NSwitch as d}from"naive-ui";import{ChevronForwardOutline as f}from"@vicons/ionicons5";import{useState as v}from"../hooks/useState.js";import{useSession as h}from"../hooks/useSession.js";import S from"./PersonProfile.vue.js";import{toppingSessionApi as g}from"../api/index.js";import{isFunction as _}from"lodash-es";const I={class:"chat-set-wrapper"},w={class:"item user-info"},j={class:"item"},y=a("span",{class:"label"},"置顶聊天",-1);var b=e({__name:"ChatSet",setup(e){const b=s(),{state:k}=v(),{setCurrentSessionItem:C}=h(k);async function U(e){try{await g({sessionKey:k.currentSessionItem.sessionKey,id:k.currentSessionItem.id,topping:e}),C({topping:e})}catch(e){console.log(e)}}function x(){_(b["onUpdate:show"])&&b["onUpdate:show"](!1)}return(e,s)=>(t(),o(n(u),{width:320,"trap-focus":!1,"block-scroll":!1,to:".c-biunique-chat"},{default:i((()=>[r(n(m),{title:"聊天设置"},{default:i((()=>[a("div",I,[r(S,{"user-id":n(k).currentSessionItem.receiver,onClose:x},{trigger:i((()=>[a("div",w,[r(n(l),{round:"",size:40,src:n(k).currentSessionItem.avatar},null,8,["src"]),a("span",null,c(n(k).currentSessionItem.name),1),r(n(p),{size:24,component:n(f),class:"item__right"},null,8,["component"])])])),_:1},8,["user-id"]),a("div",j,[y,r(n(d),{value:n(k).currentSessionItem.topping,"onUpdate:value":[s[0]||(s[0]=e=>n(k).currentSessionItem.topping=e),U],class:"item__right"},null,8,["value"])])])])),_:1})])),_:1}))}});export{b as default};
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,computed as l,openBlock as s,createElementBlock as o,Fragment as n,unref as i,createElementVNode as a,toDisplayString as c,withModifiers as r,createBlock as d,createCommentVNode as m,renderList as u,withCtx as p,createTextVNode as v,normalizeClass as f,createVNode as y}from"vue";import{NIcon as g,NButton as k}from"naive-ui";import{ChevronForwardOutline as _,AlertCircleSharp as h}from"@vicons/ionicons5";import b from"../../../../shared/components/SvgIcon/SvgIcon.vue.js";import{useState as T}from"../hooks/useState.js";const C={class:"default-msg-template__header"},M={class:"title"},S={class:"default-msg-template__body"},E=["src"],H={class:"template-content"},L=["innerHTML"],N={key:0,class:"default-msg-template__btn-group"},w=a("i",{class:"chat--iconfont chat--icon-more"},null,-1),j={key:1,class:"describe-msg-template"},B={class:"describe-msg-template__header"},D={class:"title"},O={class:"txt"},x=a("i",{class:"chat--iconfont chat--icon-more"},null,-1),z={key:2,class:"system-msg-template"},F=["innerHTML"],I=["onClick"];var R=e({__name:"MessageTemplate",props:{data:{type:Object,required:!0}},setup(e){const R=e,q=t(),P=t(!0),{emit:V}=T(),W=l((()=>{if(!q.value)return!1;const{childNodes:e,clientWidth:t}=q.value;let l=0;for(let s=0;s<e.length;s++)if(e[s].nodeType===Node.ELEMENT_NODE){const t=parseFloat(window.getComputedStyle(e[s]).lineHeight);l+=e[s].scrollHeight/t}else if(e[s].nodeType===Node.TEXT_NODE){const o=e[s].nodeValue.trim();if(""!==o){const e=o.split(" "),s=Math.floor(t/parseFloat(window.getComputedStyle(q.value).fontSize));l+=Math.ceil(e.length/s)}}return l>6})),X=l((()=>R.data.content.messageTemplate.setting)),A=l((()=>X.value.serverSetting)),G=l((()=>(A.value.topRightButton||[])[0])),J=l((()=>{const e=(X.value.content||"").split("##").filter((e=>e));return e?e.map((e=>{const t=/\\n|\n|\r/g;return t.test(e)?e.replace(t,"<br>"):e})):[]})),K=l((()=>{var e;return(null==(e=A.value)?void 0:e.toolbar_button)||[]})),Q=l((()=>(A.value.bottomButton||[])[0])),U=l((()=>X.value.dbParamsList)),Y=l((()=>R.data.content.messageTemplateData));function Z(e){V("template-click",e,R.data)}return(e,t)=>(s(),o(n,null,[1==i(X).style.id?(s(),o("div",{key:0,class:"default-msg-template",onClick:t[2]||(t[2]=()=>Z(i(A)))},[a("div",C,[a("span",M,c(i(X).title),1),i(G)?(s(),o("span",{key:0,class:"btn",onClick:t[0]||(t[0]=r((()=>Z(i(G))),["stop"]))},c(i(G).title),1)):i(A).address?(s(),d(i(g),{key:1,component:i(_),color:"#969696"},null,8,["component"])):m("v-if",!0)]),a("div",S,[i(X).style.icon?(s(),d(i(b),{key:0,class:"logo","icon-class":i(X).style.icon},null,8,["icon-class"])):i(X).style.image?(s(),o("img",{key:1,class:"logo",src:i(X).style.image},null,8,E)):m("v-if",!0),a("div",H,[(s(!0),o(n,null,u(i(J),(e=>(s(),o("div",{key:e,innerHTML:e},null,8,L)))),128))])]),i(K)?(s(),o("div",N,[(s(!0),o(n,null,u(i(K),((e,t)=>(s(),d(i(k),{type:"primary",round:"",ghost:"",onClick:r((()=>Z(e)),["stop"]),key:t},{default:p((()=>[v(c(e.title),1)])),_:2},1032,["onClick"])))),128))])):m("v-if",!0),i(Q)?(s(),o("div",{key:1,class:"default-msg-template__footer",onClick:t[1]||(t[1]=r((()=>Z(i(Q))),["stop"]))},[v(c(i(Q).title)+" ",1),w])):m("v-if",!0)])):m("v-if",!0),3==i(X).style.id?(s(),o("div",j,[a("div",B,c(i(X).title),1),a("div",{class:f(["describe-msg-template__body",i(W)&&P.value?"overflow-hidden":""]),ref_key:"describeBodyRef",ref:q},[(s(!0),o(n,null,u(i(U),((e,t)=>(s(),o(n,{key:t},[a("div",D,c(e.desc),1),a("div",O,c(i(Y)[e.p_name]),1)],64)))),128))],2),i(W)?(s(),o("div",{key:0,class:f(["describe-msg-template__footer",P.value?"":"hidden"]),onClick:t[3]||(t[3]=()=>P.value=!1)},[v(" 展开全部 "),x],2)):m("v-if",!0)])):m("v-if",!0),2==i(X).style.id?(s(),o("div",z,[y(i(g),{component:i(h),color:"#ffc200",size:18},null,8,["component"]),a("span",{innerHTML:J.value.join("<br>")},null,8,F),(s(!0),o(n,null,u(i(K),((e,t)=>(s(),o("span",{class:"btn",onClick:()=>Z(e),key:t},c(e.title),9,I)))),128))])):m("v-if",!0)],64))}});export{R as default};
1
+ import{defineComponent as e,ref as t,computed as l,openBlock as s,createElementBlock as n,Fragment as o,unref as a,createElementVNode as i,toDisplayString as c,withModifiers as r,createBlock as d,createCommentVNode as m,renderList as u,withCtx as p,createTextVNode as v,normalizeClass as f,createVNode as g}from"vue";import{NIcon as y,NButton as k}from"naive-ui";import{ChevronForwardOutline as _,AlertCircleSharp as h}from"@vicons/ionicons5";import b from"../../../../shared/components/SvgIcon/SvgIcon.vue.js";import{useState as T}from"../hooks/useState.js";const C={class:"default-msg-template__header"},M={class:"title"},L={class:"default-msg-template__body"},S=["src"],E={class:"template-content"},H=["innerHTML"],N={key:0,class:"default-msg-template__btn-group"},w=i("i",{class:"chat--iconfont chat--icon-more"},null,-1),j={key:1,class:"describe-msg-template"},B={class:"describe-msg-template__header"},D={class:"title"},O={class:"txt"},x=i("i",{class:"chat--iconfont chat--icon-more"},null,-1),z={key:2,class:"system-msg-template"},F=["innerHTML"],I=["onClick"];var P=e({__name:"MessageTemplate",props:{data:{type:Object,required:!0}},setup(e){const P=e,R=t(),q=t(!0),{emit:V}=T(),W=l((()=>{if(!R.value)return!1;const{childNodes:e,clientWidth:t}=R.value;let l=0;for(let s=0;s<e.length;s++)if(e[s].nodeType===Node.ELEMENT_NODE){const t=parseFloat(window.getComputedStyle(e[s]).lineHeight);l+=e[s].scrollHeight/t}else if(e[s].nodeType===Node.TEXT_NODE){const n=e[s].nodeValue.trim();if(""!==n){const e=n.split(" "),s=Math.floor(t/parseFloat(window.getComputedStyle(R.value).fontSize));l+=Math.ceil(e.length/s)}}return l>6})),X=l((()=>P.data.content.messageTemplate.setting)),$=l((()=>X.value.serverSetting)),A=l((()=>($.value.topRightButton||[])[0])),G=l((()=>{const e=(X.value.content||"").split("##").filter((e=>e));if(!e)return[];const{dbParamsList:t}=X.value||{};return e.map((e=>(e||"").replace(/\\n|\n|\r/g,"<br>").replace(/\${(.*?)}/g,((e,l)=>{var s;if(0===(t||[]).length)return"";return(null==(s=t.find((e=>e.p_name===l)))?void 0:s.desc)||""}))))})),J=l((()=>{var e;return(null==(e=$.value)?void 0:e.toolbar_button)||[]})),K=l((()=>($.value.bottomButton||[])[0])),Q=l((()=>X.value.dbParamsList)),U=l((()=>P.data.content.messageTemplateData));function Y(e){V("template-click",e,P.data)}return(e,t)=>(s(),n(o,null,[1==a(X).style.id?(s(),n("div",{key:0,class:"default-msg-template",onClick:t[2]||(t[2]=()=>Y(a($)))},[i("div",C,[i("span",M,c(a(X).title),1),a(A)?(s(),n("span",{key:0,class:"btn",onClick:t[0]||(t[0]=r((()=>Y(a(A))),["stop"]))},c(a(A).title),1)):a($).address?(s(),d(a(y),{key:1,component:a(_),color:"#969696"},null,8,["component"])):m("v-if",!0)]),i("div",L,[a(X).style.icon?(s(),d(a(b),{key:0,class:"logo","icon-class":a(X).style.icon},null,8,["icon-class"])):a(X).style.image?(s(),n("img",{key:1,class:"logo",src:a(X).style.image},null,8,S)):m("v-if",!0),i("div",E,[(s(!0),n(o,null,u(a(G),(e=>(s(),n("div",{key:e,innerHTML:e},null,8,H)))),128))])]),a(J)?(s(),n("div",N,[(s(!0),n(o,null,u(a(J),((e,t)=>(s(),d(a(k),{type:"primary",round:"",ghost:"",onClick:r((()=>Y(e)),["stop"]),key:t},{default:p((()=>[v(c(e.title),1)])),_:2},1032,["onClick"])))),128))])):m("v-if",!0),a(K)?(s(),n("div",{key:1,class:"default-msg-template__footer",onClick:t[1]||(t[1]=r((()=>Y(a(K))),["stop"]))},[v(c(a(K).title)+" ",1),w])):m("v-if",!0)])):m("v-if",!0),3==a(X).style.id?(s(),n("div",j,[i("div",B,c(a(X).title),1),i("div",{class:f(["describe-msg-template__body",a(W)&&q.value?"overflow-hidden":""]),ref_key:"describeBodyRef",ref:R},[(s(!0),n(o,null,u(a(Q),((e,t)=>(s(),n(o,{key:t},[i("div",D,c(e.desc),1),i("div",O,c(a(U)[e.p_name]),1)],64)))),128))],2),a(W)?(s(),n("div",{key:0,class:f(["describe-msg-template__footer",q.value?"":"hidden"]),onClick:t[3]||(t[3]=()=>q.value=!1)},[v(" 展开全部 "),x],2)):m("v-if",!0)])):m("v-if",!0),2==a(X).style.id?(s(),n("div",z,[g(a(y),{component:a(h),color:"#ffc200",size:18},null,8,["component"]),i("span",{innerHTML:G.value.join("<br>")},null,8,F),(s(!0),n(o,null,u(a(J),((e,t)=>(s(),n("span",{class:"btn",onClick:()=>Y(e),key:t},c(e.title),9,I)))),128))])):m("v-if",!0)],64))}});export{P as default};
@@ -16,7 +16,7 @@ declare const _default: import("vue").DefineComponent<{
16
16
  }>>;
17
17
  emit: (event: "close", ...args: any[]) => void;
18
18
  state: import("../types").IState;
19
- openSession: (item: AnyObject) => void;
19
+ openSession: (item: AnyObject) => Promise<void>;
20
20
  showUserDetail: import("vue").Ref<boolean>;
21
21
  showLargeAvatar: import("vue").Ref<boolean>;
22
22
  showPhone: import("vue").Ref<boolean>;
@@ -15,7 +15,7 @@ declare const _default: import("vue").DefineComponent<{}, {
15
15
  currentFilterKey: import("vue").Ref<string>;
16
16
  state: import("../types").IState;
17
17
  emit: (event: string, ...args: any[]) => void;
18
- openSession: (item: AnyObject) => void;
18
+ openSession: (item: AnyObject) => Promise<void>;
19
19
  unreadTotal: import("vue").ComputedRef<number>;
20
20
  setSessionList: (list: AnyObject[]) => void;
21
21
  currentWidth: import("vue").ComputedRef<number>;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as s,computed as i,watch as n,withDirectives as a,openBlock as t,createElementBlock as l,normalizeStyle as r,unref as o,createBlock as u,createCommentVNode as d,createElementVNode as v,Fragment as c,renderList as m,withCtx as p,createTextVNode as f,toDisplayString as k,normalizeClass as h,createVNode as y,vShow as S}from"vue";import{NSpin as _,NTag as g,NAvatar as b,NBadge as x}from"naive-ui";import{useState as L}from"../hooks/useState.js";import{useSession as M}from"../hooks/useSession.js";import{vFlexibleResize as C}from"../../../../shared/directive/flexibleResize.js";import{listSort as j,formatTime as T}from"../utils/index.js";const w={class:"sider-list__filter box-shadow"},I=["onClick"],N={class:"avatar-right"},R={class:"name"},z={class:"msg-tip"},H={class:"msg-tip__content"},U=["innerHTML"];var B=e({__name:"SiderList",setup(e){const B="all",E="unread",O=s(300),V=s(),q=s(!1),A=s([{label:"全部",key:B},{label:"未读",key:E}]),D=s("all"),{state:F,emit:G}=L(),{openSession:J,unreadTotal:K,setSessionList:P}=M(F),Q=i((()=>Math.min(Math.max(O.value,240),360))),W=i((()=>j(F.sessionList)));function X(e){!e.id||F.sessionList.map((e=>e.id)).includes(e.id)?F.sessionList.forEach((s=>{s.receiver===e.receiver&&(Object.assign(s,e),e.receiver!==F.currentSessionItem.receiver&&s.unreadNum++)})):P([...F.sessionList,e])}function Y({distance:e}){O.value=O.value+e}function Z(e,s=o(D)){var i;return s===B||(s===E?(null!=(i=e.unreadNum)?i:0)>0:void 0)}return n([()=>F.isChangeSession,()=>F.isUpdateSession],(([e,s])=>{e&&(X(F.currentSessionItem),F.isChangeSession=!1),s&&(X(F.updateSessionItem),F.isUpdateSession=!1)}),{immediate:!0}),n((()=>K.value),(e=>{const s=W.value.filter((e=>Z(e,E)));G("unread-message-update",e,s)})),(e,s)=>a((t(),l("section",{class:"sider-list",style:r({width:o(Q)+"px"})},[q.value?(t(),u(o(_),{key:0,stroke:"#5585f5"})):d("v-if",!0),d(' <n-input v-else placeholder="输入用户名模糊搜索" v-model:value="keyword" @keyup.enter="handleSearch"></n-input> '),v("div",w,[(t(!0),l(c,null,m(A.value,(e=>(t(),u(o(g),{type:D.value===e.key?"info":"default",round:"",bordered:!1,key:e.key,onClick:()=>{return s=e.key,void(D.value=s);var s}},{default:p((()=>[f(k(e.label)+"("+k(o(K))+") ",1)])),_:2},1032,["type","onClick"])))),128))]),v("div",{class:"sider-list__box",ref_key:"listBoxRef",ref:V},[(t(!0),l(c,null,m(o(W),(e=>a((t(),l("div",{key:e.id,onClick:()=>o(J)(e),class:h(["sider-list__box__item",{active:e.id===o(F).id}])},[y(o(b),{round:"",size:"large",src:e.avatar},null,8,["src"]),v("div",N,[v("div",R,[v("h4",null,k(e.name),1),v("span",null,k(o(T)(e.lastMessageSendTime).siderMsgTime),1)]),v("div",z,[v("div",H,[v("div",{innerHTML:e.lastMessageContent},null,8,U)]),y(o(x),{value:e.unreadNum},null,8,["value"])])])],10,I)),[[S,Z(e)]]))),128))],512)],4)),[[o(C),{mode:"VR",onMove:Y}]])}});export{B as default};
1
+ import{defineComponent as e,ref as s,computed as i,watch as t,withDirectives as a,openBlock as n,createElementBlock as l,normalizeStyle as r,unref as o,createBlock as u,createCommentVNode as d,createElementVNode as v,Fragment as m,renderList as c,withCtx as p,createTextVNode as f,toDisplayString as k,normalizeClass as _,createVNode as h,vShow as y}from"vue";import{NSpin as S,NTag as g,NAvatar as b,NBadge as x}from"naive-ui";import{useState as M}from"../hooks/useState.js";import{useSession as L}from"../hooks/useSession.js";import{vFlexibleResize as C}from"../../../../shared/directive/flexibleResize.js";import{listSort as j,formatTime as N}from"../utils/index.js";const T={class:"sider-list__filter box-shadow"},w=["onClick"],I={class:"avatar-right"},R={class:"name"},z={class:"msg-tip"},H={class:"msg-tip__content"},U=["innerHTML"];var B=e({__name:"SiderList",setup(e){const B="all",E="unread",O=s(300),V=s(),q=s(!1),A=s([{label:"全部",key:B},{label:"未读",key:E}]),D=s("all"),{state:F,emit:G}=M(),{openSession:J,unreadTotal:K,setSessionList:P}=L(F),Q=i((()=>Math.min(Math.max(O.value,240),360))),W=i((()=>j(F.sessionList)));function X(e){!e.id||F.sessionList.map((e=>e.id)).includes(e.id)?F.sessionList.forEach((s=>{if(s.receiver===e.receiver){let{unreadNum:i=0}=s;Object.assign(s,e),e.receiver!==F.currentSessionItem.receiver&&(s.unreadNum=++i)}})):P([...F.sessionList,e])}function Y({distance:e}){O.value=O.value+e}function Z(e,s=o(D)){var i;return s===B||(s===E?(null!=(i=e.unreadNum)?i:0)>0:void 0)}return t([()=>F.isChangeSession,()=>F.isUpdateSession],(([e,s])=>{e&&(X(F.currentSessionItem),F.isChangeSession=!1),s&&(X(F.updateSessionItem),F.isUpdateSession=!1)}),{immediate:!0}),t((()=>K.value),(e=>{const s=W.value.filter((e=>Z(e,E)));G("unread-message-update",e,s)})),(e,s)=>a((n(),l("section",{class:"sider-list",style:r({width:o(Q)+"px"})},[q.value?(n(),u(o(S),{key:0,stroke:"#5585f5"})):d("v-if",!0),d(' <n-input v-else placeholder="输入用户名模糊搜索" v-model:value="keyword" @keyup.enter="handleSearch"></n-input> '),v("div",T,[(n(!0),l(m,null,c(A.value,(e=>(n(),u(o(g),{type:D.value===e.key?"info":"default",round:"",bordered:!1,key:e.key,onClick:()=>{return s=e.key,void(D.value=s);var s}},{default:p((()=>[f(k(e.label)+"("+k(o(K))+") ",1)])),_:2},1032,["type","onClick"])))),128))]),v("div",{class:"sider-list__box",ref_key:"listBoxRef",ref:V},[(n(!0),l(m,null,c(o(W),(e=>a((n(),l("div",{key:e.id,onClick:()=>o(J)(e),class:_(["sider-list__box__item",{active:e.id===o(F).id},e.topping?"sider-list__box__item--top":""])},[h(o(b),{round:"",size:"large",src:e.avatar},null,8,["src"]),v("div",I,[v("div",R,[v("h4",null,k(e.name),1),v("span",null,k(e.lastMessage?o(N)(e.lastMessageSendTime).siderMsgTime:""),1)]),v("div",z,[v("div",H,[v("div",{innerHTML:e.lastMessageContent},null,8,U)]),h(o(x),{value:e.unreadNum>99?"99+":e.unreadNum},null,8,["value"])])])],10,w)),[[y,Z(e)]]))),128))],512)],4)),[[o(C),{mode:"VR",onMove:Y}]])}});export{B as default};
@@ -1,7 +1,7 @@
1
1
  import { AnyObject } from '../../../../shared/types';
2
2
  import { IState } from '../types';
3
3
  export declare function useSession(state: IState): {
4
- openSession: (item: AnyObject) => void;
4
+ openSession: (item: AnyObject) => Promise<void>;
5
5
  closeSession: () => AnyObject | null;
6
6
  getCurrentSession: () => AnyObject | null;
7
7
  setCurrentSessionItem: (item: AnyObject) => void;