vue2-client 1.16.79 → 1.16.81

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 (347) 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 +830 -830
  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 +418 -413
  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 +304 -304
  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 +4 -4
  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 -833
  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/XFormItem.vue +1 -0
  134. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  135. package/src/base-client/components/common/XForm/demo.vue +4 -2
  136. package/src/base-client/components/common/XForm/index.md +178 -178
  137. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  138. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  139. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  140. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  141. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  142. package/src/base-client/components/common/XFormTable/index.md +92 -92
  143. package/src/base-client/components/common/XInput/XInput.vue +194 -170
  144. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  145. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  146. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  147. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  148. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  149. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  150. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  151. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  152. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  153. package/src/base-client/components/common/XPrint/index.vue +97 -97
  154. package/src/base-client/components/common/XRate/index.vue +14 -7
  155. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  156. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  157. package/src/base-client/components/common/XReport/index.js +3 -3
  158. package/src/base-client/components/common/XReport/print.js +186 -186
  159. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  160. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  161. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  162. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  163. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  164. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  165. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  166. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  167. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  168. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  169. package/src/base-client/components/common/XStepView/index.js +3 -3
  170. package/src/base-client/components/common/XStepView/index.md +31 -31
  171. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  172. package/src/base-client/components/common/XTab/index.js +3 -3
  173. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  174. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  175. package/src/base-client/components/common/XTable/XTable.vue +1610 -1610
  176. package/src/base-client/components/common/XTable/index.md +255 -255
  177. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  178. package/src/base-client/components/common/XTimeline/XTimeline.vue +454 -454
  179. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  180. package/src/base-client/components/common/XTree/XTreePro.vue +4 -4
  181. package/src/base-client/components/common/XTree/index.js +3 -3
  182. package/src/base-client/components/common/XTree/index.md +36 -36
  183. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  184. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  185. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  186. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  187. package/src/base-client/components/his/XCharge/XChargeDemo.vue +145 -145
  188. package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +1022 -944
  189. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +705 -705
  190. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  191. package/src/base-client/components/his/XList/XList.vue +829 -829
  192. package/src/base-client/components/his/XRadio/XRadio.vue +18 -2
  193. package/src/base-client/components/his/XSidebar/XSidebar.vue +15 -14
  194. package/src/base-client/components/his/XSimpleTable/XSimpleTable.vue +159 -159
  195. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +72 -3
  196. package/src/base-client/components/his/XTitle/XTitle.vue +255 -233
  197. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +341 -341
  198. package/src/base-client/components/his/threeTestOrders/editor.vue +113 -113
  199. package/src/base-client/components/index.js +51 -51
  200. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  201. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  202. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  203. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  204. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  205. package/src/base-client/plugins/Config.js +19 -19
  206. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  207. package/src/base-client/plugins/Recording.js +258 -258
  208. package/src/base-client/plugins/index.js +23 -23
  209. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  210. package/src/components/Charts/Bar.vue +62 -62
  211. package/src/components/Charts/ChartCard.vue +134 -134
  212. package/src/components/Charts/Liquid.vue +67 -67
  213. package/src/components/Charts/MiniArea.vue +39 -39
  214. package/src/components/Charts/MiniBar.vue +39 -39
  215. package/src/components/Charts/MiniProgress.vue +75 -75
  216. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  217. package/src/components/Charts/Radar.vue +68 -68
  218. package/src/components/Charts/RankList.vue +77 -77
  219. package/src/components/Charts/TagCloud.vue +113 -113
  220. package/src/components/Charts/TransferBar.vue +64 -64
  221. package/src/components/Charts/Trend.vue +82 -82
  222. package/src/components/Charts/chart.less +12 -12
  223. package/src/components/Charts/smooth.area.less +13 -13
  224. package/src/components/CodeMirror/inedx.vue +118 -118
  225. package/src/components/CodeMirror/setting.js +40 -40
  226. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  227. package/src/components/NumberInfo/index.js +3 -3
  228. package/src/components/NumberInfo/index.less +54 -54
  229. package/src/components/NumberInfo/index.md +43 -43
  230. package/src/components/card/ChartCard.vue +79 -79
  231. package/src/components/chart/Bar.vue +60 -60
  232. package/src/components/chart/MiniArea.vue +67 -67
  233. package/src/components/chart/MiniBar.vue +59 -59
  234. package/src/components/chart/MiniProgress.vue +57 -57
  235. package/src/components/chart/Radar.vue +80 -80
  236. package/src/components/chart/RankingList.vue +60 -60
  237. package/src/components/chart/Trend.vue +79 -79
  238. package/src/components/chart/index.less +9 -9
  239. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  240. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  241. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  242. package/src/components/checkbox/index.js +9 -9
  243. package/src/components/exception/ExceptionPage.vue +70 -70
  244. package/src/components/g2Charts/constants.js +202 -202
  245. package/src/components/g2Charts/demo.vue +808 -808
  246. package/src/components/g2Charts/designer.vue +228 -228
  247. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  248. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  249. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  250. package/src/components/g2Charts/index.vue +397 -397
  251. package/src/components/index.js +36 -36
  252. package/src/components/input/IInput.vue +66 -66
  253. package/src/components/menu/SideMenu.vue +75 -75
  254. package/src/components/menu/menu.js +273 -273
  255. package/src/components/setting/Setting.vue +234 -234
  256. package/src/components/tool/AStepItem.vue +60 -60
  257. package/src/config/CreateQueryConfig.js +325 -325
  258. package/src/config/default/antd.config.js +89 -89
  259. package/src/config/default/setting.config.js +55 -55
  260. package/src/font-style/font.css +60 -60
  261. package/src/layouts/CommonLayout.vue +56 -56
  262. package/src/layouts/PageLayout.vue +151 -151
  263. package/src/layouts/SinglePageView.vue +136 -136
  264. package/src/layouts/header/AdminHeader.vue +132 -132
  265. package/src/layouts/header/HeaderNotice.vue +177 -177
  266. package/src/layouts/header/InstitutionDetail.vue +181 -181
  267. package/src/layouts/tabs/TabsHead.vue +189 -189
  268. package/src/lib.js +1 -1
  269. package/src/mock/extend/index.js +84 -84
  270. package/src/mock/goods/index.js +108 -108
  271. package/src/pages/DefaultExample/index.vue +77 -77
  272. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  273. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  274. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  275. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  276. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  277. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  278. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  279. package/src/pages/DynamicStatistics/index.vue +282 -282
  280. package/src/pages/Example/childIndex.vue +15 -15
  281. package/src/pages/Example/index.vue +30 -30
  282. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  283. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  284. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  285. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  286. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  287. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  288. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  289. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  290. package/src/pages/Recording/index.vue +77 -77
  291. package/src/pages/ServiceReview/index.vue +284 -284
  292. package/src/pages/SubExample/index.vue +26 -26
  293. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  294. package/src/pages/XReportView/index.vue +64 -64
  295. package/src/pages/XTreeOneProExample/index.vue +67 -67
  296. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  297. package/src/pages/login/Login.vue +379 -379
  298. package/src/pages/login/LoginV3.vue +389 -389
  299. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  300. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  301. package/src/pages/report/ReportTable.js +124 -124
  302. package/src/pages/resourceManage/orgListManage.vue +98 -98
  303. package/src/pages/system/dictionary/index.vue +44 -44
  304. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  305. package/src/pages/system/monitor/operLog/index.vue +37 -37
  306. package/src/pages/system/settings/modifyPassword.vue +117 -117
  307. package/src/pages/system/ticket/index.vue +480 -480
  308. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  309. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  310. package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
  311. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  312. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  313. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  314. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  315. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  316. package/src/plugins/EventLogPlugin.js +33 -33
  317. package/src/plugins/FindParentsData.js +17 -17
  318. package/src/services/DataModel.js +30 -30
  319. package/src/services/LodopFuncs.js +137 -137
  320. package/src/services/api/TicketDetailsViewApi.js +46 -46
  321. package/src/services/api/cas.js +79 -79
  322. package/src/services/api/entity.js +18 -18
  323. package/src/services/api/index.js +17 -17
  324. package/src/store/modules/account.js +115 -115
  325. package/src/store/modules/index.js +5 -5
  326. package/src/store/modules/lowCode.js +33 -33
  327. package/src/store/modules/setting.js +119 -119
  328. package/src/theme/default/style.less +58 -58
  329. package/src/utils/authority-utils.js +85 -85
  330. package/src/utils/errorCode.js +6 -6
  331. package/src/utils/formatter.js +74 -74
  332. package/src/utils/htmlToPDF.js +108 -108
  333. package/src/utils/htmlToPDFApi.js +5 -5
  334. package/src/utils/login.js +188 -188
  335. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  336. package/src/utils/lowcode/lowcodeLog.js +29 -29
  337. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  338. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  339. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  340. package/src/utils/map-utils.js +47 -47
  341. package/src/utils/reg.js +95 -95
  342. package/src/utils/runEvalFunction.js +14 -14
  343. package/src/utils/theme-color-replacer-extend.js +92 -92
  344. package/src/utils/util.js +329 -329
  345. package/src/utils/waterMark.js +31 -31
  346. package/src-base-client/components/common/XCollapse/XCollapse.vue +0 -0
  347. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,413 +1,418 @@
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>
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
+ :deep(.ant-tabs-nav-wrap) {
133
+ margin-top: 19px !important;
134
+ margin-bottom: 0 !important;
135
+ }
136
+ :deep(.ant-tabs-nav) {
137
+ // 去除导航容器默认左右内边距,避免收缩时左侧多出一截
138
+ .ant-tabs-nav-container,
139
+ .ant-tabs-nav-scroll {
140
+ margin: 0px;
141
+ }
142
+
143
+ // 移除左右切换箭头带来的占位
144
+ .ant-tabs-tab-prev,
145
+ .ant-tabs-tab-next {
146
+ display: none !important;
147
+ width: 0 !important;
148
+ }
149
+ .ant-tabs-tab-next-icon {
150
+ display: none;
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: 26px;
160
+ font-family: "Source Han Sans";
161
+ transition: all 0.3s;
162
+ height: 32px;
163
+ text-align: center;
164
+ margin: 0 !important;
165
+ padding: 0 !important;
166
+ }
167
+ .ant-tabs-tab-active {
168
+ background-color: #0057FE;
169
+ color: #ffffff;
170
+ width: 134px;
171
+ line-height: 26px;
172
+ height: 32px;
173
+ text-align: center;
174
+ margin: 0 !important;
175
+ padding: 0 !important;
176
+ }
177
+ }
178
+
179
+ :deep(.ant-tabs-bar) {
180
+ border-bottom: 2px solid #0057FE;
181
+ margin: 0px 0px;
182
+ width: 100%;
183
+ height: 50px;
184
+ }
185
+
186
+ // 滚动状态下的容器左右内边距清零,避免左侧多出一截
187
+ :deep(.ant-tabs-nav-container-scrolling) {
188
+ padding-left: 0 !important;
189
+ padding-right: 0 !important;
190
+ }
191
+
192
+ :deep(.ant-tabs-tab-arrow-show) {
193
+ display: none;
194
+ }
195
+
196
+ :deep(.ant-tabs-ink-bar) {
197
+ background-color: transparent;
198
+ bottom: 0px;
199
+ display: none;
200
+ height: 0;
201
+ }
202
+
203
+ :deep(.ant-tabs-tab-prev-icon-target) {
204
+ display: none;
205
+ }
206
+
207
+ // 带顶部边距的样式
208
+ &.h-tab-hasTopMargin {
209
+ :deep(.ant-tabs-nav) {
210
+ margin-top: 6px;
211
+ }
212
+
213
+ :deep(.ant-tabs-bar) {
214
+ margin: 0 6px;
215
+ }
216
+
217
+ :deep(.ant-card-body) {
218
+ padding: 6px 0;
219
+
220
+ .ant-card-body {
221
+ padding: 6px;
222
+ }
223
+ }
224
+ }
225
+
226
+ // 通用样式7:细下划线、透明背景、可配置宽度
227
+ &.h-tab-useStyle7 {
228
+ :deep(.ant-tabs-tab-next),
229
+ :deep(.ant-tabs-tab-prev-icon-target),
230
+ :deep(.ant-tabs-tab-next-icon) { display: none; }
231
+
232
+ :deep(.ant-tabs-bar) { border-bottom: 2px solid transparent; }
233
+
234
+ :deep(.ant-tabs-ink-bar) {
235
+ display: block;
236
+ background-color: #0057FE;
237
+ bottom: 8px;
238
+ height: 2px;
239
+ /* 宽度交给 antd 自身计算,避免固定值影响自适应 */
240
+ margin-left: 0;
241
+ }
242
+
243
+ :deep(.ant-tabs-nav) {
244
+ display: flex;
245
+ flex-wrap: wrap;
246
+ gap: 8px;
247
+ .ant-tabs-tab {
248
+ background-color: transparent;
249
+ border-radius: 0;
250
+ color: #333333;
251
+ font-weight: 500;
252
+ /* 自适应宽度,允许通过变量覆盖最小宽度 */
253
+ min-width: var(--tab-min-width, 96px);
254
+ width: auto;
255
+ padding: 0 12px;
256
+ font-size: 16px;
257
+ line-height: 10px;
258
+ font-family: "Source Han Sans";
259
+ transition: all 0.3s;
260
+ height: 40px;
261
+ text-align: center;
262
+ margin-right: 0 !important;
263
+ }
264
+ .ant-tabs-tab-active {
265
+ background-color: transparent;
266
+ color: #0057FE;
267
+ font-weight: 600;
268
+ width: auto;
269
+ line-height: 10px;
270
+ height: 40px;
271
+ text-align: center;
272
+ }
273
+ }
274
+
275
+ // 可选:标签左侧圆点
276
+ &.h-tab-useCycle {
277
+ :deep(.ant-tabs-tab) {
278
+ position: relative;
279
+ padding-left: 18px !important;
280
+ margin-right: 20px !important;
281
+ display: inline-flex !important; // 使用inline-flex保持水平布局
282
+ align-items: center !important; // 确保内容垂直居中
283
+ line-height: normal !important; // 重置line-height避免冲突
284
+ vertical-align: top !important; // 确保垂直对齐
285
+ }
286
+ :deep(.ant-tabs-tab::before) {
287
+ content: "" !important;
288
+ position: absolute !important;
289
+ left: 0 !important;
290
+ top: 50% !important;
291
+ transform: translateY(-50%) !important;
292
+ width: 8px !important;
293
+ height: 8px !important;
294
+ background: #0057FE !important;
295
+ border-radius: 50% !important;
296
+ display: block !important;
297
+ z-index: 1 !important; // 确保圆点在最上层
298
+ }
299
+ :deep(.ant-tabs-nav) {
300
+ display: flex !important;
301
+ flex-direction: row !important; // 明确指定水平方向
302
+ flex-wrap: nowrap !important;
303
+ align-items: center !important; // 确保导航栏垂直居中
304
+ }
305
+ }
306
+ }
307
+ // 用户词条使用样式
308
+ &.h-tab-useStyle8 {
309
+ :deep(.ant-tabs-tab-next),
310
+ :deep(.ant-tabs-tab-prev-icon-target),
311
+ :deep(.ant-tabs-tab-next-icon) { display: none; }
312
+
313
+ // Make the main Ant Design tabs container a flex column to arrange tab bar and content vertically
314
+ :deep(.ant-tabs) {
315
+ display: flex !important;
316
+ flex-direction: column !important; // 确保选项卡栏在顶部,内容区域在下方
317
+ height: auto !important; // 高度自适应
318
+ }
319
+
320
+ :deep(.ant-tabs-bar) {
321
+ border-bottom: 1px solid #d9d9d9; // 底部边框
322
+ border-right: none; // 移除右侧边框
323
+ margin-right: 0 !important; // 移除重叠修复
324
+ flex-shrink: 1 !important; // 允许收缩
325
+ height: auto !important; // 高度自适应
326
+ margin-bottom: 0px !important;
327
+ }
328
+
329
+ :deep(.ant-tabs-content) {
330
+ flex: none !important; // 移除 flex: 1,允许内容区域自然流淌
331
+ }
332
+
333
+ :deep(.ant-tabs-nav) {
334
+ .ant-tabs-nav-container,
335
+ .ant-tabs-nav-wrap,
336
+ .ant-tabs-nav-scroll,
337
+ & > div:first-child {
338
+ display: flex !important;
339
+ flex-direction: row !important;
340
+ flex-wrap: nowrap !important; // 确保不换行
341
+ width: 100% !important; // 占据全部宽度
342
+ height: auto !important;
343
+ }
344
+
345
+ height: auto !important; // 高度自适应内容
346
+ width: 100% !important; // 确保容器占据全部宽度
347
+
348
+ .ant-tabs-tab {
349
+ flex: 1 !important; // 宽度等分布局
350
+ margin-right: 0 !important;
351
+ margin-bottom: 0 !important; // 移除底部间距
352
+ border-top: 1px solid #d9d9d9;
353
+ border-left: 1px solid #d9d9d9;
354
+ border-bottom: 1px solid #d9d9d9; // 所有选项卡都有底部边框
355
+ border-right: none; // 默认没有右边框
356
+ &:last-child {
357
+ border-right: 1px solid #d9d9d9; // 最后一个选项卡有右边框
358
+ }
359
+ border-radius: 0; // 默认无圆角,避免中间相邻处出现圆角
360
+ background-color: #f5f5f5;
361
+ color: #333333;
362
+ font-weight: 500;
363
+ font-size: 16px;
364
+ height: 40px; // 固定高度
365
+ width: auto !important; // 移除固定宽度,以便等分
366
+ display: flex;
367
+ justify-content: center;
368
+ align-items: center;
369
+ padding: 0;
370
+ }
371
+ // 首项:仅左侧圆角
372
+ .ant-tabs-tab:first-child {
373
+ border-top-left-radius: 10px;
374
+ border-bottom-left-radius: 10px;
375
+ }
376
+ // 末项:仅右侧圆角
377
+ .ant-tabs-tab:last-child {
378
+ border-top-right-radius: 10px;
379
+ border-bottom-right-radius: 10px;
380
+ }
381
+ .ant-tabs-tab-active {
382
+ border-bottom: 1px solid transparent; // 激活时隐藏底部边框,与 ant-tabs-bar 的边框衔接
383
+ background-color: #0057FE;
384
+ color: #ffffff;
385
+ font-weight: 600;
386
+ }
387
+ }
388
+ :deep(.ant-tabs-ink-bar) {
389
+ display: none; // 隐藏下划线
390
+ }
391
+ }
392
+ &.h-tab-extra-wrapper-multiple {
393
+ :deep(.h-tab-extra-wrapper){
394
+ display: flex;
395
+ justify-content: end;
396
+ gap: 8px;
397
+ }
398
+ :deep(.x-radio-group){
399
+ height: 32px;
400
+ }
401
+ :deep(.x-radio-item){
402
+ height: 32px;
403
+ display: flex;
404
+ align-items: center;
405
+ margin-bottom: 0px;
406
+ }
407
+ :deep(.ant-tabs-tab){
408
+ height: 34px;
409
+ }
410
+ :deep(.ant-tabs-nav-container){
411
+ padding-top: 2px;
412
+ }
413
+ :deep(.ant-tabs-extra-content){
414
+ line-height: 0px !important;
415
+ }
416
+ }
417
+ }
418
+ </style>