vue2-client 1.17.39 → 1.17.40

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 (353) 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/.serena/memories/code_style_conventions.md +217 -217
  10. package/.serena/memories/project_overview.md +54 -54
  11. package/.serena/memories/project_structure.md +329 -329
  12. package/.serena/memories/suggested_commands.md +127 -127
  13. package/.serena/memories/task_completion_checklist.md +183 -183
  14. package/.serena/memories/tech_stack.md +94 -94
  15. package/CHANGELOG.md +830 -830
  16. package/CLAUDE.md +97 -97
  17. package/Components.md +60 -60
  18. package/docs/LowCode/lowcode.md +155 -155
  19. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  20. package/docs/index.md +30 -30
  21. package/index.js +31 -31
  22. package/jest-transform-stub.js +8 -8
  23. package/jest.setup.js +7 -7
  24. package/jsconfig.json +19 -19
  25. package/package.json +1 -1
  26. package/public/his/editor/editor.html +51 -51
  27. package/public/his/editor/mock/bind_data.html +779 -779
  28. package/public/his/editor/mock/data_table.html +40 -40
  29. package/public/his/editor/mock/sign.html +75 -75
  30. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  31. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  32. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  33. package/public/his/editor/vender/date97/calendar.js +4 -4
  34. package/public/his/editor/vender/date97/lang/en.js +13 -13
  35. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  36. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  37. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  38. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  39. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  40. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  41. package/public/his/editor/vender/diff.js +1627 -1627
  42. package/public/his/editor/vender/editor.js +1 -1
  43. package/public/his/editor/vender/fabric.js +31187 -31187
  44. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  45. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  46. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  47. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  48. package/public/his/editor/vender/mui/mui.min.css +4 -4
  49. package/public/his/editor/vender/mui/mui.min.js +5 -5
  50. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  51. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  52. package/public/his/editor/vender/qrcode.js +7 -7
  53. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  54. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  55. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  56. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  57. package/public/his/editor/vender/validator.js +5094 -5094
  58. package/public/his/editor/vender/weui/weui.css +5659 -5659
  59. package/public/his/editor/vender/weui/weui.min.css +4 -4
  60. package/public/his/editor/vender/weui/weui.min.js +11 -11
  61. package/src/assets/img/paymentMethod/package.info +1 -1
  62. package/src/assets/img/querySlotDemo.svg +15 -15
  63. package/src/assets/svg/badtwo.svg +1 -1
  64. package/src/assets/svg/female.svg +1 -1
  65. package/src/assets/svg/goodtwo.svg +1 -1
  66. package/src/assets/svg/male.svg +1 -1
  67. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  68. package/src/base-client/components/AI/demo.vue +31 -31
  69. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  70. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  71. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  72. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  73. package/src/base-client/components/common/CitySelect/index.js +3 -3
  74. package/src/base-client/components/common/CitySelect/index.md +109 -109
  75. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  76. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  77. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  78. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  79. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  80. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  81. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  82. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  83. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  84. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  85. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  86. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  87. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  88. package/src/base-client/components/common/HIS/HButtons/HButtons.vue +491 -491
  89. package/src/base-client/components/common/HIS/HFormGroup/index.js +3 -3
  90. package/src/base-client/components/common/HIS/HTab/HTab.vue +443 -443
  91. package/src/base-client/components/common/HIS/demo.vue +61 -61
  92. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  93. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  94. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  95. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  96. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  97. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  98. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  99. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  100. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  101. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  102. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  103. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  104. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  105. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  106. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  107. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  108. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  109. package/src/base-client/components/common/Recording/index.js +3 -3
  110. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  111. package/src/base-client/components/common/Tree/index.js +2 -2
  112. package/src/base-client/components/common/Upload/index.js +3 -3
  113. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  114. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  115. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +304 -304
  116. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  117. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  118. package/src/base-client/components/common/XAddReport/index.js +3 -3
  119. package/src/base-client/components/common/XAddReport/index.md +56 -56
  120. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  121. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  122. package/src/base-client/components/common/XButtons/index.js +3 -3
  123. package/src/base-client/components/common/XButtons/index.md +61 -61
  124. package/src/base-client/components/common/XCalendar/XCalendar.vue +4 -4
  125. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  126. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  127. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  128. package/src/base-client/components/common/XCollapse/XCollapse.vue +830 -830
  129. package/src/base-client/components/common/XDataCard/index.js +3 -3
  130. package/src/base-client/components/common/XDataCard/index.md +1 -1
  131. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  132. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  133. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  134. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  135. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  136. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  137. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  138. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  139. package/src/base-client/components/common/XForm/XFormItem.vue +12 -4
  140. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  141. package/src/base-client/components/common/XForm/index.md +178 -178
  142. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  143. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  144. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  145. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  146. package/src/base-client/components/common/XFormTable/XFormTable.vue +1093 -1092
  147. package/src/base-client/components/common/XFormTable/demo.vue +113 -89
  148. package/src/base-client/components/common/XFormTable/index.md +92 -92
  149. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  150. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  151. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  152. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  153. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  154. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  155. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  156. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  157. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  158. package/src/base-client/components/common/XPrint/index.vue +97 -97
  159. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  160. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  161. package/src/base-client/components/common/XReport/index.js +3 -3
  162. package/src/base-client/components/common/XReport/print.js +186 -186
  163. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  164. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  165. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  166. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  167. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  168. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  169. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  170. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  171. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  172. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  173. package/src/base-client/components/common/XStepView/index.js +3 -3
  174. package/src/base-client/components/common/XStepView/index.md +31 -31
  175. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  176. package/src/base-client/components/common/XTab/index.js +3 -3
  177. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  178. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  179. package/src/base-client/components/common/XTable/XTable.vue +46 -0
  180. package/src/base-client/components/common/XTable/XTableWrapper.vue +706 -669
  181. package/src/base-client/components/common/XTable/index.md +255 -255
  182. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  183. package/src/base-client/components/common/XTimeline/XTimeline.vue +477 -477
  184. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  185. package/src/base-client/components/common/XTree/index.js +3 -3
  186. package/src/base-client/components/common/XTree/index.md +36 -36
  187. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  188. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  189. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  190. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  191. package/src/base-client/components/his/XCharge/XChargeDemo.vue +145 -145
  192. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +705 -705
  193. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  194. package/src/base-client/components/his/XList/XList.vue +938 -938
  195. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +354 -354
  196. package/src/base-client/components/his/XTitle/XTitle.vue +314 -314
  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/STable/index.js +771 -771
  231. package/src/components/card/ChartCard.vue +79 -79
  232. package/src/components/chart/Bar.vue +60 -60
  233. package/src/components/chart/MiniArea.vue +67 -67
  234. package/src/components/chart/MiniBar.vue +59 -59
  235. package/src/components/chart/MiniProgress.vue +57 -57
  236. package/src/components/chart/Radar.vue +80 -80
  237. package/src/components/chart/RankingList.vue +60 -60
  238. package/src/components/chart/Trend.vue +79 -79
  239. package/src/components/chart/index.less +9 -9
  240. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  241. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  242. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  243. package/src/components/checkbox/index.js +9 -9
  244. package/src/components/exception/ExceptionPage.vue +70 -70
  245. package/src/components/g2Charts/constants.js +202 -202
  246. package/src/components/g2Charts/demo.vue +808 -808
  247. package/src/components/g2Charts/designer.vue +228 -228
  248. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  249. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  250. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  251. package/src/components/g2Charts/index.vue +397 -397
  252. package/src/components/index.js +36 -36
  253. package/src/components/input/IInput.vue +66 -66
  254. package/src/components/menu/SideMenu.vue +75 -75
  255. package/src/components/menu/menu.js +273 -273
  256. package/src/components/setting/Setting.vue +234 -234
  257. package/src/components/tool/AStepItem.vue +60 -60
  258. package/src/config/CreateQueryConfig.js +325 -325
  259. package/src/config/default/antd.config.js +89 -89
  260. package/src/config/default/setting.config.js +55 -55
  261. package/src/font-style/font.css +60 -60
  262. package/src/layouts/CommonLayout.vue +56 -56
  263. package/src/layouts/PageLayout.vue +151 -151
  264. package/src/layouts/SinglePageView.vue +136 -136
  265. package/src/layouts/header/AdminHeader.vue +132 -132
  266. package/src/layouts/header/HeaderNotice.vue +177 -177
  267. package/src/layouts/header/InstitutionDetail.vue +181 -181
  268. package/src/layouts/tabs/TabsHead.vue +189 -189
  269. package/src/lib.js +1 -1
  270. package/src/mock/extend/index.js +84 -84
  271. package/src/mock/goods/index.js +108 -108
  272. package/src/pages/DefaultExample/index.vue +77 -77
  273. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  274. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  275. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  276. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  277. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  278. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  279. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  280. package/src/pages/DynamicStatistics/index.vue +282 -282
  281. package/src/pages/Example/childIndex.vue +15 -15
  282. package/src/pages/Example/index.vue +30 -30
  283. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  284. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  285. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  286. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  287. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  288. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  289. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  290. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  291. package/src/pages/Recording/index.vue +77 -77
  292. package/src/pages/ServiceReview/index.vue +284 -284
  293. package/src/pages/SubExample/index.vue +26 -26
  294. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  295. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +1815 -1815
  296. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +1014 -1014
  297. package/src/pages/XReportView/index.vue +64 -64
  298. package/src/pages/XTreeOneProExample/index.vue +67 -67
  299. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  300. package/src/pages/login/Login.vue +379 -379
  301. package/src/pages/login/LoginV3.vue +389 -389
  302. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  303. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  304. package/src/pages/report/ReportTable.js +124 -124
  305. package/src/pages/resourceManage/orgListManage.vue +98 -98
  306. package/src/pages/system/dictionary/index.vue +44 -44
  307. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  308. package/src/pages/system/monitor/operLog/index.vue +37 -37
  309. package/src/pages/system/settings/modifyPassword.vue +117 -117
  310. package/src/pages/system/ticket/index.vue +480 -480
  311. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  312. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  313. package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
  314. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  315. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  316. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  317. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  318. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  319. package/src/plugins/EventLogPlugin.js +33 -33
  320. package/src/plugins/FindParentsData.js +17 -17
  321. package/src/router/async/router.map.js +133 -133
  322. package/src/services/DataModel.js +30 -30
  323. package/src/services/LodopFuncs.js +137 -137
  324. package/src/services/api/TicketDetailsViewApi.js +46 -46
  325. package/src/services/api/cas.js +79 -79
  326. package/src/services/api/entity.js +18 -18
  327. package/src/services/api/index.js +17 -17
  328. package/src/store/modules/account.js +121 -121
  329. package/src/store/modules/index.js +5 -5
  330. package/src/store/modules/lowCode.js +33 -33
  331. package/src/store/modules/setting.js +119 -119
  332. package/src/theme/default/style.less +58 -58
  333. package/src/theme/global.less +311 -311
  334. package/src/utils/authority-utils.js +85 -85
  335. package/src/utils/errorCode.js +6 -6
  336. package/src/utils/formatter.js +74 -74
  337. package/src/utils/htmlToPDF.js +108 -108
  338. package/src/utils/htmlToPDFApi.js +5 -5
  339. package/src/utils/login.js +188 -188
  340. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  341. package/src/utils/lowcode/lowcodeLog.js +29 -29
  342. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  343. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  344. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  345. package/src/utils/map-utils.js +47 -47
  346. package/src/utils/reg.js +95 -95
  347. package/src/utils/runEvalFunction.js +14 -14
  348. package/src/utils/theme-color-replacer-extend.js +92 -92
  349. package/src/utils/util.js +329 -329
  350. package/src/utils/waterMark.js +31 -31
  351. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
  352. package/src-base-client/components/common/HIS/HForm/HForm.vue +0 -347
  353. package/src-base-client/components/common/XCollapse/XCollapse.vue +0 -0
@@ -1,477 +1,477 @@
1
- <template>
2
- <!-- 时间轴主容器 -->
3
- <div class="x-timeline" :class="wrapperClassObject">
4
- <!-- 时间轴导航栏 -->
5
- <div class="x-timeline-nav">
6
- <!-- 导航按钮:前一周、前一天 -->
7
- <a-button type="link" @click="goToPrevWeek">
8
- <a-icon type="vertical-right"/>
9
- <span v-if="config?.prevWeekText !== false">{{ config?.prevWeekText || '前一周' }}</span>
10
- </a-button>
11
- <a-button type="link" @click="goToPrevDay">
12
- <a-icon type="left"/>
13
- <span v-if="config?.prevDayText !== false">{{ config?.prevDayText || '前一天' }}</span>
14
- </a-button>
15
- <!-- 日期显示区域 -->
16
- <div class="timeline-dates">
17
- <div
18
- v-for="(date, index) in displayDates"
19
- :key="index"
20
- class="date-item"
21
- :class="{
22
- 'ant-btn-primary': isCurrentDate(date),
23
- 'date-weekend': isWeekend(date),
24
- 'ant-btn-disabled': isDisabled(date)
25
- }"
26
- @click="selectDate(date)"
27
- >
28
- <div class="weekday">{{ getWeekDay(date) }}</div>
29
- <div class="date">{{ formatDate(date) }}</div>
30
- </div>
31
- </div>
32
- <!-- 导航按钮:后一天、后一周 -->
33
- <a-button type="link" @click="goToNextDay">
34
- <span v-if="config?.nextDayText !== false">{{ config?.nextDayText || '后一天' }}</span>
35
- <a-icon type="right"/>
36
- </a-button>
37
- <a-button type="link" @click="goToNextWeek">
38
- <span v-if="config?.nextWeekText !== false">{{ config?.nextWeekText || '后一周' }}</span>
39
- <a-icon type="vertical-left"/>
40
- </a-button>
41
- </div>
42
- </div>
43
- </template>
44
-
45
- <script>
46
- import moment from 'moment'
47
- import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
48
-
49
- // 设置 moment 为中文语言环境
50
- moment.locale('zh-cn')
51
-
52
- export default {
53
- name: 'XTimeline',
54
- components: {},
55
- props: {
56
- // 当前选中日期,默认为空(不选中)
57
- modelValue: {
58
- type: String,
59
- default: ''
60
- },
61
- // 配置参数名称,用于获取时间轴配置
62
- queryParamsName: {
63
- type: String,
64
- default: ''
65
- }
66
- },
67
-
68
- // 定义组件事件
69
- emits: ['update:modelValue', 'change', 'prev-week', 'next-week', 'prev-day', 'next-day', 'init'],
70
-
71
- data () {
72
- return {
73
- currentDate: this.modelValue, // 当前选中日期
74
- baseDate: moment().format('YYYY-MM-DD'), // 基准日期,默认今天,用于计算显示范围
75
- config: null,
76
- disabledDates: [] // 禁用日期列表
77
- }
78
- },
79
- computed: {
80
- // 动态样式开关(与 XHDescriptions 思路一致):布尔开关 + size 派生类
81
- wrapperClassObject () {
82
- const attrs = this.$attrs || {}
83
- const classes = {}
84
-
85
- const booleanStyleKeys = [
86
- 'compact',
87
- 'bordered',
88
- 'highlight-weekend',
89
- 'dark-theme',
90
- 'style1'
91
- ]
92
- booleanStyleKeys.forEach(key => {
93
- const val = attrs[key]
94
- const truthy = val === true || val === '' || val === 'true'
95
- if (truthy) classes[`xtimeline-${key}`] = true
96
- })
97
- const size = attrs.size
98
- if (size && typeof size === 'string') classes[`xtimeline-size-${size}`] = true
99
- return classes
100
- },
101
- // 计算需要显示的日期范围,固定显示周一到周日
102
- displayDates () {
103
- const dates = []
104
- // 计算当前日期所在周的周一
105
- const currentDay = moment(this.baseDate)
106
- const dayOfWeek = currentDay.day() || 7 // 获取星期几,将周日的0转换为7
107
- const mondayOfWeek = currentDay.clone().subtract(dayOfWeek - 1, 'day') // 减去相应的天数得到周一
108
-
109
- // 从周一开始,生成一周的日期
110
- dates.push(mondayOfWeek.format('YYYY-MM-DD')) // 周一
111
- for (let i = 1; i <= 6; i++) {
112
- dates.push(mondayOfWeek.clone().add(i, 'day').format('YYYY-MM-DD'))
113
- }
114
-
115
- return dates
116
- }
117
- },
118
-
119
- watch: {
120
- // 监听外部传入的选中日期变化
121
- modelValue: {
122
- handler (newVal) {
123
- this.currentDate = newVal
124
- if (newVal) {
125
- this.baseDate = newVal
126
- }
127
- },
128
- immediate: true
129
- },
130
- // 监听配置参数名称变化
131
- queryParamsName: {
132
- handler (newValue) {
133
- this.getData(newValue)
134
- },
135
- immediate: true
136
- }
137
- },
138
-
139
- created () {
140
- // 组件创建时获取配置
141
- this.getData(this.queryParamsName)
142
- },
143
-
144
- methods: {
145
- // 获取时间轴配置数据
146
- async getData (data) {
147
- getConfigByName(data, 'af-his', res => {
148
- this.config = res
149
- // 触发初始化事件,传递配置和默认日期
150
- this.$emit('init', this.baseDate)
151
- if (res.defaultValue) {
152
- // 如果有默认值,则设置当前选中日期和基准日期
153
- this.currentDate = res.defaultValue
154
- this.baseDate = res.defaultValue
155
- this.$emit('update:modelValue', res.defaultValue)
156
- } else {
157
- // 如果没有默认值,则设置今天日期为基准日期
158
- this.modelValue = this.baseDate
159
- }
160
-
161
- // 执行配置中指定的业务逻辑
162
- if (res.logicName) {
163
- runLogic(res.logicName, res.parameter, 'af-his').then(result => {
164
- if (result) {
165
- this.handleLogicResult(result)
166
- }
167
- })
168
- }
169
- })
170
- },
171
-
172
- // 处理业务逻辑返回结果
173
- handleLogicResult (result) {
174
- if (result.disabledDates) {
175
- this.disabledDates = result.disabledDates
176
- }
177
- if (result.currentDate) {
178
- this.currentDate = result.currentDate
179
- this.baseDate = result.currentDate
180
- this.$emit('update:modelValue', result.currentDate)
181
- }
182
- },
183
-
184
- // 格式化日期显示
185
- formatDate (date) {
186
- const format = this.config?.dateFormat || 'MM/DD'
187
- return moment(date).format(format)
188
- },
189
-
190
- // 获取星期显示
191
- getWeekDay (date) {
192
- const format = this.config?.weekFormat || '周dd'
193
- return moment(date).format(format)
194
- },
195
-
196
- // 判断是否为周末
197
- isWeekend (date) {
198
- if (!this.config?.highlightWeekend) return false
199
- const day = moment(date).day()
200
- return day === 0 || day === 6
201
- },
202
-
203
- // 判断日期是否禁用
204
- isDisabled (date) {
205
- if (this.config?.minDate && moment(date).isBefore(this.config.minDate)) {
206
- return true
207
- }
208
- if (this.config?.maxDate && moment(date).isAfter(this.config.maxDate)) {
209
- return true
210
- }
211
- return this.disabledDates.includes(date)
212
- },
213
-
214
- // 判断是否为当前选中日期
215
- isCurrentDate (date) {
216
- if (!this.currentDate) return false
217
- return moment(date).format('YYYY-MM-DD') === moment(this.currentDate).format('YYYY-MM-DD')
218
- },
219
-
220
- // 选择日期
221
- selectDate (date) {
222
- if (this.isDisabled(date)) return
223
- this.currentDate = date
224
- this.$emit('update:modelValue', date)
225
- this.$emit('change', date)
226
- },
227
-
228
- // 前一天
229
- goToPrevDay () {
230
- const newDate = moment(this.currentDate).subtract(1, 'day')
231
- if (this.config?.minDate && newDate.isBefore(this.config.minDate)) {
232
- return
233
- }
234
- // 更新基准日期
235
- this.baseDate = newDate.format('YYYY-MM-DD')
236
- // 同时选中新的日期
237
- this.currentDate = this.baseDate
238
- this.$emit('update:modelValue', this.currentDate)
239
- // 触发前一天事件
240
- this.$emit('prev-day', this.baseDate)
241
- // 触发变更事件
242
- this.$emit('change', this.currentDate)
243
- },
244
-
245
- // 后一天
246
- goToNextDay () {
247
- const newDate = moment(this.currentDate).add(1, 'day')
248
- if (this.config?.maxDate && newDate.isAfter(this.config.maxDate)) {
249
- return
250
- }
251
- // 更新基准日期
252
- this.baseDate = newDate.format('YYYY-MM-DD')
253
- // 同时选中新的日期
254
- this.currentDate = this.baseDate
255
- this.$emit('update:modelValue', this.currentDate)
256
- // 触发后一天事件
257
- this.$emit('next-day', this.baseDate)
258
- // 触发变更事件
259
- this.$emit('change', this.currentDate)
260
- },
261
-
262
- // 前一周
263
- goToPrevWeek () {
264
- // 计算当前日期所在周的周一
265
- const currentDay = moment(this.baseDate)
266
- const dayOfWeek = currentDay.day() || 7 // 获取星期几,将周日的0转换为7
267
- const mondayOfWeek = currentDay.clone().subtract(dayOfWeek - 1, 'day') // 减去相应的天数得到周一
268
-
269
- // 前一周的周一
270
- const newDate = mondayOfWeek.subtract(7, 'day')
271
-
272
- if (this.config?.minDate && newDate.isBefore(this.config.minDate)) {
273
- return
274
- }
275
- this.baseDate = newDate.format('YYYY-MM-DD')
276
- this.$emit('prev-week', this.baseDate)
277
- },
278
-
279
- // 后一周
280
- goToNextWeek () {
281
- // 计算当前日期所在周的周一
282
- const currentDay = moment(this.baseDate)
283
- const dayOfWeek = currentDay.day() || 7 // 获取星期几,将周日的0转换为7
284
- const mondayOfWeek = currentDay.clone().subtract(dayOfWeek - 1, 'day') // 减去相应的天数得到周一
285
- // 后一周的周一
286
- const newDate = mondayOfWeek.add(7, 'day')
287
- if (this.config?.maxDate && newDate.isAfter(this.config.maxDate)) {
288
- return
289
- }
290
- this.baseDate = newDate.format('YYYY-MM-DD')
291
- this.$emit('next-week', this.baseDate)
292
- }
293
- }
294
- }
295
- </script>
296
-
297
- <style scoped lang="less">
298
- .x-timeline {
299
- width: 100%;
300
- border: 1px solid #f0f0f0;
301
- border-radius: 2px;
302
- }
303
-
304
- .x-timeline-nav {
305
- display: flex;
306
- align-items: center;
307
- padding: 16px;
308
- border-bottom: 1px solid #f0f0f0;
309
- width: 100%;
310
- justify-content: space-between;
311
- }
312
-
313
- .timeline-dates {
314
- display: flex;
315
- flex: 1;
316
- justify-content: space-around;
317
- align-items: center;
318
- margin: 0 16px;
319
- }
320
-
321
- .date-item {
322
- padding: 8px 12px;
323
- text-align: center;
324
- cursor: pointer;
325
- border-radius: 2px;
326
- flex: 1;
327
- margin: 0 8px;
328
- transition: all 0.3s;
329
- }
330
-
331
- /* 非选中日期的悬浮效果 */
332
- .date-item:hover:not(.ant-btn-disabled):not(.ant-btn-primary) {
333
- background: #e6f7ff;
334
- color: #1890ff;
335
- }
336
-
337
- /* 选中日期不需要悬浮效果 */
338
- .date-item.ant-btn-primary:hover {
339
- background: #1890ff;
340
- }
341
-
342
- .date-item.ant-btn-primary {
343
- background: #0075FE !important;
344
- color: #fff;
345
- }
346
-
347
- .date-item.ant-btn-primary .weekday,
348
- .date-item.ant-btn-primary .date {
349
- color: #ffffff !important;
350
- }
351
-
352
- /* 非选中日期悬浮时的字体颜色 */
353
- .date-item:hover:not(.ant-btn-disabled):not(.ant-btn-primary) .weekday,
354
- .date-item:hover:not(.ant-btn-disabled):not(.ant-btn-primary) .date {
355
- color: #1890ff;
356
- }
357
-
358
- .date-item.date-weekend:not(.ant-btn-disabled):not(.ant-btn-primary) {
359
- color: #ff4d4f;
360
- }
361
-
362
- .date-item.ant-btn-disabled {
363
- color: rgba(0, 0, 0, 0.25);
364
- background: #f5f5f5;
365
- cursor: not-allowed;
366
- }
367
-
368
- .weekday {
369
- font-size: 12px;
370
- margin-bottom: 8px;
371
- color: rgba(0, 0, 0, 0.45);
372
- }
373
-
374
- .date {
375
- font-size: 14px;
376
- color: rgba(0, 0, 0, 0.85);
377
- }
378
-
379
- /* Style1 样式配置 */
380
- .xtimeline-style1 {
381
- padding: 0px 0px;
382
-
383
- .x-timeline-nav {
384
- padding: 0px;
385
- width: 140px;
386
- height: 56px;
387
-
388
- .timeline-dates {
389
- margin: 0px;
390
- width: 980px;
391
-
392
- line-height: normal;
393
- font-weight: 700;
394
- letter-spacing: 0em;
395
-
396
- }
397
-
398
- .ant-btn {
399
- border-radius: 6px;
400
- border: 1px solid #CDCFD4;
401
- font-weight: bold;
402
- letter-spacing: 0em;
403
- font-size: 16px;
404
- font-family: "Source Han Sans";
405
- line-height: normal;
406
- opacity: 1;
407
- box-sizing: border-box;
408
- height: 56px;
409
- width: 112px;
410
- min-width: 112px;
411
- background: #FFFFFF;
412
- display: flex;
413
- align-items: center;
414
- justify-content: center;
415
- }
416
-
417
- .ant-btn .anticon {
418
- color: #94979E;
419
- }
420
- }
421
-
422
- .date-item {
423
- border-radius: 6px;
424
- border: 1px solid #CDCFD4;
425
- margin: 0px;
426
- padding: 0;
427
- width: 140px;
428
- opacity: 1;
429
- box-sizing: border-box;
430
- height: 56px;
431
- flex: 0 0 140px;
432
- display: flex;
433
- flex-direction: column;
434
- align-items: center;
435
- justify-content: center;
436
- text-align: center;
437
-
438
- .date {
439
- font-family: Inter;
440
- font-size: 14px;
441
- font-weight: normal;
442
- line-height: 17px;
443
- height: 17px;
444
- opacity: 1;
445
- display: block;
446
- letter-spacing: 0px;
447
- font-feature-settings: "kern" on;
448
- color: #313131;
449
- width: auto;
450
- text-align: center;
451
- }
452
-
453
- .weekday {
454
- font-family: Inter;
455
- font-size: 18px;
456
- font-weight: bold;
457
- line-height: 17px;
458
- display: block;
459
- letter-spacing: 0px;
460
- font-feature-settings: "kern" on;
461
- color: #313131;
462
- margin: 0 !important;
463
- width: auto;
464
- text-align: center;
465
- }
466
-
467
- .date-item.ant-btn-primary .weekday,
468
- .date-item.ant-btn-primary .date {
469
- color: #ffffff !important;
470
- }
471
- }
472
-
473
- :deep(.ant-card-body) {
474
- padding: 16px 8px 0px;
475
- }
476
- }
477
- </style>
1
+ <template>
2
+ <!-- 时间轴主容器 -->
3
+ <div class="x-timeline" :class="wrapperClassObject">
4
+ <!-- 时间轴导航栏 -->
5
+ <div class="x-timeline-nav">
6
+ <!-- 导航按钮:前一周、前一天 -->
7
+ <a-button type="link" @click="goToPrevWeek">
8
+ <a-icon type="vertical-right"/>
9
+ <span v-if="config?.prevWeekText !== false">{{ config?.prevWeekText || '前一周' }}</span>
10
+ </a-button>
11
+ <a-button type="link" @click="goToPrevDay">
12
+ <a-icon type="left"/>
13
+ <span v-if="config?.prevDayText !== false">{{ config?.prevDayText || '前一天' }}</span>
14
+ </a-button>
15
+ <!-- 日期显示区域 -->
16
+ <div class="timeline-dates">
17
+ <div
18
+ v-for="(date, index) in displayDates"
19
+ :key="index"
20
+ class="date-item"
21
+ :class="{
22
+ 'ant-btn-primary': isCurrentDate(date),
23
+ 'date-weekend': isWeekend(date),
24
+ 'ant-btn-disabled': isDisabled(date)
25
+ }"
26
+ @click="selectDate(date)"
27
+ >
28
+ <div class="weekday">{{ getWeekDay(date) }}</div>
29
+ <div class="date">{{ formatDate(date) }}</div>
30
+ </div>
31
+ </div>
32
+ <!-- 导航按钮:后一天、后一周 -->
33
+ <a-button type="link" @click="goToNextDay">
34
+ <span v-if="config?.nextDayText !== false">{{ config?.nextDayText || '后一天' }}</span>
35
+ <a-icon type="right"/>
36
+ </a-button>
37
+ <a-button type="link" @click="goToNextWeek">
38
+ <span v-if="config?.nextWeekText !== false">{{ config?.nextWeekText || '后一周' }}</span>
39
+ <a-icon type="vertical-left"/>
40
+ </a-button>
41
+ </div>
42
+ </div>
43
+ </template>
44
+
45
+ <script>
46
+ import moment from 'moment'
47
+ import { getConfigByName, runLogic } from '@vue2-client/services/api/common'
48
+
49
+ // 设置 moment 为中文语言环境
50
+ moment.locale('zh-cn')
51
+
52
+ export default {
53
+ name: 'XTimeline',
54
+ components: {},
55
+ props: {
56
+ // 当前选中日期,默认为空(不选中)
57
+ modelValue: {
58
+ type: String,
59
+ default: ''
60
+ },
61
+ // 配置参数名称,用于获取时间轴配置
62
+ queryParamsName: {
63
+ type: String,
64
+ default: ''
65
+ }
66
+ },
67
+
68
+ // 定义组件事件
69
+ emits: ['update:modelValue', 'change', 'prev-week', 'next-week', 'prev-day', 'next-day', 'init'],
70
+
71
+ data () {
72
+ return {
73
+ currentDate: this.modelValue, // 当前选中日期
74
+ baseDate: moment().format('YYYY-MM-DD'), // 基准日期,默认今天,用于计算显示范围
75
+ config: null,
76
+ disabledDates: [] // 禁用日期列表
77
+ }
78
+ },
79
+ computed: {
80
+ // 动态样式开关(与 XHDescriptions 思路一致):布尔开关 + size 派生类
81
+ wrapperClassObject () {
82
+ const attrs = this.$attrs || {}
83
+ const classes = {}
84
+
85
+ const booleanStyleKeys = [
86
+ 'compact',
87
+ 'bordered',
88
+ 'highlight-weekend',
89
+ 'dark-theme',
90
+ 'style1'
91
+ ]
92
+ booleanStyleKeys.forEach(key => {
93
+ const val = attrs[key]
94
+ const truthy = val === true || val === '' || val === 'true'
95
+ if (truthy) classes[`xtimeline-${key}`] = true
96
+ })
97
+ const size = attrs.size
98
+ if (size && typeof size === 'string') classes[`xtimeline-size-${size}`] = true
99
+ return classes
100
+ },
101
+ // 计算需要显示的日期范围,固定显示周一到周日
102
+ displayDates () {
103
+ const dates = []
104
+ // 计算当前日期所在周的周一
105
+ const currentDay = moment(this.baseDate)
106
+ const dayOfWeek = currentDay.day() || 7 // 获取星期几,将周日的0转换为7
107
+ const mondayOfWeek = currentDay.clone().subtract(dayOfWeek - 1, 'day') // 减去相应的天数得到周一
108
+
109
+ // 从周一开始,生成一周的日期
110
+ dates.push(mondayOfWeek.format('YYYY-MM-DD')) // 周一
111
+ for (let i = 1; i <= 6; i++) {
112
+ dates.push(mondayOfWeek.clone().add(i, 'day').format('YYYY-MM-DD'))
113
+ }
114
+
115
+ return dates
116
+ }
117
+ },
118
+
119
+ watch: {
120
+ // 监听外部传入的选中日期变化
121
+ modelValue: {
122
+ handler (newVal) {
123
+ this.currentDate = newVal
124
+ if (newVal) {
125
+ this.baseDate = newVal
126
+ }
127
+ },
128
+ immediate: true
129
+ },
130
+ // 监听配置参数名称变化
131
+ queryParamsName: {
132
+ handler (newValue) {
133
+ this.getData(newValue)
134
+ },
135
+ immediate: true
136
+ }
137
+ },
138
+
139
+ created () {
140
+ // 组件创建时获取配置
141
+ this.getData(this.queryParamsName)
142
+ },
143
+
144
+ methods: {
145
+ // 获取时间轴配置数据
146
+ async getData (data) {
147
+ getConfigByName(data, 'af-his', res => {
148
+ this.config = res
149
+ // 触发初始化事件,传递配置和默认日期
150
+ this.$emit('init', this.baseDate)
151
+ if (res.defaultValue) {
152
+ // 如果有默认值,则设置当前选中日期和基准日期
153
+ this.currentDate = res.defaultValue
154
+ this.baseDate = res.defaultValue
155
+ this.$emit('update:modelValue', res.defaultValue)
156
+ } else {
157
+ // 如果没有默认值,则设置今天日期为基准日期
158
+ this.modelValue = this.baseDate
159
+ }
160
+
161
+ // 执行配置中指定的业务逻辑
162
+ if (res.logicName) {
163
+ runLogic(res.logicName, res.parameter, 'af-his').then(result => {
164
+ if (result) {
165
+ this.handleLogicResult(result)
166
+ }
167
+ })
168
+ }
169
+ })
170
+ },
171
+
172
+ // 处理业务逻辑返回结果
173
+ handleLogicResult (result) {
174
+ if (result.disabledDates) {
175
+ this.disabledDates = result.disabledDates
176
+ }
177
+ if (result.currentDate) {
178
+ this.currentDate = result.currentDate
179
+ this.baseDate = result.currentDate
180
+ this.$emit('update:modelValue', result.currentDate)
181
+ }
182
+ },
183
+
184
+ // 格式化日期显示
185
+ formatDate (date) {
186
+ const format = this.config?.dateFormat || 'MM/DD'
187
+ return moment(date).format(format)
188
+ },
189
+
190
+ // 获取星期显示
191
+ getWeekDay (date) {
192
+ const format = this.config?.weekFormat || '周dd'
193
+ return moment(date).format(format)
194
+ },
195
+
196
+ // 判断是否为周末
197
+ isWeekend (date) {
198
+ if (!this.config?.highlightWeekend) return false
199
+ const day = moment(date).day()
200
+ return day === 0 || day === 6
201
+ },
202
+
203
+ // 判断日期是否禁用
204
+ isDisabled (date) {
205
+ if (this.config?.minDate && moment(date).isBefore(this.config.minDate)) {
206
+ return true
207
+ }
208
+ if (this.config?.maxDate && moment(date).isAfter(this.config.maxDate)) {
209
+ return true
210
+ }
211
+ return this.disabledDates.includes(date)
212
+ },
213
+
214
+ // 判断是否为当前选中日期
215
+ isCurrentDate (date) {
216
+ if (!this.currentDate) return false
217
+ return moment(date).format('YYYY-MM-DD') === moment(this.currentDate).format('YYYY-MM-DD')
218
+ },
219
+
220
+ // 选择日期
221
+ selectDate (date) {
222
+ if (this.isDisabled(date)) return
223
+ this.currentDate = date
224
+ this.$emit('update:modelValue', date)
225
+ this.$emit('change', date)
226
+ },
227
+
228
+ // 前一天
229
+ goToPrevDay () {
230
+ const newDate = moment(this.currentDate).subtract(1, 'day')
231
+ if (this.config?.minDate && newDate.isBefore(this.config.minDate)) {
232
+ return
233
+ }
234
+ // 更新基准日期
235
+ this.baseDate = newDate.format('YYYY-MM-DD')
236
+ // 同时选中新的日期
237
+ this.currentDate = this.baseDate
238
+ this.$emit('update:modelValue', this.currentDate)
239
+ // 触发前一天事件
240
+ this.$emit('prev-day', this.baseDate)
241
+ // 触发变更事件
242
+ this.$emit('change', this.currentDate)
243
+ },
244
+
245
+ // 后一天
246
+ goToNextDay () {
247
+ const newDate = moment(this.currentDate).add(1, 'day')
248
+ if (this.config?.maxDate && newDate.isAfter(this.config.maxDate)) {
249
+ return
250
+ }
251
+ // 更新基准日期
252
+ this.baseDate = newDate.format('YYYY-MM-DD')
253
+ // 同时选中新的日期
254
+ this.currentDate = this.baseDate
255
+ this.$emit('update:modelValue', this.currentDate)
256
+ // 触发后一天事件
257
+ this.$emit('next-day', this.baseDate)
258
+ // 触发变更事件
259
+ this.$emit('change', this.currentDate)
260
+ },
261
+
262
+ // 前一周
263
+ goToPrevWeek () {
264
+ // 计算当前日期所在周的周一
265
+ const currentDay = moment(this.baseDate)
266
+ const dayOfWeek = currentDay.day() || 7 // 获取星期几,将周日的0转换为7
267
+ const mondayOfWeek = currentDay.clone().subtract(dayOfWeek - 1, 'day') // 减去相应的天数得到周一
268
+
269
+ // 前一周的周一
270
+ const newDate = mondayOfWeek.subtract(7, 'day')
271
+
272
+ if (this.config?.minDate && newDate.isBefore(this.config.minDate)) {
273
+ return
274
+ }
275
+ this.baseDate = newDate.format('YYYY-MM-DD')
276
+ this.$emit('prev-week', this.baseDate)
277
+ },
278
+
279
+ // 后一周
280
+ goToNextWeek () {
281
+ // 计算当前日期所在周的周一
282
+ const currentDay = moment(this.baseDate)
283
+ const dayOfWeek = currentDay.day() || 7 // 获取星期几,将周日的0转换为7
284
+ const mondayOfWeek = currentDay.clone().subtract(dayOfWeek - 1, 'day') // 减去相应的天数得到周一
285
+ // 后一周的周一
286
+ const newDate = mondayOfWeek.add(7, 'day')
287
+ if (this.config?.maxDate && newDate.isAfter(this.config.maxDate)) {
288
+ return
289
+ }
290
+ this.baseDate = newDate.format('YYYY-MM-DD')
291
+ this.$emit('next-week', this.baseDate)
292
+ }
293
+ }
294
+ }
295
+ </script>
296
+
297
+ <style scoped lang="less">
298
+ .x-timeline {
299
+ width: 100%;
300
+ border: 1px solid #f0f0f0;
301
+ border-radius: 2px;
302
+ }
303
+
304
+ .x-timeline-nav {
305
+ display: flex;
306
+ align-items: center;
307
+ padding: 16px;
308
+ border-bottom: 1px solid #f0f0f0;
309
+ width: 100%;
310
+ justify-content: space-between;
311
+ }
312
+
313
+ .timeline-dates {
314
+ display: flex;
315
+ flex: 1;
316
+ justify-content: space-around;
317
+ align-items: center;
318
+ margin: 0 16px;
319
+ }
320
+
321
+ .date-item {
322
+ padding: 8px 12px;
323
+ text-align: center;
324
+ cursor: pointer;
325
+ border-radius: 2px;
326
+ flex: 1;
327
+ margin: 0 8px;
328
+ transition: all 0.3s;
329
+ }
330
+
331
+ /* 非选中日期的悬浮效果 */
332
+ .date-item:hover:not(.ant-btn-disabled):not(.ant-btn-primary) {
333
+ background: #e6f7ff;
334
+ color: #1890ff;
335
+ }
336
+
337
+ /* 选中日期不需要悬浮效果 */
338
+ .date-item.ant-btn-primary:hover {
339
+ background: #1890ff;
340
+ }
341
+
342
+ .date-item.ant-btn-primary {
343
+ background: #0075FE !important;
344
+ color: #fff;
345
+ }
346
+
347
+ .date-item.ant-btn-primary .weekday,
348
+ .date-item.ant-btn-primary .date {
349
+ color: #ffffff !important;
350
+ }
351
+
352
+ /* 非选中日期悬浮时的字体颜色 */
353
+ .date-item:hover:not(.ant-btn-disabled):not(.ant-btn-primary) .weekday,
354
+ .date-item:hover:not(.ant-btn-disabled):not(.ant-btn-primary) .date {
355
+ color: #1890ff;
356
+ }
357
+
358
+ .date-item.date-weekend:not(.ant-btn-disabled):not(.ant-btn-primary) {
359
+ color: #ff4d4f;
360
+ }
361
+
362
+ .date-item.ant-btn-disabled {
363
+ color: rgba(0, 0, 0, 0.25);
364
+ background: #f5f5f5;
365
+ cursor: not-allowed;
366
+ }
367
+
368
+ .weekday {
369
+ font-size: 12px;
370
+ margin-bottom: 8px;
371
+ color: rgba(0, 0, 0, 0.45);
372
+ }
373
+
374
+ .date {
375
+ font-size: 14px;
376
+ color: rgba(0, 0, 0, 0.85);
377
+ }
378
+
379
+ /* Style1 样式配置 */
380
+ .xtimeline-style1 {
381
+ padding: 0px 0px;
382
+
383
+ .x-timeline-nav {
384
+ padding: 0px;
385
+ width: 140px;
386
+ height: 56px;
387
+
388
+ .timeline-dates {
389
+ margin: 0px;
390
+ width: 980px;
391
+
392
+ line-height: normal;
393
+ font-weight: 700;
394
+ letter-spacing: 0em;
395
+
396
+ }
397
+
398
+ .ant-btn {
399
+ border-radius: 6px;
400
+ border: 1px solid #CDCFD4;
401
+ font-weight: bold;
402
+ letter-spacing: 0em;
403
+ font-size: 16px;
404
+ font-family: "Source Han Sans";
405
+ line-height: normal;
406
+ opacity: 1;
407
+ box-sizing: border-box;
408
+ height: 56px;
409
+ width: 112px;
410
+ min-width: 112px;
411
+ background: #FFFFFF;
412
+ display: flex;
413
+ align-items: center;
414
+ justify-content: center;
415
+ }
416
+
417
+ .ant-btn .anticon {
418
+ color: #94979E;
419
+ }
420
+ }
421
+
422
+ .date-item {
423
+ border-radius: 6px;
424
+ border: 1px solid #CDCFD4;
425
+ margin: 0px;
426
+ padding: 0;
427
+ width: 140px;
428
+ opacity: 1;
429
+ box-sizing: border-box;
430
+ height: 56px;
431
+ flex: 0 0 140px;
432
+ display: flex;
433
+ flex-direction: column;
434
+ align-items: center;
435
+ justify-content: center;
436
+ text-align: center;
437
+
438
+ .date {
439
+ font-family: Inter;
440
+ font-size: 14px;
441
+ font-weight: normal;
442
+ line-height: 17px;
443
+ height: 17px;
444
+ opacity: 1;
445
+ display: block;
446
+ letter-spacing: 0px;
447
+ font-feature-settings: "kern" on;
448
+ color: #313131;
449
+ width: auto;
450
+ text-align: center;
451
+ }
452
+
453
+ .weekday {
454
+ font-family: Inter;
455
+ font-size: 18px;
456
+ font-weight: bold;
457
+ line-height: 17px;
458
+ display: block;
459
+ letter-spacing: 0px;
460
+ font-feature-settings: "kern" on;
461
+ color: #313131;
462
+ margin: 0 !important;
463
+ width: auto;
464
+ text-align: center;
465
+ }
466
+
467
+ .date-item.ant-btn-primary .weekday,
468
+ .date-item.ant-btn-primary .date {
469
+ color: #ffffff !important;
470
+ }
471
+ }
472
+
473
+ :deep(.ant-card-body) {
474
+ padding: 16px 8px 0px;
475
+ }
476
+ }
477
+ </style>