vue2-client 1.9.39 → 1.9.41

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 (324) hide show
  1. package/.env +19 -19
  2. package/.env.gaslink +19 -19
  3. package/.env.his +19 -19
  4. package/.env.revenue +19 -19
  5. package/.eslintrc.js +90 -90
  6. package/CHANGELOG.md +824 -824
  7. package/Components.md +60 -60
  8. package/babel.config.js +21 -21
  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/docs//345/207/275/346/225/260/344/275/277/347/224/250/347/233/270/345/205/263.md +136 -136
  14. package/index.js +31 -31
  15. package/jest-transform-stub.js +8 -8
  16. package/jest.config.js +21 -21
  17. package/jest.setup.js +7 -7
  18. package/package.json +102 -102
  19. package/public/his/editor/editor.html +51 -51
  20. package/public/his/editor/mock/bind_data.html +779 -779
  21. package/public/his/editor/mock/data_table.html +40 -40
  22. package/public/his/editor/mock/sign.html +75 -75
  23. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  24. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  25. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  26. package/public/his/editor/vender/date97/calendar.js +4 -4
  27. package/public/his/editor/vender/date97/lang/en.js +13 -13
  28. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  29. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  30. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  31. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  32. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  33. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  34. package/public/his/editor/vender/diff.js +1627 -1627
  35. package/public/his/editor/vender/editor.js +1 -1
  36. package/public/his/editor/vender/fabric.js +31187 -31187
  37. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  38. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  39. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  40. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  41. package/public/his/editor/vender/mui/mui.min.css +4 -4
  42. package/public/his/editor/vender/mui/mui.min.js +5 -5
  43. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  44. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  45. package/public/his/editor/vender/qrcode.js +7 -7
  46. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  47. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  48. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  49. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  50. package/public/his/editor/vender/validator.js +5094 -5094
  51. package/public/his/editor/vender/weui/weui.css +5659 -5659
  52. package/public/his/editor/vender/weui/weui.min.css +4 -4
  53. package/public/his/editor/vender/weui/weui.min.js +11 -11
  54. package/public/index.html +27 -27
  55. package/src/App.vue +192 -192
  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/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/AddressSearchCombobox.vue +470 -470
  63. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  64. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  65. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  66. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  67. package/src/base-client/components/common/CitySelect/CitySelect.vue +342 -342
  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/FormGroupEdit.vue +149 -149
  79. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  80. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  81. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  82. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  83. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  84. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  85. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  86. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  87. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  88. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  89. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  90. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  91. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  92. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  93. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  94. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  95. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  96. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  97. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  98. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  99. package/src/base-client/components/common/PersonSetting/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/Upload.vue +239 -239
  103. package/src/base-client/components/common/Upload/index.js +3 -3
  104. package/src/base-client/components/common/XAddForm/XAddForm.vue +105 -105
  105. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +804 -804
  106. package/src/base-client/components/common/XAddNativeForm/demo.vue +29 -29
  107. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  108. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  109. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  110. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  111. package/src/base-client/components/common/XAddReport/XAddReport.vue +204 -204
  112. package/src/base-client/components/common/XAddReport/index.js +3 -3
  113. package/src/base-client/components/common/XAddReport/index.md +56 -56
  114. package/src/base-client/components/common/XBadge/XBadge.vue +86 -86
  115. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  116. package/src/base-client/components/common/XDataCard/XDataCard.vue +364 -364
  117. package/src/base-client/components/common/XDataCard/index.js +3 -3
  118. package/src/base-client/components/common/XDataCard/index.md +1 -1
  119. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  120. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  121. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  122. package/src/base-client/components/common/XDescriptions/XDescriptions.vue +169 -169
  123. package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +304 -304
  124. package/src/base-client/components/common/XDescriptions/demo.vue +50 -50
  125. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  126. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  127. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  128. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  129. package/src/base-client/components/common/XForm/XForm.vue +316 -316
  130. package/src/base-client/components/common/XForm/XFormItem.vue +1149 -1156
  131. package/src/base-client/components/common/XForm/XTreeSelect.vue +208 -207
  132. package/src/base-client/components/common/XForm/index.md +178 -178
  133. package/src/base-client/components/common/XFormCol/XFormCol.vue +36 -36
  134. package/src/base-client/components/common/XFormGroup/XFormGroup.vue +254 -254
  135. package/src/base-client/components/common/XFormGroup/demo.vue +40 -40
  136. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  137. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  138. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  139. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  140. package/src/base-client/components/common/XFormTable/XFormTable.vue +643 -646
  141. package/src/base-client/components/common/XFormTable/demo.vue +70 -70
  142. package/src/base-client/components/common/XFormTable/index.md +98 -98
  143. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +162 -162
  144. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  145. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  146. package/src/base-client/components/common/XReport/XReport.vue +892 -892
  147. package/src/base-client/components/common/XReport/XReportDemo.vue +304 -304
  148. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  149. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  150. package/src/base-client/components/common/XReport/XReportTrGroup.vue +808 -808
  151. package/src/base-client/components/common/XReport/index.md +44 -44
  152. package/src/base-client/components/common/XReport/print.js +186 -186
  153. package/src/base-client/components/common/XReportGrid/XReport.vue +937 -937
  154. package/src/base-client/components/common/XReportGrid/XReportDemo.vue +42 -42
  155. package/src/base-client/components/common/XReportGrid/XReportDesign.vue +556 -556
  156. package/src/base-client/components/common/XReportGrid/XReportJsonRender.vue +381 -381
  157. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +972 -972
  158. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  159. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  160. package/src/base-client/components/common/XReportGrid/print.js +186 -186
  161. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  162. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  163. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  164. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  165. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  166. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  167. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  168. package/src/base-client/components/common/XStepView/index.js +3 -3
  169. package/src/base-client/components/common/XStepView/index.md +31 -31
  170. package/src/base-client/components/common/XTab/XTab.vue +179 -179
  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/XTable.vue +1132 -1133
  174. package/src/base-client/components/common/XTable/index.md +255 -255
  175. package/src/base-client/components/common/XTree/XTree.vue +423 -423
  176. package/src/base-client/components/common/XTree/XTreePro.vue +434 -434
  177. package/src/base-client/components/common/XTree/index.js +3 -3
  178. package/src/base-client/components/common/XTree/index.md +36 -36
  179. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  180. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  181. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  182. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  183. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +203 -203
  184. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  185. package/src/base-client/components/index.js +51 -51
  186. package/src/base-client/components/layout/XPageView/RenderRow.vue +63 -63
  187. package/src/base-client/components/layout/XPageView/XErrorView.vue +11 -11
  188. package/src/base-client/components/layout/XPageView/XPageView.vue +155 -155
  189. package/src/base-client/components/layout/XPageView/index.js +3 -3
  190. package/src/base-client/components/layout/XPageView/index.md +38 -38
  191. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  192. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  193. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  194. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  195. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  196. package/src/base-client/plugins/AppData.js +121 -121
  197. package/src/base-client/plugins/Config.js +19 -19
  198. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  199. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  200. package/src/bootstrap.js +39 -39
  201. package/src/components/CodeMirror/inedx.vue +118 -118
  202. package/src/components/CodeMirror/setting.js +40 -40
  203. package/src/components/FilePreview/FilePreview.vue +166 -166
  204. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  205. package/src/components/STable/index.js +380 -380
  206. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  207. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  208. package/src/components/exception/ExceptionPage.vue +70 -70
  209. package/src/components/menu/SideMenu.vue +75 -75
  210. package/src/components/menu/menu.js +273 -273
  211. package/src/components/tool/AStepItem.vue +60 -60
  212. package/src/config/CreateQueryConfig.js +322 -322
  213. package/src/config/default/antd.config.js +89 -89
  214. package/src/config/default/setting.config.js +55 -55
  215. package/src/font-style/font.css +4 -4
  216. package/src/layouts/CommonLayout.vue +56 -56
  217. package/src/layouts/GridView.vue +45 -45
  218. package/src/layouts/PageLayout.vue +151 -151
  219. package/src/layouts/SinglePageView.vue +136 -136
  220. package/src/layouts/header/AdminHeader.vue +132 -132
  221. package/src/layouts/header/HeaderNotice.vue +177 -177
  222. package/src/layouts/tabs/TabsHead.vue +189 -189
  223. package/src/layouts/tabs/TabsView.vue +389 -389
  224. package/src/lib.js +1 -1
  225. package/src/main.js +30 -30
  226. package/src/mock/extend/index.js +84 -84
  227. package/src/mock/goods/index.js +108 -108
  228. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  229. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  230. package/src/pages/DefaultExample/index.vue +77 -77
  231. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  232. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  233. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  234. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  235. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  236. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  237. package/src/pages/DynamicStatistics/index.vue +282 -282
  238. package/src/pages/Example/childIndex.vue +15 -15
  239. package/src/pages/Example/index.vue +30 -30
  240. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  241. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  242. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  243. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  244. package/src/pages/NewDynamicStatistics/FavoriteList.vue +51 -51
  245. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  246. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  247. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  248. package/src/pages/ReportGrid/index.vue +76 -76
  249. package/src/pages/ServiceReview/index.vue +284 -284
  250. package/src/pages/SubExample/index.vue +26 -26
  251. package/src/pages/WorkflowDetail/WorkFlowDemo.vue +32 -32
  252. package/src/pages/WorkflowDetail/WorkflowDetail.vue +230 -230
  253. package/src/pages/WorkflowDetail/WorkflowPageDetail/LeaveMessage.vue +131 -131
  254. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  255. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +302 -302
  256. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformationDetails.vue +276 -276
  257. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +864 -864
  258. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +997 -997
  259. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +222 -222
  260. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +233 -233
  261. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +261 -261
  262. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +248 -248
  263. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowLog.vue +73 -73
  264. package/src/pages/XPageViewExample/index.vue +38 -38
  265. package/src/pages/XReportView/index.vue +64 -64
  266. package/src/pages/XTreeOneProExample/index.vue +67 -67
  267. package/src/pages/login/Login.vue +378 -378
  268. package/src/pages/login/LoginV3.vue +389 -389
  269. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  270. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  271. package/src/pages/resourceManage/orgListManage.vue +98 -98
  272. package/src/pages/system/dictionary/index.vue +44 -44
  273. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  274. package/src/pages/system/monitor/operLog/index.vue +37 -37
  275. package/src/pages/system/settings/modifyPassword.vue +117 -117
  276. package/src/pages/system/ticket/index.vue +480 -480
  277. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  278. package/src/plugins/EventLogPlugin.js +33 -33
  279. package/src/plugins/FindParentsData.js +17 -17
  280. package/src/router/async/config.async.js +34 -34
  281. package/src/router/async/router.map.js +182 -182
  282. package/src/router/guards.js +264 -264
  283. package/src/router/index.js +27 -27
  284. package/src/router.js +19 -19
  285. package/src/services/api/TicketDetailsViewApi.js +46 -46
  286. package/src/services/api/cas.js +79 -79
  287. package/src/services/api/common.js +329 -329
  288. package/src/services/api/index.js +17 -17
  289. package/src/services/api/restTools.js +67 -67
  290. package/src/services/api/workFlow.js +63 -63
  291. package/src/services/apiService.js +15 -15
  292. package/src/services/user.js +90 -90
  293. package/src/services/v3Api.js +82 -82
  294. package/src/store/modules/account.js +115 -115
  295. package/src/store/modules/index.js +5 -5
  296. package/src/store/modules/lowCode.js +33 -33
  297. package/src/store/modules/setting.js +119 -119
  298. package/src/theme/default/style.less +58 -58
  299. package/src/theme/global.less +159 -159
  300. package/src/utils/authority-utils.js +85 -85
  301. package/src/utils/errorCode.js +6 -6
  302. package/src/utils/formatter.js +80 -80
  303. package/src/utils/htmlToPDF.js +108 -108
  304. package/src/utils/htmlToPDFApi.js +5 -5
  305. package/src/utils/indexedDB.js +263 -263
  306. package/src/utils/login.js +188 -188
  307. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  308. package/src/utils/lowcode/lowcodeLog.js +29 -29
  309. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  310. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  311. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  312. package/src/utils/map-utils.js +47 -47
  313. package/src/utils/microAppUtils.js +40 -40
  314. package/src/utils/reg.js +95 -95
  315. package/src/utils/request.js +362 -362
  316. package/src/utils/routerUtil.js +450 -450
  317. package/src/utils/runEvalFunction.js +14 -14
  318. package/src/utils/util.js +281 -281
  319. package/test/Amis.spec.js +163 -163
  320. package/test/Tree.spec.js +167 -167
  321. package/test/myDialog.spec.js +46 -46
  322. package/test/v3Api.test.js +1881 -1881
  323. package/vue.config.js +196 -196
  324. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,646 +1,643 @@
1
- <template>
2
- <a-row type="flex" :gutter="{ xs: 8, sm: 10, md: 12, lg: 16 }">
3
- <a-col
4
- :xs="14"
5
- :sm="14"
6
- :md="12"
7
- :lg="9"
8
- :xl="6"
9
- :xxl="5"
10
- v-if="xTreeConfigName"
11
- :style="{ maxWidth: '400px'}">
12
- <x-tree-pro
13
- :config-name="xTreeConfigName"
14
- :env="env"
15
- @action="action"
16
- @btnFuncClick="treeBtnFuncClick"
17
- @treeOnChecked="treeOnChecked"
18
- ref="xtree"
19
- ></x-tree-pro>
20
- </a-col>
21
- <a-col
22
- :xs="xTreeConfigName ? 10 : 24"
23
- :sm="xTreeConfigName ? 10 : 24"
24
- :md="xTreeConfigName ? 12 : 24"
25
- :lg="xTreeConfigName ? 15 : 24"
26
- :xl="xTreeConfigName ? 18 : 24"
27
- :xxl="xTreeConfigName ? 19 : 24">
28
- <a-skeleton :loading="loading" :paragraph="{ rows: 4 }"/>
29
- <a-row style="height: 12px" v-if="xTreeConfigName"></a-row>
30
- <div v-show="!loading">
31
- <template v-if="!loadError">
32
- <x-add-form
33
- ref="xAddForm"
34
- @afterSubmit="onAddOrEditSubmitAfterSubmit"
35
- >
36
- <template slot="groupFormItems" slot-scope="{form, model, rules, modifyModelData}">
37
- <slot
38
- name="groupFormItems"
39
- :form="form"
40
- :model="model"
41
- :rules="rules"
42
- :modifyModelData="modifyModelData"></slot>
43
- </template>
44
- </x-add-form>
45
- <x-add-report
46
- v-if="moveType"
47
- ref="xAddReport"
48
- >
49
- </x-add-report>
50
- <div v-if="crudTitle" class="crud_title">
51
- {{ crudTitle }}
52
- </div>
53
- <x-form
54
- ref="xForm"
55
- @toggleAdvanced="toggleAdvanced"
56
- @onSubmit="onSearchSubmit">
57
- <slot name="formBtnExpand"></slot>
58
- </x-form>
59
- <x-table
60
- ref="xTable"
61
- :fixedQueryForm="fixedQueryForm"
62
- :queryParamsName="queryParamsName"
63
- :query-params-json="queryParamsJson"
64
- :show-pagination="showPagination"
65
- :customDelete="customDelete"
66
- :extraHeight="extraHeight"
67
- @add="add"
68
- @move="move"
69
- @edit="edit"
70
- @del="del"
71
- @afterDelete="afterDelete"
72
- @action="action"
73
- @selectRow="selectRow"
74
- @afterQuery="afterQuery"
75
- @columnClick="columnClick"
76
- @tempTableEdit="tempTableEdit"
77
- @editButtonStateDataClick="editButtonStateDataClick"
78
- @importExcelOk="importExcelOk">
79
- <template slot="leftButton" slot-scope="{selectedRowKeys, selectedRows}">
80
- <slot name="leftButton" :selectedRowKeys="selectedRowKeys" :selectedRows="selectedRows"></slot>
81
- </template>
82
- <template slot="button" slot-scope="{selectedRowKeys, selectedRows}">
83
- <slot name="button" :selectedRowKeys="selectedRowKeys" :selectedRows="selectedRows"></slot>
84
- </template>
85
- <template slot="rightBtnExpand" slot-scope="{selectedRowKeys, selectedRows}">
86
- <slot name="rightBtnExpand" :selectedRowKeys="selectedRowKeys" :selectedRows="selectedRows"></slot>
87
- <a-tooltip title="收起查询条件" placement="bottom">
88
- <a-button @click="toggleIsFormShow">
89
- <a-icon :style="iconStyle" :type="toggleIsFormIcon"/>
90
- </a-button>
91
- </a-tooltip>
92
- </template>
93
- <!-- 底部插槽 -->
94
- <template slot="footer" slot-scope="{selectedRowKeys, selectedRows}">
95
- <slot name="footer" :selectedRowKeys="selectedRowKeys" :selectedRows="selectedRows"></slot>
96
- </template>
97
- <!-- excel导入说明插槽 -->
98
- <template #importExcelSlot>
99
- <slot name="importExcelSlot"></slot>
100
- </template>
101
- </x-table>
102
- </template>
103
- <template v-else>
104
- <a-empty>
105
- <span slot="description"> 页面配置不存在请联系系统管理员, </span>
106
- </a-empty>
107
- </template>
108
- </div>
109
- </a-col>
110
- </a-row>
111
- </template>
112
- <script>
113
- import XForm from '@vue2-client/base-client/components/common/XForm'
114
- import XAddForm from '@vue2-client/base-client/components/common/XAddForm'
115
- import XAddReport from '@vue2-client/base-client/components/common/XAddReport'
116
- import XTable from '@vue2-client/base-client/components/common/XTable'
117
- import XTree from '@vue2-client/base-client/components/common/XTree'
118
- import XImportExcel from '@vue2-client/base-client/components/common/XImportExcel'
119
- import {
120
- getConfigByName,
121
- getConfigByLogic,
122
- parseConfig, runLogic, getConfigByNameAsync,
123
- } from '@vue2-client/services/api/common'
124
- import { mapState } from 'vuex'
125
- import XTreePro from '@vue2-client/base-client/components/common/XTree/XTreePro.vue'
126
-
127
- export default {
128
- name: 'XFormTable',
129
- components: {
130
- XTreePro,
131
- XTable,
132
- XForm,
133
- XTree,
134
- XAddForm,
135
- XAddReport,
136
- XImportExcel
137
- },
138
- inject: ['getSelectedId', 'getSelectedData', 'getMixinData', 'getOutEnv'],
139
- data () {
140
- return {
141
- // 加载状态
142
- loading: false,
143
- // 图标样式
144
- iconStyle: {
145
- position: 'relative',
146
- top: '1px'
147
- },
148
- loadError: false,
149
- moveType: false,
150
- // 添加按钮对应的配置名
151
- moveconfig: '',
152
- // 实际查询配置内容
153
- realQueryConfig: {},
154
- toggleIsFormIcon: 'vertical-align-top',
155
- table_selectedRowKeys: [],
156
- table_selectedRows: []
157
- }
158
- },
159
- computed: {
160
- ...mapState('setting', ['isMobile'])
161
- },
162
- props: {
163
- // 业务名称
164
- title: {
165
- type: String,
166
- default: ''
167
- },
168
- // 卡片标题
169
- crudTitle: {
170
- type: String,
171
- default: null
172
- },
173
- // 查询配置文件名
174
- queryParamsName: {
175
- type: String,
176
- default: null
177
- },
178
- // 配置所属命名空间
179
- serviceName: {
180
- type: String,
181
- default: undefined
182
- },
183
- // 查询配置文件Json,用于查询配置生成器的预览
184
- queryParamsJson: {
185
- type: Object,
186
- default: null
187
- },
188
- // xTree 配置
189
- xTreeConfigName: {
190
- type: String,
191
- default: null
192
- },
193
- // 业务逻辑名称, 通过logic获取表单表格配置
194
- logicName: {
195
- type: String,
196
- default: null
197
- },
198
- // 执行logic传递的参数
199
- logicParam: {
200
- type: Object,
201
- default: () => {
202
- }
203
- },
204
- // 固定新增表单
205
- fixedAddForm: {
206
- type: Object,
207
- default: () => {
208
- return {}
209
- }
210
- },
211
- // 固定查询表单
212
- fixedQueryForm: {
213
- type: Object,
214
- default: () => {
215
- return {}
216
- }
217
- },
218
- // 预览模式
219
- viewMode: {
220
- type: Boolean,
221
- default: () => {
222
- return false
223
- }
224
- },
225
- // 环境
226
- env: {
227
- type: String,
228
- default: () => {
229
- return 'prod'
230
- }
231
- },
232
- // 数据只有一页时是否展示分页,true:展示,auto:隐藏
233
- showPagination: {
234
- type: Boolean,
235
- default: true
236
- },
237
- // 调用logic获取数据源的追加参数
238
- getDataParams: {
239
- type: Object,
240
- default: undefined
241
- },
242
- // 可以控制组件中导出等按钮的隐藏
243
- buttonState: {
244
- type: Object,
245
- default: undefined
246
- },
247
- // 是否自定义新增按钮的功能
248
- customAdd: {
249
- type: Boolean,
250
- default: false
251
- },
252
- reportQueryName: {
253
- type: String,
254
- default: undefined,
255
- },
256
- // 是否自定义删除按钮的功能
257
- customDelete: {
258
- type: Boolean,
259
- default: false
260
- },
261
- // 是否自定义修改按钮的功能
262
- customEdit: {
263
- type: Boolean,
264
- default: false
265
- },
266
- // 是否自定义增加按钮
267
- customMove: {
268
- type: Boolean,
269
- default: false
270
- },
271
- // 自适应底部边距
272
- extraHeight: {
273
- type: Number,
274
- default: 80
275
- }
276
- },
277
- watch: {
278
- logicParam: {
279
- handler () {
280
- this.initConfig()
281
- },
282
- deep: true
283
- },
284
- queryParamsJson: {
285
- handler () {
286
- this.initConfig()
287
- },
288
- deep: true
289
- },
290
- queryParamsName: {
291
- handler () {
292
- this.initConfig()
293
- }
294
- },
295
- serviceName: {
296
- handler () {
297
- this.initConfig()
298
- }
299
- },
300
- },
301
- created () {
302
- this.initConfig()
303
- },
304
- methods: {
305
- runLogic,
306
- getConfigByNameAsync,
307
- getConfigByName,
308
- columnClick (key, value, record) {
309
- this.$emit('columnClick', key, value, record)
310
- },
311
- importExcelOk () {
312
- this.$emit('importExcelOk')
313
- },
314
- initConfig () {
315
- this.loading = true
316
- this.loadError = false
317
- if (this.queryParamsName) {
318
- this.getConfig()
319
- } else if (this.queryParamsJson) {
320
- this.getConfigBySource()
321
- } else if (this.logicName && this.logicParam) {
322
- this.getColumnJsonByLogic()
323
- } else {
324
- this.loading = false
325
- this.loadError = true
326
- }
327
- },
328
-
329
- getConfig () {
330
- getConfigByName(this.queryParamsName, this.serviceName, (res) => {
331
- this.updateComponents(res)
332
- }, this.env === 'dev')
333
- },
334
- getConfigBySource () {
335
- parseConfig(this.queryParamsJson, 'CRUD_FORM', this.serviceName, this.env === 'dev').then(res => {
336
- this.updateComponents(res, true)
337
- })
338
- },
339
- getColumnJsonByLogic () {
340
- getConfigByLogic(this.logicName, this.logicParam, this.serviceName, (res) => {
341
- this.updateComponents(res, true)
342
- }, this.env === 'dev')
343
- },
344
- /**
345
- * 更新子组件
346
- * @param res 参数
347
- * @param setQueryParams 是否设置queryParams参数
348
- */
349
- updateComponents (res, setQueryParams) {
350
- this.realQueryConfig = res
351
- if (this.$refs.xTable && this.$refs.xForm && this.$refs.xAddForm) {
352
- // 初始化 xForm 子组件
353
- this.$refs.xForm.init({
354
- formItems: res.formJson,
355
- serviceName: this.serviceName,
356
- getDataParams: this.getDataParams,
357
- env: this.env
358
- })
359
- console.log('res', res)
360
- // 设置添加按钮对应的配置名
361
- this.moveconfig = res.moveconfig
362
- // 初始化 xTable 子组件
363
- this.$refs.xTable.init({
364
- formItems: res.formJson,
365
- primaryKey: res.primaryKey,
366
- createdQuery: res.createdQuery,
367
- queryParams: setQueryParams ? res : null,
368
- tableColumns: res.columnJson,
369
- buttonState: Object.assign(res.buttonState, this.buttonState),
370
- buttonPermissions: res.buttonPermissions,
371
- editButtonStateData: res.editButtonStateData,
372
- title: this.title,
373
- viewMode: this.viewMode,
374
- tableSummaryMap: res.tableSummaryMap,
375
- isTableTemp: this.isTableTemp,
376
- serviceName: this.serviceName,
377
- env: this.env,
378
- form: this.$refs.xForm.form,
379
- allowedCardMode: res.allowedCardMode,
380
- cardModeConfig: res.cardModeConfig,
381
- createdEditMode: res.createdEditMode,
382
- summaryUpdate: true
383
- })
384
- }
385
- this.loading = false
386
- },
387
-
388
- // 自定义按钮
389
- editButtonStateDataClick (functionName, rows) {
390
- console.log('functionName', functionName)
391
- console.log('rows', rows)
392
- this.$emit(functionName, rows)
393
- },
394
-
395
- /**
396
- * 提交查询表单事件
397
- * @param res 参数
398
- */
399
- onSearchSubmit (res) {
400
- if (res.valid) {
401
- // 表单赋值
402
- this.$refs.xTable.setQueryForm(res.form)
403
- this.$refs.xTable.summaryUpdate = true
404
- // commit
405
- this.$emit('afterSearchSubmit', res)
406
- } else {
407
- return false
408
- }
409
- },
410
- active (props) {
411
- let num = false
412
- for (const key in props) {
413
- // eslint-disable-next-line no-prototype-builtins
414
- if (this.$props.hasOwnProperty(key)) {
415
- console.log('key', this.$props[key] instanceof Object)
416
- if (this.$props[key] instanceof Object) {
417
- this.$props[key] = JSON.parse(props[key])
418
- } else {
419
- this.$props[key] = props[key]
420
- }
421
- num = true
422
- }
423
- console.log(key, props[key])
424
- }
425
- console.warn('activeProps', this.$props)
426
- if (num) {
427
- this.initConfig()
428
- }
429
- },
430
- /**
431
- * 提交新增/修改表单后事件
432
- */
433
- onAddOrEditSubmitAfterSubmit (res) {
434
- this.refreshTable(res.businessType === '新增')
435
- // commit
436
- this.$emit('afterSubmit', res)
437
- },
438
- /**
439
- * 表格查询后事件
440
- * @param res 参数
441
- * @param conditionParams 查询条件
442
- */
443
- afterQuery (res, conditionParams) {
444
- this.$emit('afterQuery', res, conditionParams)
445
- },
446
- /**
447
- * 详情按钮事件
448
- * @param record 本条数据
449
- * @param id 数据标识
450
- * @param actionType 操作类型
451
- * @param fun 向上级传递的事件
452
- */
453
- action (record, id, actionType, fun = 'action') {
454
- this.$emit(fun, record, id, actionType)
455
- },
456
- treeOnChecked (checkedKeys, deepNodes, deepKeys) {
457
- this.$emit('treeOnChecked', checkedKeys, deepNodes, deepKeys)
458
- },
459
- treeBtnFuncClick (index, func) {
460
- this.$emit('treeBtnFuncClick', index, func)
461
- },
462
- /**
463
- * 新增按钮事件
464
- */
465
- del (keys, callback) {
466
- if (this.customDelete) {
467
- this.$emit('del', keys, callback)
468
- }
469
- },
470
- /**
471
- * 新增按钮事件
472
- */
473
- add () {
474
- if (this.customAdd) {
475
- this.$emit('add')
476
- } else {
477
- const res = this.realQueryConfig
478
- this.$refs.xAddForm.init({
479
- businessType: '新增',
480
- title: this.title,
481
- isShow: !res.buttonState || res.buttonState.add || res.buttonState.edit,
482
- configName: this.queryParamsName,
483
- configContent: this.queryParamsJson,
484
- formItems: res.formJson,
485
- viewMode: this.viewMode,
486
- isTableTemp: this.isTableTemp,
487
- serviceName: this.serviceName,
488
- fixedAddForm: this.fixedAddForm,
489
- getDataParams: this.getDataParams,
490
- layout: res.xAddFormLayout || 'horizontal',
491
- env: this.env
492
- })
493
- }
494
- },
495
- /**
496
- * 添加按钮事件
497
- */
498
- move () {
499
- console.log('move22222222222222222')
500
- this.moveType = true
501
- this.$nextTick(
502
- () => {
503
- this.$refs.xAddReport.init({
504
- configName: this.moveconfig,
505
- selectedId: this.fixedAddForm.selected_id
506
- })
507
- }
508
- )
509
- },
510
- /**
511
- * 修改按钮事件
512
- * @param modifyModelData 修改表单数据
513
- */
514
- edit (modifyModelData) {
515
- if (this.customEdit) {
516
- this.$emit('edit')
517
- } else {
518
- const res = this.realQueryConfig
519
- this.$refs.xAddForm.init({
520
- businessType: '修改',
521
- title: this.title,
522
- isShow: !res.buttonState || res.buttonState.add || res.buttonState.edit,
523
- configName: this.queryParamsName,
524
- configContent: this.queryParamsJson,
525
- formItems: res.formJson,
526
- viewMode: this.viewMode,
527
- isTableTemp: this.isTableTemp,
528
- serviceName: this.serviceName,
529
- fixedAddForm: this.fixedAddForm,
530
- getDataParams: this.getDataParams,
531
- modifyModelData: modifyModelData,
532
- layout: res.xAddFormLayout || 'horizontal',
533
- env: this.env
534
- })
535
- }
536
- },
537
- /**
538
- * 删除后事件
539
- * @param res
540
- */
541
- afterDelete (res) {
542
- this.$emit('afterDelete', res)
543
- },
544
- /**
545
- * 更多条件是否展示
546
- */
547
- toggleAdvanced () {
548
- this.$refs.xTable.setScrollYHeight({})
549
- },
550
- /**
551
- * 查询表单部分显示/隐藏切换
552
- */
553
- toggleIsFormShow () {
554
- this.toggleIsFormIcon = this.toggleIsFormIcon === 'vertical-align-top' ? 'vertical-align-bottom' : 'vertical-align-top'
555
- this.$refs.xForm.toggleVisible()
556
- this.$refs.xTable.setScrollYHeight({})
557
- },
558
- /**
559
- * 选择列事件
560
- * @param selectedRowKeys 选中列Key集合
561
- * @param selectedRows 选中列
562
- */
563
- selectRow (selectedRowKeys, selectedRows) {
564
- this.table_selectedRowKeys = selectedRowKeys
565
- this.table_selectedRows = selectedRows
566
- this.$emit('selectRow', selectedRowKeys, selectedRows)
567
- },
568
- /**
569
- * 清除勾选数据
570
- */
571
- clearRowKeys () {
572
- this.$refs.xTable.clearRowKeys()
573
- },
574
- /**
575
- * 临时表修改
576
- * @param res 参数
577
- */
578
- tempTableEdit (res) {
579
- this.$emit('tempTableEdit', res)
580
- },
581
- /**
582
- * 刷新表格
583
- * @param toFirstPage 是否到第一页
584
- */
585
- refreshTable (toFirstPage = true) {
586
- this.$refs.xTable.refresh(toFirstPage)
587
- },
588
- /**
589
- * 刷新表格
590
- * @param toFirstPage 是否到第一页
591
- */
592
- refresh (toFirstPage = true) {
593
- this.$refs.xTable.refresh(toFirstPage)
594
- },
595
- /**
596
- * 获取表格数据
597
- */
598
- getTableData () {
599
- return this.$refs.xTable.getTableData()
600
- }
601
- },
602
- action: {
603
- /**
604
- * 实现doAction方法
605
- */
606
- doAction (actionType, args, data) {
607
- switch (actionType) {
608
- case 'refreshTable':
609
- for (const item in args) {
610
- console.log('item', item)
611
- }
612
- break
613
- default:
614
- break
615
- }
616
- }
617
- },
618
- mounted () {
619
- if (this.getSelectedData && typeof this.getSelectedData === 'function') {
620
- const selectedId = this.getSelectedData()
621
- if (typeof selectedId === 'object') {
622
- const data = JSON.parse(JSON.stringify(selectedId))
623
- if (data.selectedId) {
624
- data.selected_id = data.selectedId
625
- delete data.selectedId
626
- }
627
- Object.assign(this.fixedAddForm, data)
628
- Object.assign(this.fixedQueryForm, data)
629
- } else {
630
- Object.assign(this.fixedAddForm, { selected_id: selectedId })
631
- Object.assign(this.fixedQueryForm, { selected_id: selectedId })
632
- }
633
- }
634
- }
635
- }
636
- </script>
637
- <style lang="less" scoped>
638
- .crud_title {
639
- height: 32px;
640
- font-size: 16px;
641
- font-weight: 500;
642
- color: #000000d9;
643
- line-height: 32px;
644
- margin-bottom: 12px;
645
- }
646
- </style>
1
+ <template>
2
+ <a-row type="flex" :gutter="{ xs: 8, sm: 10, md: 12, lg: 16 }">
3
+ <a-col
4
+ :xs="14"
5
+ :sm="14"
6
+ :md="12"
7
+ :lg="9"
8
+ :xl="6"
9
+ :xxl="5"
10
+ v-if="xTreeConfigName"
11
+ :style="{ maxWidth: '400px'}">
12
+ <x-tree-pro
13
+ :config-name="xTreeConfigName"
14
+ :env="env"
15
+ @action="action"
16
+ @btnFuncClick="treeBtnFuncClick"
17
+ @treeOnChecked="treeOnChecked"
18
+ ref="xtree"
19
+ ></x-tree-pro>
20
+ </a-col>
21
+ <a-col
22
+ :xs="xTreeConfigName ? 10 : 24"
23
+ :sm="xTreeConfigName ? 10 : 24"
24
+ :md="xTreeConfigName ? 12 : 24"
25
+ :lg="xTreeConfigName ? 15 : 24"
26
+ :xl="xTreeConfigName ? 18 : 24"
27
+ :xxl="xTreeConfigName ? 19 : 24">
28
+ <a-skeleton :loading="loading" :paragraph="{ rows: 4 }"/>
29
+ <a-row style="height: 12px" v-if="xTreeConfigName"></a-row>
30
+ <div v-show="!loading">
31
+ <template v-if="!loadError">
32
+ <x-add-form
33
+ ref="xAddForm"
34
+ @afterSubmit="onAddOrEditSubmitAfterSubmit"
35
+ >
36
+ <template slot="groupFormItems" slot-scope="{form, model, rules, modifyModelData}">
37
+ <slot
38
+ name="groupFormItems"
39
+ :form="form"
40
+ :model="model"
41
+ :rules="rules"
42
+ :modifyModelData="modifyModelData"></slot>
43
+ </template>
44
+ </x-add-form>
45
+ <x-add-report
46
+ v-if="moveType"
47
+ ref="xAddReport"
48
+ >
49
+ </x-add-report>
50
+ <div v-if="crudTitle" class="crud_title">
51
+ {{ crudTitle }}
52
+ </div>
53
+ <x-form
54
+ ref="xForm"
55
+ @toggleAdvanced="toggleAdvanced"
56
+ @onSubmit="onSearchSubmit">
57
+ <slot name="formBtnExpand"></slot>
58
+ </x-form>
59
+ <x-table
60
+ ref="xTable"
61
+ :fixedQueryForm="fixedQueryForm"
62
+ :queryParamsName="queryParamsName"
63
+ :query-params-json="queryParamsJson"
64
+ :show-pagination="showPagination"
65
+ :customDelete="customDelete"
66
+ :extraHeight="extraHeight"
67
+ @add="add"
68
+ @move="move"
69
+ @edit="edit"
70
+ @del="del"
71
+ @afterDelete="afterDelete"
72
+ @action="action"
73
+ @selectRow="selectRow"
74
+ @afterQuery="afterQuery"
75
+ @columnClick="columnClick"
76
+ @tempTableEdit="tempTableEdit"
77
+ @editButtonStateDataClick="editButtonStateDataClick"
78
+ @importExcelOk="importExcelOk">
79
+ <template slot="leftButton" slot-scope="{selectedRowKeys, selectedRows}">
80
+ <slot name="leftButton" :selectedRowKeys="selectedRowKeys" :selectedRows="selectedRows"></slot>
81
+ </template>
82
+ <template slot="button" slot-scope="{selectedRowKeys, selectedRows}">
83
+ <slot name="button" :selectedRowKeys="selectedRowKeys" :selectedRows="selectedRows"></slot>
84
+ </template>
85
+ <template slot="rightBtnExpand" slot-scope="{selectedRowKeys, selectedRows}">
86
+ <slot name="rightBtnExpand" :selectedRowKeys="selectedRowKeys" :selectedRows="selectedRows"></slot>
87
+ <a-tooltip title="收起查询条件" placement="bottom">
88
+ <a-button @click="toggleIsFormShow">
89
+ <a-icon :style="iconStyle" :type="toggleIsFormIcon"/>
90
+ </a-button>
91
+ </a-tooltip>
92
+ </template>
93
+ <!-- 底部插槽 -->
94
+ <template slot="footer" slot-scope="{selectedRowKeys, selectedRows}">
95
+ <slot name="footer" :selectedRowKeys="selectedRowKeys" :selectedRows="selectedRows"></slot>
96
+ </template>
97
+ <!-- excel导入说明插槽 -->
98
+ <template #importExcelSlot>
99
+ <slot name="importExcelSlot"></slot>
100
+ </template>
101
+ </x-table>
102
+ </template>
103
+ <template v-else>
104
+ <a-empty>
105
+ <span slot="description"> 页面配置不存在请联系系统管理员, </span>
106
+ </a-empty>
107
+ </template>
108
+ </div>
109
+ </a-col>
110
+ </a-row>
111
+ </template>
112
+ <script>
113
+ import XForm from '@vue2-client/base-client/components/common/XForm'
114
+ import XAddForm from '@vue2-client/base-client/components/common/XAddForm'
115
+ import XAddReport from '@vue2-client/base-client/components/common/XAddReport'
116
+ import XTable from '@vue2-client/base-client/components/common/XTable'
117
+ import XTree from '@vue2-client/base-client/components/common/XTree'
118
+ import XImportExcel from '@vue2-client/base-client/components/common/XImportExcel'
119
+ import {
120
+ getConfigByName,
121
+ getConfigByLogic,
122
+ parseConfig, runLogic, getConfigByNameAsync,
123
+ } from '@vue2-client/services/api/common'
124
+ import { mapState } from 'vuex'
125
+ import XTreePro from '@vue2-client/base-client/components/common/XTree/XTreePro.vue'
126
+
127
+ export default {
128
+ name: 'XFormTable',
129
+ components: {
130
+ XTreePro,
131
+ XTable,
132
+ XForm,
133
+ XTree,
134
+ XAddForm,
135
+ XAddReport,
136
+ XImportExcel
137
+ },
138
+ inject: ['getSelectedId', 'getSelectedData', 'getMixinData', 'getOutEnv'],
139
+ data () {
140
+ return {
141
+ // 加载状态
142
+ loading: false,
143
+ // 图标样式
144
+ iconStyle: {
145
+ position: 'relative',
146
+ top: '1px'
147
+ },
148
+ loadError: false,
149
+ moveType: false,
150
+ // 添加按钮对应的配置名
151
+ moveconfig: '',
152
+ // 实际查询配置内容
153
+ realQueryConfig: {},
154
+ toggleIsFormIcon: 'vertical-align-top',
155
+ table_selectedRowKeys: [],
156
+ table_selectedRows: []
157
+ }
158
+ },
159
+ computed: {
160
+ ...mapState('setting', ['isMobile'])
161
+ },
162
+ props: {
163
+ // 业务名称
164
+ title: {
165
+ type: String,
166
+ default: ''
167
+ },
168
+ // 卡片标题
169
+ crudTitle: {
170
+ type: String,
171
+ default: null
172
+ },
173
+ // 查询配置文件名
174
+ queryParamsName: {
175
+ type: String,
176
+ default: null
177
+ },
178
+ // 配置所属命名空间
179
+ serviceName: {
180
+ type: String,
181
+ default: undefined
182
+ },
183
+ // 查询配置文件Json,用于查询配置生成器的预览
184
+ queryParamsJson: {
185
+ type: Object,
186
+ default: null
187
+ },
188
+ // xTree 配置
189
+ xTreeConfigName: {
190
+ type: String,
191
+ default: null
192
+ },
193
+ // 业务逻辑名称, 通过logic获取表单表格配置
194
+ logicName: {
195
+ type: String,
196
+ default: null
197
+ },
198
+ // 执行logic传递的参数
199
+ logicParam: {
200
+ type: Object,
201
+ default: () => {
202
+ }
203
+ },
204
+ // 固定新增表单
205
+ fixedAddForm: {
206
+ type: Object,
207
+ default: () => {
208
+ return {}
209
+ }
210
+ },
211
+ // 固定查询表单
212
+ fixedQueryForm: {
213
+ type: Object,
214
+ default: () => {
215
+ return {}
216
+ }
217
+ },
218
+ // 预览模式
219
+ viewMode: {
220
+ type: Boolean,
221
+ default: () => {
222
+ return false
223
+ }
224
+ },
225
+ // 环境
226
+ env: {
227
+ type: String,
228
+ default: () => {
229
+ return 'prod'
230
+ }
231
+ },
232
+ // 数据只有一页时是否展示分页,true:展示,auto:隐藏
233
+ showPagination: {
234
+ type: Boolean,
235
+ default: true
236
+ },
237
+ // 调用logic获取数据源的追加参数
238
+ getDataParams: {
239
+ type: Object,
240
+ default: undefined
241
+ },
242
+ // 可以控制组件中导出等按钮的隐藏
243
+ buttonState: {
244
+ type: Object,
245
+ default: undefined
246
+ },
247
+ // 是否自定义新增按钮的功能
248
+ customAdd: {
249
+ type: Boolean,
250
+ default: false
251
+ },
252
+ reportQueryName: {
253
+ type: String,
254
+ default: undefined,
255
+ },
256
+ // 是否自定义删除按钮的功能
257
+ customDelete: {
258
+ type: Boolean,
259
+ default: false
260
+ },
261
+ // 是否自定义修改按钮的功能
262
+ customEdit: {
263
+ type: Boolean,
264
+ default: false
265
+ },
266
+ // 是否自定义增加按钮
267
+ customMove: {
268
+ type: Boolean,
269
+ default: false
270
+ },
271
+ // 自适应底部边距
272
+ extraHeight: {
273
+ type: Number,
274
+ default: 80
275
+ }
276
+ },
277
+ watch: {
278
+ logicParam: {
279
+ handler () {
280
+ this.initConfig()
281
+ },
282
+ deep: true
283
+ },
284
+ queryParamsJson: {
285
+ handler () {
286
+ this.initConfig()
287
+ },
288
+ deep: true
289
+ },
290
+ queryParamsName: {
291
+ handler () {
292
+ this.initConfig()
293
+ }
294
+ },
295
+ serviceName: {
296
+ handler () {
297
+ this.initConfig()
298
+ }
299
+ },
300
+ },
301
+ methods: {
302
+ runLogic,
303
+ getConfigByNameAsync,
304
+ getConfigByName,
305
+ columnClick (key, value, record) {
306
+ this.$emit('columnClick', key, value, record)
307
+ },
308
+ importExcelOk () {
309
+ this.$emit('importExcelOk')
310
+ },
311
+ initConfig () {
312
+ this.loading = true
313
+ this.loadError = false
314
+ if (this.queryParamsName) {
315
+ this.getConfig()
316
+ } else if (this.queryParamsJson) {
317
+ this.getConfigBySource()
318
+ } else if (this.logicName && this.logicParam) {
319
+ this.getColumnJsonByLogic()
320
+ } else {
321
+ this.loading = false
322
+ this.loadError = true
323
+ }
324
+ },
325
+
326
+ getConfig () {
327
+ getConfigByName(this.queryParamsName, this.serviceName, (res) => {
328
+ this.updateComponents(res)
329
+ }, this.env === 'dev')
330
+ },
331
+ getConfigBySource () {
332
+ parseConfig(this.queryParamsJson, 'CRUD_FORM', this.serviceName, this.env === 'dev').then(res => {
333
+ this.updateComponents(res, true)
334
+ })
335
+ },
336
+ getColumnJsonByLogic () {
337
+ getConfigByLogic(this.logicName, this.logicParam, this.serviceName, (res) => {
338
+ this.updateComponents(res, true)
339
+ }, this.env === 'dev')
340
+ },
341
+ /**
342
+ * 更新子组件
343
+ * @param res 参数
344
+ * @param setQueryParams 是否设置queryParams参数
345
+ */
346
+ updateComponents (res, setQueryParams) {
347
+ this.realQueryConfig = res
348
+ if (this.$refs.xTable && this.$refs.xForm && this.$refs.xAddForm) {
349
+ // 初始化 xForm 子组件
350
+ this.$refs.xForm.init({
351
+ formItems: res.formJson,
352
+ serviceName: this.serviceName,
353
+ getDataParams: this.getDataParams,
354
+ env: this.env
355
+ })
356
+ // 设置添加按钮对应的配置名
357
+ this.moveconfig = res.moveconfig
358
+ // 初始化 xTable 子组件
359
+ this.$refs.xTable.init({
360
+ formItems: res.formJson,
361
+ primaryKey: res.primaryKey,
362
+ createdQuery: res.createdQuery,
363
+ queryParams: setQueryParams ? res : null,
364
+ tableColumns: res.columnJson,
365
+ buttonState: Object.assign(res.buttonState, this.buttonState),
366
+ buttonPermissions: res.buttonPermissions,
367
+ editButtonStateData: res.editButtonStateData,
368
+ title: this.title,
369
+ viewMode: this.viewMode,
370
+ tableSummaryMap: res.tableSummaryMap,
371
+ isTableTemp: this.isTableTemp,
372
+ serviceName: this.serviceName,
373
+ env: this.env,
374
+ form: this.$refs.xForm.form,
375
+ allowedCardMode: res.allowedCardMode,
376
+ cardModeConfig: res.cardModeConfig,
377
+ createdEditMode: res.createdEditMode,
378
+ summaryUpdate: true
379
+ })
380
+ }
381
+ this.loading = false
382
+ },
383
+
384
+ // 自定义按钮
385
+ editButtonStateDataClick (functionName, rows) {
386
+ console.log('functionName', functionName)
387
+ console.log('rows', rows)
388
+ this.$emit(functionName, rows)
389
+ },
390
+
391
+ /**
392
+ * 提交查询表单事件
393
+ * @param res 参数
394
+ */
395
+ onSearchSubmit (res) {
396
+ if (res.valid) {
397
+ // 表单赋值
398
+ this.$refs.xTable.setQueryForm(res.form)
399
+ this.$refs.xTable.summaryUpdate = true
400
+ // commit
401
+ this.$emit('afterSearchSubmit', res)
402
+ } else {
403
+ return false
404
+ }
405
+ },
406
+ active (props) {
407
+ let num = false
408
+ for (const key in props) {
409
+ // eslint-disable-next-line no-prototype-builtins
410
+ if (this.$props.hasOwnProperty(key)) {
411
+ console.log('key', this.$props[key] instanceof Object)
412
+ if (this.$props[key] instanceof Object) {
413
+ this.$props[key] = JSON.parse(props[key])
414
+ } else {
415
+ this.$props[key] = props[key]
416
+ }
417
+ num = true
418
+ }
419
+ console.log(key, props[key])
420
+ }
421
+ console.warn('activeProps', this.$props)
422
+ if (num) {
423
+ this.initConfig()
424
+ }
425
+ },
426
+ /**
427
+ * 提交新增/修改表单后事件
428
+ */
429
+ onAddOrEditSubmitAfterSubmit (res) {
430
+ this.refreshTable(res.businessType === '新增')
431
+ // commit
432
+ this.$emit('afterSubmit', res)
433
+ },
434
+ /**
435
+ * 表格查询后事件
436
+ * @param res 参数
437
+ * @param conditionParams 查询条件
438
+ */
439
+ afterQuery (res, conditionParams) {
440
+ this.$emit('afterQuery', res, conditionParams)
441
+ },
442
+ /**
443
+ * 详情按钮事件
444
+ * @param record 本条数据
445
+ * @param id 数据标识
446
+ * @param actionType 操作类型
447
+ * @param fun 向上级传递的事件
448
+ */
449
+ action (record, id, actionType, fun = 'action') {
450
+ this.$emit(fun, record, id, actionType)
451
+ },
452
+ treeOnChecked (checkedKeys, deepNodes, deepKeys) {
453
+ this.$emit('treeOnChecked', checkedKeys, deepNodes, deepKeys)
454
+ },
455
+ treeBtnFuncClick (index, func) {
456
+ this.$emit('treeBtnFuncClick', index, func)
457
+ },
458
+ /**
459
+ * 新增按钮事件
460
+ */
461
+ del (keys, callback) {
462
+ if (this.customDelete) {
463
+ this.$emit('del', keys, callback)
464
+ }
465
+ },
466
+ /**
467
+ * 新增按钮事件
468
+ */
469
+ add () {
470
+ if (this.customAdd) {
471
+ this.$emit('add')
472
+ } else {
473
+ const res = this.realQueryConfig
474
+ this.$refs.xAddForm.init({
475
+ businessType: '新增',
476
+ title: this.title,
477
+ isShow: !res.buttonState || res.buttonState.add || res.buttonState.edit,
478
+ configName: this.queryParamsName,
479
+ configContent: this.queryParamsJson,
480
+ formItems: res.formJson,
481
+ viewMode: this.viewMode,
482
+ isTableTemp: this.isTableTemp,
483
+ serviceName: this.serviceName,
484
+ fixedAddForm: this.fixedAddForm,
485
+ getDataParams: this.getDataParams,
486
+ layout: res.xAddFormLayout || 'horizontal',
487
+ env: this.env
488
+ })
489
+ }
490
+ },
491
+ /**
492
+ * 添加按钮事件
493
+ */
494
+ move () {
495
+ console.log('move22222222222222222')
496
+ this.moveType = true
497
+ this.$nextTick(
498
+ () => {
499
+ this.$refs.xAddReport.init({
500
+ configName: this.moveconfig,
501
+ selectedId: this.fixedAddForm.selected_id
502
+ })
503
+ }
504
+ )
505
+ },
506
+ /**
507
+ * 修改按钮事件
508
+ * @param modifyModelData 修改表单数据
509
+ */
510
+ edit (modifyModelData) {
511
+ if (this.customEdit) {
512
+ this.$emit('edit')
513
+ } else {
514
+ const res = this.realQueryConfig
515
+ this.$refs.xAddForm.init({
516
+ businessType: '修改',
517
+ title: this.title,
518
+ isShow: !res.buttonState || res.buttonState.add || res.buttonState.edit,
519
+ configName: this.queryParamsName,
520
+ configContent: this.queryParamsJson,
521
+ formItems: res.formJson,
522
+ viewMode: this.viewMode,
523
+ isTableTemp: this.isTableTemp,
524
+ serviceName: this.serviceName,
525
+ fixedAddForm: this.fixedAddForm,
526
+ getDataParams: this.getDataParams,
527
+ modifyModelData: modifyModelData,
528
+ layout: res.xAddFormLayout || 'horizontal',
529
+ env: this.env
530
+ })
531
+ }
532
+ },
533
+ /**
534
+ * 删除后事件
535
+ * @param res
536
+ */
537
+ afterDelete (res) {
538
+ this.$emit('afterDelete', res)
539
+ },
540
+ /**
541
+ * 更多条件是否展示
542
+ */
543
+ toggleAdvanced () {
544
+ this.$refs.xTable.setScrollYHeight({})
545
+ },
546
+ /**
547
+ * 查询表单部分显示/隐藏切换
548
+ */
549
+ toggleIsFormShow () {
550
+ this.toggleIsFormIcon = this.toggleIsFormIcon === 'vertical-align-top' ? 'vertical-align-bottom' : 'vertical-align-top'
551
+ this.$refs.xForm.toggleVisible()
552
+ this.$refs.xTable.setScrollYHeight({})
553
+ },
554
+ /**
555
+ * 选择列事件
556
+ * @param selectedRowKeys 选中列Key集合
557
+ * @param selectedRows 选中列
558
+ */
559
+ selectRow (selectedRowKeys, selectedRows) {
560
+ this.table_selectedRowKeys = selectedRowKeys
561
+ this.table_selectedRows = selectedRows
562
+ this.$emit('selectRow', selectedRowKeys, selectedRows)
563
+ },
564
+ /**
565
+ * 清除勾选数据
566
+ */
567
+ clearRowKeys () {
568
+ this.$refs.xTable.clearRowKeys()
569
+ },
570
+ /**
571
+ * 临时表修改
572
+ * @param res 参数
573
+ */
574
+ tempTableEdit (res) {
575
+ this.$emit('tempTableEdit', res)
576
+ },
577
+ /**
578
+ * 刷新表格
579
+ * @param toFirstPage 是否到第一页
580
+ */
581
+ refreshTable (toFirstPage = true) {
582
+ this.$refs.xTable.refresh(toFirstPage)
583
+ },
584
+ /**
585
+ * 刷新表格
586
+ * @param toFirstPage 是否到第一页
587
+ */
588
+ refresh (toFirstPage = true) {
589
+ this.$refs.xTable.refresh(toFirstPage)
590
+ },
591
+ /**
592
+ * 获取表格数据
593
+ */
594
+ getTableData () {
595
+ return this.$refs.xTable.getTableData()
596
+ }
597
+ },
598
+ action: {
599
+ /**
600
+ * 实现doAction方法
601
+ */
602
+ doAction (actionType, args, data) {
603
+ switch (actionType) {
604
+ case 'refreshTable':
605
+ for (const item in args) {
606
+ console.log('item', item)
607
+ }
608
+ break
609
+ default:
610
+ break
611
+ }
612
+ }
613
+ },
614
+ mounted () {
615
+ this.initConfig()
616
+ if (this.getSelectedData && typeof this.getSelectedData === 'function') {
617
+ const selectedId = this.getSelectedData()
618
+ if (typeof selectedId === 'object') {
619
+ const data = JSON.parse(JSON.stringify(selectedId))
620
+ if (data.selectedId) {
621
+ data.selected_id = data.selectedId
622
+ delete data.selectedId
623
+ }
624
+ Object.assign(this.fixedAddForm, data)
625
+ Object.assign(this.fixedQueryForm, data)
626
+ } else {
627
+ Object.assign(this.fixedAddForm, { selected_id: selectedId })
628
+ Object.assign(this.fixedQueryForm, { selected_id: selectedId })
629
+ }
630
+ }
631
+ }
632
+ }
633
+ </script>
634
+ <style lang="less" scoped>
635
+ .crud_title {
636
+ height: 32px;
637
+ font-size: 16px;
638
+ font-weight: 500;
639
+ color: #000000d9;
640
+ line-height: 32px;
641
+ margin-bottom: 12px;
642
+ }
643
+ </style>