cnhis-design-vue 3.2.2-beta.24 → 3.2.2-beta.30

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 (256) hide show
  1. package/README.md +87 -87
  2. package/es/components/biunique-chat/index.d.ts +15 -23
  3. package/es/components/biunique-chat/src/Index.vue.d.ts +15 -23
  4. package/es/components/biunique-chat/src/Index.vue2.js +1 -1
  5. package/es/components/biunique-chat/src/components/ChatFooter.vue.d.ts +1 -1
  6. package/es/components/biunique-chat/src/components/ChatFooter.vue2.js +1 -1
  7. package/es/components/biunique-chat/src/components/ChatHeader.vue2.js +1 -1
  8. package/es/components/biunique-chat/src/components/ChatMain.vue.d.ts +1 -1
  9. package/es/components/biunique-chat/src/components/ChatMain.vue2.js +1 -1
  10. package/es/components/biunique-chat/src/components/SiderList.vue.d.ts +8 -3
  11. package/es/components/biunique-chat/src/components/SiderList.vue2.js +1 -1
  12. package/es/components/biunique-chat/src/hooks/useSession.d.ts +1 -0
  13. package/es/components/biunique-chat/src/hooks/useSession.js +1 -1
  14. package/es/components/biunique-chat/src/hooks/useState.js +1 -1
  15. package/es/components/biunique-chat/src/types/index.d.ts +1 -1
  16. package/es/components/biunique-chat/src/utils/emoji.d.ts +1 -1
  17. package/es/components/biunique-chat/src/utils/emoji.js +1 -1
  18. package/es/components/biunique-chat/src/utils/index.js +1 -1
  19. package/es/components/biunique-chat/style/index.css +1 -1
  20. package/es/components/button-print/index.d.ts +16 -1
  21. package/es/components/button-print/src/ButtonPrint.vue.d.ts +16 -1
  22. package/es/components/button-print/src/ButtonPrint.vue2.js +1 -1
  23. package/es/components/button-print/src/utils/print.d.ts +1 -0
  24. package/es/components/button-print/src/utils/print.js +1 -1
  25. package/es/components/card-reader-sdk/src/insuranceSDK.js +1 -1
  26. package/es/components/classification/src/index.vue.d.ts +0 -3
  27. package/es/components/field-set/src/FieldColor.vue.d.ts +1 -1
  28. package/es/components/field-set/src/components/edit-dialog.vue.d.ts +1 -1
  29. package/es/components/form-config/src/constants/index.d.ts +1 -0
  30. package/es/components/form-config/src/constants/index.js +1 -1
  31. package/es/components/form-config/src/hooks/useConfigurationField.js +1 -1
  32. package/es/components/index.css +1 -1
  33. package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
  34. package/es/components/select-label/src/LabelFormContent.vue2.js +1 -1
  35. package/es/components/select-person/src/SearchMultiple.vue.d.ts +6 -0
  36. package/es/components/step-notice/index.d.ts +1538 -1
  37. package/es/components/step-notice/src/StepNotice.vue.d.ts +1538 -1
  38. package/es/components/step-notice/src/StepNotice.vue2.js +1 -1
  39. package/es/components/step-notice/style/index.css +1 -1
  40. package/es/shared/assets/img/emoji/666.gif.js +1 -0
  41. package/es/shared/assets/img/emoji/emotion_001.png.js +1 -1
  42. package/es/shared/assets/img/emoji/emotion_002.png.js +1 -1
  43. package/es/shared/assets/img/emoji/emotion_003.png.js +1 -1
  44. package/es/shared/assets/img/emoji/emotion_004.png.js +1 -1
  45. package/es/shared/assets/img/emoji/emotion_005.png.js +1 -1
  46. package/es/shared/assets/img/emoji/emotion_006.png.js +1 -1
  47. package/es/shared/assets/img/emoji/emotion_007.png.js +1 -1
  48. package/es/shared/assets/img/emoji/emotion_008.png.js +1 -1
  49. package/es/shared/assets/img/emoji/emotion_009.png.js +1 -1
  50. package/es/shared/assets/img/emoji/emotion_010.png.js +1 -1
  51. package/es/shared/assets/img/emoji/emotion_011.png.js +1 -1
  52. package/es/shared/assets/img/emoji/emotion_012.png.js +1 -1
  53. package/es/shared/assets/img/emoji/emotion_013.png.js +1 -1
  54. package/es/shared/assets/img/emoji/emotion_014.png.js +1 -1
  55. package/es/shared/assets/img/emoji/emotion_015.png.js +1 -1
  56. package/es/shared/assets/img/emoji/emotion_016.png.js +1 -1
  57. package/es/shared/assets/img/emoji/emotion_017.png.js +1 -1
  58. package/es/shared/assets/img/emoji/emotion_018.png.js +1 -1
  59. package/es/shared/assets/img/emoji/emotion_019.png.js +1 -1
  60. package/es/shared/assets/img/emoji/emotion_020.png.js +1 -1
  61. package/es/shared/assets/img/emoji/emotion_021.png.js +1 -1
  62. package/es/shared/assets/img/emoji/emotion_022.png.js +1 -1
  63. package/es/shared/assets/img/emoji/emotion_023.png.js +1 -1
  64. package/es/shared/assets/img/emoji/emotion_024.png.js +1 -1
  65. package/es/shared/assets/img/emoji/emotion_025.png.js +1 -1
  66. package/es/shared/assets/img/emoji/emotion_026.png.js +1 -1
  67. package/es/shared/assets/img/emoji/emotion_027.png.js +1 -1
  68. package/es/shared/assets/img/emoji/emotion_028.png.js +1 -1
  69. package/es/shared/assets/img/emoji/emotion_029.png.js +1 -1
  70. package/es/shared/assets/img/emoji/emotion_030.png.js +1 -1
  71. package/es/shared/assets/img/emoji/emotion_031.png.js +1 -1
  72. package/es/shared/assets/img/emoji/emotion_032.png.js +1 -1
  73. package/es/shared/assets/img/emoji/emotion_033.png.js +1 -1
  74. package/es/shared/assets/img/emoji/emotion_034.png.js +1 -1
  75. package/es/shared/assets/img/emoji/emotion_035.png.js +1 -1
  76. package/es/shared/assets/img/emoji/emotion_036.png.js +1 -1
  77. package/es/shared/assets/img/emoji/emotion_037.png.js +1 -1
  78. package/es/shared/assets/img/emoji/emotion_038.png.js +1 -1
  79. package/es/shared/assets/img/emoji/emotion_039.png.js +1 -1
  80. package/es/shared/assets/img/emoji/emotion_040.png.js +1 -1
  81. package/es/shared/assets/img/emoji/emotion_041.png.js +1 -1
  82. package/es/shared/assets/img/emoji/emotion_042.png.js +1 -1
  83. package/es/shared/assets/img/emoji/emotion_043.png.js +1 -1
  84. package/es/shared/assets/img/emoji/emotion_044.png.js +1 -1
  85. package/es/shared/assets/img/emoji/emotion_045.png.js +1 -1
  86. package/es/shared/assets/img/emoji/emotion_046.png.js +1 -1
  87. package/es/shared/assets/img/emoji/emotion_047.png.js +1 -1
  88. package/es/shared/assets/img/emoji/emotion_048.png.js +1 -1
  89. package/es/shared/assets/img/emoji/emotion_049.png.js +1 -1
  90. package/es/shared/assets/img/emoji/emotion_050.png.js +1 -1
  91. package/es/shared/assets/img/emoji/emotion_051.png.js +1 -1
  92. package/es/shared/assets/img/emoji/emotion_052.png.js +1 -1
  93. package/es/shared/assets/img/emoji/emotion_053.png.js +1 -1
  94. package/es/shared/assets/img/emoji/emotion_054.png.js +1 -1
  95. package/es/shared/assets/img/emoji/emotion_055.png.js +1 -1
  96. package/es/shared/assets/img/emoji/emotion_056.png.js +1 -1
  97. package/es/shared/assets/img/emoji/emotion_057.png.js +1 -1
  98. package/es/shared/assets/img/emoji/emotion_058.png.js +1 -1
  99. package/es/shared/assets/img/emoji/emotion_059.png.js +1 -1
  100. package/es/shared/assets/img/emoji/emotion_060.png.js +1 -1
  101. package/es/shared/assets/img/emoji/emotion_061.png.js +1 -1
  102. package/es/shared/assets/img/emoji/emotion_062.png.js +1 -1
  103. package/es/shared/assets/img/emoji/emotion_063.png.js +1 -1
  104. package/es/shared/assets/img/emoji/emotion_064.png.js +1 -1
  105. package/es/shared/assets/img/emoji/emotion_065.png.js +1 -1
  106. package/es/shared/assets/img/emoji/emotion_066.png.js +1 -1
  107. package/es/shared/assets/img/emoji/emotion_067.png.js +1 -1
  108. package/es/shared/assets/img/emoji/emotion_068.png.js +1 -1
  109. package/es/shared/assets/img/emoji/emotion_069.png.js +1 -1
  110. package/es/shared/assets/img/emoji/emotion_070.png.js +1 -1
  111. package/es/shared/assets/img/emoji/emotion_071.png.js +1 -1
  112. package/es/shared/assets/img/emoji/emotion_072.png.js +1 -1
  113. package/es/shared/assets/img/emoji/emotion_073.png.js +1 -1
  114. package/es/shared/assets/img/emoji/emotion_074.png.js +1 -1
  115. package/es/shared/assets/img/emoji/emotion_075.png.js +1 -1
  116. package/es/shared/assets/img/emoji/emotion_076.png.js +1 -1
  117. package/es/shared/assets/img/emoji/emotion_077.png.js +1 -1
  118. package/es/shared/assets/img/emoji/emotion_078.png.js +1 -1
  119. package/es/shared/assets/img/emoji/emotion_079.png.js +1 -1
  120. package/es/shared/assets/img/emoji/emotion_080.png.js +1 -1
  121. package/es/shared/assets/img/emoji/emotion_081.png.js +1 -1
  122. package/es/shared/assets/img/emoji/emotion_082.png.js +1 -1
  123. package/es/shared/assets/img/emoji/emotion_083.png.js +1 -1
  124. package/es/shared/assets/img/emoji/emotion_084.png.js +1 -1
  125. package/es/shared/assets/img/emoji/emotion_085.png.js +1 -1
  126. package/es/shared/assets/img/emoji/emotion_086.png.js +1 -1
  127. package/es/shared/assets/img/emoji/emotion_087.png.js +1 -1
  128. package/es/shared/assets/img/emoji/emotion_088.png.js +1 -1
  129. package/es/shared/assets/img/emoji/emotion_089.png.js +1 -1
  130. package/es/shared/assets/img/emoji/emotion_090.png.js +1 -1
  131. package/es/shared/assets/img/emoji/emotion_091.png.js +1 -1
  132. package/es/shared/assets/img/emoji/emotion_092.png.js +1 -1
  133. package/es/shared/assets/img/emoji/emotion_093.png.js +1 -1
  134. package/es/shared/assets/img/emoji/emotion_094.png.js +1 -1
  135. package/es/shared/assets/img/emoji/emotion_095.png.js +1 -1
  136. package/es/shared/assets/img/emoji/emotion_096.png.js +1 -1
  137. package/es/shared/assets/img/emoji/emotion_097.png.js +1 -1
  138. package/es/shared/assets/img/emoji/emotion_098.png.js +1 -1
  139. package/es/shared/assets/img/emoji/emotion_099.png.js +1 -1
  140. package/es/shared/assets/img/emoji/emotion_100.png.js +1 -1
  141. package/es/shared/assets/img/emoji/emotion_101.png.js +1 -1
  142. package/es/shared/assets/img/emoji/emotion_102.png.js +1 -1
  143. package/es/shared/assets/img/emoji/emotion_103.png.js +1 -1
  144. package/es/shared/assets/img/emoji/emotion_104.png.js +1 -1
  145. package/es/shared/assets/img/emoji/emotion_105.png.js +1 -1
  146. package/es/shared/assets/img/emoji/emotion_106.png.js +1 -1
  147. package/es/shared/assets/img/emoji/emotion_107.png.js +1 -1
  148. package/es/shared/assets/img/emoji/emotion_108.png.js +1 -1
  149. package/es/shared/assets/img/emoji/emotion_109.png.js +1 -1
  150. package/es/shared/assets/img/emoji/emotion_110.png.js +1 -1
  151. package/es/shared/assets/img/emoji/emotion_111.png.js +1 -1
  152. package/es/shared/assets/img/emoji/emotion_112.png.js +1 -1
  153. package/es/shared/assets/img/emoji/emotion_113.png.js +1 -1
  154. package/es/shared/assets/img/emoji/emotion_114.png.js +1 -1
  155. package/es/shared/assets/img/emoji/emotion_115.png.js +1 -1
  156. package/es/shared/assets/img/emoji/emotion_116.png.js +1 -1
  157. package/es/shared/assets/img/emoji/emotion_117.png.js +1 -1
  158. package/es/shared/assets/img/emoji/emotion_118.png.js +1 -1
  159. package/es/shared/assets/img/emoji/emotion_119.png.js +1 -1
  160. package/es/shared/assets/img/emoji/emotion_120.png.js +1 -1
  161. package/es/shared/assets/img/emoji/emotion_121.png.js +1 -1
  162. package/es/shared/assets/img/emoji/emotion_122.png.js +1 -1
  163. package/es/shared/assets/img/emoji/emotion_123.png.js +1 -1
  164. package/es/shared/assets/img/emoji/emotion_124.png.js +1 -1
  165. package/es/shared/assets/img/emoji/emotion_125.png.js +1 -1
  166. package/es/shared/assets/img/emoji/emotion_126.png.js +1 -1
  167. package/es/shared/assets/img/emoji/emotion_127.png.js +1 -1
  168. package/es/shared/assets/img/emoji/emotion_128.png.js +1 -1
  169. package/es/shared/assets/img/emoji/emotion_129.png.js +1 -1
  170. package/es/shared/assets/img/emoji/emotion_130.png.js +1 -1
  171. package/es/shared/assets/img/emoji/emotion_131.png.js +1 -1
  172. package/es/shared/assets/img/emoji/emotion_132.png.js +1 -1
  173. package/es/shared/assets/img/emoji/emotion_133.png.js +1 -1
  174. package/es/shared/assets/img/emoji/emotion_134.png.js +1 -1
  175. package/es/shared/assets/img/emoji/emotion_135.png.js +1 -1
  176. package/es/shared/assets/img/emoji/emotion_136.png.js +1 -1
  177. package/es/shared/assets/img/emoji/emotion_137.png.js +1 -1
  178. package/es/shared/assets/img/emoji/emotion_138.png.js +1 -1
  179. package/es/shared/assets/img/emoji/emotion_139.png.js +1 -1
  180. package/es/shared/assets/img/emoji/emotion_140.png.js +1 -1
  181. package/es/shared/assets/img/emoji/emotion_141.png.js +1 -1
  182. package/es/shared/assets/img/emoji/emotion_142.png.js +1 -1
  183. package/es/shared/assets/img/emoji/emotion_143.png.js +1 -1
  184. package/es/shared/assets/img/emoji/emotion_144.png.js +1 -1
  185. package/es/shared/assets/img/emoji/emotion_145.png.js +1 -1
  186. package/es/shared/assets/img/emoji/emotion_146.png.js +1 -1
  187. package/es/shared/assets/img/emoji/emotion_147.png.js +1 -1
  188. package/es/shared/assets/img/emoji/emotion_148.png.js +1 -1
  189. package/es/shared/assets/img/emoji/emotion_149.png.js +1 -1
  190. package/es/shared/assets/img/emoji/emotion_150.png.js +1 -1
  191. package/es/shared/assets/img/emoji/emotion_151.png.js +1 -1
  192. package/es/shared/assets/img/emoji/emotion_152.png.js +1 -1
  193. package/es/shared/assets/img/emoji/emotion_153.png.js +1 -1
  194. package/es/shared/assets/img/emoji/emotion_154.png.js +1 -1
  195. package/es/shared/assets/img/emoji/emotion_155.png.js +1 -1
  196. package/es/shared/assets/img/emoji/emotion_156.png.js +1 -1
  197. package/es/shared/assets/img/emoji/emotion_157.png.js +1 -1
  198. package/es/shared/assets/img/emoji/emotion_158.png.js +1 -1
  199. package/es/shared/assets/img/emoji/emotion_159.png.js +1 -1
  200. package/es/shared/assets/img/emoji/emotion_160.png.js +1 -1
  201. package/es/shared/assets/img/emoji/emotion_161.png.js +1 -1
  202. package/es/shared/assets/img/emoji/emotion_162.png.js +1 -1
  203. package/es/shared/assets/img/emoji/emotion_163.png.js +1 -1
  204. package/es/shared/assets/img/emoji/emotion_164.png.js +1 -1
  205. package/es/shared/assets/img/emoji/emotion_165.png.js +1 -1
  206. package/es/shared/assets/img/emoji/emotion_166.png.js +1 -1
  207. package/es/shared/assets/img/emoji/emotion_167.png.js +1 -1
  208. package/es/shared/assets/img/emoji/emotion_168.png.js +1 -1
  209. package/es/shared/assets/img/emoji/emotion_169.png.js +1 -1
  210. package/es/shared/assets/img/emoji/emotion_170.png.js +1 -1
  211. package/es/shared/assets/img/emoji/emotion_171.png.js +1 -1
  212. package/es/shared/assets/img/emoji/emotion_172.png.js +1 -1
  213. package/es/shared/assets/img/emoji/emotion_173.png.js +1 -1
  214. package/es/shared/assets/img/emoji/emotion_174.png.js +1 -1
  215. package/es/shared/assets/img/emoji/emotion_175.png.js +1 -1
  216. package/es/shared/assets/img/emoji/emotion_176.png.js +1 -1
  217. package/es/shared/assets/img/emoji/emotion_177.png.js +1 -1
  218. package/es/shared/assets/img/emoji/emotion_178.png.js +1 -1
  219. package/es/shared/assets/img/emoji/emotion_179.png.js +1 -1
  220. package/es/shared/assets/img/emoji/emotion_180.png.js +1 -1
  221. package/es/shared/assets/img/emoji/emotion_181.png.js +1 -1
  222. package/es/shared/assets/img/emoji/emotion_182.png.js +1 -1
  223. package/es/shared/assets/img/emoji/emotion_183.png.js +1 -1
  224. package/es/shared/assets/img/emoji/emotion_184.png.js +1 -1
  225. package/es/shared/assets/img/emoji/emotion_185.png.js +1 -1
  226. package/es/shared/assets/img/emoji/emotion_186.png.js +1 -1
  227. package/es/shared/assets/img/emoji/emotion_187.png.js +1 -1
  228. package/es/shared/assets/img/emoji/emotion_188.png.js +1 -1
  229. package/es/shared/assets/img/emoji/emotion_189.png.js +1 -1
  230. package/es/shared/assets/img/emoji/emotion_190.png.js +1 -1
  231. package/es/shared/assets/img/emoji/emotion_191.png.js +1 -1
  232. package/es/shared/assets/img/emoji/emotion_192.png.js +1 -1
  233. package/es/shared/assets/img/emoji/emotion_193.png.js +1 -1
  234. package/es/shared/assets/img/emoji/emotion_194.png.js +1 -1
  235. package/es/shared/assets/img/emoji/emotion_195.png.js +1 -1
  236. package/es/shared/assets/img/emoji/emotion_196.png.js +1 -1
  237. package/es/shared/assets/img/failure.png.js +1 -1
  238. package/es/shared/assets/img/no-permission.png.js +1 -1
  239. package/es/shared/assets/img/nodata.png.js +1 -1
  240. package/es/shared/assets/img/notfound.png.js +1 -1
  241. package/es/shared/assets/img/qr.png.js +1 -1
  242. package/es/shared/assets/img/success.png.js +1 -1
  243. package/es/shared/assets/img/table_style_2.png.js +1 -1
  244. package/es/shared/assets/img/video.png.js +1 -1
  245. package/es/shared/assets/img/video_default_cover.png.js +1 -1
  246. package/es/shared/assets/img/xb_big.png.js +1 -1
  247. package/es/shared/assets/img/xb_small.png.js +1 -1
  248. package/es/shared/package.json.js +1 -1
  249. package/package.json +2 -2
  250. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  251. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +0 -1
  252. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +0 -1
  253. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +0 -1
  254. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +0 -86
  255. package/es/shared/utils/fabricjs/index.d.ts +0 -6823
  256. package/es/shared/utils/tapable/index.d.ts +0 -139
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
+ ```
@@ -1,9 +1,5 @@
1
1
  import { SFCWithInstall } from '../../shared/types';
2
2
  declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
3
- token: {
4
- type: StringConstructor;
5
- required: true;
6
- };
7
3
  userId: {
8
4
  type: StringConstructor;
9
5
  required: true;
@@ -14,10 +10,6 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
14
10
  };
15
11
  }, {
16
12
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
17
- token: {
18
- type: StringConstructor;
19
- required: true;
20
- };
21
13
  userId: {
22
14
  type: StringConstructor;
23
15
  required: true;
@@ -28,15 +20,15 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
28
20
  };
29
21
  }>> & {
30
22
  "onTemplate-click"?: ((...args: any[]) => any) | undefined;
31
- "onMessage-subscribe"?: ((...args: any[]) => any) | undefined;
23
+ "onUnread-message-update"?: ((...args: any[]) => any) | undefined;
32
24
  }>>;
33
- emit: (event: "template-click" | "message-subscribe", ...args: any[]) => void;
25
+ emit: (event: "template-click" | "unread-message-update", ...args: any[]) => void;
34
26
  cssVars: import("vue").ComputedRef<import("vue").CSSProperties>;
35
27
  loading: import("vue").Ref<boolean>;
36
28
  stompClient: import("vue").Ref<import("./src/utils/chatSock").ChatSock | undefined>;
37
29
  state: {
38
30
  currentSessionItem: import("../../shared/types").AnyObject;
39
- sessionKey: string;
31
+ id: string;
40
32
  userInfo: import("../../shared/types").AnyObject;
41
33
  msgList: import("../../shared/types").AnyObject[];
42
34
  currentMsg: import("../../shared/types").AnyObject;
@@ -50,7 +42,6 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
50
42
  init: () => Promise<void>;
51
43
  initWebSocket: () => void;
52
44
  subscribeSessionList: () => void;
53
- subscribeSession: () => void;
54
45
  subscribeMessage: () => void;
55
46
  getUnreadData: () => import("../../shared/types").AnyObject[];
56
47
  NLayout: any;
@@ -457,24 +448,29 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
457
448
  NSpin: any;
458
449
  NConfigProvider: any;
459
450
  SiderList: import("vue").DefineComponent<{}, {
451
+ filterKey: {
452
+ all: string;
453
+ unread: string;
454
+ };
460
455
  flexWidth: import("vue").Ref<number>;
461
456
  listBoxRef: import("vue").Ref<HTMLElement | undefined>;
462
457
  keyword: import("vue").Ref<string>;
463
- sessionList: import("vue").Ref<import("../../shared/types").AnyObject[]>;
464
458
  loading: import("vue").Ref<boolean>;
465
459
  filterList: import("vue").Ref<{
466
460
  label: string;
467
461
  key: string;
468
- number: number;
469
462
  }[]>;
470
463
  currentFilterKey: import("vue").Ref<string>;
471
464
  state: import("./src/types").IState;
465
+ emit: (event: string, ...args: any[]) => void;
472
466
  entrySession: (item: import("../../shared/types").AnyObject) => void;
467
+ unreadTotal: import("vue").ComputedRef<number>;
473
468
  currentWidth: import("vue").ComputedRef<number>;
474
- handleSearch: () => void;
469
+ sessionList: import("vue").ComputedRef<import("../../shared/types").AnyObject[]>;
475
470
  sessionChange: (sessionItem: import("../../shared/types").AnyObject) => void;
476
471
  changeWidth: ({ distance }: import("../../shared/types").AnyObject) => void;
477
472
  handleFilter: (key: string) => void;
473
+ showSession: (item: import("../../shared/types").AnyObject, currentKey?: string) => boolean | undefined;
478
474
  NSpin: any;
479
475
  NBadge: any;
480
476
  NAvatar: any;
@@ -1270,7 +1266,7 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
1270
1266
  required: true;
1271
1267
  };
1272
1268
  }>>, {}>;
1273
- images: any[];
1269
+ images: import("vue").Ref<any[]>;
1274
1270
  MESSAGE_TYPE: typeof import("./src/constants").MESSAGE_TYPE;
1275
1271
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
1276
1272
  ChatFooter: import("vue").DefineComponent<{}, {
@@ -1287,15 +1283,11 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
1287
1283
  NButton: any;
1288
1284
  NPopover: any;
1289
1285
  NTooltip: any;
1290
- images: any[];
1286
+ images: import("vue").Ref<any[]>;
1291
1287
  alt: string[];
1292
1288
  MESSAGE_TYPE: typeof import("./src/constants").MESSAGE_TYPE;
1293
1289
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
1294
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("template-click" | "message-subscribe")[], "template-click" | "message-subscribe", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
1295
- token: {
1296
- type: StringConstructor;
1297
- required: true;
1298
- };
1290
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("template-click" | "unread-message-update")[], "template-click" | "unread-message-update", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
1299
1291
  userId: {
1300
1292
  type: StringConstructor;
1301
1293
  required: true;
@@ -1306,7 +1298,7 @@ declare const BiuniqueChat: SFCWithInstall<import("vue").DefineComponent<{
1306
1298
  };
1307
1299
  }>> & {
1308
1300
  "onTemplate-click"?: ((...args: any[]) => any) | undefined;
1309
- "onMessage-subscribe"?: ((...args: any[]) => any) | undefined;
1301
+ "onUnread-message-update"?: ((...args: any[]) => any) | undefined;
1310
1302
  }, {
1311
1303
  baseURL: string;
1312
1304
  }>>;
@@ -3,10 +3,6 @@ import { ChatSock } from './utils/chatSock';
3
3
  import { AnyObject } from '../../../shared/types';
4
4
  import { IState } from './types';
5
5
  declare const _default: import("vue").DefineComponent<{
6
- token: {
7
- type: StringConstructor;
8
- required: true;
9
- };
10
6
  userId: {
11
7
  type: StringConstructor;
12
8
  required: true;
@@ -17,10 +13,6 @@ declare const _default: import("vue").DefineComponent<{
17
13
  };
18
14
  }, {
19
15
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
20
- token: {
21
- type: StringConstructor;
22
- required: true;
23
- };
24
16
  userId: {
25
17
  type: StringConstructor;
26
18
  required: true;
@@ -31,15 +23,15 @@ declare const _default: import("vue").DefineComponent<{
31
23
  };
32
24
  }>> & {
33
25
  "onTemplate-click"?: ((...args: any[]) => any) | undefined;
34
- "onMessage-subscribe"?: ((...args: any[]) => any) | undefined;
26
+ "onUnread-message-update"?: ((...args: any[]) => any) | undefined;
35
27
  }>>;
36
- emit: (event: "template-click" | "message-subscribe", ...args: any[]) => void;
28
+ emit: (event: "template-click" | "unread-message-update", ...args: any[]) => void;
37
29
  cssVars: import("vue").ComputedRef<import("vue").CSSProperties>;
38
30
  loading: import("vue").Ref<boolean>;
39
31
  stompClient: import("vue").Ref<ChatSock | undefined>;
40
32
  state: {
41
33
  currentSessionItem: AnyObject;
42
- sessionKey: string;
34
+ id: string;
43
35
  userInfo: AnyObject;
44
36
  msgList: AnyObject[];
45
37
  currentMsg: AnyObject;
@@ -53,7 +45,6 @@ declare const _default: import("vue").DefineComponent<{
53
45
  init: () => Promise<void>;
54
46
  initWebSocket: () => void;
55
47
  subscribeSessionList: () => void;
56
- subscribeSession: () => void;
57
48
  subscribeMessage: () => void;
58
49
  getUnreadData: () => AnyObject[];
59
50
  NLayout: any;
@@ -460,24 +451,29 @@ declare const _default: import("vue").DefineComponent<{
460
451
  NSpin: any;
461
452
  NConfigProvider: any;
462
453
  SiderList: import("vue").DefineComponent<{}, {
454
+ filterKey: {
455
+ all: string;
456
+ unread: string;
457
+ };
463
458
  flexWidth: import("vue").Ref<number>;
464
459
  listBoxRef: import("vue").Ref<HTMLElement | undefined>;
465
460
  keyword: import("vue").Ref<string>;
466
- sessionList: import("vue").Ref<AnyObject[]>;
467
461
  loading: import("vue").Ref<boolean>;
468
462
  filterList: import("vue").Ref<{
469
463
  label: string;
470
464
  key: string;
471
- number: number;
472
465
  }[]>;
473
466
  currentFilterKey: import("vue").Ref<string>;
474
467
  state: IState;
468
+ emit: (event: string, ...args: any[]) => void;
475
469
  entrySession: (item: AnyObject) => void;
470
+ unreadTotal: import("vue").ComputedRef<number>;
476
471
  currentWidth: import("vue").ComputedRef<number>;
477
- handleSearch: () => void;
472
+ sessionList: import("vue").ComputedRef<AnyObject[]>;
478
473
  sessionChange: (sessionItem: AnyObject) => void;
479
474
  changeWidth: ({ distance }: AnyObject) => void;
480
475
  handleFilter: (key: string) => void;
476
+ showSession: (item: AnyObject, currentKey?: string) => boolean | undefined;
481
477
  NSpin: any;
482
478
  NBadge: any;
483
479
  NAvatar: any;
@@ -1273,7 +1269,7 @@ declare const _default: import("vue").DefineComponent<{
1273
1269
  required: true;
1274
1270
  };
1275
1271
  }>>, {}>;
1276
- images: any[];
1272
+ images: import("vue").Ref<any[]>;
1277
1273
  MESSAGE_TYPE: typeof import("./constants").MESSAGE_TYPE;
1278
1274
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
1279
1275
  ChatFooter: import("vue").DefineComponent<{}, {
@@ -1290,15 +1286,11 @@ declare const _default: import("vue").DefineComponent<{
1290
1286
  NButton: any;
1291
1287
  NPopover: any;
1292
1288
  NTooltip: any;
1293
- images: any[];
1289
+ images: import("vue").Ref<any[]>;
1294
1290
  alt: string[];
1295
1291
  MESSAGE_TYPE: typeof import("./constants").MESSAGE_TYPE;
1296
1292
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
1297
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("template-click" | "message-subscribe")[], "template-click" | "message-subscribe", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
1298
- token: {
1299
- type: StringConstructor;
1300
- required: true;
1301
- };
1293
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("template-click" | "unread-message-update")[], "template-click" | "unread-message-update", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
1302
1294
  userId: {
1303
1295
  type: StringConstructor;
1304
1296
  required: true;
@@ -1309,7 +1301,7 @@ declare const _default: import("vue").DefineComponent<{
1309
1301
  };
1310
1302
  }>> & {
1311
1303
  "onTemplate-click"?: ((...args: any[]) => any) | undefined;
1312
- "onMessage-subscribe"?: ((...args: any[]) => any) | undefined;
1304
+ "onUnread-message-update"?: ((...args: any[]) => any) | undefined;
1313
1305
  }, {
1314
1306
  baseURL: string;
1315
1307
  }>;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as s,reactive as t,provide as o,onBeforeUnmount as r,openBlock as n,createElementBlock as i,normalizeStyle as a,unref as c,createVNode as u,withCtx as m,createBlock as d,Fragment as p,createElementVNode as l,renderSlot as h}from"vue";import{NConfigProvider as f,NSpin as b,NLayout as g,NLayoutContent as v}from"naive-ui";import S from"./components/SiderList.vue.js";import y from"./components/ChatHeader.vue.js";import j from"./components/ChatMain.vue.js";import k from"./components/ChatFooter.vue.js";import{ChatSock as I}from"./utils/chatSock.js";import{instanceAxios as _}from"./api/index.js";import{useTheme as M}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import{isNumber as L}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 x}from"./constants/index.js";import{InjectionIChatState as U,InjectionIChatStompClient as C,InjectionIChatEmits as N}from"./types/index.js";import"./utils/emoji.js";import{useSession as T}from"./hooks/useSession.js";const q={class:"c-biunique-chat__header"},E={class:"toolbar"};var O=e({__name:"Index",props:{token:{type:String,required:!0},userId:{type:String,required:!0},baseURL:{type:String,default:"/fdp-chat"}},emits:["template-click","message-subscribe"],setup(e,{expose:O,emit:w}){const A=e;_.defaults.baseURL=A.baseURL+"/chat";const J=M(),R=s(!1),V=s(),F=t({currentSessionItem:{},sessionKey:"",userInfo:{},msgList:[],currentMsg:{},isAppendMsg:!1,sessionList:[],isChangeSession:!1,updateSessionItem:{},isUpdateSession:!1});function H(){const e={headers:{UserId:A.userId},heartbeatFn:()=>{try{V.value.send("test")}catch(e){V.value.disconnect(),H()}},connectCb:()=>{console.log("连接成功"),V.value.subscribe("/user/topic/single",(({body:e})=>{try{console.log(JSON.parse(e),"订阅新增消息");const s=JSON.parse(e);switch(s.event){case x.MESSAGE:{if(s.messageVo.sender===F.userInfo.id)return;const{messageVo:e}=s;e.sender===F.currentSessionItem.receiver&&(F.currentMsg=e,F.isAppendMsg=!0),F.updateSessionItem={receiver:e.sender,lastMessageSendTime:e.sendTime,sortTime:e.sendTime,lastMessage:e.content.msg,chatMessageType:e.content.chatMessageType},F.isUpdateSession=!0,w("message-subscribe",s);break}case x.NEW_SESSION:w("message-subscribe",s)}}catch(e){console.log(e)}})),V.value.subscribe("/app/sessionList",(({body:e})=>{try{const s=JSON.parse(e),{currentUser:t,sessionVos:o}=s;if(console.log("body",s),F.userInfo=t,!(null==o?void 0:o.length))return;F.sessionList=o}catch(e){console.log(e)}}))},errorCb:(e,s)=>{console.log("断线了,正在重连...")}};V.value=new I("/fdp-chat/websocket",e)}return o(U,F),o(C,V),o(N,w),async function(){H()}(),r((()=>{var e;null==(e=V.value)||e.disconnect()})),O({getUnreadData:function(){return F.sessionList.filter((e=>L(e.unreadNum)&&e.unreadNum>0))},entrySession:T(F).entrySession}),(e,s)=>(n(),i("div",{class:"c-biunique-chat",style:a(c(J))},[u(c(f),{abstract:"",namespace:"c-biunique-chat__popover"},{default:m((()=>[R.value?(n(),d(c(b),{key:0,stroke:"#5585f5"})):(n(),i(p,{key:1},[l("div",q,[l("div",E,[h(e.$slots,"toolbar")])]),u(c(g),{class:"c-biunique-chat__body","has-sider":""},{default:m((()=>[u(S),u(c(v),{class:"chat-content"},{default:m((()=>[u(y),u(j),u(k)])),_:1}),h(e.$slots,"external")])),_:3})],64))])),_:3})],4))}});export{O as default};
1
+ import{defineComponent as e,ref as s,reactive as t,provide as o,onBeforeUnmount as n,openBlock as r,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 v,NLayout as S,NLayoutContent as g}from"naive-ui";import b from"./components/SiderList.vue.js";import y from"./components/ChatHeader.vue.js";import j from"./components/ChatMain.vue.js";import I from"./components/ChatFooter.vue.js";import{ChatSock as _}from"./utils/chatSock.js";import{instanceAxios as k}from"./api/index.js";import{useTheme as M}from"../../../shared/hooks/useTheme.js";import"@vueuse/core";import"date-fns";import{isNumber as L}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 U}from"./constants/index.js";import{InjectionIChatState as x,InjectionIChatStompClient as C,InjectionIChatEmits as N}from"./types/index.js";import"./utils/emoji.js";import{useSession as T}from"./hooks/useSession.js";const q={class:"c-biunique-chat__header"},E={class:"toolbar"};var O=e({__name:"Index",props:{userId:{type:String,required:!0},baseURL:{type:String,default:"/fdp-chat"}},emits:["template-click","unread-message-update"],setup(e,{expose:O,emit:V}){const w=e;k.defaults.baseURL=w.baseURL+"/chat";const A=M(),J=s(!1),R=s(),F=t({currentSessionItem:{},id:"",userInfo:{},msgList:[],currentMsg:{},isAppendMsg:!1,sessionList:[],isChangeSession:!1,updateSessionItem:{},isUpdateSession:!1});function H(){const e={headers:{UserId:w.userId},heartbeatFn:()=>{try{R.value.send("test")}catch(e){R.value.disconnect(),H()}},connectCb:()=>{console.log("连接成功"),R.value.subscribe("/user/topic/single",(({body:e})=>{try{console.log(JSON.parse(e),"订阅新增消息");const s=JSON.parse(e),{messageVo:t,sessionVo:o}=s;switch(s.event){case U.MESSAGE:if(s.messageVo.sender===F.userInfo.id)return;t.sender===F.currentSessionItem.receiver&&(F.currentMsg=t,F.isAppendMsg=!0),F.updateSessionItem={receiver:t.sender,lastMessageSendTime:t.sendTime,sortTime:t.sendTime,lastMessage:t.content.msg,chatMessageType:t.content.chatMessageType},F.isUpdateSession=!0;break;case U.NEW_SESSION:F.updateSessionItem=o,F.isUpdateSession=!0}}catch(e){console.log(e)}})),R.value.subscribe("/app/sessionList",(({body:e})=>{try{const s=JSON.parse(e),{currentUser:t,sessionVos:o}=s;if(console.log("body",s),F.userInfo=t,!(null==o?void 0:o.length))return;F.sessionList=o}catch(e){console.log(e)}}))},errorCb:(e,s)=>{console.log("断线了,正在重连...")}};R.value=new _("/fdp-chat/websocket",e)}return o(x,F),o(C,R),o(N,V),async function(){H()}(),n((()=>{var e;null==(e=R.value)||e.disconnect()})),O({getUnreadData:function(){return F.sessionList.filter((e=>L(e.unreadNum)&&e.unreadNum>0))},entrySession:T(F).entrySession}),(e,s)=>(r(),i("div",{class:"c-biunique-chat",style:a(c(A))},[u(c(f),{abstract:"",namespace:"c-biunique-chat__popover"},{default:d((()=>[J.value?(r(),m(c(v),{key:0,stroke:"#5585f5"})):(r(),i(p,{key:1},[l("div",q,[l("div",E,[h(e.$slots,"toolbar")])]),u(c(S),{class:"c-biunique-chat__body","has-sider":""},{default:d((()=>[u(b),u(c(g),{class:"chat-content"},{default:d((()=>[u(y),u(j),u(I)])),_:1}),h(e.$slots,"external")])),_:3})],64))])),_:3})],4))}});export{O as default};
@@ -14,7 +14,7 @@ declare const _default: import("vue").DefineComponent<{}, {
14
14
  NButton: any;
15
15
  NPopover: any;
16
16
  NTooltip: any;
17
- images: any[];
17
+ images: import("vue").Ref<any[]>;
18
18
  alt: string[];
19
19
  MESSAGE_TYPE: typeof MESSAGE_TYPE;
20
20
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
@@ -1 +1 @@
1
- import{defineComponent as t,ref as e,openBlock as s,createElementBlock as n,normalizeStyle as i,unref as a,createElementVNode as o,createVNode as r,withCtx as l,createCommentVNode as c,Fragment as u,renderList as g,createBlock as d,createTextVNode as m,toDisplayString as p,withDirectives as f,vShow as y}from"vue";import{NPopover as h,NTooltip as v,NButton as M}from"naive-ui";import{format as T}from"date-fns";import{useState as k}from"../hooks/useState.js";import{useSession as x}from"../hooks/useSession.js";import{images as b,alt as S}from"../utils/emoji.js";import{MESSAGE_TYPE as w}from"../constants/index.js";const E={class:"tool-box"},C=o("span",null,[o("i",{class:"chat--iconfont chat--icon-face"})],-1),K={class:"emoji-box"},j=o("span",null,"默认表情",-1),I={class:"list-box"},_=["onClick"],D=["src"],H=o("span",null,[o("i",{class:"chat--iconfont chat--icon-good"})],-1),L=o("span",null,[o("i",{class:"chat--iconfont chat--icon-image"})],-1),N=o("span",null,[o("i",{class:"chat--iconfont chat--icon-folder"})],-1),J={class:"btn-box"},O=o("span",{class:"tip"},"Enter 发送, Shift + Enter 换行",-1);var X=t({__name:"ChatFooter",setup(t){const X=e(),A=e(""),{state:B,stompClient:F}=k(),{setCurrentSessionItem:G}=x(B);function R(t){["Enter"].includes(t.key)&&(function(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}(t)||(t.preventDefault(),z()))}function q(){var t,e;A.value=(null==(e=null==(t=X.value)?void 0:t.innerText)?void 0:e.trim())||""}function z(){if(!(A.value.length>2e3))return A.value?void P({msg:A.value}):console.log("请输入内容");console.log("请控制在2000字以内")}async function P(t){const{chatMessageType:e=w.TEXT,msg:s}=t,n={msg:s,chatMessageType:e};[w.TEXT,w.BLEND].includes(e)&&(X.value.innerHTML="",A.value="");const i=T(new Date,"yyyy-MM-dd HH:mm:ss");B.currentMsg={content:n,sender:B.userInfo.id,id:"",sendTime:i,sending:!0,fail:!1},B.isAppendMsg=!0,G({lastMessageSendTime:i,lastMessage:n.msg,sortTime:i,chatMessageType:n.chatMessageType}),B.isChangeSession=!0;try{F.value.send("/app/chat/send",{},JSON.stringify({chatType:"SINGLE",content:{chatMessageType:n.chatMessageType,msg:n.msg},receiver:B.currentSessionItem.receiver})),B.currentMsg={...B.currentMsg,fail:!1}}catch(t){B.currentMsg={...B.currentMsg,fail:!0}}finally{B.currentMsg={...B.currentMsg,sending:!1}}}return(t,e)=>(s(),n("section",{class:"chat-footer",style:i({cursor:a(B).sessionKey?"default":"not-allowed"})},[o("div",E,[r(a(h),{placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show"},{trigger:l((()=>[C])),default:l((()=>[o("div",K,[c(' <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> '),j,o("div",I,[(s(!0),n(u,null,g(a(b),((t,e)=>(s(),n(u,{key:e},[e>0?(s(),d(a(v),{key:0,"show-arrow":!1,trigger:"hover"},{trigger:l((()=>[o("i",{onClick:()=>P({chatMessageType:a(w).EMOJI,msg:e})},[o("img",{src:t},null,8,D)],8,_)])),default:l((()=>[m(" "+p(a(S)[e-1]||"微笑"),1)])),_:2},1024)):c("v-if",!0)],64)))),128))])])])),_:1}),H,L,N]),f(o("div",{ref_key:"inputRef",ref:X,class:"input-box",contenteditable:"",onKeydown:R,onInput:q},null,544),[[y,a(B).sessionKey]]),o("div",J,[O,r(a(M),{type:"primary",round:"",disabled:!A.value,onClick:z},{default:l((()=>[m("发送")])),_:1},8,["disabled"])])],4))}});export{X as default};
1
+ import{defineComponent as t,ref as e,withDirectives as s,openBlock as n,createElementBlock as i,normalizeStyle as a,unref as o,createElementVNode as r,createVNode as c,withCtx as l,createCommentVNode as u,Fragment as d,renderList as g,createBlock as m,createTextVNode as p,toDisplayString as f,vShow as h}from"vue";import{NPopover as y,NTooltip as v,NButton as M}from"naive-ui";import{format as T}from"date-fns";import{useState as k}from"../hooks/useState.js";import{useSession as x}from"../hooks/useSession.js";import{images as b,alt as E}from"../utils/emoji.js";import{MESSAGE_TYPE as S}from"../constants/index.js";const w={class:"tool-box"},C=r("span",null,[r("i",{class:"chat--iconfont chat--icon-face"})],-1),I={class:"emoji-box"},j=r("span",null,"默认表情",-1),_={class:"list-box"},K=["onClick"],D=["src"],H=[r("i",{class:"chat--iconfont chat--icon-good"},null,-1)],J=r("span",null,[r("i",{class:"chat--iconfont chat--icon-image"})],-1),L=r("span",null,[r("i",{class:"chat--iconfont chat--icon-folder"})],-1),N={class:"btn-box"},O=r("span",{class:"tip"},"Enter 发送, Shift + Enter 换行",-1);var X=t({__name:"ChatFooter",setup(t){const X=e(),A=e(""),{state:B,stompClient:F}=k(),{setCurrentSessionItem:G}=x(B);function R(t){["Enter"].includes(t.key)&&(function(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}(t)||(t.preventDefault(),z()))}function q(){var t,e;A.value=(null==(e=null==(t=X.value)?void 0:t.innerText)?void 0:e.trim())||""}function z(){if(!(A.value.length>2e3))return A.value?void P({msg:A.value}):console.log("请输入内容");console.log("请控制在2000字以内")}async function P(t){const{chatMessageType:e=S.TEXT,msg:s}=t,n={msg:s,chatMessageType:e};[S.TEXT,S.BLEND].includes(e)&&(X.value.innerHTML="",A.value="");const i=T(new Date,"yyyy-MM-dd HH:mm:ss");B.currentMsg={content:n,sender:B.userInfo.id,id:"",sendTime:i,sending:!0,fail:!1},B.isAppendMsg=!0,G({lastMessageSendTime:i,lastMessage:n.msg,sortTime:i,chatMessageType:n.chatMessageType}),B.isChangeSession=!0;try{F.value.send("/app/chat/send",{},JSON.stringify({chatType:"SINGLE",content:{chatMessageType:n.chatMessageType,msg:n.msg},receiver:B.currentSessionItem.receiver})),B.currentMsg={...B.currentMsg,fail:!1}}catch(t){B.currentMsg={...B.currentMsg,fail:!0}}finally{B.currentMsg={...B.currentMsg,sending:!1}}}return(t,e)=>s((n(),i("section",{class:"chat-footer",style:a({cursor:o(B).id?"default":"not-allowed"})},[r("div",w,[c(o(y),{placement:"top",trigger:"click","show-arrow":!1,"display-directive":"show"},{trigger:l((()=>[C])),default:l((()=>[r("div",I,[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> '),j,r("div",_,[(n(!0),i(d,null,g(o(b),((t,e)=>(n(),i(d,{key:e},[e>0?(n(),m(o(v),{key:0,"show-arrow":!1,trigger:"hover"},{trigger:l((()=>[r("i",{onClick:()=>P({chatMessageType:o(S).EMOJI,msg:e})},[r("img",{src:t},null,8,D)],8,K)])),default:l((()=>[p(" "+f(o(E)[e-1]||"微笑"),1)])),_:2},1024)):u("v-if",!0)],64)))),128))])])])),_:1}),r("span",{onClick:e[0]||(e[0]=()=>P({chatMessageType:o(S).EMOJI,msg:0}))},H),J,L]),s(r("div",{ref_key:"inputRef",ref:X,class:"input-box",contenteditable:"",onKeydown:R,onInput:q},null,544),[[h,o(B).id]]),r("div",N,[O,c(o(M),{type:"primary",round:"",disabled:!A.value,onClick:z},{default:l((()=>[p("发送")])),_:1},8,["disabled"])])],4)),[[h,o(B).id]])}});export{X as default};
@@ -1 +1 @@
1
- import{defineComponent as e,ref as o,computed as a,openBlock as s,createElementBlock as t,Fragment as i,unref as n,createElementVNode as c,createVNode as r,withCtx as l,toDisplayString as u,createCommentVNode as h}from"vue";import{NAvatar as m}from"naive-ui";import{useState as v}from"../hooks/useState.js";import f from"./PersonProfile.vue.js";import p from"./ChatSet.vue.js";import d from"./ChatFile.vue.js";import w from"./ChatRecord.vue.js";const C={key:0,class:"chat-header box-shadow"},_={class:"chat-header__left"},g={class:"name"},k={class:"chat-header__right"};var j=e({__name:"ChatHeader",setup(e){const{state:j}=v(),S=o(!1),y=o(!1),I=o("image"),U=o(!1),x=a((()=>j.currentSessionItem.name||""));function P(e){I.value=e,y.value=!0}return(e,o)=>(s(),t(i,null,[n(j).sessionKey?(s(),t("section",C,[c("div",_,[r(f,{"user-info":n(j).currentSessionItem},{trigger:l((()=>[r(n(m),{round:"",size:30,src:n(j).currentSessionItem.avatar},null,8,["src"])])),_:1},8,["user-info"]),c("span",g,u(n(x)),1)]),c("div",k,[c("i",{class:"chat--iconfont chat--icon-image",onClick:o[0]||(o[0]=()=>P("image"))}),c("i",{class:"chat--iconfont chat--icon-folder",onClick:o[1]||(o[1]=()=>P("file"))}),c("i",{class:"chat--iconfont chat--icon-list-search",onClick:o[2]||(o[2]=e=>U.value=!0)}),c("i",{class:"chat--iconfont chat--icon-set",onClick:o[3]||(o[3]=e=>S.value=!0)})])])):h("v-if",!0),r(p,{show:S.value,"onUpdate:show":o[4]||(o[4]=e=>S.value=e)},null,8,["show"]),r(d,{show:y.value,"onUpdate:show":o[5]||(o[5]=e=>y.value=e),type:I.value},null,8,["show","type"]),r(w,{show:U.value,"onUpdate:show":o[6]||(o[6]=e=>U.value=e)},null,8,["show"])],64))}});export{j as default};
1
+ import{defineComponent as e,ref as o,computed as a,openBlock as t,createElementBlock as s,Fragment as i,unref as n,createElementVNode as c,createVNode as r,withCtx as l,toDisplayString as u,createCommentVNode as h}from"vue";import{NAvatar as m}from"naive-ui";import{useState as v}from"../hooks/useState.js";import f from"./PersonProfile.vue.js";import d from"./ChatSet.vue.js";import p from"./ChatFile.vue.js";import w from"./ChatRecord.vue.js";const C={key:0,class:"chat-header box-shadow"},_={class:"chat-header__left"},g={class:"name"},k={class:"chat-header__right"};var j=e({__name:"ChatHeader",setup(e){const{state:j}=v(),S=o(!1),y=o(!1),I=o("image"),U=o(!1),x=a((()=>j.currentSessionItem.name||""));function P(e){I.value=e,y.value=!0}return(e,o)=>(t(),s(i,null,[n(j).id?(t(),s("section",C,[c("div",_,[r(f,{"user-info":n(j).currentSessionItem},{trigger:l((()=>[r(n(m),{round:"",size:30,src:n(j).currentSessionItem.avatar},null,8,["src"])])),_:1},8,["user-info"]),c("span",g,u(n(x)),1)]),c("div",k,[c("i",{class:"chat--iconfont chat--icon-image",onClick:o[0]||(o[0]=()=>P("image"))}),c("i",{class:"chat--iconfont chat--icon-folder",onClick:o[1]||(o[1]=()=>P("file"))}),c("i",{class:"chat--iconfont chat--icon-list-search",onClick:o[2]||(o[2]=e=>U.value=!0)}),c("i",{class:"chat--iconfont chat--icon-set",onClick:o[3]||(o[3]=e=>S.value=!0)})])])):h("v-if",!0),r(d,{show:S.value,"onUpdate:show":o[4]||(o[4]=e=>S.value=e)},null,8,["show"]),r(p,{show:y.value,"onUpdate:show":o[5]||(o[5]=e=>y.value=e),type:I.value},null,8,["show","type"]),r(w,{show:U.value,"onUpdate:show":o[6]||(o[6]=e=>U.value=e)},null,8,["show"])],64))}});export{j as default};
@@ -141,7 +141,7 @@ declare const _default: import("vue").DefineComponent<{}, {
141
141
  required: true;
142
142
  };
143
143
  }>>, {}>;
144
- images: any[];
144
+ images: import("vue").Ref<any[]>;
145
145
  MESSAGE_TYPE: typeof MESSAGE_TYPE;
146
146
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
147
147
  export default _default;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,nextTick as s,watch as n,openBlock as i,createElementBlock as o,Fragment as r,renderList as a,unref as m,normalizeClass as c,toDisplayString as l,createCommentVNode as u,createBlock as d,createElementVNode as f,createVNode as p,withCtx as g}from"vue";import{NAvatar as y}from"naive-ui";import{useInfiniteScroll as v}from"@vueuse/core";import{isToday as T,format as M,isYesterday as h}from"date-fns";import{getHistoryRecordApi as H}from"../api/index.js";import{useState as L}from"../hooks/useState.js";import{isNumber as _}from"lodash-es";import k from"./PersonProfile.vue.js";import E from"./MessageTemplate.vue.js";import{images as j}from"../utils/emoji.js";import{MESSAGE_TYPE as A}from"../constants/index.js";const w={key:0,class:"time"},D={class:"message-box"},I=["data-time"],P=["innerHTML"],x=["src"];var K=e({__name:"ChatMain",setup(e){const K=t(),{state:F,setMsgList:J}=L();let O=1;async function R(){try{const e=await H({sessionKey:F.sessionKey,page:O});if(console.log("getHistoryRecord",e),!Array.isArray(e))return;if(0===e.length)return console.log("没有更多消息了");J(O>1?[...e,...F.msgList]:e),1===O&&z()}catch(e){console.log(e)}}function Y(e){var t;const{chatMessageType:s,msgTemplate:n}=e.content;return s===A.TEMPLATE&&2==(null==(t=null==n?void 0:n.setting)?void 0:t.style.id)}function b(e,t){var s;const n=_(e.sendTime)?e.sendTime:Date.parse(e.sendTime),i=null==(s=F.msgList[t-1])?void 0:s.sendTime;return n-(0===t?0:_(i)?i:Date.parse(i))>3e5}async function z(){var e,t,n;await s();const i=null!=(t=null==(e=K.value)?void 0:e.scrollHeight)?t:0;null==(n=K.value)||n.scrollTo({top:i})}function C(e){const t=new Date(e),s=Date.now()-t.getTime();if(s<6e4)return"刚刚";if(s<36e5)return Math.ceil(s/1e4/60)+"分钟前";if(T(t))return"今天 "+M(t,"HH:mm");if(h(t))return"昨天 "+M(t,"HH:mm");{const e=t.getFullYear(),s=(new Date).getFullYear();return M(t,e<s?"yyyy年M月d日 HH:mm":"M月d日 HH:mm")}}return v(K,(()=>{O++,R()}),{distance:20,direction:"top"}),n((()=>F.sessionKey),(e=>{e&&(O=1,R())}),{immediate:!0}),n((()=>F.isAppendMsg),(e=>{e&&(J([...F.msgList,F.currentMsg]),F.isAppendMsg=!1,z())}),{immediate:!0}),(e,t)=>(i(),o("div",{class:"chat-main",ref_key:"chatMainRef",ref:K},[(i(!0),o(r,null,a(m(F).msgList,((e,t)=>(i(),o("div",{class:c(["message-item",{"message-item--mine":e.sender==m(F).userInfo.id}]),key:t},[b(e,t)?(i(),o("p",w,l(C(e.sendTime)),1)):u("v-if",!0),Y(e)?(i(),d(E,{key:1,data:e},null,8,["data"])):u("v-if",!0),f("div",D,[p(k,{"user-info":e.sender==m(F).userInfo.id?m(F).userInfo:e},{trigger:g((()=>[p(m(y),{round:"",size:38,src:e.senderAvatar},null,8,["src"])])),_:2},1032,["user-info"]),e.content?(i(),o("div",{key:0,class:c(["content",{emoji:e.content.chatMessageType===m(A).EMOJI},{template:e.content.chatMessageType===m(A).TEMPLATE}]),"data-time":e.__time},[e.content.chatMessageType===m(A).TEXT?(i(),o("pre",{key:0,innerHTML:e.__content},null,8,P)):u("v-if",!0),e.content.chatMessageType===m(A).EMOJI?(i(),o("img",{key:1,src:m(j)[e.__content]},null,8,x)):u("v-if",!0),e.content.chatMessageType===m(A).TEMPLATE?(i(),d(E,{key:2,data:e},null,8,["data"])):u("v-if",!0)],10,I)):u("v-if",!0)])],2)))),128))],512))}});export{K as default};
1
+ import{defineComponent as e,ref as t,watch as s,openBlock as n,createElementBlock as i,Fragment as r,renderList as o,unref as a,normalizeClass as m,toDisplayString as c,createCommentVNode as l,createBlock as u,createElementVNode as d,createVNode as f,withCtx as g}from"vue";import{NAvatar as p}from"naive-ui";import{useInfiniteScroll as y,promiseTimeout as v}from"@vueuse/core";import{isToday as T,format as M,isYesterday as h}from"date-fns";import{getHistoryRecordApi as H}from"../api/index.js";import{useState as L}from"../hooks/useState.js";import{isNumber as k}from"lodash-es";import E from"./PersonProfile.vue.js";import j from"./MessageTemplate.vue.js";import{images as A}from"../utils/emoji.js";import{MESSAGE_TYPE as _}from"../constants/index.js";const I={key:0,class:"time"},w={class:"message-box"},D=["data-time"],P=["innerHTML"],x=["src"];var F=e({__name:"ChatMain",setup(e){const F=t(),{state:J,setMsgList:K}=L();let O=1;async function R(){try{const e=await H({sessionKey:J.currentSessionItem.sessionKey,page:O});if(console.log("getHistoryRecord",e,O),!Array.isArray(e))return;if(0===e.length)return console.log("没有更多消息了");K(O>1?[...e,...J.msgList]:e),1===O&&b()}catch(e){console.log(e)}}function S(e){var t;const{chatMessageType:s,msgTemplate:n}=e.content;return s===_.TEMPLATE&&2==(null==(t=null==n?void 0:n.setting)?void 0:t.style.id)}function Y(e,t){var s;const n=k(e.sendTime)?e.sendTime:Date.parse(e.sendTime),i=null==(s=J.msgList[t-1])?void 0:s.sendTime;return n-(0===t?0:k(i)?i:Date.parse(i))>3e5}async function b(){var e,t,s;await v(50);const n=null!=(t=null==(e=F.value)?void 0:e.scrollHeight)?t:0;null==(s=F.value)||s.scrollTo({top:n})}function z(e){const t=new Date(e),s=Date.now()-t.getTime();if(s<6e4)return"刚刚";if(s<36e5)return Math.ceil(s/1e4/60)+"分钟前";if(T(t))return"今天 "+M(t,"HH:mm");if(h(t))return"昨天 "+M(t,"HH:mm");{const e=t.getFullYear(),s=(new Date).getFullYear();return M(t,e<s?"yyyy年M月d日 HH:mm":"M月d日 HH:mm")}}return y(F,(()=>{O++,R()}),{distance:20,direction:"top"}),s((()=>J.id),(e=>{e&&(O=1,R())}),{immediate:!0}),s((()=>J.isAppendMsg),(e=>{e&&(K([...J.msgList,J.currentMsg]),J.isAppendMsg=!1,b())}),{immediate:!0}),(e,t)=>(n(),i("div",{class:"chat-main",ref_key:"chatMainRef",ref:F},[(n(!0),i(r,null,o(a(J).msgList,((e,t)=>(n(),i("div",{class:m(["message-item",{"message-item--mine":e.sender==a(J).userInfo.id}]),key:t},[Y(e,t)?(n(),i("p",I,c(z(e.sendTime)),1)):l("v-if",!0),S(e)?(n(),u(j,{key:1,data:e},null,8,["data"])):l("v-if",!0),d("div",w,[f(E,{"user-info":e.sender==a(J).userInfo.id?a(J).userInfo:e},{trigger:g((()=>[f(a(p),{round:"",size:38,src:e.senderAvatar},null,8,["src"])])),_:2},1032,["user-info"]),e.content?(n(),i("div",{key:0,class:m(["content",{emoji:e.content.chatMessageType===a(_).EMOJI},{template:e.content.chatMessageType===a(_).TEMPLATE}]),"data-time":e.__time},[e.content.chatMessageType===a(_).TEXT?(n(),i("pre",{key:0,innerHTML:e.__content},null,8,P)):l("v-if",!0),e.content.chatMessageType===a(_).EMOJI?(n(),i("img",{key:1,src:a(A)[e.content.msg]},null,8,x)):l("v-if",!0),e.content.chatMessageType===a(_).TEMPLATE?(n(),u(j,{key:2,data:e},null,8,["data"])):l("v-if",!0)],10,D)):l("v-if",!0)])],2)))),128))],512))}});export{F as default};
@@ -1,24 +1,29 @@
1
1
  import { AnyObject } from '../../../../shared/types';
2
2
  import { formatTime } from '../utils';
3
3
  declare const _default: import("vue").DefineComponent<{}, {
4
+ filterKey: {
5
+ all: string;
6
+ unread: string;
7
+ };
4
8
  flexWidth: import("vue").Ref<number>;
5
9
  listBoxRef: import("vue").Ref<HTMLElement | undefined>;
6
10
  keyword: import("vue").Ref<string>;
7
- sessionList: import("vue").Ref<AnyObject[]>;
8
11
  loading: import("vue").Ref<boolean>;
9
12
  filterList: import("vue").Ref<{
10
13
  label: string;
11
14
  key: string;
12
- number: number;
13
15
  }[]>;
14
16
  currentFilterKey: import("vue").Ref<string>;
15
17
  state: import("../types").IState;
18
+ emit: (event: string, ...args: any[]) => void;
16
19
  entrySession: (item: AnyObject) => void;
20
+ unreadTotal: import("vue").ComputedRef<number>;
17
21
  currentWidth: import("vue").ComputedRef<number>;
18
- handleSearch: () => void;
22
+ sessionList: import("vue").ComputedRef<AnyObject[]>;
19
23
  sessionChange: (sessionItem: AnyObject) => void;
20
24
  changeWidth: ({ distance }: AnyObject) => void;
21
25
  handleFilter: (key: string) => void;
26
+ showSession: (item: AnyObject, currentKey?: string) => boolean | undefined;
22
27
  NSpin: any;
23
28
  NBadge: any;
24
29
  NAvatar: any;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as s,computed as i,watch as n,withDirectives as a,openBlock as l,createElementBlock as t,normalizeStyle as o,unref as r,createBlock as u,createCommentVNode as d,createElementVNode as v,Fragment as m,renderList as c,withCtx as p,createTextVNode as f,toDisplayString as y,normalizeClass as k,createVNode as h}from"vue";import{NSpin as _,NTag as g,NAvatar as S,NBadge as b}from"naive-ui";import{useState as L}from"../hooks/useState.js";import{useSession as x}from"../hooks/useSession.js";import{vFlexibleResize as M}from"../../../../shared/directive/flexibleResize.js";import{formatTime as T,listSort as C}from"../utils/index.js";const K={class:"sider-list__filter box-shadow"},w=["onClick"],j={class:"avatar-right"},I={class:"name"},N={class:"msg-tip"},R={class:"msg-tip__content"},z=["innerHTML"];var D=e({__name:"SiderList",setup(e){const D=s(300),H=s(),U=s(""),B=s([]),V=s(!1),q=s([{label:"全部",key:"all",number:0},{label:"未读",key:"unread",number:0}]),A=s("all"),{state:E}=L(),{entrySession:F}=x(E),G=i((()=>Math.min(Math.max(D.value,240),360)));function J(e){E.sessionList.map((e=>e.sessionKey)).includes(e.sessionKey)||E.sessionList.push(e);const s=E.sessionList.map((s=>(e.receiver!==E.currentSessionItem.receiver&&s.unreadNum++,e.receiver===s.receiver?{...s,...e}:s)));E.sessionList=s,P(A.value)}function O({distance:e}){D.value=D.value+e}function P(e){if(A.value=e,"unread"===e)B.value=E.sessionList.filter((e=>+e.unreadNum>0));else B.value=E.sessionList;B.value=C(B.value)}return n([()=>E.isChangeSession,()=>E.isUpdateSession],(([e,s])=>{e&&(J(E.currentSessionItem),E.isChangeSession=!1),s&&(J(E.updateSessionItem),E.isUpdateSession=!1)}),{immediate:!0}),n((()=>E.sessionList.length),(()=>{!function(){B.value=E.sessionList.sort(((e,s)=>new Date(s.updatedTime).getTime()-new Date(e.updatedTime).getTime())).filter((e=>e.name.includes(U.value)||!U.value)),q.value[0].number=B.value.length;const e=B.value.find((e=>e.sessionKey===E.sessionKey));e&&F(e),C(B.value)}()})),(e,s)=>a((l(),t("section",{class:"sider-list",style:o({width:r(G)+"px"})},[V.value?(l(),u(r(_),{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",K,[(l(!0),t(m,null,c(q.value,(e=>(l(),u(r(g),{type:A.value===e.key?"info":"default",round:"",bordered:!1,key:e.key,onClick:()=>P(e.key)},{default:p((()=>[f(y(e.label)+"("+y(e.number)+") ",1)])),_:2},1032,["type","onClick"])))),128))]),v("div",{class:"sider-list__box",ref_key:"listBoxRef",ref:H},[(l(!0),t(m,null,c(B.value,((e,s)=>(l(),t("div",{key:s,onClick:()=>r(F)(e),class:k(["sider-list__box__item",{active:e.sessionKey===r(E).sessionKey}])},[h(r(S),{round:"",size:"large",src:e.avatar},null,8,["src"]),v("div",j,[v("div",I,[v("h4",null,y(e.name),1),v("span",null,y(r(T)(e.lastMessageSendTime).siderMsgTime),1)]),v("div",N,[v("div",R,[v("div",{innerHTML:e.lastMessage},null,8,z)]),h(r(b),{value:e.unreadNum},null,8,["value"])])])],10,w)))),128))],512)],4)),[[r(M),{mode:"VR",onMove:O}]])}});export{D as default};
1
+ import{defineComponent as e,ref as s,computed as i,watch as a,withDirectives as n,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 _}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 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();s("");const q=s(!1),A=s([{label:"全部",key:B},{label:"未读",key:E}]),D=s("all"),{state:F,emit:G}=M(),{entrySession:J,unreadTotal:K}=L(F),P=i((()=>Math.min(Math.max(O.value,240),360))),Q=i((()=>j(F.sessionList)));function W(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++)})):F.sessionList.push(e)}function X({distance:e}){O.value=O.value+e}function Y(e,s=o(D)){var i;return s===B||(s===E?(null!=(i=e.unreadNum)?i:0)>0:void 0)}return a([()=>F.isChangeSession,()=>F.isUpdateSession],(([e,s])=>{e&&(W(F.currentSessionItem),F.isChangeSession=!1),s&&(W(F.updateSessionItem),F.isUpdateSession=!1)}),{immediate:!0}),a((()=>K.value),(e=>{const s=Q.value.filter((e=>Y(e,E)));G("unread-message-update",e,s)})),(e,s)=>n((t(),l("section",{class:"sider-list",style:r({width:o(P)+"px"})},[q.value?(t(),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",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(Q),((e,s)=>n((t(),l("div",{key:s,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.lastMessage},null,8,U)]),y(o(x),{value:e.unreadNum},null,8,["value"])])])],10,I)),[[_,Y(e)]]))),128))],512)],4)),[[o(C),{mode:"VR",onMove:X}]])}});export{B as default};
@@ -3,4 +3,5 @@ import { IState } from '../types';
3
3
  export declare function useSession(state: IState): {
4
4
  entrySession: (item: AnyObject) => void;
5
5
  setCurrentSessionItem: (item: AnyObject) => void;
6
+ unreadTotal: import("vue").ComputedRef<number>;
6
7
  };
@@ -1 +1 @@
1
- import{transformLastMessage as s}from"../utils/index.js";function e(e){function n(n){Object.assign(e.currentSessionItem,n,n.lastMessage?{lastMessage:s(n)}:{}),e.sessionKey!==e.currentSessionItem.sessionKey&&(e.sessionKey=e.currentSessionItem.sessionKey,e.msgList=[])}return{entrySession:function(s){s.unreadNum=0,n(s),e.isChangeSession=!0},setCurrentSessionItem:n}}export{e as useSession};
1
+ import{computed as e}from"vue";import{transformLastMessage as s}from"../utils/index.js";function n(n){function t(e){Object.assign(n.currentSessionItem,e,e.lastMessage?{lastMessage:s(e)}:{}),n.id!==n.currentSessionItem.id&&(n.id=n.currentSessionItem.id)}return{entrySession:function(e){e.unreadNum=0,t(e),n.isChangeSession=!0},setCurrentSessionItem:t,unreadTotal:e((()=>n.sessionList.reduce(((e,s)=>e+ +s.unreadNum),0)))}}export{n as useSession};
@@ -1 +1 @@
1
- import{inject as t}from"vue";import{formatTime as e,transformMessage as i}from"../utils/index.js";import{InjectionIChatState as n,InjectionIChatStompClient as m,InjectionIChatEmits as s}from"../types/index.js";function o(){const o=t(n),r=t(m),p=t(s);return{state:o,setMsgList:function(t=[]){o.msgList=t.map((t=>{var n;return{...t,__time:e(t.sendTime).msgTime,__content:i(null==(n=t.content)?void 0:n.msg)}}))},stompClient:r,emit:p}}export{o as useState};
1
+ import{inject as t}from"vue";import{last as e}from"lodash-es";import{formatTime as n,transformMessage as s}from"../utils/index.js";import{InjectionIChatState as i,InjectionIChatStompClient as m,InjectionIChatEmits as o}from"../types/index.js";function r(){const r=t(i),g=t(m),c=t(o);return{state:r,setMsgList:function(t=[]){var i;r.msgList=t.sort(((t,e)=>{var i;return Object.assign(t,{__time:n(t.sendTime).msgTime,__content:s(null==(i=t.content)?void 0:i.msg)}),new Date(t.sendTime).getTime()-new Date(e.sendTime).getTime()}));const m=e(r.msgList);m.__time=n(m.sendTime).msgTime,m.__content=s(null==(i=m.content)?void 0:i.msg)},stompClient:g,emit:c}}export{r as useState};
@@ -3,7 +3,7 @@ import { AnyObject } from '../../../../shared/types';
3
3
  import { ChatSock } from '../utils/chatSock';
4
4
  export declare type IState = {
5
5
  currentSessionItem: AnyObject;
6
- sessionKey: string;
6
+ id: string;
7
7
  userInfo: AnyObject;
8
8
  msgList: AnyObject[];
9
9
  currentMsg: AnyObject;
@@ -1,2 +1,2 @@
1
- export declare const images: any[];
1
+ export declare const images: import("vue").Ref<any[]>;
2
2
  export declare const alt: string[];