vue2-client 1.16.18 → 1.16.20
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.
- package/.cursorrules +19 -19
- package/.env.apply +19 -19
- package/.env.gaslink +19 -19
- package/.env.his +19 -19
- package/.env.liuli +20 -20
- package/.env.scada +19 -19
- package/.eslintrc.js +90 -90
- package/CHANGELOG.md +824 -824
- package/Components.md +60 -60
- package/docs/LowCode/lowcode.md +155 -155
- package/docs/LowCode/lowcodeForDeveloper.md +230 -230
- package/docs/index.md +30 -30
- package/index.js +31 -31
- package/jest-transform-stub.js +8 -8
- package/jest.setup.js +7 -7
- package/jsconfig.json +19 -19
- package/package.json +112 -112
- package/public/his/editor/editor.html +51 -51
- package/public/his/editor/mock/bind_data.html +779 -779
- package/public/his/editor/mock/data_table.html +40 -40
- package/public/his/editor/mock/sign.html +75 -75
- package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
- package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
- package/public/his/editor/vender/date97/WdatePicker.js +677 -677
- package/public/his/editor/vender/date97/calendar.js +4 -4
- package/public/his/editor/vender/date97/lang/en.js +13 -13
- package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
- package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
- package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
- package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
- package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
- package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
- package/public/his/editor/vender/diff.js +1627 -1627
- package/public/his/editor/vender/editor.js +1 -1
- package/public/his/editor/vender/fabric.js +31187 -31187
- package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
- package/public/his/editor/vender/jquery/jquery.js +10872 -10872
- package/public/his/editor/vender/jquery/jquery.print.js +255 -255
- package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
- package/public/his/editor/vender/mui/mui.min.css +4 -4
- package/public/his/editor/vender/mui/mui.min.js +5 -5
- package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
- package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
- package/public/his/editor/vender/qrcode.js +7 -7
- package/public/his/editor/vender/requirejs/require.js +2145 -2145
- package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
- package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
- package/public/his/editor/vender/signature/jSignature.js +1486 -1486
- package/public/his/editor/vender/validator.js +5094 -5094
- package/public/his/editor/vender/weui/weui.css +5659 -5659
- package/public/his/editor/vender/weui/weui.min.css +4 -4
- package/public/his/editor/vender/weui/weui.min.js +11 -11
- package/src/assets/img/querySlotDemo.svg +15 -15
- package/src/assets/svg/badtwo.svg +1 -1
- package/src/assets/svg/goodtwo.svg +1 -1
- package/src/base-client/components/AI/AskAiBtn.vue +136 -136
- package/src/base-client/components/AI/demo.vue +31 -31
- package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
- package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
- package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
- package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
- package/src/base-client/components/common/CitySelect/index.js +3 -3
- package/src/base-client/components/common/CitySelect/index.md +109 -109
- package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
- package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
- package/src/base-client/components/common/CreateQuery/index.js +3 -3
- package/src/base-client/components/common/CreateQuery/index.md +42 -42
- package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
- package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
- package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
- package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
- package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
- package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
- package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
- package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
- package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
- package/src/base-client/components/common/HIS/HAddNativeForm/HAddNativeForm.vue +466 -466
- package/src/base-client/components/common/HIS/HAddNativeForm/index.js +3 -3
- package/src/base-client/components/common/HIS/HButtons/HButtons.vue +365 -365
- package/src/base-client/components/common/HIS/HFormTable/HFormTable.vue +219 -219
- package/src/base-client/components/common/HIS/HTab/HTab.vue +293 -293
- package/src/base-client/components/common/HIS/demo.vue +54 -54
- package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
- package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
- package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
- package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
- package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
- package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
- package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
- package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
- package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
- package/src/base-client/components/common/PersonSetting/index.js +3 -3
- package/src/base-client/components/common/Recording/Recording.vue +243 -243
- package/src/base-client/components/common/Recording/index.js +3 -3
- package/src/base-client/components/common/Tree/Tree.vue +149 -149
- package/src/base-client/components/common/Tree/index.js +2 -2
- package/src/base-client/components/common/Upload/index.js +3 -3
- package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
- package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
- package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
- package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
- package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
- package/src/base-client/components/common/XAddReport/index.js +3 -3
- package/src/base-client/components/common/XAddReport/index.md +56 -56
- package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
- package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
- package/src/base-client/components/common/XButtons/index.js +3 -3
- package/src/base-client/components/common/XButtons/index.md +61 -61
- package/src/base-client/components/common/XCard/XCard.vue +64 -64
- package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
- package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
- package/src/base-client/components/common/XDataCard/index.js +3 -3
- package/src/base-client/components/common/XDataCard/index.md +1 -1
- package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
- package/src/base-client/components/common/XDataDrawer/index.js +3 -3
- package/src/base-client/components/common/XDataDrawer/index.md +41 -41
- package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
- package/src/base-client/components/common/XDescriptions/index.js +3 -3
- package/src/base-client/components/common/XDescriptions/index.md +83 -83
- package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
- package/src/base-client/components/common/XDetailsView/index.js +3 -3
- package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
- package/src/base-client/components/common/XForm/index.md +178 -178
- package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
- package/src/base-client/components/common/XFormGroup/index.js +3 -3
- package/src/base-client/components/common/XFormGroup/index.md +38 -38
- package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
- package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
- package/src/base-client/components/common/XFormTable/index.md +92 -92
- package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
- package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
- package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
- package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
- package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
- package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
- package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
- package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
- package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
- package/src/base-client/components/common/XPrint/index.vue +97 -97
- package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
- package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
- package/src/base-client/components/common/XReport/index.js +3 -3
- package/src/base-client/components/common/XReport/print.js +186 -186
- package/src/base-client/components/common/XReportDrawer/index.js +3 -3
- package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +813 -813
- package/src/base-client/components/common/XReportGrid/index.js +3 -3
- package/src/base-client/components/common/XReportGrid/index.md +44 -44
- package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
- package/src/base-client/components/common/XReportSlot/index.js +3 -3
- package/src/base-client/components/common/XReportSlot/index.md +48 -48
- package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
- package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
- package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
- package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
- package/src/base-client/components/common/XStepView/index.js +3 -3
- package/src/base-client/components/common/XStepView/index.md +31 -31
- package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
- package/src/base-client/components/common/XTab/index.js +3 -3
- package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
- package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
- package/src/base-client/components/common/XTable/index.md +255 -255
- package/src/base-client/components/common/XTagGroup/index.vue +52 -52
- package/src/base-client/components/common/XTree/XTree.vue +424 -424
- package/src/base-client/components/common/XTree/index.js +3 -3
- package/src/base-client/components/common/XTree/index.md +36 -36
- package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
- package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
- package/src/base-client/components/common/richTextModal/index.vue +56 -56
- package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
- package/src/base-client/components/his/XCharge/XCharge.vue +610 -610
- package/src/base-client/components/his/XHisEditor/index.js +3 -3
- package/src/base-client/components/his/XSidebar/XSidebar.vue +283 -283
- package/src/base-client/components/his/XSimpleTable/XSimpleTable.vue +119 -119
- package/src/base-client/components/his/threeTestOrders/threeTestOrders.vue +481 -481
- package/src/base-client/components/index.js +51 -51
- package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
- package/src/base-client/components/layout/XTreeView/index.js +3 -3
- package/src/base-client/components/layout/XTreeView/index.md +46 -46
- package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
- package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
- package/src/base-client/plugins/Config.js +19 -19
- package/src/base-client/plugins/GetLoginInfoService.js +183 -183
- package/src/base-client/plugins/Recording.js +258 -258
- package/src/base-client/plugins/index.js +23 -23
- package/src/base-client/plugins/tabs-page-plugin.js +39 -39
- package/src/components/Charts/Bar.vue +62 -62
- package/src/components/Charts/ChartCard.vue +134 -134
- package/src/components/Charts/Liquid.vue +67 -67
- package/src/components/Charts/MiniArea.vue +39 -39
- package/src/components/Charts/MiniBar.vue +39 -39
- package/src/components/Charts/MiniProgress.vue +75 -75
- package/src/components/Charts/MiniSmoothArea.vue +40 -40
- package/src/components/Charts/Radar.vue +68 -68
- package/src/components/Charts/RankList.vue +77 -77
- package/src/components/Charts/TagCloud.vue +113 -113
- package/src/components/Charts/TransferBar.vue +64 -64
- package/src/components/Charts/Trend.vue +82 -82
- package/src/components/Charts/chart.less +12 -12
- package/src/components/Charts/smooth.area.less +13 -13
- package/src/components/CodeMirror/inedx.vue +118 -118
- package/src/components/CodeMirror/setting.js +40 -40
- package/src/components/NumberInfo/NumberInfo.vue +54 -54
- package/src/components/NumberInfo/index.js +3 -3
- package/src/components/NumberInfo/index.less +54 -54
- package/src/components/NumberInfo/index.md +43 -43
- package/src/components/card/ChartCard.vue +79 -79
- package/src/components/chart/Bar.vue +60 -60
- package/src/components/chart/MiniArea.vue +67 -67
- package/src/components/chart/MiniBar.vue +59 -59
- package/src/components/chart/MiniProgress.vue +57 -57
- package/src/components/chart/Radar.vue +80 -80
- package/src/components/chart/RankingList.vue +60 -60
- package/src/components/chart/Trend.vue +79 -79
- package/src/components/chart/index.less +9 -9
- package/src/components/checkbox/ColorCheckbox.vue +157 -157
- package/src/components/checkbox/ImgCheckbox.vue +117 -117
- package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
- package/src/components/checkbox/index.js +9 -9
- package/src/components/exception/ExceptionPage.vue +70 -70
- package/src/components/g2Charts/constants.js +202 -202
- package/src/components/g2Charts/demo.vue +808 -808
- package/src/components/g2Charts/designer.vue +228 -228
- package/src/components/g2Charts/designerBaseConfig.vue +61 -61
- package/src/components/g2Charts/designerDataConfig.vue +259 -259
- package/src/components/g2Charts/designerStyleConfig.vue +16 -16
- package/src/components/g2Charts/index.vue +397 -397
- package/src/components/index.js +36 -36
- package/src/components/input/IInput.vue +66 -66
- package/src/components/menu/SideMenu.vue +75 -75
- package/src/components/menu/menu.js +273 -273
- package/src/components/setting/Setting.vue +234 -234
- package/src/components/tool/AStepItem.vue +60 -60
- package/src/config/CreateQueryConfig.js +325 -325
- package/src/config/default/antd.config.js +89 -89
- package/src/config/default/setting.config.js +55 -55
- package/src/font-style/font.css +60 -60
- package/src/layouts/CommonLayout.vue +56 -56
- package/src/layouts/PageLayout.vue +151 -151
- package/src/layouts/SinglePageView.vue +136 -136
- package/src/layouts/header/AdminHeader.vue +132 -132
- package/src/layouts/header/HeaderNotice.vue +177 -177
- package/src/layouts/header/InstitutionDetail.vue +181 -181
- package/src/layouts/tabs/TabsHead.vue +189 -189
- package/src/lib.js +1 -1
- package/src/mock/extend/index.js +84 -84
- package/src/mock/goods/index.js +108 -108
- package/src/pages/DefaultExample/index.vue +77 -77
- package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
- package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
- package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
- package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
- package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
- package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
- package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
- package/src/pages/DynamicStatistics/index.vue +282 -282
- package/src/pages/Example/childIndex.vue +15 -15
- package/src/pages/Example/index.vue +30 -30
- package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
- package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
- package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
- package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
- package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
- package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
- package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
- package/src/pages/NewDynamicStatistics/index.vue +258 -258
- package/src/pages/Recording/index.vue +77 -77
- package/src/pages/ServiceReview/index.vue +284 -284
- package/src/pages/SubExample/index.vue +26 -26
- package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
- package/src/pages/XReportView/index.vue +64 -64
- package/src/pages/XTreeOneProExample/index.vue +67 -67
- package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
- package/src/pages/login/Login.vue +379 -379
- package/src/pages/login/LoginV3.vue +389 -389
- package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
- package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
- package/src/pages/report/ReportTable.js +124 -124
- package/src/pages/resourceManage/orgListManage.vue +98 -98
- package/src/pages/system/dictionary/index.vue +44 -44
- package/src/pages/system/monitor/loginInfor/index.vue +37 -37
- package/src/pages/system/monitor/operLog/index.vue +37 -37
- package/src/pages/system/settings/modifyPassword.vue +117 -117
- package/src/pages/system/ticket/index.vue +480 -480
- package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
- package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
- package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
- package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
- package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
- package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
- package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
- package/src/plugins/EventLogPlugin.js +33 -33
- package/src/plugins/FindParentsData.js +17 -17
- package/src/router/async/config.async.js +35 -35
- package/src/router/async/router.map.js +129 -129
- package/src/router/index.js +27 -27
- package/src/services/DataModel.js +30 -30
- package/src/services/LodopFuncs.js +137 -137
- package/src/services/api/TicketDetailsViewApi.js +46 -46
- package/src/services/api/cas.js +79 -79
- package/src/services/api/common.js +346 -346
- package/src/services/api/entity.js +18 -18
- package/src/services/api/index.js +17 -17
- package/src/store/modules/account.js +115 -115
- package/src/store/modules/index.js +5 -5
- package/src/store/modules/lowCode.js +33 -33
- package/src/store/modules/setting.js +119 -119
- package/src/theme/default/style.less +58 -58
- package/src/utils/authority-utils.js +85 -85
- package/src/utils/errorCode.js +6 -6
- package/src/utils/formatter.js +74 -74
- package/src/utils/htmlToPDF.js +108 -108
- package/src/utils/htmlToPDFApi.js +5 -5
- package/src/utils/login.js +188 -188
- package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
- package/src/utils/lowcode/lowcodeLog.js +29 -29
- package/src/utils/lowcode/lowcodeUtils.js +373 -373
- package/src/utils/lowcode/registerComponentForEditor.js +1 -1
- package/src/utils/lowcode/registerComponentForRender.js +11 -11
- package/src/utils/map-utils.js +47 -47
- package/src/utils/reg.js +95 -95
- package/src/utils/routerUtil.js +120 -41
- package/src/utils/runEvalFunction.js +14 -14
- package/src/utils/theme-color-replacer-extend.js +92 -92
- package/src/utils/util.js +329 -329
- package/src/utils/waterMark.js +31 -31
- package/vue.config.js +2 -2
- package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1 +1 @@
|
|
1
|
-
export {}
|
1
|
+
export {}
|
@@ -1,11 +1,11 @@
|
|
1
|
-
import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'
|
2
|
-
import XTreeOne from '@vue2-client/base-client/components/common/XTreeOne/XTreeOne.vue'
|
3
|
-
import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
|
4
|
-
import XDescriptions from '@vue2-client/base-client/components/common/XDescriptions/XDescriptions.vue'
|
5
|
-
|
6
|
-
export {
|
7
|
-
XFormTable,
|
8
|
-
XTreeOne,
|
9
|
-
XAddNativeForm,
|
10
|
-
XDescriptions
|
11
|
-
}
|
1
|
+
import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'
|
2
|
+
import XTreeOne from '@vue2-client/base-client/components/common/XTreeOne/XTreeOne.vue'
|
3
|
+
import XAddNativeForm from '@vue2-client/base-client/components/common/XAddNativeForm/XAddNativeForm.vue'
|
4
|
+
import XDescriptions from '@vue2-client/base-client/components/common/XDescriptions/XDescriptions.vue'
|
5
|
+
|
6
|
+
export {
|
7
|
+
XFormTable,
|
8
|
+
XTreeOne,
|
9
|
+
XAddNativeForm,
|
10
|
+
XDescriptions
|
11
|
+
}
|
package/src/utils/map-utils.js
CHANGED
@@ -1,47 +1,47 @@
|
|
1
|
-
import AMapLoader from '@amap/amap-jsapi-loader'
|
2
|
-
let Amap
|
3
|
-
async function GetGDMap (secretKey, key) {
|
4
|
-
if (!Amap) {
|
5
|
-
window._AMapSecurityConfig = {
|
6
|
-
securityJsCode: secretKey
|
7
|
-
}
|
8
|
-
// 解决高德地图加载报错 ---> 禁止多种API加载方式混用
|
9
|
-
AMapLoader.reset()
|
10
|
-
Amap = await AMapLoader.load({
|
11
|
-
key: key, // 申请好的Web端开发者Key,首次调用 load 时必填
|
12
|
-
version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
|
13
|
-
plugins: ['AMap.IndexCluster', 'AMP.MarkerCluster', 'AMap.InfoWindow', 'AMap.HeatMap', 'AMap.HawkEye', 'AMap.DistrictSearch',
|
14
|
-
'AMap.ToolBar', 'AMap.Geolocation', 'AMap.MouseTool',
|
15
|
-
'AMap.Geocoder', 'AMap.MarkerClusterer', 'AMap.AutoComplete', 'AMap.Scale'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
|
16
|
-
AMapUI: {
|
17
|
-
version: '1.1', // AMapUI 缺省 1.1
|
18
|
-
plugins: ['misc/PositionPicker'] // 需要加载的 AMapUI ui插件
|
19
|
-
}
|
20
|
-
})
|
21
|
-
}
|
22
|
-
return Amap
|
23
|
-
}
|
24
|
-
|
25
|
-
async function getGDMap (address) {
|
26
|
-
new (await GetGDMap()).Geocoder({
|
27
|
-
radius: 500 // 范围,默认:500
|
28
|
-
}).getLocation(address, function (status, result) {
|
29
|
-
if (status === 'complete' && result.geocodes.length) {
|
30
|
-
return ({ lng: result.geocodes[0].location.lng, lat: result.geocodes[0].location.lat })
|
31
|
-
} else {
|
32
|
-
// eslint-disable-next-line prefer-promise-reject-errors
|
33
|
-
throw new Error('根据经纬度查询地址失败')
|
34
|
-
}
|
35
|
-
})
|
36
|
-
}
|
37
|
-
|
38
|
-
async function GetLocation (address) {
|
39
|
-
return new Promise((resolve, reject) => {
|
40
|
-
try {
|
41
|
-
resolve(getGDMap(address))
|
42
|
-
} catch (e) {
|
43
|
-
reject(e)
|
44
|
-
}
|
45
|
-
})
|
46
|
-
}
|
47
|
-
export { GetGDMap, GetLocation }
|
1
|
+
import AMapLoader from '@amap/amap-jsapi-loader'
|
2
|
+
let Amap
|
3
|
+
async function GetGDMap (secretKey, key) {
|
4
|
+
if (!Amap) {
|
5
|
+
window._AMapSecurityConfig = {
|
6
|
+
securityJsCode: secretKey
|
7
|
+
}
|
8
|
+
// 解决高德地图加载报错 ---> 禁止多种API加载方式混用
|
9
|
+
AMapLoader.reset()
|
10
|
+
Amap = await AMapLoader.load({
|
11
|
+
key: key, // 申请好的Web端开发者Key,首次调用 load 时必填
|
12
|
+
version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
|
13
|
+
plugins: ['AMap.IndexCluster', 'AMP.MarkerCluster', 'AMap.InfoWindow', 'AMap.HeatMap', 'AMap.HawkEye', 'AMap.DistrictSearch',
|
14
|
+
'AMap.ToolBar', 'AMap.Geolocation', 'AMap.MouseTool',
|
15
|
+
'AMap.Geocoder', 'AMap.MarkerClusterer', 'AMap.AutoComplete', 'AMap.Scale'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
|
16
|
+
AMapUI: {
|
17
|
+
version: '1.1', // AMapUI 缺省 1.1
|
18
|
+
plugins: ['misc/PositionPicker'] // 需要加载的 AMapUI ui插件
|
19
|
+
}
|
20
|
+
})
|
21
|
+
}
|
22
|
+
return Amap
|
23
|
+
}
|
24
|
+
|
25
|
+
async function getGDMap (address) {
|
26
|
+
new (await GetGDMap()).Geocoder({
|
27
|
+
radius: 500 // 范围,默认:500
|
28
|
+
}).getLocation(address, function (status, result) {
|
29
|
+
if (status === 'complete' && result.geocodes.length) {
|
30
|
+
return ({ lng: result.geocodes[0].location.lng, lat: result.geocodes[0].location.lat })
|
31
|
+
} else {
|
32
|
+
// eslint-disable-next-line prefer-promise-reject-errors
|
33
|
+
throw new Error('根据经纬度查询地址失败')
|
34
|
+
}
|
35
|
+
})
|
36
|
+
}
|
37
|
+
|
38
|
+
async function GetLocation (address) {
|
39
|
+
return new Promise((resolve, reject) => {
|
40
|
+
try {
|
41
|
+
resolve(getGDMap(address))
|
42
|
+
} catch (e) {
|
43
|
+
reject(e)
|
44
|
+
}
|
45
|
+
})
|
46
|
+
}
|
47
|
+
export { GetGDMap, GetLocation }
|
package/src/utils/reg.js
CHANGED
@@ -1,95 +1,95 @@
|
|
1
|
-
/** 手机号 */
|
2
|
-
export const REG_PHONE =
|
3
|
-
/^[1](([3][0-9])|([4][01456789])|([5][012356789])|([6][2567])|([7][0-8])|([8][0-9])|([9][012356789]))[0-9]{8}$/
|
4
|
-
|
5
|
-
/** 邮箱 */
|
6
|
-
export const REG_EMAIL = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
|
7
|
-
|
8
|
-
/** url */
|
9
|
-
export const REG_URL =
|
10
|
-
/(((^https?:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)$/
|
11
|
-
|
12
|
-
/** 身份证号校验 */
|
13
|
-
export function checkIdNumber (value) {
|
14
|
-
const psidno = String(value)
|
15
|
-
// 1.校验身份证号格式和长度
|
16
|
-
const regPsidno = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[X])$)$/
|
17
|
-
if (!regPsidno.test(psidno)) {
|
18
|
-
return false
|
19
|
-
}
|
20
|
-
// 2.校验前两位的省份编码是否正确
|
21
|
-
const province = { 11: '北京', 12: '天津', 13: '河北', 14: '山西', 15: '内蒙古', 21: '辽宁', 22: '吉林', 23: '黑龙江 ', 31: '上海', 32: '江苏', 33: '浙江', 34: '安徽', 35: '福建', 36: '江西', 37: '山东', 41: '河南', 42: '湖北 ', 43: '湖南', 44: '广东', 45: '广西', 46: '海南', 50: '重庆', 51: '四川', 52: '贵州', 53: '云南', 54: '西藏 ', 61: '陕西', 62: '甘肃', 63: '青海', 64: '宁夏', 65: '新疆', 71: '台湾', 81: '香港', 82: '澳门', 91: '国外' }
|
22
|
-
if (!province[Number(psidno.slice(0, 2))]) {
|
23
|
-
return false
|
24
|
-
}
|
25
|
-
// 3.校验出生日期
|
26
|
-
if (psidno.length === 15) {
|
27
|
-
// 15位号码 省(2位)市(2位)县(2位)年(2位)月(2位)日(2位)校验码(3位)
|
28
|
-
const reg = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/
|
29
|
-
const arrSplit = psidno.match(reg)
|
30
|
-
// 15位号码在年份前补 19 或 20
|
31
|
-
const year = Number(arrSplit[2].charAt(0)) > 0 ? '19' + arrSplit[2] : '20' + arrSplit[2]
|
32
|
-
const month = arrSplit[3]
|
33
|
-
const day = arrSplit[4]
|
34
|
-
if (!validateBirthday(year, month, day)) {
|
35
|
-
return false
|
36
|
-
}
|
37
|
-
} else if (psidno.length === 18) {
|
38
|
-
// 18位号码 省(2位)市(2位)县(2位)年(4位)月(2位)日(2位)校验码(4位)
|
39
|
-
const reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/
|
40
|
-
const arrSplit = psidno.match(reg)
|
41
|
-
const year = arrSplit[2]
|
42
|
-
const month = arrSplit[3]
|
43
|
-
const day = arrSplit[4]
|
44
|
-
if (!validateBirthday(year, month, day)) {
|
45
|
-
return false
|
46
|
-
}
|
47
|
-
} else {
|
48
|
-
return false
|
49
|
-
}
|
50
|
-
// 校验出生日期是否合理
|
51
|
-
function validateBirthday (year, month, day) {
|
52
|
-
year = Number(year) // 年
|
53
|
-
month = Number(month) // 月
|
54
|
-
day = Number(day) // 日
|
55
|
-
const nowTime = new Date().getTime() // 当前时间戳
|
56
|
-
const birthTime = new Date(`${year}-${month}-${day}`).getTime() // 获取出生日期的时间戳
|
57
|
-
// 不能是明天出生的吧
|
58
|
-
if (birthTime > nowTime) {
|
59
|
-
return false
|
60
|
-
}
|
61
|
-
// 一般人活不到150岁吧
|
62
|
-
const nowYear = new Date().getFullYear()
|
63
|
-
if ((nowYear - year) > 150) {
|
64
|
-
return false
|
65
|
-
}
|
66
|
-
// 不能是13月出生的吧
|
67
|
-
if (month < 1 || month > 12) {
|
68
|
-
return false
|
69
|
-
}
|
70
|
-
// 不能是2月30号、4月31号、5月32号出生的吧
|
71
|
-
const date = new Date(year, month, 0) // 获取当月的最后一天
|
72
|
-
if (day < 1 || day > date.getDate()) {
|
73
|
-
return false
|
74
|
-
}
|
75
|
-
return true
|
76
|
-
}
|
77
|
-
// 4.18位号码校验生成的校验码
|
78
|
-
if (psidno.length === 18) {
|
79
|
-
const Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] // 加权因子
|
80
|
-
const parity = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'] // 校验码
|
81
|
-
let sum = 0
|
82
|
-
for (let i = 0; i < 17; i++) {
|
83
|
-
sum += Number(psidno.charAt(i)) * Wi[i]
|
84
|
-
}
|
85
|
-
if (parity[sum % 11] !== psidno[17]) {
|
86
|
-
return false
|
87
|
-
}
|
88
|
-
}
|
89
|
-
return true
|
90
|
-
}
|
91
|
-
/** 座机号 */
|
92
|
-
export const REG_LANDLINE = /\d{3}-\d{8}|\d{4}-\d{7}/
|
93
|
-
|
94
|
-
/** 营业执照 */
|
95
|
-
export const REG_BUSINESS_LICENSE = /^[0-9a-zA-Z]{15}$/
|
1
|
+
/** 手机号 */
|
2
|
+
export const REG_PHONE =
|
3
|
+
/^[1](([3][0-9])|([4][01456789])|([5][012356789])|([6][2567])|([7][0-8])|([8][0-9])|([9][012356789]))[0-9]{8}$/
|
4
|
+
|
5
|
+
/** 邮箱 */
|
6
|
+
export const REG_EMAIL = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
|
7
|
+
|
8
|
+
/** url */
|
9
|
+
export const REG_URL =
|
10
|
+
/(((^https?:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)$/
|
11
|
+
|
12
|
+
/** 身份证号校验 */
|
13
|
+
export function checkIdNumber (value) {
|
14
|
+
const psidno = String(value)
|
15
|
+
// 1.校验身份证号格式和长度
|
16
|
+
const regPsidno = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[X])$)$/
|
17
|
+
if (!regPsidno.test(psidno)) {
|
18
|
+
return false
|
19
|
+
}
|
20
|
+
// 2.校验前两位的省份编码是否正确
|
21
|
+
const province = { 11: '北京', 12: '天津', 13: '河北', 14: '山西', 15: '内蒙古', 21: '辽宁', 22: '吉林', 23: '黑龙江 ', 31: '上海', 32: '江苏', 33: '浙江', 34: '安徽', 35: '福建', 36: '江西', 37: '山东', 41: '河南', 42: '湖北 ', 43: '湖南', 44: '广东', 45: '广西', 46: '海南', 50: '重庆', 51: '四川', 52: '贵州', 53: '云南', 54: '西藏 ', 61: '陕西', 62: '甘肃', 63: '青海', 64: '宁夏', 65: '新疆', 71: '台湾', 81: '香港', 82: '澳门', 91: '国外' }
|
22
|
+
if (!province[Number(psidno.slice(0, 2))]) {
|
23
|
+
return false
|
24
|
+
}
|
25
|
+
// 3.校验出生日期
|
26
|
+
if (psidno.length === 15) {
|
27
|
+
// 15位号码 省(2位)市(2位)县(2位)年(2位)月(2位)日(2位)校验码(3位)
|
28
|
+
const reg = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/
|
29
|
+
const arrSplit = psidno.match(reg)
|
30
|
+
// 15位号码在年份前补 19 或 20
|
31
|
+
const year = Number(arrSplit[2].charAt(0)) > 0 ? '19' + arrSplit[2] : '20' + arrSplit[2]
|
32
|
+
const month = arrSplit[3]
|
33
|
+
const day = arrSplit[4]
|
34
|
+
if (!validateBirthday(year, month, day)) {
|
35
|
+
return false
|
36
|
+
}
|
37
|
+
} else if (psidno.length === 18) {
|
38
|
+
// 18位号码 省(2位)市(2位)县(2位)年(4位)月(2位)日(2位)校验码(4位)
|
39
|
+
const reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/
|
40
|
+
const arrSplit = psidno.match(reg)
|
41
|
+
const year = arrSplit[2]
|
42
|
+
const month = arrSplit[3]
|
43
|
+
const day = arrSplit[4]
|
44
|
+
if (!validateBirthday(year, month, day)) {
|
45
|
+
return false
|
46
|
+
}
|
47
|
+
} else {
|
48
|
+
return false
|
49
|
+
}
|
50
|
+
// 校验出生日期是否合理
|
51
|
+
function validateBirthday (year, month, day) {
|
52
|
+
year = Number(year) // 年
|
53
|
+
month = Number(month) // 月
|
54
|
+
day = Number(day) // 日
|
55
|
+
const nowTime = new Date().getTime() // 当前时间戳
|
56
|
+
const birthTime = new Date(`${year}-${month}-${day}`).getTime() // 获取出生日期的时间戳
|
57
|
+
// 不能是明天出生的吧
|
58
|
+
if (birthTime > nowTime) {
|
59
|
+
return false
|
60
|
+
}
|
61
|
+
// 一般人活不到150岁吧
|
62
|
+
const nowYear = new Date().getFullYear()
|
63
|
+
if ((nowYear - year) > 150) {
|
64
|
+
return false
|
65
|
+
}
|
66
|
+
// 不能是13月出生的吧
|
67
|
+
if (month < 1 || month > 12) {
|
68
|
+
return false
|
69
|
+
}
|
70
|
+
// 不能是2月30号、4月31号、5月32号出生的吧
|
71
|
+
const date = new Date(year, month, 0) // 获取当月的最后一天
|
72
|
+
if (day < 1 || day > date.getDate()) {
|
73
|
+
return false
|
74
|
+
}
|
75
|
+
return true
|
76
|
+
}
|
77
|
+
// 4.18位号码校验生成的校验码
|
78
|
+
if (psidno.length === 18) {
|
79
|
+
const Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] // 加权因子
|
80
|
+
const parity = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'] // 校验码
|
81
|
+
let sum = 0
|
82
|
+
for (let i = 0; i < 17; i++) {
|
83
|
+
sum += Number(psidno.charAt(i)) * Wi[i]
|
84
|
+
}
|
85
|
+
if (parity[sum % 11] !== psidno[17]) {
|
86
|
+
return false
|
87
|
+
}
|
88
|
+
}
|
89
|
+
return true
|
90
|
+
}
|
91
|
+
/** 座机号 */
|
92
|
+
export const REG_LANDLINE = /\d{3}-\d{8}|\d{4}-\d{7}/
|
93
|
+
|
94
|
+
/** 营业执照 */
|
95
|
+
export const REG_BUSINESS_LICENSE = /^[0-9a-zA-Z]{15}$/
|
package/src/utils/routerUtil.js
CHANGED
@@ -207,75 +207,154 @@ function loadRoutes (routesConfig) {
|
|
207
207
|
}
|
208
208
|
}
|
209
209
|
|
210
|
+
/**
|
211
|
+
* 检查路由中的重复名称
|
212
|
+
* @param {Array} routes 路由配置数组
|
213
|
+
* @returns {Array} 重复的路由信息数组
|
214
|
+
*/
|
210
215
|
function checkDuplicateRouteNames (routes) {
|
211
|
-
const
|
216
|
+
const routeMap = new Map() // 存储路由名称到路由信息的映射
|
212
217
|
const duplicates = []
|
213
218
|
|
214
|
-
|
219
|
+
/**
|
220
|
+
* 递归检查路由
|
221
|
+
* @param {Object} route 当前路由
|
222
|
+
* @param {Array} parentPath 父级路径链
|
223
|
+
*/
|
224
|
+
function check (route, parentPath = []) {
|
215
225
|
if (route.name) {
|
216
|
-
|
217
|
-
|
226
|
+
const fullPath = [...parentPath, route.path].join('/')
|
227
|
+
|
228
|
+
if (routeMap.has(route.name)) {
|
229
|
+
// 发现重复的路由名称
|
230
|
+
const existing = routeMap.get(route.name)
|
231
|
+
duplicates.push({
|
232
|
+
name: route.name,
|
233
|
+
newPath: fullPath,
|
234
|
+
existingPath: existing.fullPath,
|
235
|
+
parentPath: parentPath.join('/'),
|
236
|
+
existingParentPath: existing.parentPath
|
237
|
+
})
|
218
238
|
} else {
|
219
|
-
|
239
|
+
// 记录路由信息
|
240
|
+
routeMap.set(route.name, {
|
241
|
+
fullPath: fullPath,
|
242
|
+
parentPath: parentPath.join('/'),
|
243
|
+
route: route
|
244
|
+
})
|
220
245
|
}
|
221
246
|
}
|
222
|
-
|
223
|
-
|
247
|
+
|
248
|
+
// 递归处理子路由
|
249
|
+
if (route.children && route.children.length > 0) {
|
250
|
+
const currentPath = [...parentPath, route.path || '']
|
251
|
+
route.children.forEach(child => check(child, currentPath))
|
224
252
|
}
|
225
253
|
}
|
226
254
|
|
227
|
-
routes.forEach(check)
|
255
|
+
routes.forEach(route => check(route))
|
228
256
|
return duplicates
|
229
257
|
}
|
230
258
|
|
231
|
-
|
259
|
+
/**
|
260
|
+
* 处理重复的路由名称
|
261
|
+
* @param {Array} routes 路由配置数组
|
262
|
+
* @returns {Array} 处理后的路由数组
|
263
|
+
*/
|
232
264
|
function deduplicateRouteNames (routes) {
|
233
|
-
const
|
234
|
-
|
265
|
+
const nameRegistry = new Map() // 全局名称注册表
|
266
|
+
|
267
|
+
/**
|
268
|
+
* 生成唯一的路由名称
|
269
|
+
* @param {String} baseName 基础名称
|
270
|
+
* @param {String} parentPath 父级路径
|
271
|
+
* @returns {String} 唯一的路由名称
|
272
|
+
*/
|
273
|
+
function generateUniqueName (baseName, parentPath) {
|
274
|
+
// 如果父级路径存在,使用父级路径的最后一部分作为前缀
|
275
|
+
if (parentPath && parentPath !== '/') {
|
276
|
+
const pathParts = parentPath.split('/').filter(p => p)
|
277
|
+
const parentName = pathParts[pathParts.length - 1] || ''
|
278
|
+
if (parentName) {
|
279
|
+
return `${parentName}_${baseName}`
|
280
|
+
}
|
281
|
+
}
|
282
|
+
|
283
|
+
// 否则添加数字后缀
|
284
|
+
let counter = 1
|
285
|
+
let newName = baseName
|
286
|
+
while (nameRegistry.has(newName)) {
|
287
|
+
counter++
|
288
|
+
newName = `${baseName}_${counter}`
|
289
|
+
}
|
290
|
+
return newName
|
291
|
+
}
|
235
292
|
|
236
|
-
|
293
|
+
/**
|
294
|
+
* 递归处理路由
|
295
|
+
* @param {Object} route 当前路由
|
296
|
+
* @param {Array} parentPath 父级路径链
|
297
|
+
* @param {Boolean} isRoot 是否为根级路由
|
298
|
+
* @returns {Object|null} 处理后的路由或null
|
299
|
+
*/
|
300
|
+
function processRoute (route, parentPath = [], isRoot = false) {
|
237
301
|
if (!route) return null
|
238
302
|
|
239
|
-
|
240
|
-
|
241
|
-
|
303
|
+
// 复制路由对象,避免修改原始数据
|
304
|
+
const processedRoute = { ...route }
|
305
|
+
const fullPath = [...parentPath, route.path || ''].filter(p => p).join('/')
|
306
|
+
|
307
|
+
// 处理路由名称
|
308
|
+
if (processedRoute.name) {
|
309
|
+
const routeKey = `${processedRoute.name}::${fullPath}`
|
242
310
|
|
243
|
-
//
|
244
|
-
if (
|
245
|
-
//
|
246
|
-
// console.log(`移除重复路由: name=${route.name}, path=${route.path}`)
|
311
|
+
// 检查是否已经处理过完全相同的路由(名称和路径都相同)
|
312
|
+
if (nameRegistry.has(routeKey)) {
|
313
|
+
// 完全重复的路由,直接跳过
|
247
314
|
return null
|
248
|
-
}
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
// console.log(`重命名重复路由: ${nameKey} -> ${route.name}`)
|
259
|
-
} else {
|
260
|
-
nameCountMap.set(nameKey, 1)
|
315
|
+
}
|
316
|
+
|
317
|
+
// 检查名称是否已被使用
|
318
|
+
if (nameRegistry.has(processedRoute.name)) {
|
319
|
+
const existingRoute = nameRegistry.get(processedRoute.name)
|
320
|
+
// 如果路径不同,说明是不同位置的同名路由,需要重命名
|
321
|
+
if (existingRoute.fullPath !== fullPath) {
|
322
|
+
const parentPathStr = parentPath.join('/')
|
323
|
+
const newName = generateUniqueName(processedRoute.name, parentPathStr)
|
324
|
+
processedRoute.name = newName
|
261
325
|
}
|
262
326
|
}
|
327
|
+
|
328
|
+
// 注册当前路由
|
329
|
+
nameRegistry.set(processedRoute.name, { fullPath, route: processedRoute })
|
330
|
+
nameRegistry.set(routeKey, { fullPath, route: processedRoute })
|
263
331
|
}
|
264
332
|
|
265
333
|
// 递归处理子路由
|
266
|
-
if (
|
267
|
-
|
268
|
-
|
269
|
-
.
|
334
|
+
if (processedRoute.children && processedRoute.children.length > 0) {
|
335
|
+
const currentPath = [...parentPath, route.path || ''].filter(p => p)
|
336
|
+
processedRoute.children = processedRoute.children
|
337
|
+
.map(child => processRoute(child, currentPath, false))
|
338
|
+
.filter(child => child !== null)
|
339
|
+
|
340
|
+
// 如果所有子路由都被过滤掉了,考虑是否保留父路由
|
341
|
+
if (processedRoute.children.length === 0 && !isRoot) {
|
342
|
+
// 如果是空的 blank 路由,可以移除
|
343
|
+
if (processedRoute.component && processedRoute.component.name === 'blank') {
|
344
|
+
return null
|
345
|
+
}
|
346
|
+
}
|
270
347
|
}
|
271
348
|
|
272
|
-
return
|
349
|
+
return processedRoute
|
273
350
|
}
|
274
351
|
|
275
|
-
//
|
276
|
-
|
277
|
-
.map(route =>
|
352
|
+
// 处理所有路由
|
353
|
+
const processedRoutes = routes
|
354
|
+
.map(route => processRoute(route, [], true))
|
278
355
|
.filter(route => route !== null)
|
356
|
+
|
357
|
+
return processedRoutes
|
279
358
|
}
|
280
359
|
|
281
360
|
/**
|
@@ -421,7 +500,7 @@ function funcToRouter (func) {
|
|
421
500
|
const parsedfunc = parsefunc(func)
|
422
501
|
return [{
|
423
502
|
router: 'root',
|
424
|
-
children: window.__MICRO_APP_ENVIRONMENT__ ?
|
503
|
+
children: window.__MICRO_APP_ENVIRONMENT__ ? flattenTree(parsedfunc) : positionRouter(parsedfunc)
|
425
504
|
}]
|
426
505
|
}
|
427
506
|
|
@@ -1,14 +1,14 @@
|
|
1
|
-
export function executeStrFunction (funcString, args) {
|
2
|
-
// 使用 eval 执行传入的函数字符串
|
3
|
-
// eslint-disable-next-line no-eval
|
4
|
-
return eval(`(${funcString})`)(...args)
|
5
|
-
}
|
6
|
-
|
7
|
-
export function executeStrFunctionByContext (context, fnStr, args) {
|
8
|
-
// 使用 new Function 创建函数,并绑定 context 作为 this
|
9
|
-
// eslint-disable-next-line no-eval,no-new-func
|
10
|
-
const fn = new Function(`return (${fnStr});`)()
|
11
|
-
|
12
|
-
// 使用 bind 绑定 context,并立即调用
|
13
|
-
return fn.bind(context)(...args)
|
14
|
-
}
|
1
|
+
export function executeStrFunction (funcString, args) {
|
2
|
+
// 使用 eval 执行传入的函数字符串
|
3
|
+
// eslint-disable-next-line no-eval
|
4
|
+
return eval(`(${funcString})`)(...args)
|
5
|
+
}
|
6
|
+
|
7
|
+
export function executeStrFunctionByContext (context, fnStr, args) {
|
8
|
+
// 使用 new Function 创建函数,并绑定 context 作为 this
|
9
|
+
// eslint-disable-next-line no-eval,no-new-func
|
10
|
+
const fn = new Function(`return (${fnStr});`)()
|
11
|
+
|
12
|
+
// 使用 bind 绑定 context,并立即调用
|
13
|
+
return fn.bind(context)(...args)
|
14
|
+
}
|