vue2-client 1.16.88 → 1.16.90

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 (344) 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 +444 -444
  82. package/src/base-client/components/common/HIS/HForm/HForm.vue +361 -361
  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/index.md +146 -146
  110. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +304 -304
  111. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  112. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  113. package/src/base-client/components/common/XAddReport/index.js +3 -3
  114. package/src/base-client/components/common/XAddReport/index.md +56 -56
  115. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  116. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  117. package/src/base-client/components/common/XButtons/index.js +3 -3
  118. package/src/base-client/components/common/XButtons/index.md +61 -61
  119. package/src/base-client/components/common/XCalendar/XCalendar.vue +4 -4
  120. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  121. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  122. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  123. package/src/base-client/components/common/XCollapse/XCollapse.vue +833 -833
  124. package/src/base-client/components/common/XDataCard/index.js +3 -3
  125. package/src/base-client/components/common/XDataCard/index.md +1 -1
  126. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  127. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  128. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  129. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  130. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  131. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  132. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  133. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  134. package/src/base-client/components/common/XForm/XFormItem.vue +17 -1
  135. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  136. package/src/base-client/components/common/XForm/index.md +178 -178
  137. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  138. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  139. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  140. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  141. package/src/base-client/components/common/XFormTable/demo.vue +2 -2
  142. package/src/base-client/components/common/XFormTable/index.md +92 -92
  143. package/src/base-client/components/common/XInput/XInput.vue +205 -205
  144. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  145. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  146. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  147. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  148. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  149. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  150. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  151. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  152. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  153. package/src/base-client/components/common/XPrint/index.vue +97 -97
  154. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  155. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  156. package/src/base-client/components/common/XReport/index.js +3 -3
  157. package/src/base-client/components/common/XReport/print.js +186 -186
  158. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  159. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  160. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  161. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  162. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  163. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  164. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  165. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  166. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  167. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  168. package/src/base-client/components/common/XStepView/index.js +3 -3
  169. package/src/base-client/components/common/XStepView/index.md +31 -31
  170. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  171. package/src/base-client/components/common/XTab/index.js +3 -3
  172. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  173. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  174. package/src/base-client/components/common/XTable/XTableWrapper.vue +28 -9
  175. package/src/base-client/components/common/XTable/index.md +255 -255
  176. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  177. package/src/base-client/components/common/XTimeline/XTimeline.vue +477 -477
  178. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  179. package/src/base-client/components/common/XTree/index.js +3 -3
  180. package/src/base-client/components/common/XTree/index.md +36 -36
  181. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  182. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  183. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  184. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  185. package/src/base-client/components/his/XCharge/XChargeDemo.vue +145 -145
  186. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +705 -705
  187. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  188. package/src/base-client/components/his/XList/XList.vue +829 -829
  189. package/src/base-client/components/his/XRadio/XRadio.vue +469 -469
  190. package/src/base-client/components/his/XSimpleTable/XSimpleTable.vue +159 -159
  191. package/src/base-client/components/his/XTimeSelect/XTimeSelect.vue +383 -383
  192. package/src/base-client/components/his/XTitle/XTitle.vue +274 -274
  193. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +341 -341
  194. package/src/base-client/components/his/threeTestOrders/editor.vue +113 -113
  195. package/src/base-client/components/index.js +51 -51
  196. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  197. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  198. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  199. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  200. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  201. package/src/base-client/plugins/Config.js +19 -19
  202. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  203. package/src/base-client/plugins/Recording.js +258 -258
  204. package/src/base-client/plugins/index.js +23 -23
  205. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  206. package/src/components/Charts/Bar.vue +62 -62
  207. package/src/components/Charts/ChartCard.vue +134 -134
  208. package/src/components/Charts/Liquid.vue +67 -67
  209. package/src/components/Charts/MiniArea.vue +39 -39
  210. package/src/components/Charts/MiniBar.vue +39 -39
  211. package/src/components/Charts/MiniProgress.vue +75 -75
  212. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  213. package/src/components/Charts/Radar.vue +68 -68
  214. package/src/components/Charts/RankList.vue +77 -77
  215. package/src/components/Charts/TagCloud.vue +113 -113
  216. package/src/components/Charts/TransferBar.vue +64 -64
  217. package/src/components/Charts/Trend.vue +82 -82
  218. package/src/components/Charts/chart.less +12 -12
  219. package/src/components/Charts/smooth.area.less +13 -13
  220. package/src/components/CodeMirror/inedx.vue +118 -118
  221. package/src/components/CodeMirror/setting.js +40 -40
  222. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  223. package/src/components/NumberInfo/index.js +3 -3
  224. package/src/components/NumberInfo/index.less +54 -54
  225. package/src/components/NumberInfo/index.md +43 -43
  226. package/src/components/card/ChartCard.vue +79 -79
  227. package/src/components/chart/Bar.vue +60 -60
  228. package/src/components/chart/MiniArea.vue +67 -67
  229. package/src/components/chart/MiniBar.vue +59 -59
  230. package/src/components/chart/MiniProgress.vue +57 -57
  231. package/src/components/chart/Radar.vue +80 -80
  232. package/src/components/chart/RankingList.vue +60 -60
  233. package/src/components/chart/Trend.vue +79 -79
  234. package/src/components/chart/index.less +9 -9
  235. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  236. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  237. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  238. package/src/components/checkbox/index.js +9 -9
  239. package/src/components/exception/ExceptionPage.vue +70 -70
  240. package/src/components/g2Charts/constants.js +202 -202
  241. package/src/components/g2Charts/demo.vue +808 -808
  242. package/src/components/g2Charts/designer.vue +228 -228
  243. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  244. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  245. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  246. package/src/components/g2Charts/index.vue +397 -397
  247. package/src/components/index.js +36 -36
  248. package/src/components/input/IInput.vue +66 -66
  249. package/src/components/menu/SideMenu.vue +75 -75
  250. package/src/components/menu/menu.js +273 -273
  251. package/src/components/setting/Setting.vue +234 -234
  252. package/src/components/tool/AStepItem.vue +60 -60
  253. package/src/config/CreateQueryConfig.js +325 -325
  254. package/src/config/default/antd.config.js +89 -89
  255. package/src/config/default/setting.config.js +55 -55
  256. package/src/font-style/font.css +60 -60
  257. package/src/layouts/CommonLayout.vue +56 -56
  258. package/src/layouts/PageLayout.vue +151 -151
  259. package/src/layouts/SinglePageView.vue +136 -136
  260. package/src/layouts/header/AdminHeader.vue +132 -132
  261. package/src/layouts/header/HeaderNotice.vue +177 -177
  262. package/src/layouts/header/InstitutionDetail.vue +181 -181
  263. package/src/layouts/tabs/TabsHead.vue +189 -189
  264. package/src/lib.js +1 -1
  265. package/src/mock/extend/index.js +84 -84
  266. package/src/mock/goods/index.js +108 -108
  267. package/src/pages/DefaultExample/index.vue +77 -77
  268. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  269. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  270. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  271. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  272. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  273. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  274. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  275. package/src/pages/DynamicStatistics/index.vue +282 -282
  276. package/src/pages/Example/childIndex.vue +15 -15
  277. package/src/pages/Example/index.vue +30 -30
  278. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  279. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  280. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  281. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  282. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  283. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  284. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  285. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  286. package/src/pages/Recording/index.vue +77 -77
  287. package/src/pages/ServiceReview/index.vue +284 -284
  288. package/src/pages/SubExample/index.vue +26 -26
  289. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  290. package/src/pages/XReportView/index.vue +64 -64
  291. package/src/pages/XTreeOneProExample/index.vue +67 -67
  292. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  293. package/src/pages/login/Login.vue +379 -379
  294. package/src/pages/login/LoginV3.vue +389 -389
  295. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  296. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  297. package/src/pages/report/ReportTable.js +124 -124
  298. package/src/pages/resourceManage/orgListManage.vue +98 -98
  299. package/src/pages/system/dictionary/index.vue +44 -44
  300. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  301. package/src/pages/system/monitor/operLog/index.vue +37 -37
  302. package/src/pages/system/settings/modifyPassword.vue +117 -117
  303. package/src/pages/system/ticket/index.vue +480 -480
  304. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  305. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  306. package/src/pages/userInfoDetailManage/ExceptionRecordQuery/index.vue +45 -45
  307. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  308. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  309. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  310. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  311. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  312. package/src/plugins/EventLogPlugin.js +33 -33
  313. package/src/plugins/FindParentsData.js +17 -17
  314. package/src/services/DataModel.js +30 -30
  315. package/src/services/LodopFuncs.js +137 -137
  316. package/src/services/api/TicketDetailsViewApi.js +46 -46
  317. package/src/services/api/cas.js +79 -79
  318. package/src/services/api/entity.js +18 -18
  319. package/src/services/api/index.js +17 -17
  320. package/src/store/modules/account.js +115 -115
  321. package/src/store/modules/index.js +5 -5
  322. package/src/store/modules/lowCode.js +33 -33
  323. package/src/store/modules/setting.js +119 -119
  324. package/src/theme/default/style.less +58 -58
  325. package/src/utils/authority-utils.js +85 -85
  326. package/src/utils/errorCode.js +6 -6
  327. package/src/utils/formatter.js +74 -74
  328. package/src/utils/htmlToPDF.js +108 -108
  329. package/src/utils/htmlToPDFApi.js +5 -5
  330. package/src/utils/login.js +188 -188
  331. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  332. package/src/utils/lowcode/lowcodeLog.js +29 -29
  333. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  334. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  335. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  336. package/src/utils/map-utils.js +47 -47
  337. package/src/utils/reg.js +95 -95
  338. package/src/utils/runEvalFunction.js +14 -14
  339. package/src/utils/theme-color-replacer-extend.js +92 -92
  340. package/src/utils/util.js +329 -329
  341. package/src/utils/waterMark.js +31 -31
  342. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
  343. package/src-base-client/components/common/HIS/HForm/HForm.vue +0 -347
  344. 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>