vue2-client 1.16.63 → 1.16.64

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 (336) hide show
  1. package/.claude/settings.local.json +20 -20
  2. package/.cursorrules +19 -19
  3. package/.env.apply +19 -19
  4. package/.env.gaslink +19 -19
  5. package/.env.his +19 -19
  6. package/.env.liuli +20 -20
  7. package/.env.scada +19 -19
  8. package/.eslintrc.js +90 -90
  9. package/CHANGELOG.md +824 -824
  10. package/CLAUDE.md +97 -97
  11. package/Components.md +60 -60
  12. package/docs/LowCode/lowcode.md +155 -155
  13. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  14. package/docs/index.md +30 -30
  15. package/index.js +31 -31
  16. package/jest-transform-stub.js +8 -8
  17. package/jest.setup.js +7 -7
  18. package/jsconfig.json +19 -19
  19. package/package.json +2 -2
  20. package/public/his/editor/editor.html +51 -51
  21. package/public/his/editor/mock/bind_data.html +779 -779
  22. package/public/his/editor/mock/data_table.html +40 -40
  23. package/public/his/editor/mock/sign.html +75 -75
  24. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  25. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  26. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  27. package/public/his/editor/vender/date97/calendar.js +4 -4
  28. package/public/his/editor/vender/date97/lang/en.js +13 -13
  29. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  30. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  31. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  32. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  33. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  34. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  35. package/public/his/editor/vender/diff.js +1627 -1627
  36. package/public/his/editor/vender/editor.js +1 -1
  37. package/public/his/editor/vender/fabric.js +31187 -31187
  38. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  39. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  40. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  41. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  42. package/public/his/editor/vender/mui/mui.min.css +4 -4
  43. package/public/his/editor/vender/mui/mui.min.js +5 -5
  44. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  45. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  46. package/public/his/editor/vender/qrcode.js +7 -7
  47. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  48. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  49. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  50. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  51. package/public/his/editor/vender/validator.js +5094 -5094
  52. package/public/his/editor/vender/weui/weui.css +5659 -5659
  53. package/public/his/editor/vender/weui/weui.min.css +4 -4
  54. package/public/his/editor/vender/weui/weui.min.js +11 -11
  55. package/src/assets/img/paymentMethod/icon1.png +0 -0
  56. package/src/assets/img/paymentMethod/icon2.png +0 -0
  57. package/src/assets/img/paymentMethod/icon3.png +0 -0
  58. package/src/assets/img/paymentMethod/icon4.png +0 -0
  59. package/src/assets/img/paymentMethod/icon5.png +0 -0
  60. package/src/assets/img/paymentMethod/icon6.png +0 -0
  61. package/src/assets/img/querySlotDemo.svg +15 -15
  62. package/src/assets/svg/badtwo.svg +1 -1
  63. package/src/assets/svg/goodtwo.svg +1 -1
  64. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  65. package/src/base-client/components/AI/demo.vue +31 -31
  66. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  67. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  68. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  69. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  70. package/src/base-client/components/common/CitySelect/index.js +3 -3
  71. package/src/base-client/components/common/CitySelect/index.md +109 -109
  72. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  73. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  74. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  75. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  76. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  77. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  78. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  79. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  80. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  81. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  82. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  83. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  84. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  85. package/src/base-client/components/common/HIS/demo.vue +61 -61
  86. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  87. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  88. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  89. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  90. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  91. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  92. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  93. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  94. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  95. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  96. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  97. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  98. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  99. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  100. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  101. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  102. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  103. package/src/base-client/components/common/Recording/index.js +3 -3
  104. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  105. package/src/base-client/components/common/Tree/index.js +2 -2
  106. package/src/base-client/components/common/Upload/Upload.vue +334 -334
  107. package/src/base-client/components/common/Upload/index.js +3 -3
  108. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  109. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  110. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  111. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  112. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  113. package/src/base-client/components/common/XAddReport/index.js +3 -3
  114. package/src/base-client/components/common/XAddReport/index.md +56 -56
  115. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  116. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  117. package/src/base-client/components/common/XButtons/index.js +3 -3
  118. package/src/base-client/components/common/XButtons/index.md +61 -61
  119. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  120. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  121. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  122. package/src/base-client/components/common/XCollapse/XCollapse.vue +34 -20
  123. package/src/base-client/components/common/XDataCard/index.js +3 -3
  124. package/src/base-client/components/common/XDataCard/index.md +1 -1
  125. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  126. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  127. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  128. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  129. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  130. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  131. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  132. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  133. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  134. package/src/base-client/components/common/XForm/index.md +178 -178
  135. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  136. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  137. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  138. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  139. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  140. package/src/base-client/components/common/XFormTable/index.md +92 -92
  141. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  142. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  143. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  144. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  145. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  146. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  147. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  148. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  149. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  150. package/src/base-client/components/common/XPrint/index.vue +97 -97
  151. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  152. package/src/base-client/components/common/XReport/XReportHospitalizationDemo.vue +45 -0
  153. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  154. package/src/base-client/components/common/XReport/index.js +3 -3
  155. package/src/base-client/components/common/XReport/print.js +186 -186
  156. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  157. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  158. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  159. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  160. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  161. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  162. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  163. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  164. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  165. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  166. package/src/base-client/components/common/XStepView/index.js +3 -3
  167. package/src/base-client/components/common/XStepView/index.md +31 -31
  168. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  169. package/src/base-client/components/common/XTab/index.js +3 -3
  170. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  171. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  172. package/src/base-client/components/common/XTable/index.md +255 -255
  173. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  174. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  175. package/src/base-client/components/common/XTree/index.js +3 -3
  176. package/src/base-client/components/common/XTree/index.md +36 -36
  177. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  178. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  179. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  180. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  181. package/src/base-client/components/his/XCharge/XChargeDemo.vue +145 -145
  182. package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +357 -170
  183. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  184. package/src/base-client/components/his/XSidebar/XSidebar.vue +123 -27
  185. package/src/base-client/components/index.js +51 -51
  186. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  187. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  188. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  189. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  190. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  191. package/src/base-client/plugins/Config.js +19 -19
  192. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  193. package/src/base-client/plugins/Recording.js +258 -258
  194. package/src/base-client/plugins/index.js +23 -23
  195. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  196. package/src/components/Charts/Bar.vue +62 -62
  197. package/src/components/Charts/ChartCard.vue +134 -134
  198. package/src/components/Charts/Liquid.vue +67 -67
  199. package/src/components/Charts/MiniArea.vue +39 -39
  200. package/src/components/Charts/MiniBar.vue +39 -39
  201. package/src/components/Charts/MiniProgress.vue +75 -75
  202. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  203. package/src/components/Charts/Radar.vue +68 -68
  204. package/src/components/Charts/RankList.vue +77 -77
  205. package/src/components/Charts/TagCloud.vue +113 -113
  206. package/src/components/Charts/TransferBar.vue +64 -64
  207. package/src/components/Charts/Trend.vue +82 -82
  208. package/src/components/Charts/chart.less +12 -12
  209. package/src/components/Charts/smooth.area.less +13 -13
  210. package/src/components/CodeMirror/inedx.vue +118 -118
  211. package/src/components/CodeMirror/setting.js +40 -40
  212. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  213. package/src/components/NumberInfo/index.js +3 -3
  214. package/src/components/NumberInfo/index.less +54 -54
  215. package/src/components/NumberInfo/index.md +43 -43
  216. package/src/components/card/ChartCard.vue +79 -79
  217. package/src/components/chart/Bar.vue +60 -60
  218. package/src/components/chart/MiniArea.vue +67 -67
  219. package/src/components/chart/MiniBar.vue +59 -59
  220. package/src/components/chart/MiniProgress.vue +57 -57
  221. package/src/components/chart/Radar.vue +80 -80
  222. package/src/components/chart/RankingList.vue +60 -60
  223. package/src/components/chart/Trend.vue +79 -79
  224. package/src/components/chart/index.less +9 -9
  225. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  226. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  227. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  228. package/src/components/checkbox/index.js +9 -9
  229. package/src/components/exception/ExceptionPage.vue +70 -70
  230. package/src/components/g2Charts/constants.js +202 -202
  231. package/src/components/g2Charts/demo.vue +808 -808
  232. package/src/components/g2Charts/designer.vue +228 -228
  233. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  234. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  235. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  236. package/src/components/g2Charts/index.vue +397 -397
  237. package/src/components/index.js +36 -36
  238. package/src/components/input/IInput.vue +66 -66
  239. package/src/components/menu/SideMenu.vue +75 -75
  240. package/src/components/menu/menu.js +273 -273
  241. package/src/components/setting/Setting.vue +234 -234
  242. package/src/components/tool/AStepItem.vue +60 -60
  243. package/src/config/CreateQueryConfig.js +325 -325
  244. package/src/config/default/antd.config.js +89 -89
  245. package/src/config/default/setting.config.js +55 -55
  246. package/src/font-style/font.css +60 -60
  247. package/src/layouts/CommonLayout.vue +56 -56
  248. package/src/layouts/PageLayout.vue +151 -151
  249. package/src/layouts/SinglePageView.vue +136 -136
  250. package/src/layouts/header/AdminHeader.vue +132 -132
  251. package/src/layouts/header/HeaderNotice.vue +177 -177
  252. package/src/layouts/header/InstitutionDetail.vue +181 -181
  253. package/src/layouts/tabs/TabsHead.vue +189 -189
  254. package/src/lib.js +1 -1
  255. package/src/mock/extend/index.js +84 -84
  256. package/src/mock/goods/index.js +108 -108
  257. package/src/pages/DefaultExample/index.vue +77 -77
  258. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  259. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  260. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  261. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  262. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  263. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  264. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  265. package/src/pages/DynamicStatistics/index.vue +282 -282
  266. package/src/pages/Example/childIndex.vue +15 -15
  267. package/src/pages/Example/index.vue +30 -30
  268. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  269. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  270. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  271. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  272. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  273. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  274. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  275. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  276. package/src/pages/Recording/index.vue +77 -77
  277. package/src/pages/ServiceReview/index.vue +284 -284
  278. package/src/pages/SubExample/index.vue +26 -26
  279. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  280. package/src/pages/XReportView/index.vue +64 -64
  281. package/src/pages/XTreeOneProExample/index.vue +67 -67
  282. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  283. package/src/pages/login/Login.vue +379 -379
  284. package/src/pages/login/LoginV3.vue +389 -389
  285. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  286. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  287. package/src/pages/report/ReportTable.js +124 -124
  288. package/src/pages/resourceManage/orgListManage.vue +98 -98
  289. package/src/pages/system/dictionary/index.vue +44 -44
  290. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  291. package/src/pages/system/monitor/operLog/index.vue +37 -37
  292. package/src/pages/system/settings/modifyPassword.vue +117 -117
  293. package/src/pages/system/ticket/index.vue +480 -480
  294. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  295. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  296. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  297. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  298. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  299. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  300. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  301. package/src/plugins/EventLogPlugin.js +33 -33
  302. package/src/plugins/FindParentsData.js +17 -17
  303. package/src/router/async/config.async.js +35 -35
  304. package/src/router/async/router.map.js +2 -2
  305. package/src/router/index.js +27 -27
  306. package/src/services/DataModel.js +30 -30
  307. package/src/services/LodopFuncs.js +137 -137
  308. package/src/services/api/TicketDetailsViewApi.js +46 -46
  309. package/src/services/api/cas.js +79 -79
  310. package/src/services/api/entity.js +18 -18
  311. package/src/services/api/index.js +17 -17
  312. package/src/store/modules/account.js +115 -115
  313. package/src/store/modules/index.js +5 -5
  314. package/src/store/modules/lowCode.js +33 -33
  315. package/src/store/modules/setting.js +119 -119
  316. package/src/theme/default/style.less +58 -58
  317. package/src/utils/authority-utils.js +85 -85
  318. package/src/utils/errorCode.js +6 -6
  319. package/src/utils/formatter.js +74 -74
  320. package/src/utils/htmlToPDF.js +108 -108
  321. package/src/utils/htmlToPDFApi.js +5 -5
  322. package/src/utils/login.js +188 -188
  323. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  324. package/src/utils/lowcode/lowcodeLog.js +29 -29
  325. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  326. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  327. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  328. package/src/utils/map-utils.js +47 -47
  329. package/src/utils/reg.js +95 -95
  330. package/src/utils/runEvalFunction.js +14 -14
  331. package/src/utils/theme-color-replacer-extend.js +92 -92
  332. package/src/utils/util.js +329 -329
  333. package/src/utils/waterMark.js +31 -31
  334. package/src-base-client/components/his/XCharge/README.md +0 -0
  335. package/src-base-client/components/his/XCharge/XCharge.vue +0 -0
  336. 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