vue2-client 1.9.78 → 1.9.79

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 (337) 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 +143 -143
  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 +1 -1
  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 +107 -107
  105. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +868 -868
  106. package/src/base-client/components/common/XAddNativeForm/demo.vue +30 -30
  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 +207 -207
  112. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  113. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  114. package/src/base-client/components/common/XButtons/XButtons.vue +71 -71
  115. package/src/base-client/components/common/XButtons/index.js +3 -3
  116. package/src/base-client/components/common/XButtons/index.md +61 -61
  117. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  118. package/src/base-client/components/common/XConversation/XConversation.vue +140 -140
  119. package/src/base-client/components/common/XConversation/XConversationDemo.vue +28 -28
  120. package/src/base-client/components/common/XDataCard/XDataCard.vue +420 -420
  121. package/src/base-client/components/common/XDataCard/index.js +3 -3
  122. package/src/base-client/components/common/XDataCard/index.md +1 -1
  123. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  124. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  125. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  126. package/src/base-client/components/common/XDescriptions/XDescriptions.vue +169 -169
  127. package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +304 -304
  128. package/src/base-client/components/common/XDescriptions/demo.vue +50 -50
  129. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  130. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  131. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  132. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  133. package/src/base-client/components/common/XForm/XForm.vue +340 -340
  134. package/src/base-client/components/common/XForm/XFormItem.vue +4 -3
  135. package/src/base-client/components/common/XForm/XTreeSelect.vue +250 -250
  136. package/src/base-client/components/common/XForm/index.md +178 -178
  137. package/src/base-client/components/common/XFormCol/XFormCol.vue +96 -96
  138. package/src/base-client/components/common/XFormGroup/XFormGroup.vue +261 -261
  139. package/src/base-client/components/common/XFormGroup/demo.vue +45 -45
  140. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  141. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  142. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  143. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  144. package/src/base-client/components/common/XFormTable/XFormTable.vue +713 -713
  145. package/src/base-client/components/common/XFormTable/demo.vue +76 -76
  146. package/src/base-client/components/common/XFormTable/index.md +92 -92
  147. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +162 -162
  148. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  149. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  150. package/src/base-client/components/common/XReport/XReport.vue +892 -892
  151. package/src/base-client/components/common/XReport/XReportDemo.vue +304 -304
  152. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  153. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  154. package/src/base-client/components/common/XReport/XReportTrGroup.vue +808 -808
  155. package/src/base-client/components/common/XReport/index.js +3 -3
  156. package/src/base-client/components/common/XReport/index.md +44 -44
  157. package/src/base-client/components/common/XReport/print.js +186 -186
  158. package/src/base-client/components/common/XReportDrawer/XReportDrawer.vue +201 -201
  159. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  160. package/src/base-client/components/common/XReportGrid/XReport.vue +995 -959
  161. package/src/base-client/components/common/XReportGrid/XReportDemo.vue +42 -42
  162. package/src/base-client/components/common/XReportGrid/XReportDesign.vue +557 -557
  163. package/src/base-client/components/common/XReportGrid/XReportJsonRender.vue +380 -380
  164. package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +999 -999
  165. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  166. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  167. package/src/base-client/components/common/XReportGrid/print.js +184 -184
  168. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  169. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  170. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  171. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  172. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  173. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  174. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  175. package/src/base-client/components/common/XStepView/index.js +3 -3
  176. package/src/base-client/components/common/XStepView/index.md +31 -31
  177. package/src/base-client/components/common/XTab/XTab.vue +201 -201
  178. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  179. package/src/base-client/components/common/XTab/index.js +3 -3
  180. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  181. package/src/base-client/components/common/XTable/XTable.vue +1191 -1191
  182. package/src/base-client/components/common/XTable/index.md +255 -255
  183. package/src/base-client/components/common/XTree/XTree.vue +423 -423
  184. package/src/base-client/components/common/XTree/XTreePro.vue +434 -434
  185. package/src/base-client/components/common/XTree/index.js +3 -3
  186. package/src/base-client/components/common/XTree/index.md +36 -36
  187. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  188. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  189. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  190. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  191. package/src/base-client/components/his/XHisEditor/XHisEditor.vue +203 -203
  192. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  193. package/src/base-client/components/index.js +51 -51
  194. package/src/base-client/components/layout/XPageView/RenderRow.vue +63 -63
  195. package/src/base-client/components/layout/XPageView/XErrorView.vue +11 -11
  196. package/src/base-client/components/layout/XPageView/XPageView.vue +155 -155
  197. package/src/base-client/components/layout/XPageView/index.js +3 -3
  198. package/src/base-client/components/layout/XPageView/index.md +38 -38
  199. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  200. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  201. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  202. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  203. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  204. package/src/base-client/plugins/AppData.js +121 -121
  205. package/src/base-client/plugins/Config.js +19 -19
  206. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  207. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  208. package/src/bootstrap.js +39 -39
  209. package/src/components/CodeMirror/inedx.vue +118 -118
  210. package/src/components/CodeMirror/setting.js +40 -40
  211. package/src/components/FilePreview/FilePreview.vue +166 -166
  212. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  213. package/src/components/STable/index.js +380 -380
  214. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  215. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  216. package/src/components/exception/ExceptionPage.vue +70 -70
  217. package/src/components/menu/SideMenu.vue +75 -75
  218. package/src/components/menu/menu.js +273 -273
  219. package/src/components/tool/AStepItem.vue +60 -60
  220. package/src/config/default/antd.config.js +89 -89
  221. package/src/config/default/setting.config.js +55 -55
  222. package/src/font-style/font.css +4 -4
  223. package/src/layouts/CommonLayout.vue +56 -56
  224. package/src/layouts/GridView.vue +45 -45
  225. package/src/layouts/PageLayout.vue +151 -151
  226. package/src/layouts/SinglePageView.vue +136 -136
  227. package/src/layouts/header/AdminHeader.vue +132 -132
  228. package/src/layouts/header/HeaderNotice.vue +177 -177
  229. package/src/layouts/tabs/TabsHead.vue +189 -189
  230. package/src/layouts/tabs/TabsView.vue +389 -389
  231. package/src/lib.js +1 -1
  232. package/src/main.js +30 -30
  233. package/src/mock/extend/index.js +84 -84
  234. package/src/mock/goods/index.js +108 -108
  235. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  236. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  237. package/src/pages/DefaultExample/index.vue +77 -77
  238. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  239. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  240. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  241. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  242. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  243. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  244. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  245. package/src/pages/DynamicStatistics/index.vue +282 -282
  246. package/src/pages/Example/childIndex.vue +15 -15
  247. package/src/pages/Example/index.vue +30 -30
  248. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  249. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  250. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  251. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  252. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  253. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  254. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  255. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  256. package/src/pages/Recording/index.vue +76 -0
  257. package/src/pages/ReportGrid/index.vue +76 -76
  258. package/src/pages/ServiceReview/index.vue +284 -284
  259. package/src/pages/SubExample/index.vue +26 -26
  260. package/src/pages/WorkflowDetail/WorkFlowDemo.vue +32 -32
  261. package/src/pages/WorkflowDetail/WorkflowDetail.vue +230 -230
  262. package/src/pages/WorkflowDetail/WorkflowPageDetail/LeaveMessage.vue +131 -131
  263. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  264. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformation.vue +302 -302
  265. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowBaseInformationDetails.vue +276 -276
  266. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +864 -864
  267. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandleReso.vue +997 -997
  268. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +222 -222
  269. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkOrderParentDetails.vue +233 -233
  270. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowDetailResso.vue +261 -261
  271. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowListResolution.vue +248 -248
  272. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkflowLog.vue +73 -73
  273. package/src/pages/XPageViewExample/index.vue +38 -38
  274. package/src/pages/XReportView/index.vue +64 -64
  275. package/src/pages/XTreeOneProExample/index.vue +67 -67
  276. package/src/pages/login/Login.vue +378 -378
  277. package/src/pages/login/LoginV3.vue +389 -389
  278. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  279. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  280. package/src/pages/resourceManage/orgListManage.vue +98 -98
  281. package/src/pages/system/dictionary/index.vue +44 -44
  282. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  283. package/src/pages/system/monitor/operLog/index.vue +37 -37
  284. package/src/pages/system/settings/modifyPassword.vue +117 -117
  285. package/src/pages/system/ticket/index.vue +480 -480
  286. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  287. package/src/plugins/EventLogPlugin.js +33 -33
  288. package/src/plugins/FindParentsData.js +17 -17
  289. package/src/router/async/config.async.js +1 -0
  290. package/src/router/async/router.map.js +183 -183
  291. package/src/router/guards.js +263 -263
  292. package/src/router/index.js +27 -27
  293. package/src/router.js +19 -19
  294. package/src/services/api/TicketDetailsViewApi.js +46 -46
  295. package/src/services/api/cas.js +79 -79
  296. package/src/services/api/common.js +329 -329
  297. package/src/services/api/entity.js +18 -18
  298. package/src/services/api/index.js +17 -17
  299. package/src/services/api/restTools.js +67 -67
  300. package/src/services/api/workFlow.js +63 -63
  301. package/src/services/apiService.js +15 -15
  302. package/src/services/user.js +90 -90
  303. package/src/services/v3Api.js +116 -116
  304. package/src/store/modules/account.js +115 -115
  305. package/src/store/modules/index.js +5 -5
  306. package/src/store/modules/lowCode.js +33 -33
  307. package/src/store/modules/setting.js +119 -119
  308. package/src/theme/default/style.less +58 -58
  309. package/src/theme/global.less +159 -159
  310. package/src/utils/authority-utils.js +85 -85
  311. package/src/utils/errorCode.js +6 -6
  312. package/src/utils/formatter.js +74 -74
  313. package/src/utils/htmlToPDF.js +108 -108
  314. package/src/utils/htmlToPDFApi.js +5 -5
  315. package/src/utils/indexedDB.js +263 -263
  316. package/src/utils/login.js +188 -188
  317. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  318. package/src/utils/lowcode/lowcodeLog.js +29 -29
  319. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  320. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  321. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  322. package/src/utils/map-utils.js +47 -47
  323. package/src/utils/microAppUtils.js +40 -40
  324. package/src/utils/reg.js +95 -95
  325. package/src/utils/request.js +362 -362
  326. package/src/utils/routerUtil.js +450 -450
  327. package/src/utils/runEvalFunction.js +14 -14
  328. package/src/utils/util.js +313 -313
  329. package/src/utils/waterMark.js +31 -31
  330. package/test/Amis.spec.js +163 -163
  331. package/test/Tree.spec.js +167 -167
  332. package/test/myDialog.spec.js +46 -46
  333. package/test/util.test.js +36 -36
  334. package/test/v3Api.test.js +1983 -1983
  335. package/vue.config.js +199 -199
  336. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
  337. /package/src/base-client/components/common/Recording/{Recoding.vue → Recording.vue} +0 -0
@@ -1,434 +1,434 @@
1
- <template>
2
- <div id="XTreeWarp">
3
- <div class="tree_title" v-if="config.title">
4
- <a-row style="font-size: medium;line-height: 3rem">
5
- <a-col span="16" :offset="2">
6
- <span>{{ config.title }}</span>
7
- </a-col>
8
- <a-col span="1" :offset="2" v-if="treeDisplaySwitch">
9
- <a-icon :type="treeDisplayConfig.showTree? 'caret-down':'caret-left'" :style="{color: treeDisplayConfig.buttonColor}" @click="treeDisplayConfig.showTree=!treeDisplayConfig.showTree"/>
10
- </a-col>
11
- </a-row>
12
- </div>
13
- <div v-show="!treeDisplaySwitch || treeDisplayConfig.showTree">
14
- <a-row v-if="config.search" class="row-search">
15
- <div class="content-search">
16
- <a-input
17
- placeholder="请输入搜索关键字"
18
- v-model="searchInput"
19
- @change="onChange">
20
- <a-icon slot="prefix" type="search"/>
21
- </a-input>
22
- </div>
23
- </a-row>
24
- <a-row v-if="config.tabBtn && config.tabBtn.length > 0">
25
- <div class="content-search" style="padding-top:7px;padding-left: 10px">
26
- <a-space>
27
- <a-button
28
- v-for="(item,index) in config.tabBtn"
29
- @click="btnFuncClick(index,item.customFunction)"
30
- :class="{ 'active-button': activeButtonIndex[index] }"
31
- :key="index">{{ item.name }}
32
- </a-button>
33
- </a-space>
34
- </div>
35
- </a-row>
36
- <div
37
- class="tree_main"
38
- :style="{
39
- maxHeight:heightStore[1]
40
- }">
41
- <a-spin :spinning="spinning">
42
- <div class="ve-tree" :style="{height:heightStore[1]}">
43
- <!-- 不使用虚拟滚动时只需去掉height参数即可 -->
44
- <vue-easy-tree
45
- ref="veTree"
46
- node-key="value"
47
- :height="heightStore[1]"
48
- :show-checkbox="config.checkable"
49
- :data="localTreeData"
50
- :item-size="40"
51
- :auto-expand-parent="true"
52
- @check-change="handleCheckChange"
53
- :default-expanded-keys="expandedKeys"
54
- @node-expand="nodeExpand"
55
- @node-collapse="nodeCollapse"
56
- @node-click="handleNodeClick"
57
- :filter-node-method="filterNode"
58
- :props="props"
59
- >
60
- <span class="custom-tree-node" slot-scope="{ node,data }">
61
- <span :class="{ 'selected': data === selectedNode }" @click="nodeItemClick(data)">
62
- <a-tooltip placement="right" :title="node.label">
63
- <a-icon
64
- v-if="data.icon"
65
- :style="{color: data.iconColor, marginRight: '5px'}"
66
- :type="data.icon"/>
67
- <span
68
- v-html="highlightKeyword(node.label, searchInput)"></span>
69
- <span v-if="countVisible">{{
70
- data.hasOwnProperty('count') ? ' (' + data.count + ')' : ''
71
- }}</span>
72
- </a-tooltip>
73
- </span>
74
- <a-tooltip
75
- :title="icon.title"
76
- :key="icon.func"
77
- v-for="icon in config.btn"
78
- >
79
- <a-icon
80
- @click.stop="action(data, icon.func)"
81
- v-if="executeStrFunction( icon.customFunction,[data])"
82
- :type="icon.icon"
83
- :style="{color:icon.color, marginLeft: '8px'}"></a-icon>
84
- </a-tooltip>
85
- </span>
86
- </vue-easy-tree>
87
- </div>
88
- </a-spin>
89
- </div>
90
- </div>
91
- </div>
92
- </template>
93
-
94
- <script>
95
- // https://github.com/Junior125306/vue-easy-tree
96
- import VueEasyTree from '@afwenming123/vue-easy-tree'
97
- // 样式文件,可以根据需要自定义样式或主题
98
- import '@afwenming123/vue-easy-tree/src/assets/index.min.css'
99
- import { getConfigByNameAsync, runLogic } from '@vue2-client/services/api/common'
100
- import { mapState } from 'vuex'
101
- import { executeStrFunction } from '@vue2-client/utils/runEvalFunction'
102
- import debounce from 'lodash.debounce'
103
-
104
- export default {
105
- props: {
106
- configName: {
107
- type: String,
108
- required: false,
109
- default: undefined
110
- },
111
- configValue: {
112
- type: String,
113
- required: false,
114
- default: undefined
115
- },
116
- env: {
117
- type: String,
118
- default: 'prod'
119
- },
120
- treeData: {
121
- type: Array,
122
- default: () => []
123
- },
124
- // 配置所属命名空间
125
- serviceName: {
126
- type: String,
127
- default: undefined
128
- },
129
- // 是否显示收起开关
130
- treeDisplaySwitch: {
131
- type: Boolean,
132
- default: false
133
- },
134
- // 是否显示子级数量
135
- countVisible: {
136
- type: Boolean,
137
- default: true
138
- },
139
- // 收起开关默认值设置
140
- treeDisplayConfig: {
141
- type: Object,
142
- default: () => {
143
- return {
144
- showTree: true,
145
- buttonColor: '#91d5ff'
146
- }
147
- }
148
- }
149
- },
150
- data () {
151
- return {
152
- props: {
153
- label: 'label',
154
- children: 'children'
155
- },
156
- localTreeData: this.treeData,
157
- config: {},
158
- // 暂存选中的数据
159
- expandedKeys: [],
160
- // 是否加载中
161
- spinning: false,
162
- // 选中的 key
163
- checkedKeys: [],
164
- // 定义 tree 数据
165
- data_treeData: [],
166
- // 存储搜索结果的树数据
167
- filteredTreeData: [],
168
- // 定义最深一层的 数据
169
- deepestNodes: [],
170
- // 定义激活的按钮
171
- activeButtonIndex: {},
172
- // 是否全选
173
- checkall: false,
174
- // 选了但没有全选
175
- indeterminate: false,
176
- // 选择的节点
177
- selectedNode: null,
178
- // 暂存查询信息
179
- searchInfo: {},
180
- searchInput: '',
181
- replaceFields: { children: 'children', title: 'label', key: 'value' }
182
- }
183
- },
184
- components: {
185
- VueEasyTree
186
- },
187
- watch: {
188
- treeData (newVal) {
189
- this.localTreeData = newVal
190
- }
191
- },
192
- async created () {
193
- if (this.configName) {
194
- this.config = await getConfigByNameAsync(this.configName, this.serviceName, this.env === 'dev')
195
- } else if (this.configValue) {
196
- this.config = this.configValue
197
- } else {
198
- throw new DOMException('组件[XTreePro]需要传入configName或configValue')
199
- }
200
- this.replaceFields = this.config.replaceFields
201
- if (this.config.treeData.indexOf('logic@') >= 0) {
202
- // 如果数据源是 logic
203
- await this.getData()
204
- }
205
- },
206
- methods: {
207
- // 节点展开暂存
208
- nodeExpand (node) {
209
- if (this.expandedKeys.includes(node[this.replaceFields.key])) {
210
- this.expandedKeys = this.expandedKeys.filter(item => item !== node[this.replaceFields.key])
211
- } else {
212
- this.expandedKeys.push(node[this.replaceFields.key])
213
- }
214
- },
215
- // 节点关闭
216
- nodeCollapse (node) {
217
- this.expandedKeys = this.expandedKeys.filter(item => item !== node[this.replaceFields.key])
218
- },
219
- highlightKeyword (label, keyword) {
220
- const maxLen = this.config.deepNodeMaxWidth
221
-
222
- if (!keyword) {
223
- return maxLen && label.length > maxLen ? label.substring(0, maxLen) + '...' : label
224
- }
225
-
226
- const regex = new RegExp(`(${keyword})`, 'gi')
227
- const match = label.match(regex)
228
-
229
- if (!match) {
230
- return maxLen && label.length > maxLen ? label.substring(0, maxLen) + '...' : label
231
- }
232
-
233
- if (!maxLen) {
234
- return label.replace(regex, '<span class="highlight">$1</span>')
235
- }
236
-
237
- const keywordIndex = label.indexOf(match[0])
238
- const start = Math.max(0, keywordIndex - Math.floor((maxLen - keyword.length) / 2))
239
- const end = Math.min(label.length, start + maxLen)
240
-
241
- let result = label.substring(start, end)
242
-
243
- if (start > 0) {
244
- result = '...' + result
245
- }
246
- if (end < label.length) {
247
- result = result + '...'
248
- }
249
- return result.replace(regex, '<span class="highlight">$1</span>')
250
- },
251
- executeStrFunction,
252
- onChange: debounce(function (e) {
253
- this.$refs.veTree.filter(e.target.value)
254
- }, 150),
255
- filterNode (value, data) {
256
- if (!value) return true
257
- return data.label.indexOf(value) !== -1
258
- },
259
- nodeItemClick (e) {
260
- this.selectedNode = e
261
- },
262
- handleNodeClick (node) {
263
- this.nodeItemClick(node)
264
- this.$emit('itemChecked', node)
265
- },
266
- action (record, func) {
267
- this.$emit('action', record, record[this.replaceFields.key], null, func)
268
- },
269
- async btnFuncClick (index) {
270
- this.activeButtonIndex = Object.assign({}, this.activeButtonIndex, { [index]: !!!this.activeButtonIndex[index] })
271
- // 组织参数
272
- // 把activeButtonIndex.value groupType 相同的其他值改成 false
273
- Object.keys(this.activeButtonIndex).forEach((key) => {
274
- if (key != index && this.config.tabBtn[key].groupType === this.config.tabBtn[index].groupType) {
275
- this.activeButtonIndex[key] = false
276
- }
277
- })
278
- const param = {}
279
- // 循环执行已经激活的自定义方法
280
- Object.keys(this.activeButtonIndex).forEach((key) => {
281
- if (this.activeButtonIndex[key]) {
282
- const item = this.config.tabBtn[key]
283
- if (item.customFunction) {
284
- Object.assign(param, executeStrFunction(item.customFunction, [param]))
285
- }
286
- }
287
- })
288
- // 获取到 param 执行 getData
289
- await this.getData(param)
290
- },
291
- searchInTree (tree, keyword) {
292
- return tree.reduce((acc, node) => {
293
- if (node[this.replaceFields.title].includes(keyword)) {
294
- acc.push(node)
295
- } else if (node[this.replaceFields.children]) {
296
- const childResults = this.searchInTree(node[this.replaceFields.children], keyword)
297
- if (childResults.length > 0) {
298
- acc.push({
299
- ...node,
300
- children: childResults
301
- })
302
- }
303
- }
304
- return acc
305
- }, [])
306
- },
307
- handleCheckChange (data, data1) {
308
- // console.log(data, data1)
309
- // 获取最内层数据的 node
310
- // const deepestNodes = this.getDeepestNodes([data])
311
- // 获取选中的数据
312
- // const checkedKeys = deepestNodes.map(node => node[this.replaceFields.key])
313
- // console.log(this.$refs.veTree.getCheckedKeys())
314
- const checkedKeys = this.$refs.veTree.getCheckedKeys()
315
- const checkedNodes = this.$refs.veTree.getCheckedNodes()
316
- // console.log(t)
317
- // console.log(deepestNodes, checkedKeys)
318
- this.$emit('treeOnChecked', checkedKeys, checkedNodes, checkedKeys)
319
- },
320
- refresh () {
321
- this.getData(this.searchInfo)
322
- },
323
- reLoad () {
324
- this.getData(this.searchInfo)
325
- },
326
- async getData (param = {}) {
327
- this.spinning = true
328
- await runLogic(this.config.treeData.substring(6), Object.assign(param, {
329
- orgId: this.currUser.orgid,
330
- userId: this.currUser.id,
331
- depId: this.currUser.f_department_id
332
- }), this.serviceName, this.env === 'dev').then(res => {
333
- this.localTreeData = res
334
- this.deepestNodes = this.getDeepestNodes(this.localTreeData)
335
- }).catch(e => {
336
- this.$message.error('获取数据失败:' + e)
337
- }).finally(() => {
338
- this.spinning = false
339
- })
340
- },
341
- getDeepestNodes (treeData) {
342
- const deepestNodes = []
343
- const that = this
344
-
345
- function traverse (node) {
346
- if (!node[that.replaceFields.children] || node[that.replaceFields.children].length === 0) {
347
- deepestNodes.push(node)
348
- } else {
349
- node[that.replaceFields.children].forEach(child => traverse(child))
350
- }
351
- }
352
-
353
- treeData.forEach(node => traverse(node))
354
- return deepestNodes
355
- }
356
- },
357
- computed: {
358
- ...mapState('account', { currUser: 'user' }),
359
- heightStore () {
360
- if (this.config.search) {
361
- if (this.config.tabBtn && this.config.tabBtn.length > 0) {
362
- return ['7rem', 'calc(100vh - 200px - 7.6rem)']
363
- } else {
364
- return ['5rem', 'calc(100vh - 200px - 5.6rem)']
365
- }
366
- } else {
367
- if (this.config.tabBtn && this.config.tabBtn.length > 0) {
368
- return ['5rem', 'calc(100vh - 200px - 5rem)']
369
- } else {
370
- return ['3rem', 'calc(100vh - 200px - 3rem)']
371
- }
372
- }
373
- }
374
- }
375
- }
376
- </script>
377
- <style lang="less" scoped>
378
- .tree_title {
379
- background-color: #E0E5EB;
380
- border-radius: 8px 8px 0 0;
381
- }
382
- .selected {
383
- font-weight: bold; /* 加粗字体 */
384
- color: #1890ff;
385
- }
386
- .row-search{
387
- background-color: #E0E5EB;
388
- .content-search {
389
- background-color: rgb(224, 229, 235);
390
- height: 2.6rem;
391
- padding: 0 10px;
392
- display: flex;
393
- align-items: center;
394
- justify-content: center;
395
- border-top: 1px solid rgba(0, 0, 0, 0.05);
396
- margin: auto 0;
397
- }
398
- }
399
- .active-button {
400
- border-color: @primary-color !important;
401
- color: @primary-color !important;
402
- }
403
-
404
- .ant-btn:focus {
405
- color: rgba(0, 0, 0, 0.65);
406
- background-color: #fff;
407
- border-color: #d9d9d9
408
- }
409
-
410
- .tree_main {
411
- width: 100%;
412
- display: inline-block;
413
- overflow-y: auto;
414
- font-size: 15px;
415
-
416
- .custom-tree-node {
417
- flex: 1;
418
- cursor: pointer;
419
- }
420
-
421
- :deep(.highlight) {
422
- color: @primary-color !important;
423
- }
424
-
425
- :deep(.el-tree-node__content) {
426
- cursor: default;
427
- }
428
-
429
- :deep(.vue-recycle-scroller__item-wrapper) {
430
- overflow-x: auto;
431
- }
432
- }
433
-
434
- </style>
1
+ <template>
2
+ <div id="XTreeWarp">
3
+ <div class="tree_title" v-if="config.title">
4
+ <a-row style="font-size: medium;line-height: 3rem">
5
+ <a-col span="16" :offset="2">
6
+ <span>{{ config.title }}</span>
7
+ </a-col>
8
+ <a-col span="1" :offset="2" v-if="treeDisplaySwitch">
9
+ <a-icon :type="treeDisplayConfig.showTree? 'caret-down':'caret-left'" :style="{color: treeDisplayConfig.buttonColor}" @click="treeDisplayConfig.showTree=!treeDisplayConfig.showTree"/>
10
+ </a-col>
11
+ </a-row>
12
+ </div>
13
+ <div v-show="!treeDisplaySwitch || treeDisplayConfig.showTree">
14
+ <a-row v-if="config.search" class="row-search">
15
+ <div class="content-search">
16
+ <a-input
17
+ placeholder="请输入搜索关键字"
18
+ v-model="searchInput"
19
+ @change="onChange">
20
+ <a-icon slot="prefix" type="search"/>
21
+ </a-input>
22
+ </div>
23
+ </a-row>
24
+ <a-row v-if="config.tabBtn && config.tabBtn.length > 0">
25
+ <div class="content-search" style="padding-top:7px;padding-left: 10px">
26
+ <a-space>
27
+ <a-button
28
+ v-for="(item,index) in config.tabBtn"
29
+ @click="btnFuncClick(index,item.customFunction)"
30
+ :class="{ 'active-button': activeButtonIndex[index] }"
31
+ :key="index">{{ item.name }}
32
+ </a-button>
33
+ </a-space>
34
+ </div>
35
+ </a-row>
36
+ <div
37
+ class="tree_main"
38
+ :style="{
39
+ maxHeight:heightStore[1]
40
+ }">
41
+ <a-spin :spinning="spinning">
42
+ <div class="ve-tree" :style="{height:heightStore[1]}">
43
+ <!-- 不使用虚拟滚动时只需去掉height参数即可 -->
44
+ <vue-easy-tree
45
+ ref="veTree"
46
+ node-key="value"
47
+ :height="heightStore[1]"
48
+ :show-checkbox="config.checkable"
49
+ :data="localTreeData"
50
+ :item-size="40"
51
+ :auto-expand-parent="true"
52
+ @check-change="handleCheckChange"
53
+ :default-expanded-keys="expandedKeys"
54
+ @node-expand="nodeExpand"
55
+ @node-collapse="nodeCollapse"
56
+ @node-click="handleNodeClick"
57
+ :filter-node-method="filterNode"
58
+ :props="props"
59
+ >
60
+ <span class="custom-tree-node" slot-scope="{ node,data }">
61
+ <span :class="{ 'selected': data === selectedNode }" @click="nodeItemClick(data)">
62
+ <a-tooltip placement="right" :title="node.label">
63
+ <a-icon
64
+ v-if="data.icon"
65
+ :style="{color: data.iconColor, marginRight: '5px'}"
66
+ :type="data.icon"/>
67
+ <span
68
+ v-html="highlightKeyword(node.label, searchInput)"></span>
69
+ <span v-if="countVisible">{{
70
+ data.hasOwnProperty('count') ? ' (' + data.count + ')' : ''
71
+ }}</span>
72
+ </a-tooltip>
73
+ </span>
74
+ <a-tooltip
75
+ :title="icon.title"
76
+ :key="icon.func"
77
+ v-for="icon in config.btn"
78
+ >
79
+ <a-icon
80
+ @click.stop="action(data, icon.func)"
81
+ v-if="executeStrFunction( icon.customFunction,[data])"
82
+ :type="icon.icon"
83
+ :style="{color:icon.color, marginLeft: '8px'}"></a-icon>
84
+ </a-tooltip>
85
+ </span>
86
+ </vue-easy-tree>
87
+ </div>
88
+ </a-spin>
89
+ </div>
90
+ </div>
91
+ </div>
92
+ </template>
93
+
94
+ <script>
95
+ // https://github.com/Junior125306/vue-easy-tree
96
+ import VueEasyTree from '@afwenming123/vue-easy-tree'
97
+ // 样式文件,可以根据需要自定义样式或主题
98
+ import '@afwenming123/vue-easy-tree/src/assets/index.min.css'
99
+ import { getConfigByNameAsync, runLogic } from '@vue2-client/services/api/common'
100
+ import { mapState } from 'vuex'
101
+ import { executeStrFunction } from '@vue2-client/utils/runEvalFunction'
102
+ import debounce from 'lodash.debounce'
103
+
104
+ export default {
105
+ props: {
106
+ configName: {
107
+ type: String,
108
+ required: false,
109
+ default: undefined
110
+ },
111
+ configValue: {
112
+ type: String,
113
+ required: false,
114
+ default: undefined
115
+ },
116
+ env: {
117
+ type: String,
118
+ default: 'prod'
119
+ },
120
+ treeData: {
121
+ type: Array,
122
+ default: () => []
123
+ },
124
+ // 配置所属命名空间
125
+ serviceName: {
126
+ type: String,
127
+ default: undefined
128
+ },
129
+ // 是否显示收起开关
130
+ treeDisplaySwitch: {
131
+ type: Boolean,
132
+ default: false
133
+ },
134
+ // 是否显示子级数量
135
+ countVisible: {
136
+ type: Boolean,
137
+ default: true
138
+ },
139
+ // 收起开关默认值设置
140
+ treeDisplayConfig: {
141
+ type: Object,
142
+ default: () => {
143
+ return {
144
+ showTree: true,
145
+ buttonColor: '#91d5ff'
146
+ }
147
+ }
148
+ }
149
+ },
150
+ data () {
151
+ return {
152
+ props: {
153
+ label: 'label',
154
+ children: 'children'
155
+ },
156
+ localTreeData: this.treeData,
157
+ config: {},
158
+ // 暂存选中的数据
159
+ expandedKeys: [],
160
+ // 是否加载中
161
+ spinning: false,
162
+ // 选中的 key
163
+ checkedKeys: [],
164
+ // 定义 tree 数据
165
+ data_treeData: [],
166
+ // 存储搜索结果的树数据
167
+ filteredTreeData: [],
168
+ // 定义最深一层的 数据
169
+ deepestNodes: [],
170
+ // 定义激活的按钮
171
+ activeButtonIndex: {},
172
+ // 是否全选
173
+ checkall: false,
174
+ // 选了但没有全选
175
+ indeterminate: false,
176
+ // 选择的节点
177
+ selectedNode: null,
178
+ // 暂存查询信息
179
+ searchInfo: {},
180
+ searchInput: '',
181
+ replaceFields: { children: 'children', title: 'label', key: 'value' }
182
+ }
183
+ },
184
+ components: {
185
+ VueEasyTree
186
+ },
187
+ watch: {
188
+ treeData (newVal) {
189
+ this.localTreeData = newVal
190
+ }
191
+ },
192
+ async created () {
193
+ if (this.configName) {
194
+ this.config = await getConfigByNameAsync(this.configName, this.serviceName, this.env === 'dev')
195
+ } else if (this.configValue) {
196
+ this.config = this.configValue
197
+ } else {
198
+ throw new DOMException('组件[XTreePro]需要传入configName或configValue')
199
+ }
200
+ this.replaceFields = this.config.replaceFields
201
+ if (this.config.treeData.indexOf('logic@') >= 0) {
202
+ // 如果数据源是 logic
203
+ await this.getData()
204
+ }
205
+ },
206
+ methods: {
207
+ // 节点展开暂存
208
+ nodeExpand (node) {
209
+ if (this.expandedKeys.includes(node[this.replaceFields.key])) {
210
+ this.expandedKeys = this.expandedKeys.filter(item => item !== node[this.replaceFields.key])
211
+ } else {
212
+ this.expandedKeys.push(node[this.replaceFields.key])
213
+ }
214
+ },
215
+ // 节点关闭
216
+ nodeCollapse (node) {
217
+ this.expandedKeys = this.expandedKeys.filter(item => item !== node[this.replaceFields.key])
218
+ },
219
+ highlightKeyword (label, keyword) {
220
+ const maxLen = this.config.deepNodeMaxWidth
221
+
222
+ if (!keyword) {
223
+ return maxLen && label.length > maxLen ? label.substring(0, maxLen) + '...' : label
224
+ }
225
+
226
+ const regex = new RegExp(`(${keyword})`, 'gi')
227
+ const match = label.match(regex)
228
+
229
+ if (!match) {
230
+ return maxLen && label.length > maxLen ? label.substring(0, maxLen) + '...' : label
231
+ }
232
+
233
+ if (!maxLen) {
234
+ return label.replace(regex, '<span class="highlight">$1</span>')
235
+ }
236
+
237
+ const keywordIndex = label.indexOf(match[0])
238
+ const start = Math.max(0, keywordIndex - Math.floor((maxLen - keyword.length) / 2))
239
+ const end = Math.min(label.length, start + maxLen)
240
+
241
+ let result = label.substring(start, end)
242
+
243
+ if (start > 0) {
244
+ result = '...' + result
245
+ }
246
+ if (end < label.length) {
247
+ result = result + '...'
248
+ }
249
+ return result.replace(regex, '<span class="highlight">$1</span>')
250
+ },
251
+ executeStrFunction,
252
+ onChange: debounce(function (e) {
253
+ this.$refs.veTree.filter(e.target.value)
254
+ }, 150),
255
+ filterNode (value, data) {
256
+ if (!value) return true
257
+ return data.label.indexOf(value) !== -1
258
+ },
259
+ nodeItemClick (e) {
260
+ this.selectedNode = e
261
+ },
262
+ handleNodeClick (node) {
263
+ this.nodeItemClick(node)
264
+ this.$emit('itemChecked', node)
265
+ },
266
+ action (record, func) {
267
+ this.$emit('action', record, record[this.replaceFields.key], null, func)
268
+ },
269
+ async btnFuncClick (index) {
270
+ this.activeButtonIndex = Object.assign({}, this.activeButtonIndex, { [index]: !!!this.activeButtonIndex[index] })
271
+ // 组织参数
272
+ // 把activeButtonIndex.value groupType 相同的其他值改成 false
273
+ Object.keys(this.activeButtonIndex).forEach((key) => {
274
+ if (key != index && this.config.tabBtn[key].groupType === this.config.tabBtn[index].groupType) {
275
+ this.activeButtonIndex[key] = false
276
+ }
277
+ })
278
+ const param = {}
279
+ // 循环执行已经激活的自定义方法
280
+ Object.keys(this.activeButtonIndex).forEach((key) => {
281
+ if (this.activeButtonIndex[key]) {
282
+ const item = this.config.tabBtn[key]
283
+ if (item.customFunction) {
284
+ Object.assign(param, executeStrFunction(item.customFunction, [param]))
285
+ }
286
+ }
287
+ })
288
+ // 获取到 param 执行 getData
289
+ await this.getData(param)
290
+ },
291
+ searchInTree (tree, keyword) {
292
+ return tree.reduce((acc, node) => {
293
+ if (node[this.replaceFields.title].includes(keyword)) {
294
+ acc.push(node)
295
+ } else if (node[this.replaceFields.children]) {
296
+ const childResults = this.searchInTree(node[this.replaceFields.children], keyword)
297
+ if (childResults.length > 0) {
298
+ acc.push({
299
+ ...node,
300
+ children: childResults
301
+ })
302
+ }
303
+ }
304
+ return acc
305
+ }, [])
306
+ },
307
+ handleCheckChange (data, data1) {
308
+ // console.log(data, data1)
309
+ // 获取最内层数据的 node
310
+ // const deepestNodes = this.getDeepestNodes([data])
311
+ // 获取选中的数据
312
+ // const checkedKeys = deepestNodes.map(node => node[this.replaceFields.key])
313
+ // console.log(this.$refs.veTree.getCheckedKeys())
314
+ const checkedKeys = this.$refs.veTree.getCheckedKeys()
315
+ const checkedNodes = this.$refs.veTree.getCheckedNodes()
316
+ // console.log(t)
317
+ // console.log(deepestNodes, checkedKeys)
318
+ this.$emit('treeOnChecked', checkedKeys, checkedNodes, checkedKeys)
319
+ },
320
+ refresh () {
321
+ this.getData(this.searchInfo)
322
+ },
323
+ reLoad () {
324
+ this.getData(this.searchInfo)
325
+ },
326
+ async getData (param = {}) {
327
+ this.spinning = true
328
+ await runLogic(this.config.treeData.substring(6), Object.assign(param, {
329
+ orgId: this.currUser.orgid,
330
+ userId: this.currUser.id,
331
+ depId: this.currUser.f_department_id
332
+ }), this.serviceName, this.env === 'dev').then(res => {
333
+ this.localTreeData = res
334
+ this.deepestNodes = this.getDeepestNodes(this.localTreeData)
335
+ }).catch(e => {
336
+ this.$message.error('获取数据失败:' + e)
337
+ }).finally(() => {
338
+ this.spinning = false
339
+ })
340
+ },
341
+ getDeepestNodes (treeData) {
342
+ const deepestNodes = []
343
+ const that = this
344
+
345
+ function traverse (node) {
346
+ if (!node[that.replaceFields.children] || node[that.replaceFields.children].length === 0) {
347
+ deepestNodes.push(node)
348
+ } else {
349
+ node[that.replaceFields.children].forEach(child => traverse(child))
350
+ }
351
+ }
352
+
353
+ treeData.forEach(node => traverse(node))
354
+ return deepestNodes
355
+ }
356
+ },
357
+ computed: {
358
+ ...mapState('account', { currUser: 'user' }),
359
+ heightStore () {
360
+ if (this.config.search) {
361
+ if (this.config.tabBtn && this.config.tabBtn.length > 0) {
362
+ return ['7rem', 'calc(100vh - 200px - 7.6rem)']
363
+ } else {
364
+ return ['5rem', 'calc(100vh - 200px - 5.6rem)']
365
+ }
366
+ } else {
367
+ if (this.config.tabBtn && this.config.tabBtn.length > 0) {
368
+ return ['5rem', 'calc(100vh - 200px - 5rem)']
369
+ } else {
370
+ return ['3rem', 'calc(100vh - 200px - 3rem)']
371
+ }
372
+ }
373
+ }
374
+ }
375
+ }
376
+ </script>
377
+ <style lang="less" scoped>
378
+ .tree_title {
379
+ background-color: #E0E5EB;
380
+ border-radius: 8px 8px 0 0;
381
+ }
382
+ .selected {
383
+ font-weight: bold; /* 加粗字体 */
384
+ color: #1890ff;
385
+ }
386
+ .row-search{
387
+ background-color: #E0E5EB;
388
+ .content-search {
389
+ background-color: rgb(224, 229, 235);
390
+ height: 2.6rem;
391
+ padding: 0 10px;
392
+ display: flex;
393
+ align-items: center;
394
+ justify-content: center;
395
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
396
+ margin: auto 0;
397
+ }
398
+ }
399
+ .active-button {
400
+ border-color: @primary-color !important;
401
+ color: @primary-color !important;
402
+ }
403
+
404
+ .ant-btn:focus {
405
+ color: rgba(0, 0, 0, 0.65);
406
+ background-color: #fff;
407
+ border-color: #d9d9d9
408
+ }
409
+
410
+ .tree_main {
411
+ width: 100%;
412
+ display: inline-block;
413
+ overflow-y: auto;
414
+ font-size: 15px;
415
+
416
+ .custom-tree-node {
417
+ flex: 1;
418
+ cursor: pointer;
419
+ }
420
+
421
+ :deep(.highlight) {
422
+ color: @primary-color !important;
423
+ }
424
+
425
+ :deep(.el-tree-node__content) {
426
+ cursor: default;
427
+ }
428
+
429
+ :deep(.vue-recycle-scroller__item-wrapper) {
430
+ overflow-x: auto;
431
+ }
432
+ }
433
+
434
+ </style>