vue2-client 1.16.95 → 1.16.98

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 +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/HButtons/HButtons.vue +491 -491
  82. package/src/base-client/components/common/HIS/HForm/HForm.vue +401 -389
  83. package/src/base-client/components/common/HIS/HFormGroup/index.js +3 -3
  84. package/src/base-client/components/common/HIS/HTab/HTab.vue +443 -443
  85. package/src/base-client/components/common/HIS/demo.vue +61 -61
  86. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  87. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  88. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  89. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  90. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  91. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  92. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  93. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  94. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  95. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  96. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  97. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  98. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  99. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  100. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  101. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  102. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  103. package/src/base-client/components/common/Recording/index.js +3 -3
  104. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  105. package/src/base-client/components/common/Tree/index.js +2 -2
  106. package/src/base-client/components/common/Upload/Upload.vue +334 -334
  107. package/src/base-client/components/common/Upload/index.js +3 -3
  108. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  109. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +4 -0
  110. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  111. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +304 -304
  112. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  113. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  114. package/src/base-client/components/common/XAddReport/index.js +3 -3
  115. package/src/base-client/components/common/XAddReport/index.md +56 -56
  116. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  117. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  118. package/src/base-client/components/common/XButtons/index.js +3 -3
  119. package/src/base-client/components/common/XButtons/index.md +61 -61
  120. package/src/base-client/components/common/XCalendar/XCalendar.vue +4 -4
  121. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  122. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  123. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  124. package/src/base-client/components/common/XCollapse/XCollapse.vue +833 -833
  125. package/src/base-client/components/common/XDataCard/index.js +3 -3
  126. package/src/base-client/components/common/XDataCard/index.md +1 -1
  127. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  128. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  129. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  130. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  131. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  132. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  133. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  134. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  135. package/src/base-client/components/common/XForm/XFormItem.vue +1530 -1530
  136. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  137. package/src/base-client/components/common/XForm/index.md +178 -178
  138. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  139. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  140. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  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/XLabelSelect/XLabelSelect.vue +110 -110
  144. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  145. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  146. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  147. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  148. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  149. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  150. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  151. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  152. package/src/base-client/components/common/XPrint/index.vue +97 -97
  153. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  154. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  155. package/src/base-client/components/common/XReport/index.js +3 -3
  156. package/src/base-client/components/common/XReport/print.js +186 -186
  157. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  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 +2 -1
  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 +477 -477
  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/XHisEditor/XHisEditor.vue +705 -705
  186. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  187. package/src/base-client/components/his/XList/XList.vue +938 -938
  188. package/src/base-client/components/his/XRadio/XRadio.vue +469 -469
  189. package/src/base-client/components/his/XSimpleTable/XSimpleTable.vue +159 -159
  190. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +354 -354
  191. package/src/base-client/components/his/XTitle/XTitle.vue +306 -288
  192. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +341 -341
  193. package/src/base-client/components/his/threeTestOrders/editor.vue +113 -113
  194. package/src/base-client/components/index.js +51 -51
  195. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  196. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  197. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  198. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  199. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  200. package/src/base-client/plugins/Config.js +19 -19
  201. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  202. package/src/base-client/plugins/Recording.js +258 -258
  203. package/src/base-client/plugins/index.js +23 -23
  204. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  205. package/src/components/Charts/Bar.vue +62 -62
  206. package/src/components/Charts/ChartCard.vue +134 -134
  207. package/src/components/Charts/Liquid.vue +67 -67
  208. package/src/components/Charts/MiniArea.vue +39 -39
  209. package/src/components/Charts/MiniBar.vue +39 -39
  210. package/src/components/Charts/MiniProgress.vue +75 -75
  211. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  212. package/src/components/Charts/Radar.vue +68 -68
  213. package/src/components/Charts/RankList.vue +77 -77
  214. package/src/components/Charts/TagCloud.vue +113 -113
  215. package/src/components/Charts/TransferBar.vue +64 -64
  216. package/src/components/Charts/Trend.vue +82 -82
  217. package/src/components/Charts/chart.less +12 -12
  218. package/src/components/Charts/smooth.area.less +13 -13
  219. package/src/components/CodeMirror/inedx.vue +118 -118
  220. package/src/components/CodeMirror/setting.js +40 -40
  221. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  222. package/src/components/NumberInfo/index.js +3 -3
  223. package/src/components/NumberInfo/index.less +54 -54
  224. package/src/components/NumberInfo/index.md +43 -43
  225. package/src/components/card/ChartCard.vue +79 -79
  226. package/src/components/chart/Bar.vue +60 -60
  227. package/src/components/chart/MiniArea.vue +67 -67
  228. package/src/components/chart/MiniBar.vue +59 -59
  229. package/src/components/chart/MiniProgress.vue +57 -57
  230. package/src/components/chart/Radar.vue +80 -80
  231. package/src/components/chart/RankingList.vue +60 -60
  232. package/src/components/chart/Trend.vue +79 -79
  233. package/src/components/chart/index.less +9 -9
  234. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  235. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  236. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  237. package/src/components/checkbox/index.js +9 -9
  238. package/src/components/exception/ExceptionPage.vue +70 -70
  239. package/src/components/g2Charts/constants.js +202 -202
  240. package/src/components/g2Charts/demo.vue +808 -808
  241. package/src/components/g2Charts/designer.vue +228 -228
  242. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  243. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  244. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  245. package/src/components/g2Charts/index.vue +397 -397
  246. package/src/components/index.js +36 -36
  247. package/src/components/input/IInput.vue +66 -66
  248. package/src/components/menu/SideMenu.vue +75 -75
  249. package/src/components/menu/menu.js +273 -273
  250. package/src/components/setting/Setting.vue +234 -234
  251. package/src/components/tool/AStepItem.vue +60 -60
  252. package/src/config/CreateQueryConfig.js +325 -325
  253. package/src/config/default/antd.config.js +89 -89
  254. package/src/config/default/setting.config.js +55 -55
  255. package/src/font-style/font.css +60 -60
  256. package/src/layouts/CommonLayout.vue +56 -56
  257. package/src/layouts/PageLayout.vue +151 -151
  258. package/src/layouts/SinglePageView.vue +136 -136
  259. package/src/layouts/header/AdminHeader.vue +132 -132
  260. package/src/layouts/header/HeaderNotice.vue +177 -177
  261. package/src/layouts/header/InstitutionDetail.vue +181 -181
  262. package/src/layouts/tabs/TabsHead.vue +189 -189
  263. package/src/lib.js +1 -1
  264. package/src/mock/extend/index.js +84 -84
  265. package/src/mock/goods/index.js +108 -108
  266. package/src/pages/DefaultExample/index.vue +77 -77
  267. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  268. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  269. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  270. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  271. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  272. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  273. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  274. package/src/pages/DynamicStatistics/index.vue +282 -282
  275. package/src/pages/Example/childIndex.vue +15 -15
  276. package/src/pages/Example/index.vue +30 -30
  277. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  278. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  279. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  280. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  281. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  282. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  283. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  284. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  285. package/src/pages/Recording/index.vue +77 -77
  286. package/src/pages/ServiceReview/index.vue +284 -284
  287. package/src/pages/SubExample/index.vue +26 -26
  288. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  289. package/src/pages/XReportView/index.vue +64 -64
  290. package/src/pages/XTreeOneProExample/index.vue +67 -67
  291. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  292. package/src/pages/login/Login.vue +379 -379
  293. package/src/pages/login/LoginV3.vue +389 -389
  294. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  295. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  296. package/src/pages/report/ReportTable.js +124 -124
  297. package/src/pages/resourceManage/orgListManage.vue +98 -98
  298. package/src/pages/system/dictionary/index.vue +44 -44
  299. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  300. package/src/pages/system/monitor/operLog/index.vue +37 -37
  301. package/src/pages/system/settings/modifyPassword.vue +117 -117
  302. package/src/pages/system/ticket/index.vue +480 -480
  303. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  304. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  305. package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
  306. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  307. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  308. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  309. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  310. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  311. package/src/plugins/EventLogPlugin.js +33 -33
  312. package/src/plugins/FindParentsData.js +17 -17
  313. package/src/services/DataModel.js +30 -30
  314. package/src/services/LodopFuncs.js +137 -137
  315. package/src/services/api/TicketDetailsViewApi.js +46 -46
  316. package/src/services/api/cas.js +79 -79
  317. package/src/services/api/entity.js +18 -18
  318. package/src/services/api/index.js +17 -17
  319. package/src/store/modules/account.js +115 -115
  320. package/src/store/modules/index.js +5 -5
  321. package/src/store/modules/lowCode.js +33 -33
  322. package/src/store/modules/setting.js +119 -119
  323. package/src/theme/default/style.less +58 -58
  324. package/src/utils/authority-utils.js +85 -85
  325. package/src/utils/errorCode.js +6 -6
  326. package/src/utils/formatter.js +74 -74
  327. package/src/utils/htmlToPDF.js +108 -108
  328. package/src/utils/htmlToPDFApi.js +5 -5
  329. package/src/utils/login.js +188 -188
  330. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  331. package/src/utils/lowcode/lowcodeLog.js +29 -29
  332. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  333. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  334. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  335. package/src/utils/map-utils.js +47 -47
  336. package/src/utils/reg.js +95 -95
  337. package/src/utils/runEvalFunction.js +14 -14
  338. package/src/utils/theme-color-replacer-extend.js +92 -92
  339. package/src/utils/util.js +329 -329
  340. package/src/utils/waterMark.js +31 -31
  341. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
  342. package/src-base-client/components/common/HIS/HForm/HForm.vue +0 -347
  343. package/src-base-client/components/common/XCollapse/XCollapse.vue +0 -0
@@ -1,443 +1,443 @@
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', 'out-tab'
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: 18px !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
- &.h-tab-out-tab {
419
- :deep(.ant-tabs-nav-wrap) {
420
- margin-top: 0px !important;
421
- margin-bottom: 0px !important;
422
- }
423
- :deep(.ant-tabs-nav) {
424
- margin-bottom: 0px !important;
425
- }
426
- :deep(.ant-tabs-nav-container) {
427
- padding-top: 0px !important;
428
- padding-bottom: 0px !important;
429
- }
430
-
431
- :deep(.ant-tabs-bar) {
432
- margin-top: 0px !important;
433
- margin-bottom: 0px !important;
434
- height: auto !important;
435
- min-height: 0px !important;
436
- }
437
-
438
- :deep(.ant-tabs-content) {
439
- margin-top: 0px !important;
440
- }
441
- }
442
- }
443
- </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', 'out-tab'
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: 18px !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
+ &.h-tab-out-tab {
419
+ :deep(.ant-tabs-nav-wrap) {
420
+ margin-top: 0px !important;
421
+ margin-bottom: 0px !important;
422
+ }
423
+ :deep(.ant-tabs-nav) {
424
+ margin-bottom: 0px !important;
425
+ }
426
+ :deep(.ant-tabs-nav-container) {
427
+ padding-top: 0px !important;
428
+ padding-bottom: 0px !important;
429
+ }
430
+
431
+ :deep(.ant-tabs-bar) {
432
+ margin-top: 0px !important;
433
+ margin-bottom: 0px !important;
434
+ height: auto !important;
435
+ min-height: 0px !important;
436
+ }
437
+
438
+ :deep(.ant-tabs-content) {
439
+ margin-top: 0px !important;
440
+ }
441
+ }
442
+ }
443
+ </style>