vue2-client 1.16.67 → 1.16.69

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 (343) 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 +112 -112
  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/querySlotDemo.svg +15 -15
  56. package/src/assets/svg/badtwo.svg +1 -1
  57. package/src/assets/svg/female.svg +1 -1
  58. package/src/assets/svg/goodtwo.svg +1 -1
  59. package/src/assets/svg/male.svg +1 -1
  60. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  61. package/src/base-client/components/AI/demo.vue +31 -31
  62. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  63. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  64. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  65. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  66. package/src/base-client/components/common/CitySelect/index.js +3 -3
  67. package/src/base-client/components/common/CitySelect/index.md +109 -109
  68. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  69. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  70. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  71. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  72. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  73. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  74. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  75. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  76. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  77. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  78. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  79. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  80. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  81. package/src/base-client/components/common/HIS/HFormGroup/index.js +3 -3
  82. package/src/base-client/components/common/HIS/HFormTable/HFormTable.vue +379 -379
  83. package/src/base-client/components/common/HIS/HTab/HTab.vue +413 -410
  84. package/src/base-client/components/common/HIS/demo.vue +61 -61
  85. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  86. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  87. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  88. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  89. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  90. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  91. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  92. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  93. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  94. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  95. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  96. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  97. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  98. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  99. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  100. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  101. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  102. package/src/base-client/components/common/Recording/index.js +3 -3
  103. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  104. package/src/base-client/components/common/Tree/index.js +2 -2
  105. package/src/base-client/components/common/Upload/Upload.vue +334 -334
  106. package/src/base-client/components/common/Upload/index.js +3 -3
  107. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  108. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  109. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  110. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  111. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  112. package/src/base-client/components/common/XAddReport/index.js +3 -3
  113. package/src/base-client/components/common/XAddReport/index.md +56 -56
  114. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  115. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  116. package/src/base-client/components/common/XButtons/index.js +3 -3
  117. package/src/base-client/components/common/XButtons/index.md +61 -61
  118. package/src/base-client/components/common/XCalendar/XCalendar.vue +399 -369
  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 +833 -722
  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/XInput/XInput.vue +170 -147
  142. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  143. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  144. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  145. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  146. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  147. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  148. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  149. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  150. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  151. package/src/base-client/components/common/XPrint/index.vue +97 -97
  152. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  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/XReportTrGroup.vue +19 -8
  158. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  159. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  160. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  161. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  162. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  163. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  164. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  165. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  166. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  167. package/src/base-client/components/common/XStepView/index.js +3 -3
  168. package/src/base-client/components/common/XStepView/index.md +31 -31
  169. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  170. package/src/base-client/components/common/XTab/index.js +3 -3
  171. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  172. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  173. package/src/base-client/components/common/XTable/XTable.vue +1610 -1610
  174. package/src/base-client/components/common/XTable/index.md +255 -255
  175. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  176. package/src/base-client/components/common/XTimeline/XTimeline.vue +454 -454
  177. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  178. package/src/base-client/components/common/XTree/index.js +3 -3
  179. package/src/base-client/components/common/XTree/index.md +36 -36
  180. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  181. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  182. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  183. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  184. package/src/base-client/components/his/XCharge/XChargeDemo.vue +145 -145
  185. package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +919 -919
  186. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +705 -705
  187. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  188. package/src/base-client/components/his/XList/XList.vue +829 -829
  189. package/src/base-client/components/his/XRadio/XRadio.vue +305 -150
  190. package/src/base-client/components/his/XSimpleTable/XSimpleTable.vue +159 -119
  191. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +341 -307
  192. package/src/base-client/components/his/threeTestOrders/editor.vue +113 -113
  193. package/src/base-client/components/index.js +51 -51
  194. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  195. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  196. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  197. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  198. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  199. package/src/base-client/plugins/Config.js +19 -19
  200. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  201. package/src/base-client/plugins/Recording.js +258 -258
  202. package/src/base-client/plugins/index.js +23 -23
  203. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  204. package/src/components/Charts/Bar.vue +62 -62
  205. package/src/components/Charts/ChartCard.vue +134 -134
  206. package/src/components/Charts/Liquid.vue +67 -67
  207. package/src/components/Charts/MiniArea.vue +39 -39
  208. package/src/components/Charts/MiniBar.vue +39 -39
  209. package/src/components/Charts/MiniProgress.vue +75 -75
  210. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  211. package/src/components/Charts/Radar.vue +68 -68
  212. package/src/components/Charts/RankList.vue +77 -77
  213. package/src/components/Charts/TagCloud.vue +113 -113
  214. package/src/components/Charts/TransferBar.vue +64 -64
  215. package/src/components/Charts/Trend.vue +82 -82
  216. package/src/components/Charts/chart.less +12 -12
  217. package/src/components/Charts/smooth.area.less +13 -13
  218. package/src/components/CodeMirror/inedx.vue +118 -118
  219. package/src/components/CodeMirror/setting.js +40 -40
  220. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  221. package/src/components/NumberInfo/index.js +3 -3
  222. package/src/components/NumberInfo/index.less +54 -54
  223. package/src/components/NumberInfo/index.md +43 -43
  224. package/src/components/card/ChartCard.vue +79 -79
  225. package/src/components/chart/Bar.vue +60 -60
  226. package/src/components/chart/MiniArea.vue +67 -67
  227. package/src/components/chart/MiniBar.vue +59 -59
  228. package/src/components/chart/MiniProgress.vue +57 -57
  229. package/src/components/chart/Radar.vue +80 -80
  230. package/src/components/chart/RankingList.vue +60 -60
  231. package/src/components/chart/Trend.vue +79 -79
  232. package/src/components/chart/index.less +9 -9
  233. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  234. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  235. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  236. package/src/components/checkbox/index.js +9 -9
  237. package/src/components/exception/ExceptionPage.vue +70 -70
  238. package/src/components/g2Charts/constants.js +202 -202
  239. package/src/components/g2Charts/demo.vue +808 -808
  240. package/src/components/g2Charts/designer.vue +228 -228
  241. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  242. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  243. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  244. package/src/components/g2Charts/index.vue +397 -397
  245. package/src/components/index.js +36 -36
  246. package/src/components/input/IInput.vue +66 -66
  247. package/src/components/menu/SideMenu.vue +75 -75
  248. package/src/components/menu/menu.js +273 -273
  249. package/src/components/setting/Setting.vue +234 -234
  250. package/src/components/tool/AStepItem.vue +60 -60
  251. package/src/config/CreateQueryConfig.js +325 -325
  252. package/src/config/default/antd.config.js +89 -89
  253. package/src/config/default/setting.config.js +55 -55
  254. package/src/font-style/font.css +60 -60
  255. package/src/layouts/CommonLayout.vue +56 -56
  256. package/src/layouts/PageLayout.vue +151 -151
  257. package/src/layouts/SinglePageView.vue +136 -136
  258. package/src/layouts/header/AdminHeader.vue +132 -132
  259. package/src/layouts/header/HeaderNotice.vue +177 -177
  260. package/src/layouts/header/InstitutionDetail.vue +181 -181
  261. package/src/layouts/tabs/TabsHead.vue +189 -189
  262. package/src/lib.js +1 -1
  263. package/src/mock/extend/index.js +84 -84
  264. package/src/mock/goods/index.js +108 -108
  265. package/src/pages/DefaultExample/index.vue +77 -77
  266. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  267. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  268. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  269. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  270. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  271. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  272. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  273. package/src/pages/DynamicStatistics/index.vue +282 -282
  274. package/src/pages/Example/childIndex.vue +15 -15
  275. package/src/pages/Example/index.vue +30 -30
  276. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  277. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  278. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  279. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  280. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  281. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  282. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  283. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  284. package/src/pages/Recording/index.vue +77 -77
  285. package/src/pages/ServiceReview/index.vue +284 -284
  286. package/src/pages/SubExample/index.vue +26 -26
  287. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  288. package/src/pages/XReportView/index.vue +64 -64
  289. package/src/pages/XTreeOneProExample/index.vue +67 -67
  290. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  291. package/src/pages/login/Login.vue +379 -379
  292. package/src/pages/login/LoginV3.vue +389 -389
  293. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  294. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  295. package/src/pages/report/ReportTable.js +124 -124
  296. package/src/pages/resourceManage/orgListManage.vue +98 -98
  297. package/src/pages/system/dictionary/index.vue +44 -44
  298. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  299. package/src/pages/system/monitor/operLog/index.vue +37 -37
  300. package/src/pages/system/settings/modifyPassword.vue +117 -117
  301. package/src/pages/system/ticket/index.vue +480 -480
  302. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  303. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  304. package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
  305. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  306. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  307. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  308. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  309. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  310. package/src/plugins/EventLogPlugin.js +33 -33
  311. package/src/plugins/FindParentsData.js +17 -17
  312. package/src/router/async/config.async.js +35 -35
  313. package/src/router/index.js +27 -27
  314. package/src/services/DataModel.js +30 -30
  315. package/src/services/LodopFuncs.js +137 -137
  316. package/src/services/api/TicketDetailsViewApi.js +46 -46
  317. package/src/services/api/cas.js +79 -79
  318. package/src/services/api/entity.js +18 -18
  319. package/src/services/api/index.js +17 -17
  320. package/src/store/modules/account.js +115 -115
  321. package/src/store/modules/index.js +5 -5
  322. package/src/store/modules/lowCode.js +33 -33
  323. package/src/store/modules/setting.js +119 -119
  324. package/src/theme/default/style.less +58 -58
  325. package/src/utils/authority-utils.js +85 -85
  326. package/src/utils/errorCode.js +6 -6
  327. package/src/utils/formatter.js +74 -74
  328. package/src/utils/htmlToPDF.js +108 -108
  329. package/src/utils/htmlToPDFApi.js +5 -5
  330. package/src/utils/login.js +188 -188
  331. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  332. package/src/utils/lowcode/lowcodeLog.js +29 -29
  333. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  334. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  335. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  336. package/src/utils/map-utils.js +47 -47
  337. package/src/utils/reg.js +95 -95
  338. package/src/utils/runEvalFunction.js +14 -14
  339. package/src/utils/theme-color-replacer-extend.js +92 -92
  340. package/src/utils/util.js +329 -329
  341. package/src/utils/waterMark.js +31 -31
  342. package/src-base-client/components/common/XCollapse/XCollapse.vue +0 -0
  343. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,410 +1,413 @@
1
- <script setup>
2
- import XTab from '@vue2-client/base-client/components/common/XTab/XTab.vue'
3
- import { ref, computed, useAttrs, useSlots, watch, onMounted } from 'vue'
4
- import { getConfigByName } from '@vue2-client/services/api/common'
5
-
6
- const props = defineProps({
7
- // 标签栏右侧附加区域的配置名(可选)。提供时将自动加载配置并渲染到 tabBar 右侧。
8
- tabBarExtraConfig: {
9
- type: String,
10
- default: undefined
11
- },
12
- // 控制标签间距,覆盖内部 XTab 的默认 10px;默认置 0 清除外边距
13
- tabBarGutter: {
14
- type: Number,
15
- default: 0
16
- }
17
- })
18
-
19
- // 兼容多种样式配置
20
- const attrs = useAttrs()
21
- const wrapperClassObject = computed(() => {
22
- const a = attrs
23
- const classes = {}
24
-
25
- // 通用布尔样式开关(以存在/空字符串/'true' 为真)
26
- const booleanStyleKeys = [
27
- 'hasTopMargin', 'useStyle7', 'useCycle', 'useStyle8'
28
- ]
29
- for (const key of booleanStyleKeys) {
30
- const val = a[key]
31
- const truthy = val === true || val === '' || val === 'true'
32
- if (truthy) classes[`h-tab-${key}`] = true
33
- }
34
- return classes
35
- })
36
-
37
- // 创建对XTab组件的引用
38
- const xTabRef = ref()
39
-
40
- // 获取插槽(避免模板中直接使用 $slots 触发类型检查错误)
41
- const slots = useSlots()
42
- const slotNames = computed(() => {
43
- try {
44
- return Object.keys(slots || {})
45
- } catch (e) {
46
- return []
47
- }
48
- })
49
-
50
- // 右侧附加区域的动态配置
51
- const extraConfig = ref(null)
52
- const extraItems = computed(() => {
53
- const cfg = extraConfig.value
54
- return cfg && cfg.value ? cfg.value : []
55
- })
56
-
57
- // 本地异步组件映射(未全局注册时生效)
58
- const localMap = {
59
- 'x-input': () => import('@vue2-client/base-client/components/common/XInput/XInput.vue'),
60
- 'x-select': () => import('@vue2-client/base-client/components/his/XSelect/XSelect.vue'),
61
- 'x-radio': () => import('@vue2-client/base-client/components/his/XRadio/XRadio.vue'),
62
- 'x-buttons': () => import('@vue2-client/base-client/components/common/XButtons/XButtons.vue'),
63
- 'h-buttons': () => import('@vue2-client/base-client/components/common/HIS/HButtons/HButtons.vue')
64
- }
65
-
66
- // 从 attrs 中读取 serverName 与 env(保持向后兼容)
67
- const serverName = computed(() => (attrs && attrs.serverName))
68
- const env = computed(() => (attrs && attrs.env) || 'prod')
69
-
70
- const loadExtraConfig = (configName) => {
71
- if (!configName) {
72
- extraConfig.value = null
73
- return
74
- }
75
- getConfigByName(configName, serverName.value, (res) => {
76
- extraConfig.value = res
77
- }, env.value === 'dev')
78
- }
79
-
80
- onMounted(() => loadExtraConfig(props.tabBarExtraConfig))
81
- watch(() => props.tabBarExtraConfig, loadExtraConfig)
82
-
83
- // 暴露方法给父组件使用
84
- defineExpose({
85
- // 为了兼容性,保留getXTabInstance方法
86
- getXTabInstance: () => xTabRef.value,
87
- })
88
- </script>
89
-
90
- <template>
91
- <div
92
- class="h-tab-wrapper"
93
- :class="[wrapperClassObject, extraItems.length > 1 ? 'h-tab-extra-wrapper-multiple' : '']">
94
- <x-tab
95
- ref="xTabRef"
96
- :tabBarGutter="props.tabBarGutter"
97
- v-bind="$attrs"
98
- v-on="$listeners"
99
- >
100
- <template v-if="extraItems.length" #tabBarExtraContent>
101
- <!-- 父级可接管渲染;未提供则按配置兜底渲染 -->
102
- <slot name="tabBarExtraContent" :config="extraConfig" :items="extraItems">
103
- <div class="h-tab-extra-wrapper">
104
- <component
105
- v-for="(item, idx) in extraItems"
106
- :is="localMap[item.slotType] || item.slotType"
107
- :key="idx"
108
- :ref="item.slotRef || `extra_${idx}`"
109
- :serviceName="item.serviceName || serverName"
110
- :serverName="item.serviceName || serverName"
111
- :queryParamsName="item.slotConfig"
112
- :env="env"
113
- v-on="$listeners"
114
- v-bind="item.attrs"
115
- />
116
- </div>
117
- </slot>
118
- </template>
119
- <template v-for="name in slotNames" #[name]="slotData">
120
- <slot :name="name" v-bind="slotData" />
121
- </template>
122
- </x-tab>
123
- </div>
124
- </template>
125
-
126
- <style scoped lang="less">
127
- .h-tab-wrapper {
128
- // 基础样式
129
- :deep(.ant-tabs-tab-next) {
130
- display: none;
131
- }
132
-
133
- :deep(.ant-tabs-nav) {
134
- // 去除导航容器默认左右内边距,避免收缩时左侧多出一截
135
- .ant-tabs-nav-container,
136
- .ant-tabs-nav-scroll {
137
- margin-left: 0 !important;
138
- margin-right: 0 !important;
139
- }
140
-
141
- // 移除左右切换箭头带来的占位
142
- .ant-tabs-tab-prev,
143
- .ant-tabs-tab-next {
144
- display: none !important;
145
- width: 0 !important;
146
- }
147
-
148
- .ant-tabs-tab-next-icon {
149
- display: none;
150
- }
151
-
152
- .ant-tabs-tab {
153
- background-color: transparent;
154
- border-radius: 6px 6px 0 0;
155
- color: #313131;
156
- font-weight: bold;
157
- width: 134px;
158
- font-size: 18px;
159
- line-height: 10px;
160
- font-family: "Source Han Sans";
161
- transition: all 0.3s;
162
- height: 32px;
163
- text-align: center;
164
- }
165
-
166
- .ant-tabs-tab-active {
167
- background-color: #0057FE;
168
- color: #ffffff;
169
- width: 134px;
170
- line-height: 10px;
171
- height: 32px;
172
- text-align: center;
173
- }
174
- }
175
-
176
- :deep(.ant-tabs-bar) {
177
- border-bottom: 2px solid #0057FE;
178
- margin: 20px 0px 0 0px;
179
- }
180
-
181
- // 滚动状态下的容器左右内边距清零,避免左侧多出一截
182
- :deep(.ant-tabs-nav-container-scrolling) {
183
- padding-left: 0 !important;
184
- padding-right: 0 !important;
185
- }
186
-
187
- :deep(.ant-tabs-tab-arrow-show) {
188
- display: none;
189
- }
190
-
191
- :deep(.ant-tabs-ink-bar) {
192
- background-color: transparent;
193
- bottom: -1px;
194
- display: none;
195
- height: 0;
196
- }
197
-
198
- :deep(.ant-tabs-tab-prev-icon-target) {
199
- display: none;
200
- }
201
-
202
- // 带顶部边距的样式
203
- &.h-tab-hasTopMargin {
204
- :deep(.ant-tabs-nav) {
205
- margin-top: 6px;
206
- }
207
-
208
- :deep(.ant-tabs-bar) {
209
- margin: 0 6px;
210
- }
211
-
212
- :deep(.ant-card-body) {
213
- padding: 6px 0;
214
-
215
- .ant-card-body {
216
- padding: 6px;
217
- }
218
- }
219
- }
220
-
221
- // 通用样式7:细下划线、透明背景、可配置宽度
222
- &.h-tab-useStyle7 {
223
- :deep(.ant-tabs-tab-next),
224
- :deep(.ant-tabs-tab-prev-icon-target),
225
- :deep(.ant-tabs-tab-next-icon) { display: none; }
226
-
227
- :deep(.ant-tabs-bar) { border-bottom: 2px solid transparent; }
228
-
229
- :deep(.ant-tabs-ink-bar) {
230
- display: block;
231
- background-color: #0057FE;
232
- bottom: 1px;
233
- height: 2px;
234
- /* 宽度交给 antd 自身计算,避免固定值影响自适应 */
235
- margin-left: 0;
236
- }
237
-
238
- :deep(.ant-tabs-nav) {
239
- display: flex;
240
- flex-wrap: wrap;
241
- gap: 8px;
242
- .ant-tabs-tab {
243
- background-color: transparent;
244
- border-radius: 0;
245
- color: #333333;
246
- font-weight: 500;
247
- /* 自适应宽度,允许通过变量覆盖最小宽度 */
248
- min-width: var(--tab-min-width, 96px);
249
- width: auto;
250
- padding: 0 12px 10px 12px;
251
- font-size: 16px;
252
- line-height: 10px;
253
- font-family: "Source Han Sans";
254
- transition: all 0.3s;
255
- height: 40px;
256
- text-align: center;
257
- margin-right: 0 !important;
258
- }
259
- .ant-tabs-tab-active {
260
- background-color: transparent;
261
- color: #0057FE;
262
- font-weight: 600;
263
- width: auto;
264
- line-height: 10px;
265
- height: 40px;
266
- text-align: center;
267
- }
268
- }
269
-
270
- // 可选:标签左侧圆点
271
- &.h-tab-useCycle {
272
- :deep(.ant-tabs-tab) {
273
- position: relative;
274
- padding-left: 18px !important;
275
- margin-right: 20px !important;
276
- display: inline-flex !important; // 使用inline-flex保持水平布局
277
- align-items: center !important; // 确保内容垂直居中
278
- line-height: normal !important; // 重置line-height避免冲突
279
- vertical-align: top !important; // 确保垂直对齐
280
- justify-content: flex-start !important; // 确保内容左对齐
281
- }
282
- :deep(.ant-tabs-tab::before) {
283
- content: "" !important;
284
- position: absolute !important;
285
- left: 3px !important;
286
- top: calc(50% - 4px) !important;
287
- transform: translateY(-50%) !important;
288
- width: 12px !important;
289
- height: 12px !important;
290
- background: #0057FE !important;
291
- border-radius: 50% !important;
292
- display: block !important;
293
- z-index: 1 !important; // 确保圆点在最上层
294
- }
295
- :deep(.ant-tabs-nav) {
296
- display: flex !important;
297
- flex-direction: row !important; // 明确指定水平方向
298
- flex-wrap: nowrap !important;
299
- align-items: center !important; // 确保导航栏垂直居中
300
- }
301
- }
302
- }
303
- // 用户词条使用样式
304
- &.h-tab-useStyle8 {
305
- :deep(.ant-tabs-tab-next),
306
- :deep(.ant-tabs-tab-prev-icon-target),
307
- :deep(.ant-tabs-tab-next-icon) { display: none; }
308
-
309
- // Make the main Ant Design tabs container a flex column to arrange tab bar and content vertically
310
- :deep(.ant-tabs) {
311
- display: flex !important;
312
- flex-direction: column !important; // 确保选项卡栏在顶部,内容区域在下方
313
- height: auto !important; // 高度自适应
314
- }
315
-
316
- :deep(.ant-tabs-bar) {
317
- border-bottom: 1px solid #d9d9d9; // 底部边框
318
- border-right: none; // 移除右侧边框
319
- margin-right: 0 !important; // 移除重叠修复
320
- flex-shrink: 1 !important; // 允许收缩
321
- height: auto !important; // 高度自适应
322
- // Important: if the tabPosition is 'top', the default margin-bottom of ant-tabs-bar is 16px, need to remove it to make border connect well
323
- margin-bottom: 0px !important;
324
- }
325
-
326
- // Ensure tab content takes remaining space
327
- :deep(.ant-tabs-content) {
328
- flex: none !important; // 移除 flex: 1,允许内容区域自然流淌
329
- }
330
-
331
- // Apply flex properties directly to the div containing tabs within ant-tabs-nav
332
- :deep(.ant-tabs-nav) {
333
- .ant-tabs-nav-container,
334
- .ant-tabs-nav-wrap,
335
- .ant-tabs-nav-scroll,
336
- & > div:first-child { // Target the direct div child of ant-tabs-nav
337
- display: flex !important;
338
- flex-direction: row !important;
339
- flex-wrap: nowrap !important; // 确保不换行
340
- width: 100% !important; // 占据全部宽度
341
- height: auto !important;
342
- }
343
-
344
- // These properties are applied to ant-tabs-nav itself, not its direct div child.
345
- // Since the flex properties are moved to the inner div, ant-tabs-nav can be left as default or adjusted if needed.
346
- // For now, removing the redundant flex properties from ant-tabs-nav.
347
- height: auto !important; // 高度自适应内容
348
- width: 100% !important; // 确保容器占据全部宽度
349
-
350
- .ant-tabs-tab {
351
- flex: 1 !important; // 宽度等分布局
352
- margin-right: 0 !important;
353
- margin-bottom: 0 !important; // 移除底部间距
354
- border-top: 1px solid #d9d9d9;
355
- border-left: 1px solid #d9d9d9;
356
- border-bottom: 1px solid #d9d9d9; // 所有选项卡都有底部边框
357
- border-right: none; // 默认没有右边框
358
- &:last-child {
359
- border-right: 1px solid #d9d9d9; // 最后一个选项卡有右边框
360
- }
361
- border-radius: 0;
362
- background-color: #f5f5f5;
363
- color: #333333;
364
- font-weight: 500;
365
- font-size: 16px;
366
- height: 40px; // 固定高度
367
- width: auto !important; // 移除固定宽度,以便等分
368
- display: flex;
369
- justify-content: center;
370
- align-items: center;
371
- padding: 0;
372
- }
373
- .ant-tabs-tab-active {
374
- border-bottom: 1px solid transparent; // 激活时隐藏底部边框,与 ant-tabs-bar 的边框衔接
375
- background-color: #ffffff;
376
- color: #0057FE;
377
- font-weight: 600;
378
- }
379
- }
380
- :deep(.ant-tabs-ink-bar) {
381
- display: none; // 隐藏下划线
382
- }
383
- }
384
- &.h-tab-extra-wrapper-multiple {
385
- :deep(.h-tab-extra-wrapper){
386
- display: flex;
387
- justify-content: end;
388
- gap: 8px;
389
- }
390
- :deep(.x-radio-group){
391
- height: 32px;
392
- }
393
- :deep(.x-radio-item){
394
- height: 32px;
395
- display: flex;
396
- align-items: center;
397
- margin-bottom: 0px;
398
- }
399
- :deep(.ant-tabs-tab){
400
- height: 34px;
401
- }
402
- :deep(.ant-tabs-nav-container){
403
- padding-top: 2px;
404
- }
405
- :deep(.ant-tabs-extra-content){
406
- line-height: 0px !important;
407
- }
408
- }
409
- }
410
- </style>
1
+ <script setup>
2
+ import XTab from '@vue2-client/base-client/components/common/XTab/XTab.vue'
3
+ import { ref, computed, useAttrs, useSlots, watch, onMounted } from 'vue'
4
+ import { getConfigByName } from '@vue2-client/services/api/common'
5
+
6
+ const props = defineProps({
7
+ // 标签栏右侧附加区域的配置名(可选)。提供时将自动加载配置并渲染到 tabBar 右侧。
8
+ tabBarExtraConfig: {
9
+ type: String,
10
+ default: undefined
11
+ },
12
+ // 控制标签间距,覆盖内部 XTab 的默认 10px;默认置 0 清除外边距
13
+ tabBarGutter: {
14
+ type: Number,
15
+ default: 0
16
+ }
17
+ })
18
+
19
+ // 兼容多种样式配置
20
+ const attrs = useAttrs()
21
+ const wrapperClassObject = computed(() => {
22
+ const a = attrs
23
+ const classes = {}
24
+
25
+ // 通用布尔样式开关(以存在/空字符串/'true' 为真)
26
+ const booleanStyleKeys = [
27
+ 'hasTopMargin', 'useStyle7', 'useCycle', 'useStyle8'
28
+ ]
29
+ for (const key of booleanStyleKeys) {
30
+ const val = a[key]
31
+ const truthy = val === true || val === '' || val === 'true'
32
+ if (truthy) classes[`h-tab-${key}`] = true
33
+ }
34
+ return classes
35
+ })
36
+
37
+ // 创建对XTab组件的引用
38
+ const xTabRef = ref()
39
+
40
+ // 获取插槽(避免模板中直接使用 $slots 触发类型检查错误)
41
+ const slots = useSlots()
42
+ const slotNames = computed(() => {
43
+ try {
44
+ return Object.keys(slots || {})
45
+ } catch (e) {
46
+ return []
47
+ }
48
+ })
49
+
50
+ // 右侧附加区域的动态配置
51
+ const extraConfig = ref(null)
52
+ const extraItems = computed(() => {
53
+ const cfg = extraConfig.value
54
+ return cfg && cfg.value ? cfg.value : []
55
+ })
56
+
57
+ // 本地异步组件映射(未全局注册时生效)
58
+ const localMap = {
59
+ 'x-input': () => import('@vue2-client/base-client/components/common/XInput/XInput.vue'),
60
+ 'x-select': () => import('@vue2-client/base-client/components/his/XSelect/XSelect.vue'),
61
+ 'x-radio': () => import('@vue2-client/base-client/components/his/XRadio/XRadio.vue'),
62
+ 'x-buttons': () => import('@vue2-client/base-client/components/common/XButtons/XButtons.vue'),
63
+ 'h-buttons': () => import('@vue2-client/base-client/components/common/HIS/HButtons/HButtons.vue')
64
+ }
65
+
66
+ // 从 attrs 中读取 serverName 与 env(保持向后兼容)
67
+ const serverName = computed(() => (attrs && attrs.serverName))
68
+ const env = computed(() => (attrs && attrs.env) || 'prod')
69
+
70
+ const loadExtraConfig = (configName) => {
71
+ if (!configName) {
72
+ extraConfig.value = null
73
+ return
74
+ }
75
+ getConfigByName(configName, serverName.value, (res) => {
76
+ extraConfig.value = res
77
+ }, env.value === 'dev')
78
+ }
79
+
80
+ onMounted(() => loadExtraConfig(props.tabBarExtraConfig))
81
+ watch(() => props.tabBarExtraConfig, loadExtraConfig)
82
+
83
+ // 暴露方法给父组件使用
84
+ defineExpose({
85
+ // 为了兼容性,保留getXTabInstance方法
86
+ getXTabInstance: () => xTabRef.value,
87
+ })
88
+ </script>
89
+
90
+ <template>
91
+ <div
92
+ class="h-tab-wrapper"
93
+ :class="[wrapperClassObject, extraItems.length > 1 ? 'h-tab-extra-wrapper-multiple' : '']">
94
+ <x-tab
95
+ ref="xTabRef"
96
+ :tabBarGutter="props.tabBarGutter"
97
+ v-bind="$attrs"
98
+ v-on="$listeners"
99
+ >
100
+ <template v-if="extraItems.length" #tabBarExtraContent>
101
+ <!-- 父级可接管渲染;未提供则按配置兜底渲染 -->
102
+ <slot name="tabBarExtraContent" :config="extraConfig" :items="extraItems">
103
+ <div class="h-tab-extra-wrapper">
104
+ <component
105
+ v-for="(item, idx) in extraItems"
106
+ :is="localMap[item.slotType] || item.slotType"
107
+ :key="idx"
108
+ :ref="item.slotRef || `extra_${idx}`"
109
+ :serviceName="item.serviceName || serverName"
110
+ :serverName="item.serviceName || serverName"
111
+ :queryParamsName="item.slotConfig"
112
+ :env="env"
113
+ v-on="$listeners"
114
+ v-bind="item.attrs"
115
+ />
116
+ </div>
117
+ </slot>
118
+ </template>
119
+ <template v-for="name in slotNames" #[name]="slotData">
120
+ <slot :name="name" v-bind="slotData" />
121
+ </template>
122
+ </x-tab>
123
+ </div>
124
+ </template>
125
+
126
+ <style scoped lang="less">
127
+ .h-tab-wrapper {
128
+ // 基础样式
129
+ :deep(.ant-tabs-tab-next) {
130
+ display: none;
131
+ }
132
+
133
+ :deep(.ant-tabs-nav) {
134
+ // 去除导航容器默认左右内边距,避免收缩时左侧多出一截
135
+ .ant-tabs-nav-container,
136
+ .ant-tabs-nav-scroll {
137
+ margin-left: 0 !important;
138
+ margin-right: 0 !important;
139
+ }
140
+
141
+ // 移除左右切换箭头带来的占位
142
+ .ant-tabs-tab-prev,
143
+ .ant-tabs-tab-next {
144
+ display: none !important;
145
+ width: 0 !important;
146
+ }
147
+
148
+ .ant-tabs-tab-next-icon {
149
+ display: none;
150
+ }
151
+
152
+ .ant-tabs-tab {
153
+ background-color: transparent;
154
+ border-radius: 6px 6px 0 0;
155
+ color: #5D5C5C;
156
+ font-weight: bold;
157
+ width: 134px;
158
+ font-size: 18px;
159
+ line-height: 10px;
160
+ font-family: "Source Han Sans";
161
+ transition: all 0.3s;
162
+ height: 32px;
163
+ text-align: center;
164
+ }
165
+
166
+ .ant-tabs-tab-active {
167
+ background-color: #0057FE;
168
+ color: #ffffff;
169
+ width: 134px;
170
+ line-height: 10px;
171
+ height: 32px;
172
+ text-align: center;
173
+ }
174
+ }
175
+
176
+ :deep(.ant-tabs-bar) {
177
+ border-bottom: 2px solid #0057FE;
178
+ margin: 20px 10px 0 10px;
179
+ }
180
+
181
+ // 滚动状态下的容器左右内边距清零,避免左侧多出一截
182
+ :deep(.ant-tabs-nav-container-scrolling) {
183
+ padding-left: 0 !important;
184
+ padding-right: 0 !important;
185
+ }
186
+
187
+ :deep(.ant-tabs-tab-arrow-show) {
188
+ display: none;
189
+ }
190
+
191
+ :deep(.ant-tabs-ink-bar) {
192
+ background-color: transparent;
193
+ bottom: -1px;
194
+ display: none;
195
+ height: 0;
196
+ }
197
+
198
+ :deep(.ant-tabs-tab-prev-icon-target) {
199
+ display: none;
200
+ }
201
+
202
+ // 带顶部边距的样式
203
+ &.h-tab-hasTopMargin {
204
+ :deep(.ant-tabs-nav) {
205
+ margin-top: 6px;
206
+ }
207
+
208
+ :deep(.ant-tabs-bar) {
209
+ margin: 0 6px;
210
+ }
211
+
212
+ :deep(.ant-card-body) {
213
+ padding: 6px 0;
214
+
215
+ .ant-card-body {
216
+ padding: 6px;
217
+ }
218
+ }
219
+ }
220
+
221
+ // 通用样式7:细下划线、透明背景、可配置宽度
222
+ &.h-tab-useStyle7 {
223
+ :deep(.ant-tabs-tab-next),
224
+ :deep(.ant-tabs-tab-prev-icon-target),
225
+ :deep(.ant-tabs-tab-next-icon) { display: none; }
226
+
227
+ :deep(.ant-tabs-bar) { border-bottom: 2px solid transparent; }
228
+
229
+ :deep(.ant-tabs-ink-bar) {
230
+ display: block;
231
+ background-color: #0057FE;
232
+ bottom: 8px;
233
+ height: 2px;
234
+ /* 宽度交给 antd 自身计算,避免固定值影响自适应 */
235
+ margin-left: 0;
236
+ }
237
+
238
+ :deep(.ant-tabs-nav) {
239
+ display: flex;
240
+ flex-wrap: wrap;
241
+ gap: 8px;
242
+ .ant-tabs-tab {
243
+ background-color: transparent;
244
+ border-radius: 0;
245
+ color: #333333;
246
+ font-weight: 500;
247
+ /* 自适应宽度,允许通过变量覆盖最小宽度 */
248
+ min-width: var(--tab-min-width, 96px);
249
+ width: auto;
250
+ padding: 0 12px;
251
+ font-size: 16px;
252
+ line-height: 10px;
253
+ font-family: "Source Han Sans";
254
+ transition: all 0.3s;
255
+ height: 40px;
256
+ text-align: center;
257
+ margin-right: 0 !important;
258
+ }
259
+ .ant-tabs-tab-active {
260
+ background-color: transparent;
261
+ color: #0057FE;
262
+ font-weight: 600;
263
+ width: auto;
264
+ line-height: 10px;
265
+ height: 40px;
266
+ text-align: center;
267
+ }
268
+ }
269
+
270
+ // 可选:标签左侧圆点
271
+ &.h-tab-useCycle {
272
+ :deep(.ant-tabs-tab) {
273
+ position: relative;
274
+ padding-left: 18px !important;
275
+ margin-right: 20px !important;
276
+ display: inline-flex !important; // 使用inline-flex保持水平布局
277
+ align-items: center !important; // 确保内容垂直居中
278
+ line-height: normal !important; // 重置line-height避免冲突
279
+ vertical-align: top !important; // 确保垂直对齐
280
+ }
281
+ :deep(.ant-tabs-tab::before) {
282
+ content: "" !important;
283
+ position: absolute !important;
284
+ left: 0 !important;
285
+ top: 50% !important;
286
+ transform: translateY(-50%) !important;
287
+ width: 8px !important;
288
+ height: 8px !important;
289
+ background: #0057FE !important;
290
+ border-radius: 50% !important;
291
+ display: block !important;
292
+ z-index: 1 !important; // 确保圆点在最上层
293
+ }
294
+ :deep(.ant-tabs-nav) {
295
+ display: flex !important;
296
+ flex-direction: row !important; // 明确指定水平方向
297
+ flex-wrap: nowrap !important;
298
+ align-items: center !important; // 确保导航栏垂直居中
299
+ }
300
+ }
301
+ }
302
+ // 用户词条使用样式
303
+ &.h-tab-useStyle8 {
304
+ :deep(.ant-tabs-tab-next),
305
+ :deep(.ant-tabs-tab-prev-icon-target),
306
+ :deep(.ant-tabs-tab-next-icon) { display: none; }
307
+
308
+ // Make the main Ant Design tabs container a flex column to arrange tab bar and content vertically
309
+ :deep(.ant-tabs) {
310
+ display: flex !important;
311
+ flex-direction: column !important; // 确保选项卡栏在顶部,内容区域在下方
312
+ height: auto !important; // 高度自适应
313
+ }
314
+
315
+ :deep(.ant-tabs-bar) {
316
+ border-bottom: 1px solid #d9d9d9; // 底部边框
317
+ border-right: none; // 移除右侧边框
318
+ margin-right: 0 !important; // 移除重叠修复
319
+ flex-shrink: 1 !important; // 允许收缩
320
+ height: auto !important; // 高度自适应
321
+ margin-bottom: 0px !important;
322
+ }
323
+
324
+ :deep(.ant-tabs-content) {
325
+ flex: none !important; // 移除 flex: 1,允许内容区域自然流淌
326
+ }
327
+
328
+ :deep(.ant-tabs-nav) {
329
+ .ant-tabs-nav-container,
330
+ .ant-tabs-nav-wrap,
331
+ .ant-tabs-nav-scroll,
332
+ & > div:first-child {
333
+ display: flex !important;
334
+ flex-direction: row !important;
335
+ flex-wrap: nowrap !important; // 确保不换行
336
+ width: 100% !important; // 占据全部宽度
337
+ height: auto !important;
338
+ }
339
+
340
+ height: auto !important; // 高度自适应内容
341
+ width: 100% !important; // 确保容器占据全部宽度
342
+
343
+ .ant-tabs-tab {
344
+ flex: 1 !important; // 宽度等分布局
345
+ margin-right: 0 !important;
346
+ margin-bottom: 0 !important; // 移除底部间距
347
+ border-top: 1px solid #d9d9d9;
348
+ border-left: 1px solid #d9d9d9;
349
+ border-bottom: 1px solid #d9d9d9; // 所有选项卡都有底部边框
350
+ border-right: none; // 默认没有右边框
351
+ &:last-child {
352
+ border-right: 1px solid #d9d9d9; // 最后一个选项卡有右边框
353
+ }
354
+ border-radius: 0; // 默认无圆角,避免中间相邻处出现圆角
355
+ background-color: #f5f5f5;
356
+ color: #333333;
357
+ font-weight: 500;
358
+ font-size: 16px;
359
+ height: 40px; // 固定高度
360
+ width: auto !important; // 移除固定宽度,以便等分
361
+ display: flex;
362
+ justify-content: center;
363
+ align-items: center;
364
+ padding: 0;
365
+ }
366
+ // 首项:仅左侧圆角
367
+ .ant-tabs-tab:first-child {
368
+ border-top-left-radius: 10px;
369
+ border-bottom-left-radius: 10px;
370
+ }
371
+ // 末项:仅右侧圆角
372
+ .ant-tabs-tab:last-child {
373
+ border-top-right-radius: 10px;
374
+ border-bottom-right-radius: 10px;
375
+ }
376
+ .ant-tabs-tab-active {
377
+ border-bottom: 1px solid transparent; // 激活时隐藏底部边框,与 ant-tabs-bar 的边框衔接
378
+ background-color: #0057FE;
379
+ color: #ffffff;
380
+ font-weight: 600;
381
+ }
382
+ }
383
+ :deep(.ant-tabs-ink-bar) {
384
+ display: none; // 隐藏下划线
385
+ }
386
+ }
387
+ &.h-tab-extra-wrapper-multiple {
388
+ :deep(.h-tab-extra-wrapper){
389
+ display: flex;
390
+ justify-content: end;
391
+ gap: 8px;
392
+ }
393
+ :deep(.x-radio-group){
394
+ height: 32px;
395
+ }
396
+ :deep(.x-radio-item){
397
+ height: 32px;
398
+ display: flex;
399
+ align-items: center;
400
+ margin-bottom: 0px;
401
+ }
402
+ :deep(.ant-tabs-tab){
403
+ height: 34px;
404
+ }
405
+ :deep(.ant-tabs-nav-container){
406
+ padding-top: 2px;
407
+ }
408
+ :deep(.ant-tabs-extra-content){
409
+ line-height: 0px !important;
410
+ }
411
+ }
412
+ }
413
+ </style>