vue2-client 1.17.11 → 1.17.12

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/.claude/settings.local.json +20 -20
  2. package/.cursorrules +19 -19
  3. package/.env.apply +19 -19
  4. package/.env.gaslink +19 -19
  5. package/.env.his +19 -19
  6. package/.env.liuli +20 -20
  7. package/.env.scada +19 -19
  8. package/.eslintrc.js +90 -90
  9. package/CHANGELOG.md +830 -830
  10. package/CLAUDE.md +97 -97
  11. package/Components.md +60 -60
  12. package/docs/LowCode/lowcode.md +155 -155
  13. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  14. package/docs/index.md +30 -30
  15. package/index.js +31 -31
  16. package/jest-transform-stub.js +8 -8
  17. package/jest.setup.js +7 -7
  18. package/jsconfig.json +19 -19
  19. package/package.json +1 -1
  20. package/public/his/editor/editor.html +51 -51
  21. package/public/his/editor/mock/bind_data.html +779 -779
  22. package/public/his/editor/mock/data_table.html +40 -40
  23. package/public/his/editor/mock/sign.html +75 -75
  24. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  25. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  26. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  27. package/public/his/editor/vender/date97/calendar.js +4 -4
  28. package/public/his/editor/vender/date97/lang/en.js +13 -13
  29. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  30. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  31. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  32. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  33. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  34. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  35. package/public/his/editor/vender/diff.js +1627 -1627
  36. package/public/his/editor/vender/editor.js +1 -1
  37. package/public/his/editor/vender/fabric.js +31187 -31187
  38. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  39. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  40. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  41. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  42. package/public/his/editor/vender/mui/mui.min.css +4 -4
  43. package/public/his/editor/vender/mui/mui.min.js +5 -5
  44. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  45. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  46. package/public/his/editor/vender/qrcode.js +7 -7
  47. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  48. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  49. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  50. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  51. package/public/his/editor/vender/validator.js +5094 -5094
  52. package/public/his/editor/vender/weui/weui.css +5659 -5659
  53. package/public/his/editor/vender/weui/weui.min.css +4 -4
  54. package/public/his/editor/vender/weui/weui.min.js +11 -11
  55. package/src/assets/img/querySlotDemo.svg +15 -15
  56. package/src/assets/svg/badtwo.svg +1 -1
  57. package/src/assets/svg/goodtwo.svg +1 -1
  58. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  59. package/src/base-client/components/AI/demo.vue +31 -31
  60. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  61. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  62. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  63. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  64. package/src/base-client/components/common/CitySelect/index.js +3 -3
  65. package/src/base-client/components/common/CitySelect/index.md +109 -109
  66. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  67. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  68. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  69. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  70. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  71. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  72. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  73. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  74. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  75. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  76. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  77. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  78. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  79. package/src/base-client/components/common/HIS/demo.vue +61 -61
  80. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  81. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  82. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  83. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  84. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  85. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  86. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  87. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  88. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  89. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  90. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  91. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  92. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  93. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  94. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  95. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  96. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  97. package/src/base-client/components/common/Recording/index.js +3 -3
  98. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  99. package/src/base-client/components/common/Tree/index.js +2 -2
  100. package/src/base-client/components/common/Upload/Upload.vue +334 -334
  101. package/src/base-client/components/common/Upload/index.js +3 -3
  102. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  103. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  104. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +304 -304
  105. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  106. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  107. package/src/base-client/components/common/XAddReport/index.js +3 -3
  108. package/src/base-client/components/common/XAddReport/index.md +56 -56
  109. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  110. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  111. package/src/base-client/components/common/XButtons/index.js +3 -3
  112. package/src/base-client/components/common/XButtons/index.md +61 -61
  113. package/src/base-client/components/common/XCalendar/XCalendar.vue +4 -4
  114. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  115. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  116. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  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/XDatePicker/demo.vue +153 -153
  123. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  124. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  125. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  126. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  127. package/src/base-client/components/common/XForm/XFormItem.vue +3 -1
  128. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  129. package/src/base-client/components/common/XForm/XTreeSelect.vue +276 -276
  130. package/src/base-client/components/common/XForm/index.md +178 -178
  131. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  132. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  133. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  134. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  135. package/src/base-client/components/common/XFormTable/demo.vue +117 -89
  136. package/src/base-client/components/common/XFormTable/index.md +92 -92
  137. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  138. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  139. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  140. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  141. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  142. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  143. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  144. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  145. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  146. package/src/base-client/components/common/XPrint/index.vue +97 -97
  147. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  148. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  149. package/src/base-client/components/common/XReport/index.js +3 -3
  150. package/src/base-client/components/common/XReport/print.js +186 -186
  151. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  152. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  153. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  154. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  155. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  156. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  157. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  158. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  159. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  160. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  161. package/src/base-client/components/common/XStepView/index.js +3 -3
  162. package/src/base-client/components/common/XStepView/index.md +31 -31
  163. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  164. package/src/base-client/components/common/XTab/index.js +3 -3
  165. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  166. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  167. package/src/base-client/components/common/XTable/index.md +255 -255
  168. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  169. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  170. package/src/base-client/components/common/XTree/index.js +3 -3
  171. package/src/base-client/components/common/XTree/index.md +36 -36
  172. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  173. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  174. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  175. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  176. package/src/base-client/components/his/XCharge/XChargeDemo.vue +145 -145
  177. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  178. package/src/base-client/components/index.js +51 -51
  179. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  180. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  181. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  182. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  183. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  184. package/src/base-client/plugins/Config.js +19 -19
  185. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  186. package/src/base-client/plugins/Recording.js +258 -258
  187. package/src/base-client/plugins/index.js +23 -23
  188. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  189. package/src/components/Charts/Bar.vue +62 -62
  190. package/src/components/Charts/ChartCard.vue +134 -134
  191. package/src/components/Charts/Liquid.vue +67 -67
  192. package/src/components/Charts/MiniArea.vue +39 -39
  193. package/src/components/Charts/MiniBar.vue +39 -39
  194. package/src/components/Charts/MiniProgress.vue +75 -75
  195. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  196. package/src/components/Charts/Radar.vue +68 -68
  197. package/src/components/Charts/RankList.vue +77 -77
  198. package/src/components/Charts/TagCloud.vue +113 -113
  199. package/src/components/Charts/TransferBar.vue +64 -64
  200. package/src/components/Charts/Trend.vue +82 -82
  201. package/src/components/Charts/chart.less +12 -12
  202. package/src/components/Charts/smooth.area.less +13 -13
  203. package/src/components/CodeMirror/inedx.vue +118 -118
  204. package/src/components/CodeMirror/setting.js +40 -40
  205. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  206. package/src/components/NumberInfo/index.js +3 -3
  207. package/src/components/NumberInfo/index.less +54 -54
  208. package/src/components/NumberInfo/index.md +43 -43
  209. package/src/components/card/ChartCard.vue +79 -79
  210. package/src/components/chart/Bar.vue +60 -60
  211. package/src/components/chart/MiniArea.vue +67 -67
  212. package/src/components/chart/MiniBar.vue +59 -59
  213. package/src/components/chart/MiniProgress.vue +57 -57
  214. package/src/components/chart/Radar.vue +80 -80
  215. package/src/components/chart/RankingList.vue +60 -60
  216. package/src/components/chart/Trend.vue +79 -79
  217. package/src/components/chart/index.less +9 -9
  218. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  219. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  220. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  221. package/src/components/checkbox/index.js +9 -9
  222. package/src/components/exception/ExceptionPage.vue +70 -70
  223. package/src/components/g2Charts/constants.js +202 -202
  224. package/src/components/g2Charts/demo.vue +808 -808
  225. package/src/components/g2Charts/designer.vue +228 -228
  226. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  227. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  228. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  229. package/src/components/g2Charts/index.vue +397 -397
  230. package/src/components/index.js +36 -36
  231. package/src/components/input/IInput.vue +66 -66
  232. package/src/components/menu/SideMenu.vue +75 -75
  233. package/src/components/menu/menu.js +273 -273
  234. package/src/components/setting/Setting.vue +234 -234
  235. package/src/components/tool/AStepItem.vue +60 -60
  236. package/src/config/CreateQueryConfig.js +325 -325
  237. package/src/config/default/antd.config.js +89 -89
  238. package/src/config/default/setting.config.js +55 -55
  239. package/src/font-style/font.css +60 -60
  240. package/src/layouts/CommonLayout.vue +56 -56
  241. package/src/layouts/PageLayout.vue +151 -151
  242. package/src/layouts/SinglePageView.vue +136 -136
  243. package/src/layouts/header/AdminHeader.vue +132 -132
  244. package/src/layouts/header/HeaderNotice.vue +177 -177
  245. package/src/layouts/header/InstitutionDetail.vue +181 -181
  246. package/src/layouts/tabs/TabsHead.vue +189 -189
  247. package/src/lib.js +1 -1
  248. package/src/mock/extend/index.js +84 -84
  249. package/src/mock/goods/index.js +108 -108
  250. package/src/pages/DefaultExample/index.vue +77 -77
  251. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  252. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  253. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  254. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  255. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  256. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  257. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  258. package/src/pages/DynamicStatistics/index.vue +282 -282
  259. package/src/pages/Example/childIndex.vue +15 -15
  260. package/src/pages/Example/index.vue +30 -30
  261. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  262. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  263. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  264. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  265. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  266. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  267. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  268. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  269. package/src/pages/Recording/index.vue +77 -77
  270. package/src/pages/ServiceReview/index.vue +284 -284
  271. package/src/pages/SubExample/index.vue +26 -26
  272. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  273. package/src/pages/XReportView/index.vue +64 -64
  274. package/src/pages/XTreeOneProExample/index.vue +67 -67
  275. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  276. package/src/pages/login/Login.vue +379 -379
  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/report/ReportTable.js +124 -124
  281. package/src/pages/resourceManage/orgListManage.vue +98 -98
  282. package/src/pages/system/dictionary/index.vue +44 -44
  283. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  284. package/src/pages/system/monitor/operLog/index.vue +37 -37
  285. package/src/pages/system/settings/modifyPassword.vue +117 -117
  286. package/src/pages/system/ticket/index.vue +480 -480
  287. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  288. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  289. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  290. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  291. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  292. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  293. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  294. package/src/plugins/EventLogPlugin.js +33 -33
  295. package/src/plugins/FindParentsData.js +17 -17
  296. package/src/services/DataModel.js +30 -30
  297. package/src/services/LodopFuncs.js +137 -137
  298. package/src/services/api/TicketDetailsViewApi.js +46 -46
  299. package/src/services/api/cas.js +79 -79
  300. package/src/services/api/entity.js +18 -18
  301. package/src/services/api/index.js +17 -17
  302. package/src/store/modules/account.js +115 -115
  303. package/src/store/modules/index.js +5 -5
  304. package/src/store/modules/lowCode.js +33 -33
  305. package/src/store/modules/setting.js +119 -119
  306. package/src/theme/default/style.less +58 -58
  307. package/src/utils/authority-utils.js +85 -85
  308. package/src/utils/errorCode.js +6 -6
  309. package/src/utils/formatter.js +74 -74
  310. package/src/utils/htmlToPDF.js +108 -108
  311. package/src/utils/htmlToPDFApi.js +5 -5
  312. package/src/utils/login.js +188 -188
  313. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  314. package/src/utils/lowcode/lowcodeLog.js +29 -29
  315. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  316. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  317. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  318. package/src/utils/map-utils.js +47 -47
  319. package/src/utils/reg.js +95 -95
  320. package/src/utils/runEvalFunction.js +14 -14
  321. package/src/utils/theme-color-replacer-extend.js +92 -92
  322. package/src/utils/util.js +329 -329
  323. package/src/utils/waterMark.js +31 -31
  324. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,276 +1,276 @@
1
- <template>
2
- <div>
3
- <!-- 树形选择框 -->
4
- <a-form-model-item :ref="attr.model" :label="attr.name" :prop="attr.model" :rules="rules">
5
- <a-spin v-show="!loaded" size="small"/>
6
- <a-tree-select
7
- v-show="loaded"
8
- ref="tree-select"
9
- v-model="localValue"
10
- :disabled="disabled"
11
- :tree-data="getTreeData()"
12
- :tree-checkable="mode === '查询' && queryType !== 'RIGHT_LIKE'"
13
- :placeholder="`请选择${name||''}`"
14
- :dropdown-style="{ maxHeight: '400px' }"
15
- tree-node-filter-prop="label"
16
- :show-checked-strategy="queryType === 'RIGHT_LIKE' ? 'SHOW_ALL' : undefined"
17
- allow-clear
18
- :showArrow="true"
19
- class="tree-select"
20
- :getPopupContainer="(triggerNode) => triggerNode.parentNode"
21
- @change="onTreeSelectChange">
22
- </a-tree-select>
23
- </a-form-model-item>
24
- </div>
25
- </template>
26
- <script>
27
- import XFormCol from '@vue2-client/base-client/components/common/XFormCol'
28
-
29
- export default {
30
- name: 'XTreeSelect',
31
- components: { XFormCol },
32
- model: {
33
- prop: 'value',
34
- event: 'onChange'
35
- },
36
- // eslint-disable-next-line vue/require-prop-types
37
- props: ['value', 'attr', 'rules'],
38
- watch: {
39
- value (newVal) {
40
- if (newVal.length && !newVal[0]) {
41
- this.localValue = undefined
42
- }
43
- if (!newVal) {
44
- this.localValue = undefined
45
- }
46
- },
47
- },
48
- data () {
49
- return {
50
- // 内容加载是否完成
51
- loaded: false,
52
- // 数据列表
53
- option: [],
54
- // 表单
55
- form: {},
56
- // 查询方式
57
- queryType: 'IN',
58
- // label名称
59
- name: undefined,
60
- // 模型名称
61
- model: undefined,
62
- // 使用方式
63
- mode: '查询',
64
- // 是否禁用
65
- disabled: false,
66
- localValue: this.value
67
- }
68
- },
69
- methods: {
70
- init (params) {
71
- const {
72
- option = [], form, queryType = 'IN', name, model, mode = '查询', disabled = false
73
- } = params
74
- this.loaded = false
75
- this.option = option
76
- this.form = form
77
- this.queryType = queryType
78
- this.name = name
79
- this.model = model
80
- this.mode = mode
81
- this.disabled = disabled
82
- // 修改时恢复树形选择框选中状态
83
- if (this.queryType !== 'RIGHT_LIKE') {
84
- const value = this.form[this.model]
85
- if (value) {
86
- // 如果数据源中值含'-',代表是由多个数据源组成的树,需要重新组织新增/编辑时的表单值
87
- if (this.option.length > 0 && this.option[0].value.toString().indexOf('-') !== -1) {
88
- this.value = model + '-' + value
89
- } else {
90
- if (this.mode === '查询') {
91
- const values = []
92
- this.getValues(option, value, values)
93
- this.$emit('onChange', values)
94
- } else {
95
- this.value = value
96
- }
97
- // value = option 自身和所有子得集合
98
- }
99
- } else {
100
- this.value = undefined
101
- }
102
- }
103
- this.$emit('mounted', this.attr)
104
- this.loaded = true
105
- },
106
- getValues (option, value, values) {
107
- const _values = []
108
- for (const item of option) {
109
- if (value.includes(item.value)) {
110
- values.push(item.value)
111
- _values.push(item.value)
112
- // 找到匹配节点后,递归添加所有子节点的值
113
- if (item.children && item.children.length) {
114
- this.getAllChildrenValues(item.children, values)
115
- }
116
- }
117
- if (item.children && item.children.length) {
118
- const tempV = this.getValues(item.children, value, values)
119
- if (tempV.length === item.children.length) {
120
- values.push(item.value)
121
- }
122
- }
123
- }
124
- return _values
125
- },
126
- getAllChildrenValues (children, values) {
127
- for (const child of children) {
128
- values.push(child.value)
129
- if (child.children && child.children.length) {
130
- this.getAllChildrenValues(child.children, values)
131
- }
132
- }
133
- return values
134
- },
135
- // 获取树形选择框数据
136
- getTreeData () {
137
- const treeData = this.option
138
- if (this.mode === '新增/修改') {
139
- this.setParentSelectable(treeData)
140
- }
141
- return treeData
142
- },
143
- // 设置树形选择框不能选择父节点
144
- setParentSelectable (treeData) {
145
- treeData.forEach(item => {
146
- if (item.children && item.children.length) {
147
- item.selectable = false
148
- this.setParentSelectable(item.children)
149
- }
150
- })
151
- },
152
- // 选中树节点
153
- onTreeSelectChange (value, label, extra) {
154
- if (this.queryType === 'RIGHT_LIKE') {
155
- // 获取可用于模糊查询的组织机构字符串
156
- let node = extra.triggerNode.$parent
157
- label = label[0]
158
- while (node && node.label) {
159
- label = node.label + '.' + label
160
- node = node.$parent
161
- }
162
- // this.form[this.model] = label
163
- this.$emit('onChange', label)
164
- } else {
165
- // 如果选中值含'-',代表是由多个数据源组成的树,需要重新组织查询或新增/编辑时的表单
166
- if ((Array.isArray(value) && value.length > 0 && String(value[0]).indexOf('-') !== -1) || (typeof value === 'string' && value.indexOf('-') !== -1)) {
167
- const treeDatas = {}
168
- // 单选情况用于新增.修改表单场景,使用extra.triggerNode获取选中节点信息
169
- if (!extra.allCheckedNodes) {
170
- this.setNodeData(treeDatas, extra.triggerNode)
171
- } else {
172
- // 多选情况用于查询表单场景,使用extra.allCheckedNodes获取选中节点集合
173
- const nodes = extra.allCheckedNodes
174
- // 获取任意选中节点的叶子节点的字段名,用于查询时组织查询项的key
175
- const name = this.getNodeDataProps(nodes[0])
176
- // 获取所有选中节点的叶子节点的value,用于查询时组织查询项的value
177
- const values = []
178
- for (const node of nodes) {
179
- const ref = this.setDataRef(node)
180
- if (ref instanceof Array) {
181
- for (const nodeRef of ref) {
182
- const keyValue = nodeRef.node.key
183
- values.push(keyValue.substring(keyValue.lastIndexOf('-') + 1))
184
- }
185
- } else {
186
- const keyValue = ref.node.key
187
- values.push(keyValue.substring(keyValue.lastIndexOf('-') + 1))
188
- }
189
- }
190
- treeDatas[name] = values
191
- }
192
- // 移除默认的表单项,将组织好后的表单项合并进表单
193
- this.form[this.model] = undefined
194
- Object.assign(this.form, treeDatas)
195
- // this.$emit('onChange', treeDatas)
196
- } else {
197
- // 从单一数据源组成的树可以直接赋值
198
- // this.form[this.model] = value
199
- // 获取所有选中节点的value
200
- if (this.mode === '查询') {
201
- const values = []
202
- if (extra.allCheckedNodes) {
203
- for (const item of extra.allCheckedNodes) {
204
- if (item.node.key) {
205
- if (item.node?.data?.props?.label === item.node?.data?.props?.value) {
206
- if (!item.children?.length) {
207
- values.push(`${item.node.key}`)
208
- }
209
- } else {
210
- values.push(`${item.node.key}`)
211
- }
212
- }
213
- if (item.children && item.children.length) {
214
- this.getNodeValues(item.children, value, values)
215
- }
216
- }
217
- }
218
- this.$emit('onChange', values)
219
- } else {
220
- this.$emit('onChange', value)
221
- }
222
- }
223
- }
224
- },
225
- getNodeValues (data, value, values) {
226
- for (const item of data) {
227
- values.push(`${item.node.key}`)
228
- if (item.children && item.children.length) {
229
- this.getNodeValues(item.children, value, values)
230
- }
231
- }
232
- },
233
- // 设置选中值
234
- setValue (value) {
235
- this.value = value
236
- },
237
- setDataRef (node) {
238
- if (node.children) {
239
- return this.setDataRef(node.children)
240
- }
241
- return node
242
- },
243
- /**
244
- * 组织节点和每层父节点的数据,用于新增/修改时更新表单数据
245
- * @param data 组织完成的数据
246
- * @param node 节点
247
- * @return 返回示例: { parentId: 1, childId: 2 }
248
- */
249
- setNodeData (data, node) {
250
- if (node.value) {
251
- const value = node.value
252
- const columnsName = value.substring(0, value.indexOf('-'))
253
- data[columnsName] = value.substring(value.lastIndexOf('-') + 1)
254
- if (node.$parent) {
255
- this.setNodeData(data, node.$parent)
256
- }
257
- }
258
- },
259
- getNodeDataProps (node) {
260
- if (node.children && node.children.length > 0) {
261
- return this.getNodeDataProps(node.children[0])
262
- }
263
- const value = node.node.key
264
- return value.substring(0, value.indexOf('-'))
265
- }
266
- }
267
- }
268
- </script>
269
- <style lang="less" scoped>
270
- .tree-select {
271
- /deep/ .ant-select-selection.ant-select-selection--multiple {
272
- max-height: 32px;
273
- overflow-y: auto;
274
- }
275
- }
276
- </style>
1
+ <template>
2
+ <div>
3
+ <!-- 树形选择框 -->
4
+ <a-form-model-item :ref="attr.model" :label="attr.name" :prop="attr.model" :rules="rules">
5
+ <a-spin v-show="!loaded" size="small"/>
6
+ <a-tree-select
7
+ v-show="loaded"
8
+ ref="tree-select"
9
+ v-model="localValue"
10
+ :disabled="disabled"
11
+ :tree-data="getTreeData()"
12
+ :tree-checkable="mode === '查询' && queryType !== 'RIGHT_LIKE'"
13
+ :placeholder="`请选择${name||''}`"
14
+ :dropdown-style="{ maxHeight: '400px' }"
15
+ tree-node-filter-prop="label"
16
+ :show-checked-strategy="queryType === 'RIGHT_LIKE' ? 'SHOW_ALL' : undefined"
17
+ allow-clear
18
+ :showArrow="true"
19
+ class="tree-select"
20
+ :getPopupContainer="(triggerNode) => triggerNode.parentNode"
21
+ @change="onTreeSelectChange">
22
+ </a-tree-select>
23
+ </a-form-model-item>
24
+ </div>
25
+ </template>
26
+ <script>
27
+ import XFormCol from '@vue2-client/base-client/components/common/XFormCol'
28
+
29
+ export default {
30
+ name: 'XTreeSelect',
31
+ components: { XFormCol },
32
+ model: {
33
+ prop: 'value',
34
+ event: 'onChange'
35
+ },
36
+ // eslint-disable-next-line vue/require-prop-types
37
+ props: ['value', 'attr', 'rules'],
38
+ watch: {
39
+ value (newVal) {
40
+ if (newVal.length && !newVal[0]) {
41
+ this.localValue = undefined
42
+ }
43
+ if (!newVal) {
44
+ this.localValue = undefined
45
+ }
46
+ },
47
+ },
48
+ data () {
49
+ return {
50
+ // 内容加载是否完成
51
+ loaded: false,
52
+ // 数据列表
53
+ option: [],
54
+ // 表单
55
+ form: {},
56
+ // 查询方式
57
+ queryType: 'IN',
58
+ // label名称
59
+ name: undefined,
60
+ // 模型名称
61
+ model: undefined,
62
+ // 使用方式
63
+ mode: '查询',
64
+ // 是否禁用
65
+ disabled: false,
66
+ localValue: this.value
67
+ }
68
+ },
69
+ methods: {
70
+ init (params) {
71
+ const {
72
+ option = [], form, queryType = 'IN', name, model, mode = '查询', disabled = false
73
+ } = params
74
+ this.loaded = false
75
+ this.option = option
76
+ this.form = form
77
+ this.queryType = queryType
78
+ this.name = name
79
+ this.model = model
80
+ this.mode = mode
81
+ this.disabled = disabled
82
+ // 修改时恢复树形选择框选中状态
83
+ if (this.queryType !== 'RIGHT_LIKE') {
84
+ const value = this.form[this.model]
85
+ if (value) {
86
+ // 如果数据源中值含'-',代表是由多个数据源组成的树,需要重新组织新增/编辑时的表单值
87
+ if (this.option.length > 0 && this.option[0].value.toString().indexOf('-') !== -1) {
88
+ this.value = model + '-' + value
89
+ } else {
90
+ if (this.mode === '查询') {
91
+ const values = []
92
+ this.getValues(option, value, values)
93
+ this.$emit('onChange', values)
94
+ } else {
95
+ this.value = value
96
+ }
97
+ // value = option 自身和所有子得集合
98
+ }
99
+ } else {
100
+ this.value = undefined
101
+ }
102
+ }
103
+ this.$emit('mounted', this.attr)
104
+ this.loaded = true
105
+ },
106
+ getValues (option, value, values) {
107
+ const _values = []
108
+ for (const item of option) {
109
+ if (value.includes(item.value)) {
110
+ values.push(item.value)
111
+ _values.push(item.value)
112
+ // 找到匹配节点后,递归添加所有子节点的值
113
+ if (item.children && item.children.length) {
114
+ this.getAllChildrenValues(item.children, values)
115
+ }
116
+ }
117
+ if (item.children && item.children.length) {
118
+ const tempV = this.getValues(item.children, value, values)
119
+ if (tempV.length === item.children.length) {
120
+ values.push(item.value)
121
+ }
122
+ }
123
+ }
124
+ return _values
125
+ },
126
+ getAllChildrenValues (children, values) {
127
+ for (const child of children) {
128
+ values.push(child.value)
129
+ if (child.children && child.children.length) {
130
+ this.getAllChildrenValues(child.children, values)
131
+ }
132
+ }
133
+ return values
134
+ },
135
+ // 获取树形选择框数据
136
+ getTreeData () {
137
+ const treeData = this.option
138
+ if (this.mode === '新增/修改') {
139
+ this.setParentSelectable(treeData)
140
+ }
141
+ return treeData
142
+ },
143
+ // 设置树形选择框不能选择父节点
144
+ setParentSelectable (treeData) {
145
+ treeData.forEach(item => {
146
+ if (item.children && item.children.length) {
147
+ item.selectable = false
148
+ this.setParentSelectable(item.children)
149
+ }
150
+ })
151
+ },
152
+ // 选中树节点
153
+ onTreeSelectChange (value, label, extra) {
154
+ if (this.queryType === 'RIGHT_LIKE') {
155
+ // 获取可用于模糊查询的组织机构字符串
156
+ let node = extra.triggerNode.$parent
157
+ label = label[0]
158
+ while (node && node.label) {
159
+ label = node.label + '.' + label
160
+ node = node.$parent
161
+ }
162
+ // this.form[this.model] = label
163
+ this.$emit('onChange', label)
164
+ } else {
165
+ // 如果选中值含'-',代表是由多个数据源组成的树,需要重新组织查询或新增/编辑时的表单
166
+ if ((Array.isArray(value) && value.length > 0 && String(value[0]).indexOf('-') !== -1) || (typeof value === 'string' && value.indexOf('-') !== -1)) {
167
+ const treeDatas = {}
168
+ // 单选情况用于新增.修改表单场景,使用extra.triggerNode获取选中节点信息
169
+ if (!extra.allCheckedNodes) {
170
+ this.setNodeData(treeDatas, extra.triggerNode)
171
+ } else {
172
+ // 多选情况用于查询表单场景,使用extra.allCheckedNodes获取选中节点集合
173
+ const nodes = extra.allCheckedNodes
174
+ // 获取任意选中节点的叶子节点的字段名,用于查询时组织查询项的key
175
+ const name = this.getNodeDataProps(nodes[0])
176
+ // 获取所有选中节点的叶子节点的value,用于查询时组织查询项的value
177
+ const values = []
178
+ for (const node of nodes) {
179
+ const ref = this.setDataRef(node)
180
+ if (ref instanceof Array) {
181
+ for (const nodeRef of ref) {
182
+ const keyValue = nodeRef.node.key
183
+ values.push(keyValue.substring(keyValue.lastIndexOf('-') + 1))
184
+ }
185
+ } else {
186
+ const keyValue = ref.node.key
187
+ values.push(keyValue.substring(keyValue.lastIndexOf('-') + 1))
188
+ }
189
+ }
190
+ treeDatas[name] = values
191
+ }
192
+ // 移除默认的表单项,将组织好后的表单项合并进表单
193
+ this.form[this.model] = undefined
194
+ Object.assign(this.form, treeDatas)
195
+ // this.$emit('onChange', treeDatas)
196
+ } else {
197
+ // 从单一数据源组成的树可以直接赋值
198
+ // this.form[this.model] = value
199
+ // 获取所有选中节点的value
200
+ if (this.mode === '查询') {
201
+ const values = []
202
+ if (extra.allCheckedNodes) {
203
+ for (const item of extra.allCheckedNodes) {
204
+ if (item.node.key) {
205
+ if (item.node?.data?.props?.label === item.node?.data?.props?.value) {
206
+ if (!item.children?.length) {
207
+ values.push(`${item.node.key}`)
208
+ }
209
+ } else {
210
+ values.push(`${item.node.key}`)
211
+ }
212
+ }
213
+ if (item.children && item.children.length) {
214
+ this.getNodeValues(item.children, value, values)
215
+ }
216
+ }
217
+ }
218
+ this.$emit('onChange', values)
219
+ } else {
220
+ this.$emit('onChange', value)
221
+ }
222
+ }
223
+ }
224
+ },
225
+ getNodeValues (data, value, values) {
226
+ for (const item of data) {
227
+ values.push(`${item.node.key}`)
228
+ if (item.children && item.children.length) {
229
+ this.getNodeValues(item.children, value, values)
230
+ }
231
+ }
232
+ },
233
+ // 设置选中值
234
+ setValue (value) {
235
+ this.value = value
236
+ },
237
+ setDataRef (node) {
238
+ if (node.children) {
239
+ return this.setDataRef(node.children)
240
+ }
241
+ return node
242
+ },
243
+ /**
244
+ * 组织节点和每层父节点的数据,用于新增/修改时更新表单数据
245
+ * @param data 组织完成的数据
246
+ * @param node 节点
247
+ * @return 返回示例: { parentId: 1, childId: 2 }
248
+ */
249
+ setNodeData (data, node) {
250
+ if (node.value) {
251
+ const value = node.value
252
+ const columnsName = value.substring(0, value.indexOf('-'))
253
+ data[columnsName] = value.substring(value.lastIndexOf('-') + 1)
254
+ if (node.$parent) {
255
+ this.setNodeData(data, node.$parent)
256
+ }
257
+ }
258
+ },
259
+ getNodeDataProps (node) {
260
+ if (node.children && node.children.length > 0) {
261
+ return this.getNodeDataProps(node.children[0])
262
+ }
263
+ const value = node.node.key
264
+ return value.substring(0, value.indexOf('-'))
265
+ }
266
+ }
267
+ }
268
+ </script>
269
+ <style lang="less" scoped>
270
+ .tree-select {
271
+ /deep/ .ant-select-selection.ant-select-selection--multiple {
272
+ max-height: 32px;
273
+ overflow-y: auto;
274
+ }
275
+ }
276
+ </style>