vue2-client 1.14.62 → 1.14.64

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 (350) 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.scada +19 -19
  6. package/.eslintrc.js +90 -90
  7. package/CHANGELOG.md +824 -824
  8. package/Components.md +60 -60
  9. package/docs/Logic/345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +45 -45
  10. package/docs/LowCode/lowcode.md +155 -155
  11. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  12. package/docs/index.md +30 -30
  13. package/index.js +31 -31
  14. package/jest-transform-stub.js +8 -8
  15. package/jest.setup.js +7 -7
  16. package/jsconfig.json +19 -19
  17. package/package.json +1 -1
  18. package/public/his/editor/editor.html +51 -51
  19. package/public/his/editor/mock/bind_data.html +779 -779
  20. package/public/his/editor/mock/data_table.html +40 -40
  21. package/public/his/editor/mock/sign.html +75 -75
  22. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  23. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  24. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  25. package/public/his/editor/vender/date97/calendar.js +4 -4
  26. package/public/his/editor/vender/date97/lang/en.js +13 -13
  27. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  28. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  29. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  30. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  31. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  32. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  33. package/public/his/editor/vender/diff.js +1627 -1627
  34. package/public/his/editor/vender/editor.js +1 -1
  35. package/public/his/editor/vender/fabric.js +31187 -31187
  36. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  37. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  38. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  39. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  40. package/public/his/editor/vender/mui/mui.min.css +4 -4
  41. package/public/his/editor/vender/mui/mui.min.js +5 -5
  42. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  43. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  44. package/public/his/editor/vender/qrcode.js +7 -7
  45. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  46. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  47. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  48. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  49. package/public/his/editor/vender/validator.js +5094 -5094
  50. package/public/his/editor/vender/weui/weui.css +5659 -5659
  51. package/public/his/editor/vender/weui/weui.min.css +4 -4
  52. package/public/his/editor/vender/weui/weui.min.js +11 -11
  53. package/public/index.html +27 -27
  54. package/src/ReportView.js +19 -19
  55. package/src/assets/img/querySlotDemo.svg +15 -15
  56. package/src/assets/svg/badtwo.svg +1 -1
  57. package/src/assets/svg/goodtwo.svg +1 -1
  58. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  59. package/src/base-client/components/AI/demo.vue +31 -31
  60. package/src/base-client/components/common/AMisRender/index.js +3 -3
  61. package/src/base-client/components/common/AMisRender/index.vue +263 -263
  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/AmapMarker/index.js +3 -3
  67. package/src/base-client/components/common/CitySelect/index.js +3 -3
  68. package/src/base-client/components/common/CitySelect/index.md +109 -109
  69. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  70. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  71. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  72. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  73. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  74. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  75. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  76. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  77. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  78. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  79. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  80. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  81. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  82. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  83. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  84. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  85. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  86. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  87. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  88. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  89. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  90. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  91. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  92. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  93. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  94. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  95. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  96. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  97. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  98. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  99. package/src/base-client/components/common/Recording/index.js +3 -3
  100. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  101. package/src/base-client/components/common/Tree/index.js +2 -2
  102. package/src/base-client/components/common/Upload/index.js +3 -3
  103. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  104. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  105. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  106. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  107. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  108. package/src/base-client/components/common/XAddReport/index.js +3 -3
  109. package/src/base-client/components/common/XAddReport/index.md +56 -56
  110. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  111. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  112. package/src/base-client/components/common/XButtons/XButtons.vue +71 -71
  113. package/src/base-client/components/common/XButtons/index.js +3 -3
  114. package/src/base-client/components/common/XButtons/index.md +61 -61
  115. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  116. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  117. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  118. package/src/base-client/components/common/XDataCard/index.js +3 -3
  119. package/src/base-client/components/common/XDataCard/index.md +1 -1
  120. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  121. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  122. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  123. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  124. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  125. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  126. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  127. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  128. package/src/base-client/components/common/XForm/index.md +178 -178
  129. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  130. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  131. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  132. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  133. package/src/base-client/components/common/XFormTable/demo.vue +1 -1
  134. package/src/base-client/components/common/XFormTable/index.md +92 -92
  135. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +167 -167
  136. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  137. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  138. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  139. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  140. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  141. package/src/base-client/components/common/XPrint/PrintBill.vue +302 -302
  142. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  143. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  144. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  145. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  146. package/src/base-client/components/common/XPrint/index.vue +97 -97
  147. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  148. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  149. package/src/base-client/components/common/XReport/index.js +3 -3
  150. package/src/base-client/components/common/XReport/index.md +44 -44
  151. package/src/base-client/components/common/XReport/print.js +186 -186
  152. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  153. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  154. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  155. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  156. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  157. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  158. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  159. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  160. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  161. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  162. package/src/base-client/components/common/XStepView/index.js +3 -3
  163. package/src/base-client/components/common/XStepView/index.md +31 -31
  164. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  165. package/src/base-client/components/common/XTab/index.js +3 -3
  166. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  167. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  168. package/src/base-client/components/common/XTable/XTable.vue +65 -56
  169. package/src/base-client/components/common/XTable/index.md +255 -255
  170. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  171. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  172. package/src/base-client/components/common/XTree/index.js +3 -3
  173. package/src/base-client/components/common/XTree/index.md +36 -36
  174. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  175. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  176. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  177. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  178. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  179. package/src/base-client/components/his/threeTestOrders/textBox.vue +3 -3
  180. package/src/base-client/components/index.js +51 -51
  181. package/src/base-client/components/layout/XPageView/XErrorView.vue +11 -11
  182. package/src/base-client/components/layout/XPageView/XPageView.vue +155 -155
  183. package/src/base-client/components/layout/XPageView/index.js +3 -3
  184. package/src/base-client/components/layout/XPageView/index.md +38 -38
  185. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  186. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  187. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  188. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  189. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  190. package/src/base-client/plugins/Config.js +19 -19
  191. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  192. package/src/base-client/plugins/Recording.js +258 -258
  193. package/src/base-client/plugins/index.js +23 -23
  194. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  195. package/src/components/Charts/Bar.vue +62 -62
  196. package/src/components/Charts/ChartCard.vue +134 -134
  197. package/src/components/Charts/Liquid.vue +67 -67
  198. package/src/components/Charts/MiniArea.vue +39 -39
  199. package/src/components/Charts/MiniBar.vue +39 -39
  200. package/src/components/Charts/MiniProgress.vue +75 -75
  201. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  202. package/src/components/Charts/Radar.vue +68 -68
  203. package/src/components/Charts/RankList.vue +77 -77
  204. package/src/components/Charts/TagCloud.vue +113 -113
  205. package/src/components/Charts/TransferBar.vue +64 -64
  206. package/src/components/Charts/Trend.vue +82 -82
  207. package/src/components/Charts/chart.less +12 -12
  208. package/src/components/Charts/smooth.area.less +13 -13
  209. package/src/components/CodeMirror/inedx.vue +118 -118
  210. package/src/components/CodeMirror/setting.js +40 -40
  211. package/src/components/HeightScanner/index.vue +571 -571
  212. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  213. package/src/components/NumberInfo/index.js +3 -3
  214. package/src/components/NumberInfo/index.less +54 -54
  215. package/src/components/NumberInfo/index.md +43 -43
  216. package/src/components/card/ChartCard.vue +79 -79
  217. package/src/components/chart/Bar.vue +60 -60
  218. package/src/components/chart/MiniArea.vue +67 -67
  219. package/src/components/chart/MiniBar.vue +59 -59
  220. package/src/components/chart/MiniProgress.vue +57 -57
  221. package/src/components/chart/Radar.vue +80 -80
  222. package/src/components/chart/RankingList.vue +60 -60
  223. package/src/components/chart/Trend.vue +79 -79
  224. package/src/components/chart/index.less +9 -9
  225. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  226. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  227. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  228. package/src/components/checkbox/index.js +9 -9
  229. package/src/components/exception/ExceptionPage.vue +70 -70
  230. package/src/components/g2Charts/constants.js +202 -202
  231. package/src/components/g2Charts/demo.vue +808 -808
  232. package/src/components/g2Charts/designer.vue +228 -228
  233. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  234. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  235. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  236. package/src/components/g2Charts/index.vue +397 -397
  237. package/src/components/index.js +36 -36
  238. package/src/components/input/IInput.vue +66 -66
  239. package/src/components/menu/SideMenu.vue +75 -75
  240. package/src/components/menu/menu.js +273 -273
  241. package/src/components/setting/Setting.vue +234 -234
  242. package/src/components/tool/AStepItem.vue +60 -60
  243. package/src/config/CreateQueryConfig.js +325 -325
  244. package/src/config/default/antd.config.js +89 -89
  245. package/src/config/default/setting.config.js +55 -55
  246. package/src/font-style/font.css +4 -4
  247. package/src/layouts/CommonLayout.vue +56 -56
  248. package/src/layouts/PageLayout.vue +151 -151
  249. package/src/layouts/SinglePageView.vue +136 -136
  250. package/src/layouts/header/AdminHeader.vue +132 -132
  251. package/src/layouts/header/HeaderNotice.vue +177 -177
  252. package/src/layouts/header/InstitutionDetail.vue +181 -181
  253. package/src/layouts/tabs/TabsHead.vue +189 -189
  254. package/src/layouts/tabs/TabsView.vue +389 -389
  255. package/src/lib.js +1 -1
  256. package/src/main.js +34 -34
  257. package/src/mock/extend/index.js +84 -84
  258. package/src/mock/goods/index.js +108 -108
  259. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  260. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  261. package/src/pages/DefaultExample/index.vue +77 -77
  262. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  263. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  264. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  265. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  266. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  267. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  268. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  269. package/src/pages/DynamicStatistics/index.vue +282 -282
  270. package/src/pages/Example/childIndex.vue +15 -15
  271. package/src/pages/Example/index.vue +30 -30
  272. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  273. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  274. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  275. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  276. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  277. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  278. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  279. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  280. package/src/pages/Recording/index.vue +77 -77
  281. package/src/pages/ServiceReview/index.vue +284 -284
  282. package/src/pages/SubExample/index.vue +26 -26
  283. package/src/pages/WorkflowDetail/WorkFlowDemo.vue +36 -79
  284. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  285. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformationDetails.vue +276 -276
  286. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +975 -975
  287. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +233 -233
  288. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +261 -261
  289. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +248 -248
  290. package/src/pages/XPageViewExample/index.vue +38 -38
  291. package/src/pages/XReportView/index.vue +64 -64
  292. package/src/pages/XTreeOneProExample/index.vue +67 -67
  293. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  294. package/src/pages/login/Login.vue +378 -378
  295. package/src/pages/login/LoginV3.vue +389 -389
  296. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  297. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  298. package/src/pages/report/ReportTable.js +124 -124
  299. package/src/pages/resourceManage/orgListManage.vue +98 -98
  300. package/src/pages/system/dictionary/index.vue +44 -44
  301. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  302. package/src/pages/system/monitor/operLog/index.vue +37 -37
  303. package/src/pages/system/settings/modifyPassword.vue +117 -117
  304. package/src/pages/system/ticket/index.vue +480 -480
  305. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  306. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  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/router/async/config.async.js +35 -35
  315. package/src/router/index.js +27 -27
  316. package/src/router.js +19 -19
  317. package/src/services/DataModel.js +30 -30
  318. package/src/services/LodopFuncs.js +137 -137
  319. package/src/services/api/TicketDetailsViewApi.js +46 -46
  320. package/src/services/api/cas.js +79 -79
  321. package/src/services/api/common.js +346 -346
  322. package/src/services/api/entity.js +18 -18
  323. package/src/services/api/index.js +17 -17
  324. package/src/services/api/workFlow.js +61 -61
  325. package/src/store/modules/account.js +115 -115
  326. package/src/store/modules/index.js +5 -5
  327. package/src/store/modules/lowCode.js +33 -33
  328. package/src/store/modules/setting.js +119 -119
  329. package/src/theme/default/style.less +58 -58
  330. package/src/theme/global.less +159 -159
  331. package/src/utils/authority-utils.js +85 -85
  332. package/src/utils/errorCode.js +6 -6
  333. package/src/utils/formatter.js +74 -74
  334. package/src/utils/htmlToPDF.js +108 -108
  335. package/src/utils/htmlToPDFApi.js +5 -5
  336. package/src/utils/login.js +188 -188
  337. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  338. package/src/utils/lowcode/lowcodeLog.js +29 -29
  339. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  340. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  341. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  342. package/src/utils/map-utils.js +47 -47
  343. package/src/utils/reg.js +95 -95
  344. package/src/utils/routerUtil.js +3 -0
  345. package/src/utils/runEvalFunction.js +14 -14
  346. package/src/utils/theme-color-replacer-extend.js +92 -92
  347. package/src/utils/util.js +329 -329
  348. package/src/utils/waterMark.js +31 -31
  349. package/vue.config.js +2 -2
  350. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -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>
@@ -916,16 +916,18 @@ export default {
916
916
  result = query(Object.assign(requestParameters, { userId: this.currUser?.id }), this.serviceName, this.env === 'dev')
917
917
  result.then(res => {
918
918
  this.totalCount = res.totalCount || 0
919
+
919
920
  // 在数据加载完成后,立即检查并更新选中状态
920
921
  if (this.selectRowMode !== 'disabled' && !this.clearSelectRowAfterQuery) {
922
+ const primaryKeyName = this.primaryKey || this.rowKey
921
923
  // 找出当前页中应该被选中的行
922
924
  const currentPageSelectedRows = res.data.filter(row =>
923
- this.selectedRowKeys.includes(row[this.primaryKey || this.rowKey])
925
+ this.selectedRowKeys.includes(row[primaryKeyName])
924
926
  )
925
927
  // 更新表格的选中状态
926
928
  this.$nextTick(() => {
927
929
  // 更新内部选中状态
928
- this.innerSelectedRowKeys = currentPageSelectedRows.map(row => row[this.primaryKey || this.rowKey])
930
+ this.innerSelectedRowKeys = currentPageSelectedRows.map(row => row[primaryKeyName])
929
931
  this.innerSelectedRows = currentPageSelectedRows
930
932
  // 更新表格显示
931
933
  this.$refs.table.updateSelect(this.innerSelectedRowKeys, this.innerSelectedRows)
@@ -934,23 +936,28 @@ export default {
934
936
  // 保留不在当前页面的已选中行
935
937
  const otherPageSelectedRows = this.selectedRows.filter(row =>
936
938
  !currentPageSelectedRows.some(currentRow =>
937
- currentRow[this.primaryKey || this.rowKey] === row[this.primaryKey || this.rowKey]
939
+ currentRow[primaryKeyName] === row[primaryKeyName]
938
940
  )
939
941
  )
940
942
  // 合并当前页面和其他页面的选中行
941
- this.selectedRows = [...otherPageSelectedRows, ...currentPageSelectedRows]
943
+ const rowsMap = new Map()
944
+ // 先添加其他页面的行
945
+ otherPageSelectedRows.forEach(row => {
946
+ rowsMap.set(row[primaryKeyName], row)
947
+ })
948
+ // 再添加当前页面的行(会覆盖重复的)
949
+ currentPageSelectedRows.forEach(row => {
950
+ rowsMap.set(row[primaryKeyName], row)
951
+ })
952
+ this.selectedRows = Array.from(rowsMap.values())
942
953
  }
954
+ // 触发选择事件
943
955
  this.$emit('selectRow', this.selectedRowKeys, this.selectedRows)
944
956
  })
945
957
  }
946
958
  })
947
959
  }
948
960
 
949
- if (this.selectRowMode === 'listView' && !this.clearSelectRowAfterQuery) {
950
- this.$refs.table.updateSelect(this.selectedRowKeys, this.selectedRows)
951
- } else if (this.isTableMode && !this.simpleMode) {
952
- this.clearRowKeys()
953
- }
954
961
  this.$emit('afterQuery', result, requestParameters.conditionParams)
955
962
  return result
956
963
  },
@@ -976,13 +983,15 @@ export default {
976
983
  * @param nativeEvent 原生事件
977
984
  */
978
985
  onSelect (record, selected, selectedRows, nativeEvent) {
986
+ console.log('onSelect', record, selected, selectedRows)
979
987
  if (this.selectRowMode === 'listView') {
988
+ const primaryKeyName = this.primaryKey || this.rowKey
980
989
  // 获取主键数据
981
- const primaryData = record[this.primaryKey]
990
+ const primaryData = record[primaryKeyName]
982
991
  // 取消勾选时
983
992
  if (!selected) {
984
993
  this.selectedRowKeys = this.selectedRowKeys.filter(item => item !== primaryData)
985
- this.selectedRows = this.selectedRows.filter(item => item[this.primaryKey] !== primaryData)
994
+ this.selectedRows = this.selectedRows.filter(item => item[primaryKeyName] !== primaryData)
986
995
  }
987
996
  }
988
997
  },
@@ -996,10 +1005,11 @@ export default {
996
1005
  console.log('onSelectAll', selected, selectedRows, changeRows)
997
1006
  if (this.selectRowMode === 'listView') {
998
1007
  if (!selected) {
1008
+ const primaryKeyName = this.primaryKey || this.rowKey
999
1009
  // 获取所有改变的key
1000
- const changeKeys = changeRows.map(item => item[this.primaryKey])
1010
+ const changeKeys = changeRows.map(item => item[primaryKeyName])
1001
1011
  this.selectedRowKeys = this.selectedRowKeys.filter(item => !changeKeys.includes(item))
1002
- this.selectedRows = this.selectedRows.filter(item => !changeKeys.includes(item[this.primaryKey]))
1012
+ this.selectedRows = this.selectedRows.filter(item => !changeKeys.includes(item[primaryKeyName]))
1003
1013
  }
1004
1014
  }
1005
1015
  },
@@ -1009,42 +1019,34 @@ export default {
1009
1019
  * @param currentPageSelectedRows 被选择的列集合
1010
1020
  */
1011
1021
  onSelectChange (currentPageSelectedKeys, currentPageSelectedRows) {
1012
- console.log('currentPageSelectedKeys', currentPageSelectedKeys)
1013
- // 这里的 currentPageSelectedKeys 和 currentPageSelectedRows 是当前页选中状态改变后的数据
1014
1022
  if (this.selectRowMode === 'listView' && !this.clearSelectRowAfterQuery) {
1015
- if (this.primaryKey) {
1016
- const primaryKeyName = this.primaryKey || this.rowKey
1023
+ const primaryKeyName = this.primaryKey || this.rowKey
1024
+ if (primaryKeyName) {
1017
1025
  // 获取当前页面所有行的key
1018
1026
  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
- }
1046
- }
1047
- this.selectedRows = finalSelectedRows
1027
+ // 1. 保留不在当前页的已选中keys,并去重
1028
+ const otherPageSelectedKeys = [...new Set(this.selectedRowKeys.filter(key => !currentPageAllKeys.includes(key)))]
1029
+ console.log('其他页的keys', otherPageSelectedKeys)
1030
+ // 2. 添加当前页新选中的keys,并去重
1031
+ this.selectedRowKeys = [...new Set([...otherPageSelectedKeys, ...currentPageSelectedKeys])]
1032
+ console.log('onSelectChange - updated selectedRowKeys:', this.selectedRowKeys)
1033
+ // 更新总的 selectedRows
1034
+ // 1. 保留不在当前页的已选中行,并去重
1035
+ const otherPageSelectedRows = this.selectedRows.filter(row =>
1036
+ !currentPageAllKeys.includes(row[primaryKeyName])
1037
+ )
1038
+ // 2. 合并结果,使用 Map 去重
1039
+ const rowsMap = new Map()
1040
+ // 先添加其他页面的行
1041
+ otherPageSelectedRows.forEach(row => {
1042
+ rowsMap.set(row[primaryKeyName], row)
1043
+ })
1044
+ // 再添加当前页面的行(会覆盖重复的)
1045
+ currentPageSelectedRows.forEach(row => {
1046
+ rowsMap.set(row[primaryKeyName], row)
1047
+ })
1048
+ this.selectedRows = Array.from(rowsMap.values())
1049
+ console.log('onSelectChange - updated selectedRows:', this.selectedRows)
1048
1050
  } else {
1049
1051
  // 如果没有主键,则直接使用当前选中的行(此情况可能无法跨页选中,但为了兼容保留)
1050
1052
  this.selectedRowKeys = currentPageSelectedKeys
@@ -1056,9 +1058,10 @@ export default {
1056
1058
  this.selectedRows = currentPageSelectedRows
1057
1059
  }
1058
1060
 
1059
- // 更新内部状态和表格显示 (即使在 listView 模式下,内部状态也需要同步以更新表格显示)
1061
+ // 更新内部状态和表格显示
1060
1062
  this.innerSelectedRowKeys = currentPageSelectedKeys
1061
1063
  this.innerSelectedRows = currentPageSelectedRows
1064
+
1062
1065
  // 确保在DOM更新后调用 updateSelect,以正确反映当前页的选中状态
1063
1066
  this.$nextTick(() => {
1064
1067
  this.$refs.table.updateSelect(this.innerSelectedRowKeys, this.innerSelectedRows)
@@ -1476,23 +1479,29 @@ export default {
1476
1479
 
1477
1480
  // 实际执行更新选中状态的方法
1478
1481
  doUpdateTableSelection (selectedKeys) {
1482
+ const primaryKeyName = this.primaryKey || this.rowKey
1483
+
1479
1484
  // 更新内部选中状态
1480
1485
  this.selectedRowKeys = [...selectedKeys]
1481
- this.innerSelectedRowKeys = [...selectedKeys]
1482
- // 根据 selectedRowKeys 找到对应的行数据
1486
+ this.innerSelectedRowKeys = this.$refs.table.localDataSource
1487
+ .filter(row => selectedKeys.includes(row[primaryKeyName]))
1488
+ .map(row => row[primaryKeyName])
1489
+
1490
+ // 更新选中行数据
1483
1491
  this.selectedRows = this.$refs.table.localDataSource.filter(row =>
1484
- selectedKeys.includes(row[this.primaryKey || this.rowKey])
1492
+ selectedKeys.includes(row[primaryKeyName])
1485
1493
  )
1494
+ this.innerSelectedRows = this.selectedRows
1495
+
1486
1496
  // 更新表格选中状态
1487
1497
  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()
1498
+ this.$refs.table.updateSelect(this.innerSelectedRowKeys, this.innerSelectedRows)
1491
1499
  }
1500
+
1492
1501
  // 更新按钮状态
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
1502
+ this.isModify = this.selectedRowKeys.length === 1
1503
+ this.isDelete = this.selectedRowKeys.length > 0
1504
+ this.isChoose = this.allowSelectRowNum === 0 ? this.selectedRowKeys.length > 0 : this.selectedRowKeys.length === this.allowSelectRowNum
1496
1505
 
1497
1506
  // 触发选择事件
1498
1507
  this.$emit('selectRow', this.selectedRowKeys, this.selectedRows)