vue2-client 1.14.54 → 1.14.56

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 (374) hide show
  1. package/.cursorrules +19 -19
  2. package/.env.gaslink +19 -19
  3. package/.env.his +19 -19
  4. package/.env.liuli +19 -19
  5. package/.env.message +19 -0
  6. package/.env.scada +19 -19
  7. package/.eslintrc.js +90 -90
  8. package/CHANGELOG.md +824 -824
  9. package/Components.md +60 -60
  10. package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +45 -46
  11. package/docs/LowCode/lowcode.md +155 -155
  12. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  13. package/docs/index.md +30 -30
  14. package/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +1 -2
  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 +2 -1
  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/public/index.html +27 -27
  56. package/src/ReportView.js +19 -19
  57. package/src/assets/img/querySlotDemo.svg +15 -15
  58. package/src/assets/svg/badtwo.svg +1 -1
  59. package/src/assets/svg/goodtwo.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/AMisRender/index.js +3 -3
  63. package/src/base-client/components/common/AMisRender/index.vue +263 -263
  64. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  65. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  66. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  67. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  68. package/src/base-client/components/common/CitySelect/index.js +3 -3
  69. package/src/base-client/components/common/CitySelect/index.md +109 -109
  70. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  71. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  72. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  73. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  74. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  75. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  76. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  77. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  78. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  79. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  80. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  81. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  82. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  83. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  84. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  85. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  86. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  87. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  88. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  89. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  90. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  91. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  92. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  93. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  94. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  95. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  96. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  97. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  98. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  99. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  100. package/src/base-client/components/common/Recording/index.js +3 -3
  101. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  102. package/src/base-client/components/common/Tree/index.js +2 -2
  103. package/src/base-client/components/common/Upload/index.js +3 -3
  104. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  105. package/src/base-client/components/common/XAddNativeForm/demo.vue +2 -5
  106. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  107. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  108. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  109. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  110. package/src/base-client/components/common/XAddReport/index.js +3 -3
  111. package/src/base-client/components/common/XAddReport/index.md +56 -56
  112. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  113. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  114. package/src/base-client/components/common/XButtons/XButtons.vue +71 -71
  115. package/src/base-client/components/common/XButtons/index.js +3 -3
  116. package/src/base-client/components/common/XButtons/index.md +61 -61
  117. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  118. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  119. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  120. package/src/base-client/components/common/XConversation/XConversation.vue +261 -45
  121. package/src/base-client/components/common/XDataCard/index.js +3 -3
  122. package/src/base-client/components/common/XDataCard/index.md +1 -1
  123. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  124. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  125. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  126. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  127. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  128. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  129. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  130. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  131. package/src/base-client/components/common/XForm/XFormItem.vue +22 -1
  132. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  133. package/src/base-client/components/common/XForm/index.md +178 -178
  134. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  135. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  136. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  137. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  138. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  139. package/src/base-client/components/common/XFormTable/XFormTable.vue +6 -0
  140. package/src/base-client/components/common/XFormTable/demo.vue +18 -8
  141. package/src/base-client/components/common/XFormTable/index.md +92 -92
  142. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +167 -167
  143. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  144. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  145. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  146. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  147. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  148. package/src/base-client/components/common/XPrint/PrintBill.vue +302 -302
  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/index.md +44 -44
  158. package/src/base-client/components/common/XReport/print.js +186 -186
  159. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  160. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  161. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  162. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  163. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  164. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  165. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  166. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  167. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  168. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  169. package/src/base-client/components/common/XStepView/index.js +3 -3
  170. package/src/base-client/components/common/XStepView/index.md +31 -31
  171. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  172. package/src/base-client/components/common/XTab/index.js +3 -3
  173. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  174. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  175. package/src/base-client/components/common/XTable/XTable.vue +169 -26
  176. package/src/base-client/components/common/XTable/index.md +255 -255
  177. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  178. package/src/base-client/components/common/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/XHisEditor/index.js +3 -3
  186. package/src/base-client/components/his/XTextCard/XTextCard.vue +207 -207
  187. package/src/base-client/components/his/XTreeRows/TreeNode.vue +100 -100
  188. package/src/base-client/components/his/XTreeRows/XTreeRows.vue +197 -197
  189. package/src/base-client/components/his/threeTestOrders/editor.vue +111 -111
  190. package/src/base-client/components/his/threeTestOrders/textBox.vue +463 -463
  191. package/src/base-client/components/index.js +51 -51
  192. package/src/base-client/components/layout/XPageView/XErrorView.vue +11 -11
  193. package/src/base-client/components/layout/XPageView/XPageView.vue +155 -155
  194. package/src/base-client/components/layout/XPageView/index.js +3 -3
  195. package/src/base-client/components/layout/XPageView/index.md +38 -38
  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/HeightScanner/index.vue +571 -571
  223. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  224. package/src/components/NumberInfo/index.js +3 -3
  225. package/src/components/NumberInfo/index.less +54 -54
  226. package/src/components/NumberInfo/index.md +43 -43
  227. package/src/components/card/ChartCard.vue +79 -79
  228. package/src/components/chart/Bar.vue +60 -60
  229. package/src/components/chart/MiniArea.vue +67 -67
  230. package/src/components/chart/MiniBar.vue +59 -59
  231. package/src/components/chart/MiniProgress.vue +57 -57
  232. package/src/components/chart/Radar.vue +80 -80
  233. package/src/components/chart/RankingList.vue +60 -60
  234. package/src/components/chart/Trend.vue +79 -79
  235. package/src/components/chart/index.less +9 -9
  236. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  237. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  238. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  239. package/src/components/checkbox/index.js +9 -9
  240. package/src/components/exception/ExceptionPage.vue +70 -70
  241. package/src/components/g2Charts/constants.js +202 -202
  242. package/src/components/g2Charts/demo.vue +808 -808
  243. package/src/components/g2Charts/designer.vue +228 -228
  244. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  245. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  246. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  247. package/src/components/g2Charts/index.vue +397 -397
  248. package/src/components/index.js +36 -36
  249. package/src/components/input/IInput.vue +66 -66
  250. package/src/components/menu/SideMenu.vue +75 -75
  251. package/src/components/menu/menu.js +273 -273
  252. package/src/components/setting/Setting.vue +234 -234
  253. package/src/components/tool/AStepItem.vue +60 -60
  254. package/src/config/CreateQueryConfig.js +325 -325
  255. package/src/config/default/antd.config.js +89 -89
  256. package/src/config/default/setting.config.js +55 -55
  257. package/src/font-style/font.css +4 -4
  258. package/src/layouts/CommonLayout.vue +56 -56
  259. package/src/layouts/PageLayout.vue +151 -151
  260. package/src/layouts/SinglePageView.vue +136 -136
  261. package/src/layouts/header/AdminHeader.vue +132 -132
  262. package/src/layouts/header/HeaderNotice.vue +177 -177
  263. package/src/layouts/header/InstitutionDetail.vue +181 -181
  264. package/src/layouts/tabs/TabsHead.vue +189 -189
  265. package/src/layouts/tabs/TabsView.vue +389 -389
  266. package/src/lib.js +1 -1
  267. package/src/main.js +34 -34
  268. package/src/mock/extend/index.js +84 -84
  269. package/src/mock/goods/index.js +108 -108
  270. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  271. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  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/WorkFlowBaseInformationDetails.vue +276 -276
  296. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +975 -975
  297. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +233 -233
  298. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +261 -261
  299. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +248 -248
  300. package/src/pages/XPageViewExample/index.vue +38 -38
  301. package/src/pages/XReportView/index.vue +64 -64
  302. package/src/pages/XTreeOneProExample/index.vue +67 -67
  303. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  304. package/src/pages/login/Login.vue +378 -378
  305. package/src/pages/login/LoginV3.vue +389 -389
  306. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  307. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  308. package/src/pages/report/ReportTable.js +124 -124
  309. package/src/pages/resourceManage/orgListManage.vue +98 -98
  310. package/src/pages/system/dictionary/index.vue +44 -44
  311. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  312. package/src/pages/system/monitor/operLog/index.vue +37 -37
  313. package/src/pages/system/settings/modifyPassword.vue +117 -117
  314. package/src/pages/system/ticket/index.vue +480 -480
  315. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  316. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  317. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  318. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  319. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  320. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  321. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  322. package/src/plugins/EventLogPlugin.js +33 -33
  323. package/src/plugins/FindParentsData.js +17 -17
  324. package/src/router/async/config.async.js +35 -35
  325. package/src/router/async/router.map.js +2 -2
  326. package/src/router/index.js +27 -27
  327. package/src/router.js +19 -19
  328. package/src/services/DataModel.js +30 -30
  329. package/src/services/LodopFuncs.js +137 -137
  330. package/src/services/api/TicketDetailsViewApi.js +46 -46
  331. package/src/services/api/cas.js +79 -79
  332. package/src/services/api/common.js +346 -346
  333. package/src/services/api/entity.js +18 -18
  334. package/src/services/api/index.js +17 -17
  335. package/src/services/api/restTools.js +98 -27
  336. package/src/services/api/workFlow.js +61 -61
  337. package/src/store/modules/account.js +115 -115
  338. package/src/store/modules/index.js +5 -5
  339. package/src/store/modules/lowCode.js +33 -33
  340. package/src/store/modules/setting.js +119 -119
  341. package/src/theme/default/style.less +58 -58
  342. package/src/theme/global.less +159 -159
  343. package/src/utils/authority-utils.js +85 -85
  344. package/src/utils/errorCode.js +6 -6
  345. package/src/utils/formatter.js +74 -74
  346. package/src/utils/htmlToPDF.js +108 -108
  347. package/src/utils/htmlToPDFApi.js +5 -5
  348. package/src/utils/login.js +188 -188
  349. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  350. package/src/utils/lowcode/lowcodeLog.js +29 -29
  351. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  352. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  353. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  354. package/src/utils/map-utils.js +47 -47
  355. package/src/utils/reg.js +95 -95
  356. package/src/utils/runEvalFunction.js +14 -14
  357. package/src/utils/theme-color-replacer-extend.js +92 -92
  358. package/src/utils/util.js +329 -329
  359. package/src/utils/waterMark.js +31 -31
  360. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
  361. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527173925.vue +0 -509
  362. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174316.vue +0 -524
  363. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174419.vue +0 -524
  364. package/.history/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox_20250527174422.vue +0 -524
  365. package/.history/src/base-client/components/common/XForm/XFormItem_20250508134122.vue +0 -1320
  366. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171604.vue +0 -1332
  367. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171613.vue +0 -1331
  368. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171703.vue +0 -1331
  369. package/.history/src/base-client/components/common/XForm/XFormItem_20250527171720.vue +0 -1331
  370. package/.history/src/base-client/components/common/XForm/XFormItem_20250527174327.vue +0 -1339
  371. package/Users/objecrt/af-vue2-client/src/base-client/components/his/XShiftSchedule/XShiftSchedule.vue +0 -36
  372. package/src/base-client/components/TreeList/TreeList.vue +0 -91
  373. package/src/base-client/components/TreeList/TreeNode.vue +0 -81
  374. package/src/base-client/components/common/XCardSet/XTiltle.vue +0 -191
@@ -1,51 +1,51 @@
1
- <script>
2
- import { Ellipsis } from '@vue2-client/components'
3
- import { executeStrFunctionByContext } from '@vue2-client/utils/runEvalFunction'
4
- import { getConfigByNameAsync, runLogic } from '@vue2-client/services/api/common'
5
-
6
- export default {
7
- name: 'CustomFuncCel',
8
- methods: {
9
- runLogic,
10
- async fetchSlotValue () {
11
- try {
12
- let func = this.item.slotCustomFunction
13
- if (this.item.slotCustomFunction.startsWith('function')) {
14
- func = `async ${func}`
15
- }
16
- this.slotValueResult = await executeStrFunctionByContext(this, func, [this.text, this.record, this.localDataSource, this.index, runLogic, getConfigByNameAsync])
17
- this.loading = false
18
- } catch (error) {
19
- console.error('Error fetching slot value:', error)
20
- }
21
- }
22
- },
23
- mounted () {
24
- this.fetchSlotValue()
25
- },
26
- data: () => {
27
- return {
28
- slotValueResult: '',
29
- loading: true
30
- }
31
- },
32
- components: { Ellipsis },
33
- // eslint-disable-next-line
34
- props: ['item', 'text', 'record', 'index', 'localDataSource'],
35
- }
36
- </script>
37
-
38
- <template>
39
- <span>
40
- <template v-if="item.slotValue">
41
- <ellipsis :length="item.slotValue" tooltip>{{ loading ? text : slotValueResult }}</ellipsis>
42
- </template>
43
- <template v-else>
44
- {{ loading ? text : slotValueResult }}
45
- </template>
46
- </span>
47
- </template>
48
-
49
- <style scoped lang="less">
50
-
51
- </style>
1
+ <script>
2
+ import { Ellipsis } from '@vue2-client/components'
3
+ import { executeStrFunctionByContext } from '@vue2-client/utils/runEvalFunction'
4
+ import { getConfigByNameAsync, runLogic } from '@vue2-client/services/api/common'
5
+
6
+ export default {
7
+ name: 'CustomFuncCel',
8
+ methods: {
9
+ runLogic,
10
+ async fetchSlotValue () {
11
+ try {
12
+ let func = this.item.slotCustomFunction
13
+ if (this.item.slotCustomFunction.startsWith('function')) {
14
+ func = `async ${func}`
15
+ }
16
+ this.slotValueResult = await executeStrFunctionByContext(this, func, [this.text, this.record, this.localDataSource, this.index, runLogic, getConfigByNameAsync])
17
+ this.loading = false
18
+ } catch (error) {
19
+ console.error('Error fetching slot value:', error)
20
+ }
21
+ }
22
+ },
23
+ mounted () {
24
+ this.fetchSlotValue()
25
+ },
26
+ data: () => {
27
+ return {
28
+ slotValueResult: '',
29
+ loading: true
30
+ }
31
+ },
32
+ components: { Ellipsis },
33
+ // eslint-disable-next-line
34
+ props: ['item', 'text', 'record', 'index', 'localDataSource'],
35
+ }
36
+ </script>
37
+
38
+ <template>
39
+ <span>
40
+ <template v-if="item.slotValue">
41
+ <ellipsis :length="item.slotValue" tooltip>{{ loading ? text : slotValueResult }}</ellipsis>
42
+ </template>
43
+ <template v-else>
44
+ {{ loading ? text : slotValueResult }}
45
+ </template>
46
+ </span>
47
+ </template>
48
+
49
+ <style scoped lang="less">
50
+
51
+ </style>
@@ -1,161 +1,161 @@
1
- <template>
2
- <x-form-item
3
- v-if="isEditMode && getFromItem(item.dataIndex)"
4
- class="innerTable"
5
- :form="record"
6
- :attr="getFromItem(item.dataIndex)"
7
- :service-name="serviceName"
8
- mode="新增/修改"
9
- :env="env"
10
- :showLabel="false"
11
- />
12
- <!-- 序号列 -->
13
- <span v-else-if="item.slotType === 'index'">
14
- {{ index + 1 }}
15
- </span>
16
- <!-- 行链接 -->
17
- <span v-else-if="item.slotType === 'link'">
18
- <a @click="columnClick(item.dataIndex, text, record)">{{ text }}</a>
19
- </span>
20
- <!-- 文本溢出省略 -->
21
- <span v-else-if="item.slotType === 'ellipsis'">
22
- <ellipsis :length="item.slotValue" tooltip>{{ text === '' ? '--' : text }}</ellipsis>
23
- </span>
24
- <!-- 徽标 -->
25
- <span v-else-if="item.slotType === 'badge'">
26
- <x-badge
27
- :service-name="serviceName"
28
- :env="env"
29
- v-if="text !== null && text !== undefined"
30
- :badge-key="item.slotKeyMap"
31
- :value="text"
32
- />
33
- </span>
34
- <!-- 日期 -->
35
- <span v-else-if="item.slotType === 'date'">
36
- {{ format(text, 'yyyy-MM-dd') }}
37
- </span>
38
- <!-- 日期时间 -->
39
- <span v-else-if="item.slotType === 'dateTime'">
40
- {{ format(text, 'yyyy-MM-dd hh:mm:ss') }}
41
- </span>
42
- <!-- 两位小数 -->
43
- <span v-else-if="item.slotType === 'towDecimal'">
44
- {{ numberFormat(text, 2) }}
45
- </span>
46
- <!-- 四位小数 -->
47
- <span v-else-if="item.slotType === 'fourDecimal'">
48
- {{ numberFormat(text, 4) }}
49
- </span>
50
- <!-- 整数 -->
51
- <span v-else-if="item.slotType === 'int'">
52
- {{ numberFormat(text, 0) }}
53
- </span>
54
- <!-- 操作列 -->
55
- <span v-else-if="item.slotType === 'action'">
56
- <template v-if="item.actionArr && item.actionArr.length > 0">
57
- <a-dropdown>
58
- <a class="ant-dropdown-link" @click="e => e.preventDefault()">
59
- {{ item.scopedSlots?.customRender || item.slotValue }} <a-icon type="down"/>
60
- </a>
61
- <a-menu slot="overlay" style="min-width: 60px">
62
- <a-menu-item
63
- v-for="(action_item, actionIndex) in item.actionArr"
64
- :key="actionIndex"
65
- v-if="!action_item.customFunction || executeStrFunction(action_item.customFunction, [record, c_index])"
66
- >
67
- <a style="text-align: center" @click="action(record, item.dataIndex, action_item.func)">
68
- {{ action_item.text }}
69
- </a>
70
- </a-menu-item>
71
- </a-menu>
72
- </a-dropdown>
73
- </template>
74
- <template v-if="!item.actionArr || item.actionArr.length === 0">
75
- <a @click="action(record, item.dataIndex)">{{ item.slotValue }}</a>
76
- </template>
77
- </span>
78
- </template>
79
- <!--表格列组件抽取失败 暂时没用到这个组件-->
80
- <script>
81
- import XFormItem from '@vue2-client/base-client/components/common/XForm/XFormItem.vue'
82
- import Ellipsis from '@vue2-client/components/Ellipsis/Ellipsis.vue'
83
- import XBadge from '@vue2-client/base-client/components/common/XBadge/XBadge.vue'
84
- import { executeStrFunction } from '@vue2-client/utils/runEvalFunction'
85
- import { formatDate } from '@vue2-client/utils/util'
86
-
87
- export default {
88
- components: { XBadge, Ellipsis, XFormItem },
89
- props: {
90
- item: {
91
- type: Object,
92
- required: true,
93
- },
94
- record: {
95
- type: Object,
96
- required: true,
97
- },
98
- index: {
99
- type: Number,
100
- required: true,
101
- },
102
- text: {
103
- type: String,
104
- required: true,
105
- },
106
- serviceName: {
107
- type: String,
108
- default: undefined
109
- },
110
- env: {
111
- type: String,
112
- default: undefined
113
- },
114
- isEditMode: {
115
- type: Boolean,
116
- default: false
117
- },
118
- formItems: {
119
- type: Array,
120
- required: true,
121
- },
122
- },
123
- methods: {
124
- executeStrFunction,
125
- getFromItem (model) {
126
- const aa = this.formItems.find(item => item.model === model && item.editRow)
127
- if (aa) {
128
- return JSON.parse(JSON.stringify(aa))
129
- }
130
- return false
131
- },
132
- columnClick () {
133
- this.$emit('columnClick', ...arguments)
134
- },
135
- action () {
136
- this.$emit('action', ...arguments)
137
- },
138
- /**
139
- * 格式化日期
140
- * @param date 日期字符串
141
- * @param format 格式化方式
142
- */
143
- format (date, format) {
144
- return formatDate(date, format)
145
- },
146
- /**
147
- * 格式化数字
148
- * @param number string 或者 number
149
- * @param decimalPlaces 小数位数
150
- */
151
- numberFormat (number, decimalPlaces = 2) {
152
- const value = parseFloat(number)
153
- if (!isNaN(value)) {
154
- return value.toFixed(decimalPlaces)
155
- } else {
156
- return ''
157
- }
158
- },
159
- },
160
- }
161
- </script>
1
+ <template>
2
+ <x-form-item
3
+ v-if="isEditMode && getFromItem(item.dataIndex)"
4
+ class="innerTable"
5
+ :form="record"
6
+ :attr="getFromItem(item.dataIndex)"
7
+ :service-name="serviceName"
8
+ mode="新增/修改"
9
+ :env="env"
10
+ :showLabel="false"
11
+ />
12
+ <!-- 序号列 -->
13
+ <span v-else-if="item.slotType === 'index'">
14
+ {{ index + 1 }}
15
+ </span>
16
+ <!-- 行链接 -->
17
+ <span v-else-if="item.slotType === 'link'">
18
+ <a @click="columnClick(item.dataIndex, text, record)">{{ text }}</a>
19
+ </span>
20
+ <!-- 文本溢出省略 -->
21
+ <span v-else-if="item.slotType === 'ellipsis'">
22
+ <ellipsis :length="item.slotValue" tooltip>{{ text === '' ? '--' : text }}</ellipsis>
23
+ </span>
24
+ <!-- 徽标 -->
25
+ <span v-else-if="item.slotType === 'badge'">
26
+ <x-badge
27
+ :service-name="serviceName"
28
+ :env="env"
29
+ v-if="text !== null && text !== undefined"
30
+ :badge-key="item.slotKeyMap"
31
+ :value="text"
32
+ />
33
+ </span>
34
+ <!-- 日期 -->
35
+ <span v-else-if="item.slotType === 'date'">
36
+ {{ format(text, 'yyyy-MM-dd') }}
37
+ </span>
38
+ <!-- 日期时间 -->
39
+ <span v-else-if="item.slotType === 'dateTime'">
40
+ {{ format(text, 'yyyy-MM-dd hh:mm:ss') }}
41
+ </span>
42
+ <!-- 两位小数 -->
43
+ <span v-else-if="item.slotType === 'towDecimal'">
44
+ {{ numberFormat(text, 2) }}
45
+ </span>
46
+ <!-- 四位小数 -->
47
+ <span v-else-if="item.slotType === 'fourDecimal'">
48
+ {{ numberFormat(text, 4) }}
49
+ </span>
50
+ <!-- 整数 -->
51
+ <span v-else-if="item.slotType === 'int'">
52
+ {{ numberFormat(text, 0) }}
53
+ </span>
54
+ <!-- 操作列 -->
55
+ <span v-else-if="item.slotType === 'action'">
56
+ <template v-if="item.actionArr && item.actionArr.length > 0">
57
+ <a-dropdown>
58
+ <a class="ant-dropdown-link" @click="e => e.preventDefault()">
59
+ {{ item.scopedSlots?.customRender || item.slotValue }} <a-icon type="down"/>
60
+ </a>
61
+ <a-menu slot="overlay" style="min-width: 60px">
62
+ <a-menu-item
63
+ v-for="(action_item, actionIndex) in item.actionArr"
64
+ :key="actionIndex"
65
+ v-if="!action_item.customFunction || executeStrFunction(action_item.customFunction, [record, c_index])"
66
+ >
67
+ <a style="text-align: center" @click="action(record, item.dataIndex, action_item.func)">
68
+ {{ action_item.text }}
69
+ </a>
70
+ </a-menu-item>
71
+ </a-menu>
72
+ </a-dropdown>
73
+ </template>
74
+ <template v-if="!item.actionArr || item.actionArr.length === 0">
75
+ <a @click="action(record, item.dataIndex)">{{ item.slotValue }}</a>
76
+ </template>
77
+ </span>
78
+ </template>
79
+ <!--表格列组件抽取失败 暂时没用到这个组件-->
80
+ <script>
81
+ import XFormItem from '@vue2-client/base-client/components/common/XForm/XFormItem.vue'
82
+ import Ellipsis from '@vue2-client/components/Ellipsis/Ellipsis.vue'
83
+ import XBadge from '@vue2-client/base-client/components/common/XBadge/XBadge.vue'
84
+ import { executeStrFunction } from '@vue2-client/utils/runEvalFunction'
85
+ import { formatDate } from '@vue2-client/utils/util'
86
+
87
+ export default {
88
+ components: { XBadge, Ellipsis, XFormItem },
89
+ props: {
90
+ item: {
91
+ type: Object,
92
+ required: true,
93
+ },
94
+ record: {
95
+ type: Object,
96
+ required: true,
97
+ },
98
+ index: {
99
+ type: Number,
100
+ required: true,
101
+ },
102
+ text: {
103
+ type: String,
104
+ required: true,
105
+ },
106
+ serviceName: {
107
+ type: String,
108
+ default: undefined
109
+ },
110
+ env: {
111
+ type: String,
112
+ default: undefined
113
+ },
114
+ isEditMode: {
115
+ type: Boolean,
116
+ default: false
117
+ },
118
+ formItems: {
119
+ type: Array,
120
+ required: true,
121
+ },
122
+ },
123
+ methods: {
124
+ executeStrFunction,
125
+ getFromItem (model) {
126
+ const aa = this.formItems.find(item => item.model === model && item.editRow)
127
+ if (aa) {
128
+ return JSON.parse(JSON.stringify(aa))
129
+ }
130
+ return false
131
+ },
132
+ columnClick () {
133
+ this.$emit('columnClick', ...arguments)
134
+ },
135
+ action () {
136
+ this.$emit('action', ...arguments)
137
+ },
138
+ /**
139
+ * 格式化日期
140
+ * @param date 日期字符串
141
+ * @param format 格式化方式
142
+ */
143
+ format (date, format) {
144
+ return formatDate(date, format)
145
+ },
146
+ /**
147
+ * 格式化数字
148
+ * @param number string 或者 number
149
+ * @param decimalPlaces 小数位数
150
+ */
151
+ numberFormat (number, decimalPlaces = 2) {
152
+ const value = parseFloat(number)
153
+ if (!isNaN(value)) {
154
+ return value.toFixed(decimalPlaces)
155
+ } else {
156
+ return ''
157
+ }
158
+ },
159
+ },
160
+ }
161
+ </script>
@@ -506,6 +506,11 @@ export default {
506
506
  pageMaxSize: {
507
507
  type: Number,
508
508
  default: null
509
+ },
510
+ // 外部传入的选中行keys
511
+ externalSelectedRowKeys: {
512
+ type: Array,
513
+ default: () => []
509
514
  }
510
515
  },
511
516
  computed: {
@@ -535,10 +540,29 @@ export default {
535
540
  }
536
541
  },
537
542
  immediate: true
543
+ },
544
+ externalSelectedRowKeys: {
545
+ handler (newVal) {
546
+ // 如果新值和当前值相同,则不处理
547
+ if (JSON.stringify(newVal) === JSON.stringify(this.selectedRowKeys)) {
548
+ return
549
+ }
550
+ if (newVal && newVal.length > 0) {
551
+ this.$nextTick(() => {
552
+ this.updateTableSelection(newVal)
553
+ })
554
+ }
555
+ }
538
556
  }
539
557
  },
540
558
  mounted () {
541
559
  window.addEventListener('resize', this.handleResize)
560
+ // 初始化时如果有外部选中值,等待 table 准备好后设置
561
+ if (this.externalSelectedRowKeys && this.externalSelectedRowKeys.length > 0) {
562
+ this.$nextTick(() => {
563
+ this.updateTableSelection(this.externalSelectedRowKeys)
564
+ })
565
+ }
542
566
  },
543
567
  beforeDestroy () {
544
568
  // 销毁页面查询定时器
@@ -551,8 +575,20 @@ export default {
551
575
  showTempData () {
552
576
  this.selectedRowModalVisible = true
553
577
  this.$nextTick(() => {
554
- this.$refs.selectedDataTable.refresh(true)
555
- this.$refs.selectedDataTable.updateSelect(this.selectedRowKeys, this.selectedRows)
578
+ if (this.$refs.selectedDataTable) {
579
+ // 确保数据已经准备好
580
+ const selectedData = this.selectedRows.map(row => ({ ...row }))
581
+ this.$refs.selectedDataTable.refresh(true)
582
+ // 等待数据加载完成后再更新选中状态
583
+ setTimeout(() => {
584
+ if (this.$refs.selectedDataTable) {
585
+ this.$refs.selectedDataTable.updateSelect(
586
+ selectedData.map(row => row[this.primaryKey || this.rowKey]),
587
+ selectedData
588
+ )
589
+ }
590
+ }, 100)
591
+ }
556
592
  })
557
593
  },
558
594
  customFunctionShow (customFunction, record, cIndex) {
@@ -880,6 +916,33 @@ export default {
880
916
  result = query(Object.assign(requestParameters, { userId: this.currUser?.id }), this.serviceName, this.env === 'dev')
881
917
  result.then(res => {
882
918
  this.totalCount = res.totalCount || 0
919
+ // 在数据加载完成后,立即检查并更新选中状态
920
+ if (this.selectRowMode !== 'disabled' && !this.clearSelectRowAfterQuery) {
921
+ // 找出当前页中应该被选中的行
922
+ const currentPageSelectedRows = res.data.filter(row =>
923
+ this.selectedRowKeys.includes(row[this.primaryKey || this.rowKey])
924
+ )
925
+ // 更新表格的选中状态
926
+ this.$nextTick(() => {
927
+ // 更新内部选中状态
928
+ this.innerSelectedRowKeys = currentPageSelectedRows.map(row => row[this.primaryKey || this.rowKey])
929
+ this.innerSelectedRows = currentPageSelectedRows
930
+ // 更新表格显示
931
+ this.$refs.table.updateSelect(this.innerSelectedRowKeys, this.innerSelectedRows)
932
+ // 更新总选中状态
933
+ if (currentPageSelectedRows.length > 0) {
934
+ // 保留不在当前页面的已选中行
935
+ const otherPageSelectedRows = this.selectedRows.filter(row =>
936
+ !currentPageSelectedRows.some(currentRow =>
937
+ currentRow[this.primaryKey || this.rowKey] === row[this.primaryKey || this.rowKey]
938
+ )
939
+ )
940
+ // 合并当前页面和其他页面的选中行
941
+ this.selectedRows = [...otherPageSelectedRows, ...currentPageSelectedRows]
942
+ }
943
+ this.$emit('selectRow', this.selectedRowKeys, this.selectedRows)
944
+ })
945
+ }
883
946
  })
884
947
  }
885
948
 
@@ -942,38 +1005,71 @@ export default {
942
1005
  },
943
1006
  /**
944
1007
  * 选择列数据改变事件
945
- * @param selectedRowKeys 被选择的列Key集合
946
- * @param selectedRows 被选择的列集合
1008
+ * @param currentPageSelectedKeys 被选择的列Key集合
1009
+ * @param currentPageSelectedRows 被选择的列集合
947
1010
  */
948
- onSelectChange (selectedRowKeys, selectedRows) {
949
- this.innerSelectedRowKeys = selectedRowKeys
950
- this.innerSelectedRows = selectedRows
1011
+ onSelectChange (currentPageSelectedKeys, currentPageSelectedRows) {
1012
+ console.log('currentPageSelectedKeys', currentPageSelectedKeys)
1013
+ // 这里的 currentPageSelectedKeys 和 currentPageSelectedRows 是当前页选中状态改变后的数据
951
1014
  if (this.selectRowMode === 'listView' && !this.clearSelectRowAfterQuery) {
952
1015
  if (this.primaryKey) {
953
- // 找出被取消选中的行
954
- const deselectedKeys = this.selectedRowKeys.filter(key => !selectedRowKeys.includes(key))
955
- // 从已选中的行中移除被取消选中的行
956
- if (deselectedKeys.length > 0) {
957
- this.selectedRowKeys = this.selectedRowKeys.filter(key => !deselectedKeys.includes(key))
958
- this.selectedRows = this.selectedRows.filter(row => !deselectedKeys.includes(row[this.primaryKey]))
1016
+ const primaryKeyName = this.primaryKey || this.rowKey
1017
+ // 获取当前页面所有行的key
1018
+ const currentPageAllKeys = this.$refs.table.localDataSource.map(row => row[primaryKeyName])
1019
+ // 找出当前页新选中的 keys (之前未选中但现在选中了)
1020
+ const newlySelectedKeysOnPage = currentPageSelectedKeys.filter(key => !this.selectedRowKeys.includes(key))
1021
+ // 找出当前页被取消选中的 keys (之前选中但现在未选中了)
1022
+ const deselectedKeysOnPage = this.selectedRowKeys.filter(key => currentPageAllKeys.includes(key) && !currentPageSelectedKeys.includes(key))
1023
+ // 更新总的 selectedRowKeys: 移除被取消选中的,添加新选中的
1024
+ this.selectedRowKeys = this.selectedRowKeys.filter(key => !deselectedKeysOnPage.includes(key))
1025
+ this.selectedRowKeys = [...this.selectedRowKeys, ...newlySelectedKeysOnPage]
1026
+ // 更新总的 selectedRows: 移除被取消选中的行对象,添加新选中的行对象
1027
+ // 从当前页数据源中找到被取消选中的行对象
1028
+ const deselectedRowsOnPage = this.$refs.table.localDataSource.filter(row => deselectedKeysOnPage.includes(row[primaryKeyName]))
1029
+ // 移除被取消选中的行对象
1030
+ const selectedRowsWithoutDeselected = this.selectedRows.filter(row => !deselectedRowsOnPage.some(deselectedRow => deselectedRow[primaryKeyName] === row[primaryKeyName]))
1031
+ // 从当前页数据源中找到新选中的行对象
1032
+ const newlySelectedRowsOnPage = this.$refs.table.localDataSource.filter(row => newlySelectedKeysOnPage.includes(row[primaryKeyName]))
1033
+ // 添加新选中的行对象 (需要去重,以防其他页面已包含此行)
1034
+ const finalSelectedRows = [...selectedRowsWithoutDeselected]
1035
+ const finalSelectedRowKeysMap = new Map()
1036
+ for (const row of finalSelectedRows) {
1037
+ finalSelectedRowKeysMap.set(row[primaryKeyName], true)
1038
+ }
1039
+
1040
+ for (const row of newlySelectedRowsOnPage) {
1041
+ const key = row[primaryKeyName]
1042
+ if (!finalSelectedRowKeysMap.has(key)) {
1043
+ finalSelectedRowKeysMap.set(key, true)
1044
+ finalSelectedRows.push(row)
1045
+ }
959
1046
  }
960
- // 添加新选中的行(去重)
961
- const newSelectedKeys = selectedRowKeys.filter(key => !this.selectedRowKeys.includes(key))
962
- const newSelectedRows = selectedRows.filter(row => newSelectedKeys.includes(row[this.primaryKey]))
963
- this.selectedRowKeys = [...this.selectedRowKeys, ...newSelectedKeys]
964
- this.selectedRows = [...this.selectedRows, ...newSelectedRows]
1047
+ this.selectedRows = finalSelectedRows
965
1048
  } else {
966
- // 如果没有主键,则直接使用当前选中的行
967
- this.selectedRowKeys = selectedRowKeys
968
- this.selectedRows = selectedRows
1049
+ // 如果没有主键,则直接使用当前选中的行(此情况可能无法跨页选中,但为了兼容保留)
1050
+ this.selectedRowKeys = currentPageSelectedKeys
1051
+ this.selectedRows = currentPageSelectedRows
969
1052
  }
970
1053
  } else {
971
- this.selectedRowKeys = this.innerSelectedRowKeys
972
- this.selectedRows = this.innerSelectedRows
1054
+ // listView 模式或 clearSelectRowAfterQuery 为 true,直接使用当前页的选中状态作为总状态
1055
+ this.selectedRowKeys = currentPageSelectedKeys
1056
+ this.selectedRows = currentPageSelectedRows
973
1057
  }
974
- this.isModify = this.innerSelectedRowKeys.length === 1
975
- this.isDelete = this.innerSelectedRowKeys.length > 0
976
- this.isChoose = this.allowSelectRowNum === 0 ? this.innerSelectedRowKeys.length > 0 : this.innerSelectedRowKeys.length === this.allowSelectRowNum
1058
+
1059
+ // 更新内部状态和表格显示 (即使在 listView 模式下,内部状态也需要同步以更新表格显示)
1060
+ this.innerSelectedRowKeys = currentPageSelectedKeys
1061
+ this.innerSelectedRows = currentPageSelectedRows
1062
+ // 确保在DOM更新后调用 updateSelect,以正确反映当前页的选中状态
1063
+ this.$nextTick(() => {
1064
+ this.$refs.table.updateSelect(this.innerSelectedRowKeys, this.innerSelectedRows)
1065
+ })
1066
+
1067
+ // 更新按钮状态基于总选中数量
1068
+ this.isModify = this.selectedRowKeys.length === 1
1069
+ this.isDelete = this.selectedRowKeys.length > 0
1070
+ this.isChoose = this.allowSelectRowNum === 0 ? this.selectedRowKeys.length > 0 : this.selectedRowKeys.length === this.allowSelectRowNum
1071
+
1072
+ // 触发选择事件,传递总的选中数据
977
1073
  this.$emit('selectRow', this.selectedRowKeys, this.selectedRows)
978
1074
  },
979
1075
  /**
@@ -1353,6 +1449,53 @@ export default {
1353
1449
  },
1354
1450
  onExpand (expanded, record) {
1355
1451
  this.$emit('expand', expanded, record)
1452
+ },
1453
+ // 添加新方法处理表格选中状态
1454
+ updateTableSelection (selectedKeys) {
1455
+ console.log('selectedKeys', selectedKeys)
1456
+ if (!this.$refs.table) {
1457
+ return
1458
+ }
1459
+
1460
+ // 检查数据是否已加载
1461
+ if (!this.$refs.table.localDataSource || this.$refs.table.localDataSource.length === 0) {
1462
+ // 等待数据加载完成后再处理
1463
+ const checkDataLoaded = () => {
1464
+ if (this.$refs.table.localDataSource && this.$refs.table.localDataSource.length > 0) {
1465
+ this.doUpdateTableSelection(selectedKeys)
1466
+ } else {
1467
+ setTimeout(checkDataLoaded, 100)
1468
+ }
1469
+ }
1470
+ checkDataLoaded()
1471
+ return
1472
+ }
1473
+
1474
+ this.doUpdateTableSelection(selectedKeys)
1475
+ },
1476
+
1477
+ // 实际执行更新选中状态的方法
1478
+ doUpdateTableSelection (selectedKeys) {
1479
+ // 更新内部选中状态
1480
+ this.selectedRowKeys = [...selectedKeys]
1481
+ this.innerSelectedRowKeys = [...selectedKeys]
1482
+ // 根据 selectedRowKeys 找到对应的行数据
1483
+ this.selectedRows = this.$refs.table.localDataSource.filter(row =>
1484
+ selectedKeys.includes(row[this.primaryKey || this.rowKey])
1485
+ )
1486
+ // 更新表格选中状态
1487
+ if (this.selectRowMode !== 'disabled' && !this.clearSelectRowAfterQuery) {
1488
+ this.$refs.table.updateSelect(this.selectedRowKeys, this.selectedRows)
1489
+ } else if (this.isTableMode && !this.simpleMode) {
1490
+ this.clearRowKeys()
1491
+ }
1492
+ // 更新按钮状态
1493
+ this.isModify = this.innerSelectedRowKeys.length === 1
1494
+ this.isDelete = this.innerSelectedRowKeys.length > 0
1495
+ this.isChoose = this.allowSelectRowNum === 0 ? this.innerSelectedRowKeys.length > 0 : this.innerSelectedRowKeys.length === this.allowSelectRowNum
1496
+
1497
+ // 触发选择事件
1498
+ this.$emit('selectRow', this.selectedRowKeys, this.selectedRows)
1356
1499
  }
1357
1500
  }
1358
1501
  }