vue2-client 1.15.92 → 1.15.93

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 (460) hide show
  1. package/.cursorrules +19 -19
  2. package/.env.apply +19 -19
  3. package/.env.gaslink +19 -19
  4. package/.env.his +19 -19
  5. package/.env.liuli +20 -20
  6. package/.env.scada +19 -19
  7. package/.eslintrc.js +90 -90
  8. package/.history/public/his/editor/editor_20250606134713.html +51 -0
  9. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527173925.vue +509 -0
  10. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174316.vue +524 -0
  11. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174419.vue +524 -0
  12. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174422.vue +524 -0
  13. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172825.vue +207 -0
  14. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172945.vue +211 -0
  15. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611172949.vue +212 -0
  16. package/.history/src/base-client/components/common/XAddReport/XAddReport_20250611173010.vue +212 -0
  17. package/.history/src/base-client/components/common/XForm/XFormItem_20250508134122.vue +1320 -0
  18. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171604.vue +1332 -0
  19. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171613.vue +1331 -0
  20. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171703.vue +1331 -0
  21. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171720.vue +1331 -0
  22. package/.history/src/base-client/components/common/XForm/XFormItem_20250527174327.vue +1339 -0
  23. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612092804.vue +731 -0
  24. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612112546.vue +748 -0
  25. package/.history/src/base-client/components/common/XReportGrid/XReportTrGroup_20250612113808.vue +748 -0
  26. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115237.vue +1071 -0
  27. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115346.vue +1078 -0
  28. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115350.vue +1077 -0
  29. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115415.vue +1077 -0
  30. package/.history/src/base-client/components/common/XReportGrid/XReport_20250612115429.vue +1077 -0
  31. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611091619.vue +442 -0
  32. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092547.vue +442 -0
  33. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092552.vue +442 -0
  34. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092744.vue +475 -0
  35. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092955.vue +475 -0
  36. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611092957.vue +475 -0
  37. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095652.vue +477 -0
  38. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095701.vue +477 -0
  39. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611095704.vue +477 -0
  40. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100005.vue +473 -0
  41. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100011.vue +473 -0
  42. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100014.vue +473 -0
  43. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100833.vue +473 -0
  44. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100853.vue +473 -0
  45. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611100940.vue +473 -0
  46. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101011.vue +473 -0
  47. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101013.vue +473 -0
  48. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101014.vue +473 -0
  49. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101159.vue +473 -0
  50. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101238.vue +474 -0
  51. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101240.vue +474 -0
  52. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101242.vue +474 -0
  53. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101404.vue +472 -0
  54. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101410.vue +472 -0
  55. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101459.vue +472 -0
  56. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101500.vue +472 -0
  57. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101502.vue +472 -0
  58. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101504.vue +472 -0
  59. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101610.vue +501 -0
  60. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101700.vue +501 -0
  61. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101702.vue +501 -0
  62. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101741.vue +504 -0
  63. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101749.vue +504 -0
  64. package/.history/src/base-client/components/his/XHisEditor/XHisEditor_20250611101759.vue +504 -0
  65. package/.history/src/base-client/components/his/XHisEditor/dome_20250611091349.vue +131 -0
  66. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105854.vue +160 -0
  67. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105902.vue +160 -0
  68. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105924.vue +160 -0
  69. package/.history/src/base-client/components/his/XHisEditor/dome_20250611105932.vue +158 -0
  70. package/.history/src/base-client/components/his/XList/XList_20250609135848.vue +173 -0
  71. package/.history/src/base-client/components/his/XList/XList_20250609141026.vue +222 -0
  72. package/.history/src/base-client/components/his/XList/XList_20250609141035.vue +229 -0
  73. package/.history/src/base-client/components/his/XList/XList_20250609141103.vue +229 -0
  74. package/.history/src/base-client/components/his/XList/XList_20250609141105.vue +229 -0
  75. package/.history/src/base-client/components/his/XList/XList_20250609141334.vue +241 -0
  76. package/.history/src/base-client/components/his/XList/XList_20250609141404.vue +241 -0
  77. package/.history/src/base-client/components/his/XList/XList_20250609141406.vue +241 -0
  78. package/.history/src/base-client/components/his/XList/XList_20250609141801.vue +245 -0
  79. package/.history/src/base-client/components/his/XList/XList_20250609142033.vue +245 -0
  80. package/.history/src/base-client/components/his/XList/XList_20250609142038.vue +245 -0
  81. package/.history/src/base-client/components/his/XList/XList_20250609142435.vue +255 -0
  82. package/.history/src/base-client/components/his/XList/XList_20250609142503.vue +255 -0
  83. package/.history/src/base-client/components/his/XList/XList_20250609142504.vue +255 -0
  84. package/.history/src/base-client/components/his/XList/XList_20250609143012.vue +270 -0
  85. package/.history/src/base-client/components/his/XList/XList_20250609143044.vue +270 -0
  86. package/.history/src/base-client/components/his/XList/XList_20250609143046.vue +270 -0
  87. package/.history/src/base-client/components/his/XList/XList_20250609143210.vue +270 -0
  88. package/.history/src/base-client/components/his/XList/XList_20250609144339.vue +294 -0
  89. package/.history/src/base-client/components/his/XList/XList_20250609144410.vue +294 -0
  90. package/.history/src/base-client/components/his/XList/XList_20250609144412.vue +294 -0
  91. package/.history/src/base-client/components/his/XList/XList_20250609144647.vue +303 -0
  92. package/.history/src/base-client/components/his/XList/XList_20250609144716.vue +303 -0
  93. package/.history/src/base-client/components/his/XList/XList_20250609144729.vue +303 -0
  94. package/.history/src/base-client/components/his/XList/XList_20250609151232.vue +288 -0
  95. package/.history/src/base-client/components/his/XList/XList_20250609151247.vue +288 -0
  96. package/.history/src/base-client/components/his/XList/XList_20250609151252.vue +288 -0
  97. package/.history/src/base-client/components/his/XList/XList_20250609161220.vue +317 -0
  98. package/.history/src/base-client/components/his/XList/XList_20250609161258.vue +306 -0
  99. package/.history/src/base-client/components/his/XList/XList_20250609161319.vue +306 -0
  100. package/.history/src/base-client/components/his/XList/XList_20250609161320.vue +306 -0
  101. package/.history/src/base-client/components/his/XList/XList_20250704142024.vue +495 -0
  102. package/.history/src/base-client/components/his/XList/XList_20250704142033.vue +495 -0
  103. package/.history/src/base-client/components/his/XList/XList_20250704142040.vue +494 -0
  104. package/.history/src/base-client/components/his/XList/XList_20250704142211.vue +494 -0
  105. package/.history/src/base-client/components/his/XList/XList_20250704142214.vue +494 -0
  106. package/.history/src/base-client/components/his/XList/XList_20250704143010.vue +495 -0
  107. package/.history/src/base-client/components/his/XList/XList_20250704143203.vue +495 -0
  108. package/.history/src/base-client/components/his/XList/XList_20250707095101.vue +492 -0
  109. package/.history/src/base-client/components/his/XList/XList_20250707100152.vue +492 -0
  110. package/.history/src/base-client/components/his/XList/XList_20250707100200.vue +485 -0
  111. package/.history/src/base-client/components/his/XList/XList_20250707100208.vue +485 -0
  112. package/.history/src/base-client/components/his/XList/XList_20250707100259.vue +488 -0
  113. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250609151519.vue +222 -0
  114. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155514.vue +183 -0
  115. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155556.vue +183 -0
  116. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612155600.vue +183 -0
  117. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612181609.vue +206 -0
  118. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250612181629.vue +209 -0
  119. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095553.vue +242 -0
  120. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095610.vue +242 -0
  121. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613095612.vue +242 -0
  122. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100041.vue +251 -0
  123. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100047.vue +251 -0
  124. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100054.vue +250 -0
  125. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100105.vue +250 -0
  126. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100107.vue +250 -0
  127. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613100114.vue +250 -0
  128. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613140844.vue +238 -0
  129. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613140910.vue +238 -0
  130. package/.history/src/base-client/components/his/XShiftSchedule/XShiftSchedule_20250613140912.vue +238 -0
  131. package/CHANGELOG.md +824 -824
  132. package/Components.md +60 -60
  133. package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +36 -0
  134. package/docs/LowCode/lowcode.md +155 -155
  135. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  136. package/docs/index.md +30 -30
  137. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +6 -0
  138. package/index.js +31 -31
  139. package/jest-transform-stub.js +8 -8
  140. package/jest.setup.js +7 -7
  141. package/jsconfig.json +19 -19
  142. package/package.json +1 -1
  143. package/public/his/editor/editor.html +51 -51
  144. package/public/his/editor/mock/bind_data.html +779 -779
  145. package/public/his/editor/mock/data_table.html +40 -40
  146. package/public/his/editor/mock/sign.html +75 -75
  147. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  148. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  149. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  150. package/public/his/editor/vender/date97/calendar.js +4 -4
  151. package/public/his/editor/vender/date97/lang/en.js +13 -13
  152. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  153. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  154. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  155. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  156. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  157. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  158. package/public/his/editor/vender/diff.js +1627 -1627
  159. package/public/his/editor/vender/editor.js +1 -1
  160. package/public/his/editor/vender/fabric.js +31187 -31187
  161. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  162. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  163. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  164. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  165. package/public/his/editor/vender/mui/mui.min.css +4 -4
  166. package/public/his/editor/vender/mui/mui.min.js +5 -5
  167. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  168. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  169. package/public/his/editor/vender/qrcode.js +7 -7
  170. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  171. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  172. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  173. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  174. package/public/his/editor/vender/validator.js +5094 -5094
  175. package/public/his/editor/vender/weui/weui.css +5659 -5659
  176. package/public/his/editor/vender/weui/weui.min.css +4 -4
  177. package/public/his/editor/vender/weui/weui.min.js +11 -11
  178. package/public/index.html +27 -27
  179. package/src/assets/img/querySlotDemo.svg +15 -15
  180. package/src/assets/svg/badtwo.svg +1 -1
  181. package/src/assets/svg/goodtwo.svg +1 -1
  182. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  183. package/src/base-client/components/AI/demo.vue +31 -31
  184. package/src/base-client/components/TreeList/TreeList.vue +91 -0
  185. package/src/base-client/components/TreeList/TreeNode.vue +81 -0
  186. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  187. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  188. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  189. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  190. package/src/base-client/components/common/CitySelect/index.js +3 -3
  191. package/src/base-client/components/common/CitySelect/index.md +109 -109
  192. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  193. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  194. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  195. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  196. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  197. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  198. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  199. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  200. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  201. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  202. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  203. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  204. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  205. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  206. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  207. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  208. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  209. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  210. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  211. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  212. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  213. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  214. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  215. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  216. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  217. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  218. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  219. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  220. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  221. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  222. package/src/base-client/components/common/Recording/index.js +3 -3
  223. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  224. package/src/base-client/components/common/Tree/index.js +2 -2
  225. package/src/base-client/components/common/Upload/index.js +3 -3
  226. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  227. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  228. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  229. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  230. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  231. package/src/base-client/components/common/XAddReport/index.js +3 -3
  232. package/src/base-client/components/common/XAddReport/index.md +56 -56
  233. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  234. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  235. package/src/base-client/components/common/XButtons/index.js +3 -3
  236. package/src/base-client/components/common/XButtons/index.md +61 -61
  237. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  238. package/src/base-client/components/common/XCardSet/XTiltle.vue +191 -0
  239. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  240. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  241. package/src/base-client/components/common/XDataCard/index.js +3 -3
  242. package/src/base-client/components/common/XDataCard/index.md +1 -1
  243. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  244. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  245. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  246. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  247. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  248. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  249. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  250. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  251. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  252. package/src/base-client/components/common/XForm/index.md +178 -178
  253. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  254. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  255. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  256. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  257. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  258. package/src/base-client/components/common/XFormTable/index.md +92 -92
  259. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  260. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  261. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  262. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  263. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  264. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  265. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  266. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  267. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  268. package/src/base-client/components/common/XPrint/index.vue +97 -97
  269. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  270. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  271. package/src/base-client/components/common/XReport/index.js +3 -3
  272. package/src/base-client/components/common/XReport/print.js +186 -186
  273. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  274. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +4 -3
  275. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  276. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  277. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  278. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  279. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  280. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  281. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  282. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  283. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  284. package/src/base-client/components/common/XStepView/index.js +3 -3
  285. package/src/base-client/components/common/XStepView/index.md +31 -31
  286. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  287. package/src/base-client/components/common/XTab/index.js +3 -3
  288. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  289. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  290. package/src/base-client/components/common/XTable/index.md +255 -255
  291. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  292. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  293. package/src/base-client/components/common/XTree/index.js +3 -3
  294. package/src/base-client/components/common/XTree/index.md +36 -36
  295. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  296. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  297. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  298. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  299. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +52 -2
  300. package/src/base-client/components/his/XHisEditor/dome.vue +144 -0
  301. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  302. package/src/base-client/components/his/XImportExcelButton/XFrontImportExcel.vue +214 -0
  303. package/src/base-client/components/his/XImportExcelButton/XFrontImportExcelDemo.vue +21 -0
  304. package/src/base-client/components/his/XImportExcelButton/XImportExcelButton.vue +103 -0
  305. package/src/base-client/components/his/XList/XList.vue +1 -1
  306. package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
  307. package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
  308. package/src/base-client/components/index.js +51 -51
  309. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  310. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  311. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  312. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  313. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  314. package/src/base-client/plugins/Config.js +19 -19
  315. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  316. package/src/base-client/plugins/Recording.js +258 -258
  317. package/src/base-client/plugins/index.js +23 -23
  318. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  319. package/src/components/Charts/Bar.vue +62 -62
  320. package/src/components/Charts/ChartCard.vue +134 -134
  321. package/src/components/Charts/Liquid.vue +67 -67
  322. package/src/components/Charts/MiniArea.vue +39 -39
  323. package/src/components/Charts/MiniBar.vue +39 -39
  324. package/src/components/Charts/MiniProgress.vue +75 -75
  325. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  326. package/src/components/Charts/Radar.vue +68 -68
  327. package/src/components/Charts/RankList.vue +77 -77
  328. package/src/components/Charts/TagCloud.vue +113 -113
  329. package/src/components/Charts/TransferBar.vue +64 -64
  330. package/src/components/Charts/Trend.vue +82 -82
  331. package/src/components/Charts/chart.less +12 -12
  332. package/src/components/Charts/smooth.area.less +13 -13
  333. package/src/components/CodeMirror/inedx.vue +118 -118
  334. package/src/components/CodeMirror/setting.js +40 -40
  335. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  336. package/src/components/NumberInfo/index.js +3 -3
  337. package/src/components/NumberInfo/index.less +54 -54
  338. package/src/components/NumberInfo/index.md +43 -43
  339. package/src/components/card/ChartCard.vue +79 -79
  340. package/src/components/chart/Bar.vue +60 -60
  341. package/src/components/chart/MiniArea.vue +67 -67
  342. package/src/components/chart/MiniBar.vue +59 -59
  343. package/src/components/chart/MiniProgress.vue +57 -57
  344. package/src/components/chart/Radar.vue +80 -80
  345. package/src/components/chart/RankingList.vue +60 -60
  346. package/src/components/chart/Trend.vue +79 -79
  347. package/src/components/chart/index.less +9 -9
  348. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  349. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  350. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  351. package/src/components/checkbox/index.js +9 -9
  352. package/src/components/exception/ExceptionPage.vue +70 -70
  353. package/src/components/g2Charts/constants.js +202 -202
  354. package/src/components/g2Charts/demo.vue +808 -808
  355. package/src/components/g2Charts/designer.vue +228 -228
  356. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  357. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  358. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  359. package/src/components/g2Charts/index.vue +397 -397
  360. package/src/components/index.js +36 -36
  361. package/src/components/input/IInput.vue +66 -66
  362. package/src/components/menu/SideMenu.vue +75 -75
  363. package/src/components/menu/menu.js +273 -273
  364. package/src/components/setting/Setting.vue +234 -234
  365. package/src/components/tool/AStepItem.vue +60 -60
  366. package/src/config/CreateQueryConfig.js +325 -325
  367. package/src/config/default/antd.config.js +89 -89
  368. package/src/config/default/setting.config.js +55 -55
  369. package/src/font-style/font.css +4 -4
  370. package/src/layouts/CommonLayout.vue +56 -56
  371. package/src/layouts/PageLayout.vue +151 -151
  372. package/src/layouts/SinglePageView.vue +136 -136
  373. package/src/layouts/header/AdminHeader.vue +132 -132
  374. package/src/layouts/header/HeaderNotice.vue +177 -177
  375. package/src/layouts/header/InstitutionDetail.vue +181 -181
  376. package/src/layouts/tabs/TabsHead.vue +189 -189
  377. package/src/lib.js +1 -1
  378. package/src/mock/extend/index.js +84 -84
  379. package/src/mock/goods/index.js +108 -108
  380. package/src/pages/DefaultExample/index.vue +77 -77
  381. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  382. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  383. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  384. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  385. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  386. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  387. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  388. package/src/pages/DynamicStatistics/index.vue +282 -282
  389. package/src/pages/Example/childIndex.vue +15 -15
  390. package/src/pages/Example/index.vue +30 -30
  391. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  392. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  393. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  394. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  395. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  396. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  397. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  398. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  399. package/src/pages/Recording/index.vue +77 -77
  400. package/src/pages/ServiceReview/index.vue +284 -284
  401. package/src/pages/SubExample/index.vue +26 -26
  402. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  403. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformationDetails.vue +276 -276
  404. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +248 -248
  405. package/src/pages/XReportView/index.vue +64 -64
  406. package/src/pages/XTreeOneProExample/index.vue +67 -67
  407. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  408. package/src/pages/login/Login.vue +380 -380
  409. package/src/pages/login/LoginV3.vue +389 -389
  410. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  411. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  412. package/src/pages/report/ReportTable.js +124 -124
  413. package/src/pages/resourceManage/orgListManage.vue +98 -98
  414. package/src/pages/system/dictionary/index.vue +44 -44
  415. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  416. package/src/pages/system/monitor/operLog/index.vue +37 -37
  417. package/src/pages/system/settings/modifyPassword.vue +117 -117
  418. package/src/pages/system/ticket/index.vue +480 -480
  419. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  420. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  421. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  422. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  423. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  424. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  425. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  426. package/src/plugins/EventLogPlugin.js +33 -33
  427. package/src/plugins/FindParentsData.js +17 -17
  428. package/src/router/async/config.async.js +35 -35
  429. package/src/router/index.js +27 -27
  430. package/src/services/DataModel.js +30 -30
  431. package/src/services/LodopFuncs.js +137 -137
  432. package/src/services/api/TicketDetailsViewApi.js +46 -46
  433. package/src/services/api/cas.js +79 -79
  434. package/src/services/api/common.js +346 -346
  435. package/src/services/api/entity.js +18 -18
  436. package/src/services/api/index.js +17 -17
  437. package/src/store/modules/account.js +115 -115
  438. package/src/store/modules/index.js +5 -5
  439. package/src/store/modules/lowCode.js +33 -33
  440. package/src/store/modules/setting.js +119 -119
  441. package/src/theme/default/style.less +58 -58
  442. package/src/utils/authority-utils.js +85 -85
  443. package/src/utils/errorCode.js +6 -6
  444. package/src/utils/excel/Export2Excel.js +43 -0
  445. package/src/utils/formatter.js +74 -74
  446. package/src/utils/htmlToPDF.js +108 -108
  447. package/src/utils/htmlToPDFApi.js +5 -5
  448. package/src/utils/login.js +188 -188
  449. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  450. package/src/utils/lowcode/lowcodeLog.js +29 -29
  451. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  452. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  453. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  454. package/src/utils/map-utils.js +47 -47
  455. package/src/utils/reg.js +95 -95
  456. package/src/utils/runEvalFunction.js +14 -14
  457. package/src/utils/theme-color-replacer-extend.js +92 -92
  458. package/src/utils/util.js +329 -329
  459. package/src/utils/waterMark.js +31 -31
  460. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,258 +1,258 @@
1
- // recordingPlugin.js
2
- export default {
3
- install (Vue) {
4
- Vue.prototype.$recording = {
5
- isRecording: false, // 标识是否正在录音
6
- mediaRecorder: null, // MediaRecorder 实例
7
- audioChunks: [], // 存储录音数据块
8
- audioUrl: null, // 录音生成的 URL
9
- inputData: '',
10
- audioContext: null,
11
- audioStream: null,
12
- ws: null,
13
- resolvePromise: null, // 用于保存 Promise 的 resolve 函数
14
-
15
- async startRecording () {
16
- this.inputData = ''
17
- this.audioChunks = []
18
-
19
- const url = 'ws://192.168.50.67:30288/websocket/bash' // WebSocket地址
20
- this.setupWebSocket(url)
21
-
22
- // 等待 WebSocket 连接成功
23
- const result = await this.waitForWebSocketConnection()
24
-
25
- if (result) {
26
- return {
27
- code: 500,
28
- msg: result
29
- }
30
- }
31
-
32
- this.isRecording = true
33
-
34
- // 初始化 AudioContext
35
- this.audioContext = new (window.AudioContext || window.webkitAudioContext)()
36
-
37
- if (!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia) {
38
- this.ws.close()
39
- return {
40
- code: 500,
41
- msg: '录音软件不支持您的浏览器!请使用现代浏览器或确保您正在使用 HTTPS。'
42
- }
43
- }
44
- // 获取麦克风输入流
45
- this.audioStream = await navigator.mediaDevices.getUserMedia({ audio: true })
46
-
47
- // 设置音频处理流程
48
- this.setupAudioProcessing()
49
-
50
- return {
51
- code: 200,
52
- msg: '开始录音'
53
- }
54
- },
55
-
56
- setupWebSocket (url) {
57
- this.ws = new WebSocket(url)
58
-
59
- this.ws.onmessage = (event) => {
60
- const data = JSON.parse(event.data)
61
- console.log('Result:', data.result)
62
- if (data.result !== undefined) {
63
- this.inputData += data.result
64
- }
65
- if (!this.isRecording) {
66
- this.ws.close()
67
- }
68
- }
69
-
70
- this.ws.onclose = () => {
71
- console.log('WebSocket closed.')
72
- this.resRecordingData()
73
- this.resolvePromise(this.inputData)
74
- }
75
- this.ws.onerror = (error) => console.error('WebSocket error:', error)
76
- },
77
-
78
- waitForWebSocketConnection () {
79
- return new Promise((resolve) => {
80
- this.ws.onopen = () => {
81
- console.log('WebSocket 连接成功')
82
- resolve()
83
- }
84
-
85
- this.ws.onerror = (error) => {
86
- resolve('WebSocket 连接失败: ' + error.message)
87
- }
88
- })
89
- },
90
-
91
- setupAudioProcessing () {
92
- try {
93
- const source = this.audioContext.createMediaStreamSource(this.audioStream)
94
- const processor = this.audioContext.createScriptProcessor(4096, 1, 1)
95
-
96
- processor.onaudioprocess = (e) => {
97
- // if (!this.isRecording) return
98
-
99
- const inputData = e.inputBuffer.getChannelData(0)
100
-
101
- // Resample to 16000 Hz if needed
102
- const resampledData = this.resample(inputData, this.audioContext.sampleRate, 16000)
103
-
104
- this.audioChunks.push(new Float32Array(resampledData))
105
-
106
- // Convert to 16-bit PCM and send via WebSocket
107
- const byteArray = this.convertTo16BitPCM(resampledData)
108
-
109
- const finalData = new Uint8Array(1 + byteArray.length) // 创建最终数据数组
110
- finalData[0] = 1 // 第一个字节为类型,值为1
111
- finalData.set(byteArray, 1) // 设置实际数据
112
-
113
- this.ws.send(finalData) // 发送最终数据
114
- }
115
-
116
- source.connect(processor)
117
- processor.connect(this.audioContext.destination)
118
- return {
119
- code: 200,
120
- msg: '录音初始化成功'
121
- }
122
- } catch (error) {
123
- console.error('Error setting up audio processing:', error)
124
- return {
125
- code: 500,
126
- msg: '录音初始化出错:' + error.message
127
- }
128
- }
129
- },
130
-
131
- stopRecording () {
132
- console.log('停止录音')
133
-
134
- // 停止麦克风流
135
- if (this.audioStream) {
136
- this.audioStream.getTracks().forEach((track) => track.stop())
137
- }
138
-
139
- if (this.audioContext) {
140
- this.audioContext.close()
141
- }
142
-
143
- // 发送结束信号
144
- const endSignal = new Uint8Array(1) // 创建一个长度为1的Uint8Array
145
- endSignal[0] = 2 // 直接发送类型,值为2
146
- this.ws.send(endSignal) // 发送结束信号
147
-
148
- this.isRecording = false
149
-
150
- return {
151
- code: 200,
152
- msg: '录音已停止'
153
- }
154
- },
155
-
156
- saveAudioFile () {
157
- const audioBuffer = this.mergeAudioChunks(this.audioChunks)
158
-
159
- // 转换为 WAV 格式
160
- const wavBlob = this.encodeWAV(audioBuffer, 16000)
161
-
162
- // 创建下载链接并触发下载
163
- const url = URL.createObjectURL(wavBlob)
164
- const a = document.createElement('a')
165
- a.style.display = 'none'
166
- a.href = url
167
- a.download = 'recording.wav'
168
- document.body.appendChild(a)
169
- a.click()
170
- window.URL.revokeObjectURL(url)
171
- },
172
-
173
- mergeAudioChunks (chunks) {
174
- const length = chunks.reduce((sum, chunk) => sum + chunk.length, 0)
175
- const result = new Float32Array(length)
176
- let offset = 0
177
- for (const chunk of chunks) {
178
- result.set(chunk, offset)
179
- offset += chunk.length
180
- }
181
- return result
182
- },
183
-
184
- encodeWAV (samples, sampleRate) {
185
- const buffer = new ArrayBuffer(44 + samples.length * 2)
186
- const view = new DataView(buffer)
187
-
188
- const writeString = (view, offset, string) => {
189
- for (let i = 0; i < string.length; i++) {
190
- view.setUint8(offset + i, string.charCodeAt(i))
191
- }
192
- }
193
-
194
- writeString(view, 0, 'RIFF')
195
- view.setUint32(4, 36 + samples.length * 2, true)
196
- writeString(view, 8, 'WAVE')
197
-
198
- writeString(view, 12, 'fmt ')
199
- view.setUint32(16, 16, true)
200
- view.setUint16(20, 1, true)
201
- view.setUint16(22, 1, true)
202
- view.setUint32(24, sampleRate, true)
203
- view.setUint32(28, sampleRate * 2, true)
204
- view.setUint16(32, 2, true)
205
- view.setUint16(34, 16, true)
206
-
207
- writeString(view, 36, 'data')
208
- view.setUint32(40, samples.length * 2, true)
209
-
210
- let offset = 44
211
- for (let i = 0; i < samples.length; i++) {
212
- const s = Math.max(-1, Math.min(1, samples[i]))
213
- view.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true)
214
- offset += 2
215
- }
216
-
217
- return new Blob([buffer], { type: 'audio/wav' })
218
- },
219
-
220
- resample (data, inputSampleRate, outputSampleRate) {
221
- if (inputSampleRate === outputSampleRate) {
222
- return data
223
- }
224
- const sampleRateRatio = inputSampleRate / outputSampleRate
225
- const newLength = Math.round(data.length / sampleRateRatio)
226
- const resampledData = new Float32Array(newLength)
227
- for (let i = 0; i < newLength; i++) {
228
- const index = Math.round(i * sampleRateRatio)
229
- resampledData[i] = data[index]
230
- }
231
- return resampledData
232
- },
233
-
234
- convertTo16BitPCM (data) {
235
- const output = new Int16Array(data.length)
236
- for (let i = 0; i < data.length; i++) {
237
- output[i] = Math.max(-1, Math.min(1, data[i])) * 0x7fff
238
- }
239
- return new Uint8Array(output.buffer)
240
- },
241
-
242
- async getRecordingData () {
243
- return new Promise((resolve) => {
244
- this.resolvePromise = resolve
245
-
246
- if (!this.ws) {
247
- // 如果 WebSocket 未初始化,直接拒绝
248
- console.log('错误结束')
249
- resolve(this.inputData)
250
- }
251
- })
252
- },
253
-
254
- resRecordingData () {
255
- }
256
- }
257
- }
258
- }
1
+ // recordingPlugin.js
2
+ export default {
3
+ install (Vue) {
4
+ Vue.prototype.$recording = {
5
+ isRecording: false, // 标识是否正在录音
6
+ mediaRecorder: null, // MediaRecorder 实例
7
+ audioChunks: [], // 存储录音数据块
8
+ audioUrl: null, // 录音生成的 URL
9
+ inputData: '',
10
+ audioContext: null,
11
+ audioStream: null,
12
+ ws: null,
13
+ resolvePromise: null, // 用于保存 Promise 的 resolve 函数
14
+
15
+ async startRecording () {
16
+ this.inputData = ''
17
+ this.audioChunks = []
18
+
19
+ const url = 'ws://192.168.50.67:30288/websocket/bash' // WebSocket地址
20
+ this.setupWebSocket(url)
21
+
22
+ // 等待 WebSocket 连接成功
23
+ const result = await this.waitForWebSocketConnection()
24
+
25
+ if (result) {
26
+ return {
27
+ code: 500,
28
+ msg: result
29
+ }
30
+ }
31
+
32
+ this.isRecording = true
33
+
34
+ // 初始化 AudioContext
35
+ this.audioContext = new (window.AudioContext || window.webkitAudioContext)()
36
+
37
+ if (!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia) {
38
+ this.ws.close()
39
+ return {
40
+ code: 500,
41
+ msg: '录音软件不支持您的浏览器!请使用现代浏览器或确保您正在使用 HTTPS。'
42
+ }
43
+ }
44
+ // 获取麦克风输入流
45
+ this.audioStream = await navigator.mediaDevices.getUserMedia({ audio: true })
46
+
47
+ // 设置音频处理流程
48
+ this.setupAudioProcessing()
49
+
50
+ return {
51
+ code: 200,
52
+ msg: '开始录音'
53
+ }
54
+ },
55
+
56
+ setupWebSocket (url) {
57
+ this.ws = new WebSocket(url)
58
+
59
+ this.ws.onmessage = (event) => {
60
+ const data = JSON.parse(event.data)
61
+ console.log('Result:', data.result)
62
+ if (data.result !== undefined) {
63
+ this.inputData += data.result
64
+ }
65
+ if (!this.isRecording) {
66
+ this.ws.close()
67
+ }
68
+ }
69
+
70
+ this.ws.onclose = () => {
71
+ console.log('WebSocket closed.')
72
+ this.resRecordingData()
73
+ this.resolvePromise(this.inputData)
74
+ }
75
+ this.ws.onerror = (error) => console.error('WebSocket error:', error)
76
+ },
77
+
78
+ waitForWebSocketConnection () {
79
+ return new Promise((resolve) => {
80
+ this.ws.onopen = () => {
81
+ console.log('WebSocket 连接成功')
82
+ resolve()
83
+ }
84
+
85
+ this.ws.onerror = (error) => {
86
+ resolve('WebSocket 连接失败: ' + error.message)
87
+ }
88
+ })
89
+ },
90
+
91
+ setupAudioProcessing () {
92
+ try {
93
+ const source = this.audioContext.createMediaStreamSource(this.audioStream)
94
+ const processor = this.audioContext.createScriptProcessor(4096, 1, 1)
95
+
96
+ processor.onaudioprocess = (e) => {
97
+ // if (!this.isRecording) return
98
+
99
+ const inputData = e.inputBuffer.getChannelData(0)
100
+
101
+ // Resample to 16000 Hz if needed
102
+ const resampledData = this.resample(inputData, this.audioContext.sampleRate, 16000)
103
+
104
+ this.audioChunks.push(new Float32Array(resampledData))
105
+
106
+ // Convert to 16-bit PCM and send via WebSocket
107
+ const byteArray = this.convertTo16BitPCM(resampledData)
108
+
109
+ const finalData = new Uint8Array(1 + byteArray.length) // 创建最终数据数组
110
+ finalData[0] = 1 // 第一个字节为类型,值为1
111
+ finalData.set(byteArray, 1) // 设置实际数据
112
+
113
+ this.ws.send(finalData) // 发送最终数据
114
+ }
115
+
116
+ source.connect(processor)
117
+ processor.connect(this.audioContext.destination)
118
+ return {
119
+ code: 200,
120
+ msg: '录音初始化成功'
121
+ }
122
+ } catch (error) {
123
+ console.error('Error setting up audio processing:', error)
124
+ return {
125
+ code: 500,
126
+ msg: '录音初始化出错:' + error.message
127
+ }
128
+ }
129
+ },
130
+
131
+ stopRecording () {
132
+ console.log('停止录音')
133
+
134
+ // 停止麦克风流
135
+ if (this.audioStream) {
136
+ this.audioStream.getTracks().forEach((track) => track.stop())
137
+ }
138
+
139
+ if (this.audioContext) {
140
+ this.audioContext.close()
141
+ }
142
+
143
+ // 发送结束信号
144
+ const endSignal = new Uint8Array(1) // 创建一个长度为1的Uint8Array
145
+ endSignal[0] = 2 // 直接发送类型,值为2
146
+ this.ws.send(endSignal) // 发送结束信号
147
+
148
+ this.isRecording = false
149
+
150
+ return {
151
+ code: 200,
152
+ msg: '录音已停止'
153
+ }
154
+ },
155
+
156
+ saveAudioFile () {
157
+ const audioBuffer = this.mergeAudioChunks(this.audioChunks)
158
+
159
+ // 转换为 WAV 格式
160
+ const wavBlob = this.encodeWAV(audioBuffer, 16000)
161
+
162
+ // 创建下载链接并触发下载
163
+ const url = URL.createObjectURL(wavBlob)
164
+ const a = document.createElement('a')
165
+ a.style.display = 'none'
166
+ a.href = url
167
+ a.download = 'recording.wav'
168
+ document.body.appendChild(a)
169
+ a.click()
170
+ window.URL.revokeObjectURL(url)
171
+ },
172
+
173
+ mergeAudioChunks (chunks) {
174
+ const length = chunks.reduce((sum, chunk) => sum + chunk.length, 0)
175
+ const result = new Float32Array(length)
176
+ let offset = 0
177
+ for (const chunk of chunks) {
178
+ result.set(chunk, offset)
179
+ offset += chunk.length
180
+ }
181
+ return result
182
+ },
183
+
184
+ encodeWAV (samples, sampleRate) {
185
+ const buffer = new ArrayBuffer(44 + samples.length * 2)
186
+ const view = new DataView(buffer)
187
+
188
+ const writeString = (view, offset, string) => {
189
+ for (let i = 0; i < string.length; i++) {
190
+ view.setUint8(offset + i, string.charCodeAt(i))
191
+ }
192
+ }
193
+
194
+ writeString(view, 0, 'RIFF')
195
+ view.setUint32(4, 36 + samples.length * 2, true)
196
+ writeString(view, 8, 'WAVE')
197
+
198
+ writeString(view, 12, 'fmt ')
199
+ view.setUint32(16, 16, true)
200
+ view.setUint16(20, 1, true)
201
+ view.setUint16(22, 1, true)
202
+ view.setUint32(24, sampleRate, true)
203
+ view.setUint32(28, sampleRate * 2, true)
204
+ view.setUint16(32, 2, true)
205
+ view.setUint16(34, 16, true)
206
+
207
+ writeString(view, 36, 'data')
208
+ view.setUint32(40, samples.length * 2, true)
209
+
210
+ let offset = 44
211
+ for (let i = 0; i < samples.length; i++) {
212
+ const s = Math.max(-1, Math.min(1, samples[i]))
213
+ view.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true)
214
+ offset += 2
215
+ }
216
+
217
+ return new Blob([buffer], { type: 'audio/wav' })
218
+ },
219
+
220
+ resample (data, inputSampleRate, outputSampleRate) {
221
+ if (inputSampleRate === outputSampleRate) {
222
+ return data
223
+ }
224
+ const sampleRateRatio = inputSampleRate / outputSampleRate
225
+ const newLength = Math.round(data.length / sampleRateRatio)
226
+ const resampledData = new Float32Array(newLength)
227
+ for (let i = 0; i < newLength; i++) {
228
+ const index = Math.round(i * sampleRateRatio)
229
+ resampledData[i] = data[index]
230
+ }
231
+ return resampledData
232
+ },
233
+
234
+ convertTo16BitPCM (data) {
235
+ const output = new Int16Array(data.length)
236
+ for (let i = 0; i < data.length; i++) {
237
+ output[i] = Math.max(-1, Math.min(1, data[i])) * 0x7fff
238
+ }
239
+ return new Uint8Array(output.buffer)
240
+ },
241
+
242
+ async getRecordingData () {
243
+ return new Promise((resolve) => {
244
+ this.resolvePromise = resolve
245
+
246
+ if (!this.ws) {
247
+ // 如果 WebSocket 未初始化,直接拒绝
248
+ console.log('错误结束')
249
+ resolve(this.inputData)
250
+ }
251
+ })
252
+ },
253
+
254
+ resRecordingData () {
255
+ }
256
+ }
257
+ }
258
+ }
@@ -1,23 +1,23 @@
1
- import GetLoginInfoService from '@vue2-client/base-client/plugins/GetLoginInfoService'
2
- import GetAppDataService from '@vue2-client/base-client/plugins/AppData'
3
- import getConfig from '@vue2-client/base-client/plugins/Config'
4
- import moment from '@vue2-client/base-client/plugins/moment'
5
- import recording from '@vue2-client/base-client/plugins/Recording'
6
-
7
- import VueI18nPlugin from './i18n-extend'
8
- import AuthorityPlugin from './authority-plugin'
9
- import TabsPagePlugin from './tabs-page-plugin'
10
-
11
- const Plugins = {
12
- install: function (Vue) {
13
- Vue.use(GetLoginInfoService)
14
- Vue.use(GetAppDataService)
15
- Vue.use(getConfig)
16
- Vue.use(moment)
17
- Vue.use(VueI18nPlugin)
18
- Vue.use(AuthorityPlugin)
19
- Vue.use(TabsPagePlugin)
20
- Vue.use(recording)
21
- }
22
- }
23
- export default Plugins
1
+ import GetLoginInfoService from '@vue2-client/base-client/plugins/GetLoginInfoService'
2
+ import GetAppDataService from '@vue2-client/base-client/plugins/AppData'
3
+ import getConfig from '@vue2-client/base-client/plugins/Config'
4
+ import moment from '@vue2-client/base-client/plugins/moment'
5
+ import recording from '@vue2-client/base-client/plugins/Recording'
6
+
7
+ import VueI18nPlugin from './i18n-extend'
8
+ import AuthorityPlugin from './authority-plugin'
9
+ import TabsPagePlugin from './tabs-page-plugin'
10
+
11
+ const Plugins = {
12
+ install: function (Vue) {
13
+ Vue.use(GetLoginInfoService)
14
+ Vue.use(GetAppDataService)
15
+ Vue.use(getConfig)
16
+ Vue.use(moment)
17
+ Vue.use(VueI18nPlugin)
18
+ Vue.use(AuthorityPlugin)
19
+ Vue.use(TabsPagePlugin)
20
+ Vue.use(recording)
21
+ }
22
+ }
23
+ export default Plugins
@@ -1,39 +1,39 @@
1
- const TabsPagePlugin = {
2
- install (Vue) {
3
- Vue.mixin({
4
- methods: {
5
- $closePage (closeRoute, nextRoute) {
6
- const event = new CustomEvent('page:close', { detail: { closeRoute, nextRoute } })
7
- window.dispatchEvent(event)
8
- },
9
- $refreshPage (route) {
10
- const path = typeof route === 'object' ? route.path : route
11
- const event = new CustomEvent('page:refresh', { detail: { pageKey: path } })
12
- window.dispatchEvent(event)
13
- },
14
- $openPage (route, title) {
15
- this.$setPageTitle(route, title)
16
- this.$router.push(route)
17
- },
18
- $setPageTitle (route, title) {
19
- if (title) {
20
- // let path = typeof route === 'object' ? route.path : route
21
- // path = path && path.split('?')[0]
22
- const path = typeof route === 'object' ? this.$router.resolve(route).route.fullPath : route
23
- this.$store.commit('setting/setCustomTitle', { path, title })
24
- }
25
- }
26
- },
27
- computed: {
28
- customTitle () {
29
- const customTitles = this.$store.state.setting.customTitles
30
- // const path = this.$route.path.split('?')[0]
31
- const custom = customTitles.find(item => item.path === this.$route.fullPath)
32
- return custom && custom.title
33
- }
34
- }
35
- })
36
- }
37
- }
38
-
39
- export default TabsPagePlugin
1
+ const TabsPagePlugin = {
2
+ install (Vue) {
3
+ Vue.mixin({
4
+ methods: {
5
+ $closePage (closeRoute, nextRoute) {
6
+ const event = new CustomEvent('page:close', { detail: { closeRoute, nextRoute } })
7
+ window.dispatchEvent(event)
8
+ },
9
+ $refreshPage (route) {
10
+ const path = typeof route === 'object' ? route.path : route
11
+ const event = new CustomEvent('page:refresh', { detail: { pageKey: path } })
12
+ window.dispatchEvent(event)
13
+ },
14
+ $openPage (route, title) {
15
+ this.$setPageTitle(route, title)
16
+ this.$router.push(route)
17
+ },
18
+ $setPageTitle (route, title) {
19
+ if (title) {
20
+ // let path = typeof route === 'object' ? route.path : route
21
+ // path = path && path.split('?')[0]
22
+ const path = typeof route === 'object' ? this.$router.resolve(route).route.fullPath : route
23
+ this.$store.commit('setting/setCustomTitle', { path, title })
24
+ }
25
+ }
26
+ },
27
+ computed: {
28
+ customTitle () {
29
+ const customTitles = this.$store.state.setting.customTitles
30
+ // const path = this.$route.path.split('?')[0]
31
+ const custom = customTitles.find(item => item.path === this.$route.fullPath)
32
+ return custom && custom.title
33
+ }
34
+ }
35
+ })
36
+ }
37
+ }
38
+
39
+ export default TabsPagePlugin