From 57357e320a96b2218a7c19702767e09f8a7085d0 Mon Sep 17 00:00:00 2001 From: GaoF Date: Sun, 25 Aug 2024 17:49:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 1 + package.json | 1 + public/favicon.ico | Bin 4286 -> 1419 bytes public/print-lock.css | 349 + src/api/print/printApi.js | 28 + src/hook/useFormHandler.js | 3 +- src/src/App.vue | 40 - src/src/api/auth/loginApi.js | 45 - src/src/api/auth/monitorApi.js | 49 - src/src/api/auth/oauthApi.js | 29 - src/src/api/auth/thirdApi.js | 33 - src/src/api/base/brand/sysBrandApi.js | 32 - src/src/api/base/customer/customerApi.js | 32 - .../api/base/customer/customerCategoryApi.js | 32 - src/src/api/base/employee/employeeApi.js | 32 - .../api/base/employee/employeeCategoryApi.js | 32 - .../api/base/extendfield/extendFieldApi.js | 28 - src/src/api/base/manual-task/manualTaskApi.js | 36 - .../base/manual-task/manualTaskDetailApi.js | 28 - .../api/base/manual-task/manualTaskTagApi.js | 32 - src/src/api/base/material/materialApi.js | 32 - .../api/base/material/materialCategoryApi.js | 32 - .../productionOrganizationApi.js | 36 - src/src/api/base/store/sysStoreApi.js | 32 - src/src/api/base/unit/unitApi.js | 32 - src/src/api/base/unit/unitGroupsApi.js | 32 - src/src/api/base/wx/officialAccountApi.js | 32 - src/src/api/biz/bizDictApi.js | 37 - src/src/api/biz/bizIndexApi.js | 24 - src/src/api/biz/bizNoticeApi.js | 36 - src/src/api/biz/bizOrgApi.js | 53 - src/src/api/biz/bizPositionApi.js | 49 - src/src/api/biz/bizUserApi.js | 85 - src/src/api/biz/produceTagApi.js | 32 - src/src/api/dev/configApi.js | 49 - src/src/api/dev/dictApi.js | 45 - src/src/api/dev/emailApi.js | 65 - src/src/api/dev/fileApi.js | 87 - src/src/api/dev/jobApi.js | 53 - src/src/api/dev/logApi.js | 49 - src/src/api/dev/messageApi.js | 37 - src/src/api/dev/monitorApi.js | 29 - src/src/api/dev/slideshowApi.js | 32 - src/src/api/dev/smsApi.js | 45 - src/src/api/gen/genBasicApi.js | 49 - src/src/api/gen/genConfigApi.js | 26 - src/src/api/mobile/resource/buttonApi.js | 37 - src/src/api/mobile/resource/menuApi.js | 40 - src/src/api/mobile/resource/moduleApi.js | 37 - .../api/production/produce/produceTagApi.js | 32 - .../produceReport/produceReportApi.js | 28 - .../produceTask/producePackageBarcodeApi.js | 28 - .../produceTask/produceReportApi.js | 28 - .../production/produceTask/produceTaskApi.js | 36 - src/src/api/sys/indexApi.js | 65 - src/src/api/sys/orgApi.js | 53 - src/src/api/sys/positionApi.js | 49 - src/src/api/sys/resource/buttonApi.js | 37 - src/src/api/sys/resource/fieldApi.js | 45 - src/src/api/sys/resource/menuApi.js | 49 - src/src/api/sys/resource/moduleApi.js | 37 - src/src/api/sys/roleApi.js | 93 - src/src/api/sys/userApi.js | 111 - src/src/api/sys/userCenterApi.js | 105 - src/src/assets/icons/GiteeIcon.vue | 24 - src/src/assets/icons/index.js | 13 - .../assets/icons/mobile/filled/iconfont.css | 173 - .../assets/icons/mobile/filled/iconfont.json | 289 - .../assets/icons/mobile/filled/iconfont.ttf | Bin 8816 -> 0 bytes src/src/assets/icons/mobile/index.js | 36 - src/src/assets/icons/mobile/line/iconfont.css | 825 - .../assets/icons/mobile/line/iconfont.json | 1430 -- src/src/assets/icons/mobile/line/iconfont.ttf | Bin 54080 -> 0 bytes src/src/assets/icons/uiw/UiwAdobe.vue | 15 - src/src/assets/icons/uiw/UiwAlipay.vue | 14 - src/src/assets/icons/uiw/UiwAliwangwang.vue | 14 - src/src/assets/icons/uiw/UiwAndroid.vue | 10 - src/src/assets/icons/uiw/UiwAndroidO.vue | 10 - src/src/assets/icons/uiw/UiwApple.vue | 10 - src/src/assets/icons/uiw/UiwAppstore.vue | 10 - src/src/assets/icons/uiw/UiwAppstoreO.vue | 10 - src/src/assets/icons/uiw/UiwAreaChart.vue | 10 - src/src/assets/icons/uiw/UiwArrowDown.vue | 10 - src/src/assets/icons/uiw/UiwArrowLeft.vue | 10 - src/src/assets/icons/uiw/UiwArrowRight.vue | 10 - src/src/assets/icons/uiw/UiwArrowUp.vue | 10 - src/src/assets/icons/uiw/UiwArrowsAlt.vue | 10 - src/src/assets/icons/uiw/UiwAsterisk.vue | 10 - src/src/assets/icons/uiw/UiwBackward.vue | 10 - src/src/assets/icons/uiw/UiwBaidu.vue | 10 - src/src/assets/icons/uiw/UiwBarChart.vue | 10 - src/src/assets/icons/uiw/UiwBarcode.vue | 10 - src/src/assets/icons/uiw/UiwBell.vue | 10 - src/src/assets/icons/uiw/UiwCameraO.vue | 10 - src/src/assets/icons/uiw/UiwCaretDown.vue | 10 - src/src/assets/icons/uiw/UiwCaretLeft.vue | 10 - src/src/assets/icons/uiw/UiwCaretRight.vue | 10 - src/src/assets/icons/uiw/UiwCaretUp.vue | 10 - src/src/assets/icons/uiw/UiwCheck.vue | 10 - src/src/assets/icons/uiw/UiwCheckSquare.vue | 10 - src/src/assets/icons/uiw/UiwCheckSquareO.vue | 10 - src/src/assets/icons/uiw/UiwChrome.vue | 10 - src/src/assets/icons/uiw/UiwCircleCheck.vue | 10 - src/src/assets/icons/uiw/UiwCircleCheckO.vue | 10 - src/src/assets/icons/uiw/UiwCircleClose.vue | 10 - src/src/assets/icons/uiw/UiwCircleCloseO.vue | 10 - src/src/assets/icons/uiw/UiwCircleO.vue | 10 - src/src/assets/icons/uiw/UiwClose.vue | 10 - src/src/assets/icons/uiw/UiwCloseSquare.vue | 10 - src/src/assets/icons/uiw/UiwCloseSquareO.vue | 10 - src/src/assets/icons/uiw/UiwCloudDownload.vue | 10 - .../assets/icons/uiw/UiwCloudDownloadO.vue | 10 - src/src/assets/icons/uiw/UiwCloudUpload.vue | 10 - src/src/assets/icons/uiw/UiwCloudUploadO.vue | 10 - src/src/assets/icons/uiw/UiwCoffee.vue | 10 - src/src/assets/icons/uiw/UiwComponent.vue | 10 - src/src/assets/icons/uiw/UiwCopy.vue | 10 - src/src/assets/icons/uiw/UiwCopyright.vue | 10 - src/src/assets/icons/uiw/UiwCss3.vue | 10 - src/src/assets/icons/uiw/UiwCut.vue | 10 - src/src/assets/icons/uiw/UiwDArrowLeft.vue | 10 - src/src/assets/icons/uiw/UiwDArrowRight.vue | 10 - src/src/assets/icons/uiw/UiwDCaret.vue | 10 - src/src/assets/icons/uiw/UiwDashboard.vue | 10 - src/src/assets/icons/uiw/UiwDate.vue | 10 - src/src/assets/icons/uiw/UiwDelete.vue | 10 - src/src/assets/icons/uiw/UiwDingding.vue | 10 - src/src/assets/icons/uiw/UiwDislikeO.vue | 10 - src/src/assets/icons/uiw/UiwDocument.vue | 10 - src/src/assets/icons/uiw/UiwDotChart.vue | 10 - src/src/assets/icons/uiw/UiwDown.vue | 10 - src/src/assets/icons/uiw/UiwDownCircle.vue | 10 - src/src/assets/icons/uiw/UiwDownCircleO.vue | 10 - src/src/assets/icons/uiw/UiwDownSquare.vue | 10 - src/src/assets/icons/uiw/UiwDownSquareO.vue | 10 - src/src/assets/icons/uiw/UiwDownload.vue | 10 - src/src/assets/icons/uiw/UiwEdit.vue | 10 - src/src/assets/icons/uiw/UiwEnter.vue | 10 - src/src/assets/icons/uiw/UiwEnvironment.vue | 10 - src/src/assets/icons/uiw/UiwEnvironmentO.vue | 10 - src/src/assets/icons/uiw/UiwEye.vue | 10 - src/src/assets/icons/uiw/UiwEyeO.vue | 10 - src/src/assets/icons/uiw/UiwFacebook.vue | 10 - src/src/assets/icons/uiw/UiwFileAdd.vue | 10 - src/src/assets/icons/uiw/UiwFileExcel.vue | 10 - src/src/assets/icons/uiw/UiwFileJpg.vue | 10 - src/src/assets/icons/uiw/UiwFilePdf.vue | 10 - src/src/assets/icons/uiw/UiwFileText.vue | 10 - src/src/assets/icons/uiw/UiwFileUnknown.vue | 10 - src/src/assets/icons/uiw/UiwFilter.vue | 10 - src/src/assets/icons/uiw/UiwFirefox.vue | 10 - src/src/assets/icons/uiw/UiwFolder.vue | 10 - src/src/assets/icons/uiw/UiwFolderAdd.vue | 10 - src/src/assets/icons/uiw/UiwFolderOpen.vue | 10 - src/src/assets/icons/uiw/UiwForward.vue | 10 - src/src/assets/icons/uiw/UiwFoursquare.vue | 10 - src/src/assets/icons/uiw/UiwFrown.vue | 10 - src/src/assets/icons/uiw/UiwFrownO.vue | 10 - src/src/assets/icons/uiw/UiwGithub.vue | 10 - src/src/assets/icons/uiw/UiwGithubO.vue | 10 - src/src/assets/icons/uiw/UiwGlobal.vue | 10 - src/src/assets/icons/uiw/UiwHeartOff.vue | 10 - src/src/assets/icons/uiw/UiwHeartOn.vue | 10 - src/src/assets/icons/uiw/UiwHome.vue | 10 - src/src/assets/icons/uiw/UiwHtml5.vue | 10 - src/src/assets/icons/uiw/UiwIe.vue | 10 - src/src/assets/icons/uiw/UiwInbox.vue | 10 - src/src/assets/icons/uiw/UiwInformation.vue | 10 - src/src/assets/icons/uiw/UiwInformationO.vue | 10 - src/src/assets/icons/uiw/UiwLaptop.vue | 10 - src/src/assets/icons/uiw/UiwLeft.vue | 10 - src/src/assets/icons/uiw/UiwLeftCircle.vue | 10 - src/src/assets/icons/uiw/UiwLeftCircleO.vue | 10 - src/src/assets/icons/uiw/UiwLeftSquare.vue | 10 - src/src/assets/icons/uiw/UiwLeftSquareO.vue | 10 - src/src/assets/icons/uiw/UiwLikeO.vue | 10 - src/src/assets/icons/uiw/UiwLink.vue | 10 - src/src/assets/icons/uiw/UiwLinkedin.vue | 10 - src/src/assets/icons/uiw/UiwLinux.vue | 10 - src/src/assets/icons/uiw/UiwLoading.vue | 10 - src/src/assets/icons/uiw/UiwLock.vue | 10 - src/src/assets/icons/uiw/UiwLogin.vue | 10 - src/src/assets/icons/uiw/UiwLogout.vue | 10 - src/src/assets/icons/uiw/UiwMail.vue | 10 - src/src/assets/icons/uiw/UiwMailO.vue | 10 - src/src/assets/icons/uiw/UiwMan.vue | 10 - src/src/assets/icons/uiw/UiwMap.vue | 10 - src/src/assets/icons/uiw/UiwMeh.vue | 10 - src/src/assets/icons/uiw/UiwMehO.vue | 10 - src/src/assets/icons/uiw/UiwMenu.vue | 10 - src/src/assets/icons/uiw/UiwMenuFold.vue | 10 - src/src/assets/icons/uiw/UiwMenuUnfold.vue | 10 - src/src/assets/icons/uiw/UiwMessage.vue | 10 - src/src/assets/icons/uiw/UiwMinus.vue | 10 - src/src/assets/icons/uiw/UiwMinusCircle.vue | 10 - src/src/assets/icons/uiw/UiwMinusCircleO.vue | 10 - src/src/assets/icons/uiw/UiwMinusSquare.vue | 10 - src/src/assets/icons/uiw/UiwMinusSquareO.vue | 10 - src/src/assets/icons/uiw/UiwMobile.vue | 10 - src/src/assets/icons/uiw/UiwMore.vue | 10 - src/src/assets/icons/uiw/UiwNotification.vue | 10 - src/src/assets/icons/uiw/UiwOpera.vue | 10 - src/src/assets/icons/uiw/UiwPaperClip.vue | 10 - src/src/assets/icons/uiw/UiwPause.vue | 10 - src/src/assets/icons/uiw/UiwPauseCircle.vue | 10 - src/src/assets/icons/uiw/UiwPauseCircleO.vue | 10 - src/src/assets/icons/uiw/UiwPay.vue | 10 - src/src/assets/icons/uiw/UiwPayCircleO.vue | 10 - src/src/assets/icons/uiw/UiwPicasa.vue | 10 - src/src/assets/icons/uiw/UiwPicture.vue | 10 - src/src/assets/icons/uiw/UiwPieChart.vue | 10 - src/src/assets/icons/uiw/UiwPinterest.vue | 10 - src/src/assets/icons/uiw/UiwPlayCircle.vue | 10 - src/src/assets/icons/uiw/UiwPlayCircleO.vue | 10 - src/src/assets/icons/uiw/UiwPlus.vue | 10 - src/src/assets/icons/uiw/UiwPlusCircle.vue | 10 - src/src/assets/icons/uiw/UiwPlusCircleO.vue | 10 - src/src/assets/icons/uiw/UiwPlusSquare.vue | 10 - src/src/assets/icons/uiw/UiwPlusSquareO.vue | 10 - src/src/assets/icons/uiw/UiwPoweroff.vue | 10 - src/src/assets/icons/uiw/UiwPrinter.vue | 10 - src/src/assets/icons/uiw/UiwQq.vue | 10 - src/src/assets/icons/uiw/UiwQrcode.vue | 10 - .../assets/icons/uiw/UiwQuestionCircle.vue | 10 - .../assets/icons/uiw/UiwQuestionCircleO.vue | 10 - src/src/assets/icons/uiw/UiwReddit.vue | 10 - src/src/assets/icons/uiw/UiwReload.vue | 10 - src/src/assets/icons/uiw/UiwRight.vue | 10 - src/src/assets/icons/uiw/UiwRightCircle.vue | 10 - src/src/assets/icons/uiw/UiwRightCircleO.vue | 10 - src/src/assets/icons/uiw/UiwRightSquare.vue | 10 - src/src/assets/icons/uiw/UiwRightSquareO.vue | 10 - src/src/assets/icons/uiw/UiwRollback.vue | 10 - src/src/assets/icons/uiw/UiwSafari.vue | 10 - src/src/assets/icons/uiw/UiwSafety.vue | 10 - src/src/assets/icons/uiw/UiwSave.vue | 10 - src/src/assets/icons/uiw/UiwSearch.vue | 10 - src/src/assets/icons/uiw/UiwSetting.vue | 10 - src/src/assets/icons/uiw/UiwSettingO.vue | 10 - src/src/assets/icons/uiw/UiwShare.vue | 10 - src/src/assets/icons/uiw/UiwShoppingCart.vue | 10 - src/src/assets/icons/uiw/UiwShrink.vue | 10 - src/src/assets/icons/uiw/UiwSmile.vue | 10 - src/src/assets/icons/uiw/UiwSmileO.vue | 10 - src/src/assets/icons/uiw/UiwSquareO.vue | 10 - src/src/assets/icons/uiw/UiwStarOff.vue | 10 - src/src/assets/icons/uiw/UiwStarOn.vue | 10 - src/src/assets/icons/uiw/UiwStop.vue | 10 - src/src/assets/icons/uiw/UiwStopO.vue | 10 - src/src/assets/icons/uiw/UiwSwap.vue | 10 - src/src/assets/icons/uiw/UiwSwapLeft.vue | 10 - src/src/assets/icons/uiw/UiwSwapRight.vue | 10 - src/src/assets/icons/uiw/UiwTable.vue | 10 - src/src/assets/icons/uiw/UiwTag.vue | 10 - src/src/assets/icons/uiw/UiwTagO.vue | 10 - src/src/assets/icons/uiw/UiwTags.vue | 10 - src/src/assets/icons/uiw/UiwTagsO.vue | 10 - src/src/assets/icons/uiw/UiwTaobao.vue | 10 - src/src/assets/icons/uiw/UiwTime.vue | 10 - src/src/assets/icons/uiw/UiwTimeO.vue | 10 - src/src/assets/icons/uiw/UiwTwitter.vue | 10 - src/src/assets/icons/uiw/UiwUiw.vue | 10 - src/src/assets/icons/uiw/UiwUnlock.vue | 10 - src/src/assets/icons/uiw/UiwUp.vue | 10 - src/src/assets/icons/uiw/UiwUpCircle.vue | 10 - src/src/assets/icons/uiw/UiwUpCircleO.vue | 10 - src/src/assets/icons/uiw/UiwUpSquare.vue | 10 - src/src/assets/icons/uiw/UiwUpSquareO.vue | 10 - src/src/assets/icons/uiw/UiwUpload.vue | 10 - src/src/assets/icons/uiw/UiwUser.vue | 10 - src/src/assets/icons/uiw/UiwUserAdd.vue | 10 - src/src/assets/icons/uiw/UiwUserDelete.vue | 10 - src/src/assets/icons/uiw/UiwUsergroupAdd.vue | 10 - .../assets/icons/uiw/UiwUsergroupDelete.vue | 10 - src/src/assets/icons/uiw/UiwVerification.vue | 10 - src/src/assets/icons/uiw/UiwVerticleLeft.vue | 10 - src/src/assets/icons/uiw/UiwVerticleRight.vue | 10 - src/src/assets/icons/uiw/UiwVideoCamera.vue | 10 - src/src/assets/icons/uiw/UiwWarning.vue | 10 - src/src/assets/icons/uiw/UiwWarningO.vue | 10 - src/src/assets/icons/uiw/UiwWeibo.vue | 10 - src/src/assets/icons/uiw/UiwWeixin.vue | 10 - src/src/assets/icons/uiw/UiwWifi.vue | 10 - src/src/assets/icons/uiw/UiwWindows.vue | 10 - src/src/assets/icons/uiw/UiwWoman.vue | 10 - src/src/assets/icons/uiw/UiwZoomIn.vue | 10 - src/src/assets/icons/uiw/UiwZoomOut.vue | 10 - src/src/assets/images/fileImg/README.md | 1 - src/src/assets/images/fileImg/docx.png | Bin 8977 -> 0 bytes src/src/assets/images/fileImg/file.png | Bin 2484 -> 0 bytes src/src/assets/images/fileImg/gif.png | Bin 6013 -> 0 bytes src/src/assets/images/fileImg/html.png | Bin 13037 -> 0 bytes src/src/assets/images/fileImg/img.png | Bin 10147 -> 0 bytes src/src/assets/images/fileImg/pdf.png | Bin 11470 -> 0 bytes src/src/assets/images/fileImg/png.png | Bin 9769 -> 0 bytes src/src/assets/images/fileImg/ppt.png | Bin 10484 -> 0 bytes src/src/assets/images/fileImg/rar.png | Bin 12718 -> 0 bytes src/src/assets/images/fileImg/txt.png | Bin 10359 -> 0 bytes src/src/assets/images/fileImg/xlsx.png | Bin 8929 -> 0 bytes src/src/assets/images/fileImg/zip.png | Bin 9368 -> 0 bytes src/src/assets/images/login_home.jpg | Bin 491851 -> 0 bytes .../components/AdvancedSearchForm/index.vue | 81 - src/src/components/CardTitle/index.vue | 26 - .../Chart/eCBingZhuangTu/CustomizedPie.vue | 79 - .../DoughnutChartWithRoundedCorner.vue | 57 - .../Chart/eCBingZhuangTu/NightingaleChart.vue | 54 - .../eCBingZhuangTu/RefererOfAWebsite.vue | 53 - .../Chart/eCKXianTu/BasicCandlestick.vue | 35 - .../Chart/eCKXianTu/LargeScaleCandlestick.vue | 207 - .../Chart/eCKXianTu/ShangHaiIndex.vue | 324 - .../Chart/eCLouDouTu/CustomizedFunnel.vue | 100 - .../Chart/eCLouDouTu/FunnelChart.vue | 81 - .../Chart/eCLouDouTu/FunnelCompare.vue | 114 - .../Chart/eCLouDouTu/MultipleFunnels.vue | 114 - .../Chart/eCSanDianTu/BasicScatterChart.vue | 51 - .../Chart/eCSanDianTu/ClusteringProcess.vue | 139 - .../Chart/eCSanDianTu/EffectScatterChart.vue | 92 - .../Chart/eCSanDianTu/ScatterAqiColor.vue | 264 - .../eCShuXingTu/TreeWithPolylineEdge.vue | 182 - .../Chart/eCXianXingTu/BasicLineChart.vue | 34 - .../Chart/eCXianXingTu/StackedAreaChart.vue | 115 - .../Chart/eCXianXingTu/StackedLineChart.vue | 81 - .../Chart/eCXianXingTu/StepLine.vue | 68 - .../Chart/eCYiBiaoTu/GaugeBasicChart.vue | 37 - .../Chart/eCYiBiaoTu/GrogressGauge.vue | 106 - .../Chart/eCYiBiaoTu/StageSpeedGauge.vue | 83 - .../eCYiBiaoTu/TemperatureGaugeChart.vue | 147 - .../BarChartWithNegativeValue.vue | 77 - .../Chart/eCZhuZhuangTu/BarLabelRotation.vue | 132 - .../Chart/eCZhuZhuangTu/BasicBar.vue | 32 - .../WatermarkEChartsDownload.vue | 249 - .../Chart/g2BingZhuangTu/BingZhuangTu01.vue | 60 - .../Chart/g2BingZhuangTu/BingZhuangTu02.vue | 35 - .../Chart/g2BingZhuangTu/BingZhuangTu03.vue | 51 - .../Chart/g2BingZhuangTu/BingZhuangTu04.vue | 81 - .../components/Chart/g2CiYunTu/CiYunTu01.vue | 37 - .../components/Chart/g2CiYunTu/CiYunTu02.vue | 31 - .../components/Chart/g2JinDuTu/JinDuTu01.vue | 40 - .../components/Chart/g2JinDuTu/JinDuTu02.vue | 22 - .../components/Chart/g2JinDuTu/JinDuTu03.vue | 71 - .../components/Chart/g2JinDuTu/JinDuTu04.vue | 58 - .../Chart/g2LouDouTu/LouDouTu01.vue | 27 - .../Chart/g2LouDouTu/LouDouTu02.vue | 48 - .../Chart/g2MianJiTu/MianJiTu01.vue | 24 - .../Chart/g2MianJiTu/MianJiTu02.vue | 30 - .../Chart/g2MianJiTu/MianJiTu03.vue | 22 - .../Chart/g2MianJiTu/MianJiTu04.vue | 35 - .../Chart/g2SanDianTu/SanDianTu01.vue | 48 - .../Chart/g2SanDianTu/SanDianTu02.vue | 52 - .../Chart/g2SanDianTu/SanDianTu03.vue | 51 - .../Chart/g2SanDianTu/SanDianTu04.vue | 337 - .../Chart/g2TiaoXingTu/TiaoXingTu01.vue | 30 - .../Chart/g2TiaoXingTu/TiaoXingTu02.vue | 126 - .../Chart/g2TiaoXingTu/TiaoXingTu03.vue | 89 - .../Chart/g2TiaoXingTu/TiaoXingTu04.vue | 34 - .../Chart/g2ZheXianTu/ZheXianTu01.vue | 27 - .../Chart/g2ZheXianTu/ZheXianTu02.vue | 32 - .../Chart/g2ZheXianTu/ZheXianTu03.vue | 32 - .../Chart/g2ZheXianTu/ZheXianTu04.vue | 48 - .../Chart/g2ZhuZhuangTu/ZhuZhuangTu01.vue | 76 - .../Chart/g2ZhuZhuangTu/ZhuZhuangTu02.vue | 37 - .../Chart/g2ZhuZhuangTu/ZhuZhuangTu03.vue | 120 - .../Chart/g2ZhuZhuangTu/ZhuZhuangTu04.vue | 138 - .../components/Chart/g2ZiDanTu/ZiDanTu01.vue | 73 - .../components/Chart/g2ZiDanTu/ZiDanTu02.vue | 96 - src/src/components/ColorPicker/index.vue | 107 - src/src/components/Cron/data.js | 103 - src/src/components/Cron/index.vue | 756 - src/src/components/CropUpload/index.vue | 186 - src/src/components/DragModal/index.vue | 318 - src/src/components/DragModal/props.js | 30 - src/src/components/DynamicForm/index.vue | 54 - .../components/DynamicSearchForm/index.vue | 56 - src/src/components/DynamicTable/index.vue | 145 - src/src/components/DynamicTree/index.vue | 210 - src/src/components/Editor/README.md | 15 - src/src/components/Editor/index.vue | 104 - src/src/components/Ellipsis/index.md | 33 - src/src/components/Ellipsis/index.vue | 48 - src/src/components/Ellipsis/util.js | 44 - src/src/components/FounderForm/index.vue | 7 - .../HomeCard/BizMiniMessageCard/index.vue | 131 - .../HomeCard/BizNoticeCard/detail.vue | 85 - .../HomeCard/BizNoticeCard/index.vue | 79 - .../HomeCard/BizScheduleCard/index.vue | 132 - .../HomeCard/BizShortcutCard/index.vue | 53 - .../HomeCard/BizSlideshowCard/index.vue | 108 - .../HomeCard/SysBizDataCard/index.vue | 60 - .../HomeCard/SysOpDataCard/index.vue | 78 - .../HomeCard/SysOpLogCard/index.vue | 58 - .../HomeCard/SysToolDataCard/index.vue | 60 - .../HomeCard/SysUserInfoCard/index.vue | 75 - .../HomeCard/SysVisChartDataCard/index.vue | 55 - .../HomeCard/SysVisLogCard/index.vue | 65 - src/src/components/Map/baiduMap/README.md | 187 - src/src/components/Map/baiduMap/index.vue | 344 - src/src/components/Map/gaodeMap/README.md | 205 - src/src/components/Map/gaodeMap/index.vue | 373 - src/src/components/NumberInfo/NumberInfo.vue | 86 - src/src/components/NumberInfo/index.less | 55 - .../OperationalInformation/index.vue | 72 - .../Selector/employeeSelectorPlus.vue | 401 - .../Selector/iconMobileSelector.vue | 145 - src/src/components/Selector/iconSelector.vue | 161 - .../Selector/iconSelector_README.md | 48 - .../components/Selector/lineSelectorPlus.vue | 222 - .../Selector/materielSelectorPlus.vue | 177 - .../components/Selector/orgSelectorPlus.vue | 400 - .../components/Selector/posSelectorPlus.vue | 395 - .../components/Selector/roleSelectorPlus.vue | 448 - .../components/Selector/userSelectorPlus.vue | 407 - src/src/components/ShortcutCard/index.vue | 84 - src/src/components/Table/README.md | 375 - src/src/components/Table/columnSetting.vue | 124 - src/src/components/Table/index.vue | 672 - src/src/components/TagModal/index.vue | 83 - .../components/TreeSelect/menuTreeSelect.vue | 113 - src/src/components/Trend/Trend.vue | 64 - src/src/components/Trend/index.less | 42 - src/src/components/XnBatchButton/index.vue | 79 - src/src/components/XnBatchDelete/index.vue | 53 - src/src/components/XnCardList/README.md | 62 - src/src/components/XnCardList/index.vue | 120 - src/src/components/XnContextMenu/index.vue | 82 - src/src/components/XnDataList/README.md | 67 - src/src/components/XnDataList/index.vue | 188 - src/src/components/XnEditor/index.vue | 125 - src/src/components/XnFilePreview/README.md | 9 - src/src/components/XnFilePreview/index.vue | 128 - src/src/components/XnFormContainer/index.vue | 49 - src/src/components/XnHighlightjs/index.vue | 86 - src/src/components/XnOrgSelector/README.md | 36 - src/src/components/XnOrgSelector/index.vue | 579 - .../README.assets/分页下拉查询展示.gif | Bin 461247 -> 0 bytes src/src/components/XnPageSelect/README.md | 192 - src/src/components/XnPageSelect/index.vue | 172 - .../components/XnPositionSelector/README.md | 36 - .../components/XnPositionSelector/index.vue | 579 - src/src/components/XnRoleSelector/README.md | 36 - src/src/components/XnRoleSelector/index.vue | 607 - src/src/components/XnSignName/README.md | 117 - src/src/components/XnSignName/index.vue | 122 - src/src/components/XnSignName/vueEsign.vue | 297 - src/src/components/XnUpload/README.md | 39 - src/src/components/XnUpload/index.vue | 359 - src/src/components/XnUserSelector/README.md | 36 - src/src/components/XnUserSelector/index.vue | 623 - .../XnUserSelector/userSelectorTest.vue | 62 - src/src/components/global.less | 503 - src/src/components/index.less | 6 - src/src/config/iconSelect.js | 827 - src/src/config/index.js | 101 - src/src/config/route.js | 44 - src/src/config/settingConfig.js | 64 - src/src/config/themeColor.js | 10 - src/src/hook/useFormHandler.js | 160 - src/src/hook/useNavigation.js | 25 - src/src/hook/useTableManagement.js | 103 - src/src/layout/components/NavMenu.vue | 65 - src/src/layout/components/breadcrumb.vue | 53 - src/src/layout/components/iframeView.vue | 67 - src/src/layout/components/message.vue | 192 - src/src/layout/components/moduleMenu.vue | 216 - .../layout/components/panel-search/index.vue | 336 - .../layout/components/panel-search/item.vue | 100 - src/src/layout/components/setting.vue | 489 - src/src/layout/components/sideM.vue | 143 - src/src/layout/components/tags.vue | 473 - src/src/layout/components/topbar.vue | 36 - src/src/layout/components/userbar.vue | 192 - src/src/layout/enum/layoutEnum.js | 15 - src/src/layout/enum/themeEnum.js | 15 - src/src/layout/index.vue | 650 - src/src/layout/menu/classicalMenu.vue | 154 - src/src/layout/menu/doubleRowMenu.vue | 185 - src/src/layout/menu/topMenu.vue | 138 - src/src/layout/other/403.vue | 3 - src/src/layout/other/404.vue | 20 - src/src/layout/other/empty.vue | 3 - src/src/locales/index.js | 38 - src/src/locales/lang/en.js | 72 - src/src/locales/lang/zh-cn.js | 74 - src/src/main.js | 20 - src/src/router/index.js | 172 - src/src/router/scrollBehavior.js | 38 - src/src/router/systemRouter.js | 52 - src/src/router/whiteList.js | 36 - src/src/snowy.js | 40 - src/src/store/global.js | 174 - src/src/store/iframe.js | 58 - src/src/store/index.js | 5 - src/src/store/keepAlive.js | 55 - src/src/store/menu.js | 142 - src/src/store/search.js | 63 - src/src/store/sysBaseConfig.js | 40 - src/src/store/user.js | 32 - src/src/store/viewTags.js | 89 - src/src/style/default.less | 399 - src/src/style/index.less | 519 - src/src/style/readme.md | 7 - src/src/style/realdark.less | 417 - src/src/tailwind.css | 91 - src/src/utils/cityOptions.js | 16309 ---------------- src/src/utils/color.js | 64 - src/src/utils/device.js | 43 - src/src/utils/downloadUtil.js | 37 - src/src/utils/enum.js | 15 - src/src/utils/errorHandler.js | 30 - src/src/utils/formRules.js | 51 - src/src/utils/loading.js | 38 - src/src/utils/objects.js | 39 - src/src/utils/permission/index.js | 40 - src/src/utils/request.js | 185 - src/src/utils/routerUtil.js | 43 - src/src/utils/smCrypto.js | 36 - src/src/utils/template.js | 326 - src/src/utils/themeUtil.js | 81 - src/src/utils/tool.js | 169 - src/src/utils/useTabs.js | 75 - src/src/utils/watermark.js | 91 - src/src/views/auth/findPwd/emailFindForm.vue | 193 - src/src/views/auth/findPwd/index.vue | 261 - src/src/views/auth/findPwd/phoneFindForm.vue | 194 - src/src/views/auth/login/callback.vue | 105 - src/src/views/auth/login/login.less | 200 - src/src/views/auth/login/login.vue | 267 - src/src/views/auth/login/phoneLoginForm.vue | 167 - src/src/views/auth/login/threeLogin.vue | 24 - src/src/views/auth/login/util.js | 49 - src/src/views/auth/monitor/analyse.vue | 92 - src/src/views/auth/monitor/bTab.vue | 95 - src/src/views/auth/monitor/cTab.vue | 95 - src/src/views/auth/monitor/index.vue | 20 - src/src/views/auth/monitor/tokenInfoList.vue | 183 - src/src/views/auth/third/index.vue | 102 - src/src/views/biz/dict/form.vue | 111 - src/src/views/biz/dict/index.vue | 193 - .../views/biz/extendedField/detail/form.vue | 174 - src/src/views/biz/extendedField/index.vue | 167 - src/src/views/biz/index/index.vue | 41 - src/src/views/biz/notice/detail.vue | 85 - src/src/views/biz/notice/form.vue | 148 - src/src/views/biz/notice/index.vue | 250 - src/src/views/biz/org/form.vue | 151 - src/src/views/biz/org/index.vue | 219 - src/src/views/biz/position/form.vue | 118 - src/src/views/biz/position/index.vue | 216 - src/src/views/biz/searchTags/form.vue | 80 - src/src/views/biz/searchTags/index.vue | 127 - src/src/views/biz/user/form.vue | 568 - src/src/views/biz/user/index.vue | 425 - .../config/emailConfig/aliyunEmailForm.vue | 90 - .../views/dev/config/emailConfig/index.vue | 20 - .../dev/config/emailConfig/localEmailForm.vue | 86 - .../config/emailConfig/tencentEmailForm.vue | 90 - .../dev/config/fileConfig/aliyunFileForm.vue | 94 - src/src/views/dev/config/fileConfig/index.vue | 24 - .../dev/config/fileConfig/localFileForm.vue | 86 - .../dev/config/fileConfig/minioFileForm.vue | 94 - .../dev/config/fileConfig/tencentFileForm.vue | 94 - src/src/views/dev/config/index.vue | 74 - src/src/views/dev/config/otherConfig/form.vue | 90 - .../views/dev/config/otherConfig/index.vue | 94 - .../dev/config/smsConfig/aliyunSmsForm.vue | 94 - src/src/views/dev/config/smsConfig/index.vue | 20 - .../dev/config/smsConfig/tencentSmsForm.vue | 98 - .../dev/config/smsConfig/xiaonuoSmsForm.vue | 108 - src/src/views/dev/config/sysConfig.vue | 229 - .../dev/config/thirdConfig/giteeThirdForm.vue | 90 - .../views/dev/config/thirdConfig/index.vue | 16 - .../config/thirdConfig/wechatThirdForm.vue | 90 - src/src/views/dev/dict/category/bizIndex.vue | 200 - src/src/views/dev/dict/category/form.vue | 127 - src/src/views/dev/dict/category/frmIndex.vue | 184 - src/src/views/dev/dict/index.vue | 32 - src/src/views/dev/email/detail.vue | 69 - src/src/views/dev/email/form.vue | 72 - src/src/views/dev/email/index.vue | 182 - .../views/dev/email/send/aliyunEmailSend.vue | 125 - .../views/dev/email/send/localEmailSend.vue | 99 - .../views/dev/email/send/tencentEmailSend.vue | 125 - src/src/views/dev/file/detail.vue | 55 - src/src/views/dev/file/index.vue | 259 - src/src/views/dev/file/preview.vue | 16 - src/src/views/dev/file/uploadForm.vue | 137 - src/src/views/dev/job/form.vue | 117 - src/src/views/dev/job/index.vue | 216 - src/src/views/dev/log/oplog/columnChart.vue | 44 - src/src/views/dev/log/oplog/detail.vue | 69 - src/src/views/dev/log/oplog/index.vue | 155 - src/src/views/dev/log/oplog/pieChart.vue | 38 - src/src/views/dev/log/vislog/detail.vue | 40 - src/src/views/dev/log/vislog/index.vue | 141 - src/src/views/dev/log/vislog/lineChart.vue | 53 - src/src/views/dev/log/vislog/pieChart.vue | 38 - src/src/views/dev/message/detail.vue | 85 - src/src/views/dev/message/form.vue | 101 - src/src/views/dev/message/index.vue | 143 - src/src/views/dev/monitor/index.vue | 217 - src/src/views/dev/slideshow/form.vue | 111 - src/src/views/dev/slideshow/index.vue | 233 - src/src/views/dev/slideshow/subForm.vue | 162 - src/src/views/dev/sms/detail.vue | 58 - src/src/views/dev/sms/form.vue | 72 - src/src/views/dev/sms/index.vue | 174 - src/src/views/dev/sms/send/aliyunSmsSend.vue | 71 - src/src/views/dev/sms/send/tencentSmsSend.vue | 75 - src/src/views/dev/sms/send/xiaonuoSmsSend.vue | 59 - src/src/views/exm/chart/eCBingZhuangTu.vue | 31 - src/src/views/exm/chart/eCHengTiaoTu.vue | 11 - src/src/views/exm/chart/eCKXianTu.vue | 20 - src/src/views/exm/chart/eCLouDouTu.vue | 31 - src/src/views/exm/chart/eCSanDianTu.vue | 31 - src/src/views/exm/chart/eCShuXingTu.vue | 9 - src/src/views/exm/chart/eCXianXingTu.vue | 31 - src/src/views/exm/chart/eCYiBiaoTu.vue | 31 - src/src/views/exm/chart/eCZheZhuTu.vue | 11 - src/src/views/exm/chart/eCZhuZhuangTu.vue | 31 - src/src/views/exm/chart/g2BingZhuangTu.vue | 26 - src/src/views/exm/chart/g2CiYunTu.vue | 16 - src/src/views/exm/chart/g2JinDuTu.vue | 26 - src/src/views/exm/chart/g2LouDouTu.vue | 16 - src/src/views/exm/chart/g2MianJiTu.vue | 26 - src/src/views/exm/chart/g2SanDianTu.vue | 26 - src/src/views/exm/chart/g2TiaoXingTu.vue | 26 - src/src/views/exm/chart/g2ZheXianTu.vue | 26 - src/src/views/exm/chart/g2ZhuZhuangTu.vue | 26 - src/src/views/exm/chart/g2ZiDanTu.vue | 16 - src/src/views/exm/editor/index.vue | 10 - src/src/views/exm/iconSelect/index.vue | 113 - src/src/views/exm/map/baiduMap.vue | 124 - src/src/views/exm/map/gaodeMap.vue | 138 - src/src/views/exm/nestRoutor/index.vue | 22 - src/src/views/gen/basic.vue | 466 - src/src/views/gen/config.vue | 455 - src/src/views/gen/index.vue | 197 - src/src/views/gen/preview.vue | 103 - src/src/views/gen/steps.vue | 163 - src/src/views/index/index.vue | 39 - src/src/views/mobile/resource/button/form.vue | 77 - .../views/mobile/resource/button/index.vue | 106 - .../mobile/resource/menu/changeModuleForm.vue | 78 - src/src/views/mobile/resource/menu/form.vue | 248 - src/src/views/mobile/resource/menu/index.vue | 212 - src/src/views/mobile/resource/module/form.vue | 93 - .../views/mobile/resource/module/index.vue | 137 - src/src/views/other/index.vue | 9 - .../basicData/brand/columns/brandColumns.js | 18 - .../basicData/brand/detail/index.vue | 110 - .../brand/formFields/detailFields.js | 88 - .../brand/formFields/searchFields.js | 12 - .../basicData/brand/index.vue | 123 - .../client/detail/CustomerCategoryForm.vue | 76 - .../basicData/client/detail/index.vue | 334 - .../client/formFields/detailFields.js | 215 - .../basicData/client/formFields/drawerForm.js | 44 - .../client/formFields/searchFields.js | 12 - .../basicData/client/index.vue | 201 - .../basicData/employee/detail/index.vue | 5 - .../basicData/employee/index.vue | 187 - .../materiel/column/materiel-column.js | 92 - .../basicData/materiel/detail/index.vue | 488 - .../materiel/detail/materialCategoryForm.vue | 76 - .../materiel/formFields/detailFields.js | 359 - .../materiel/formFields/drawerForm.js | 45 - .../materiel/formFields/searchFields.js | 12 - .../basicData/materiel/index.vue | 185 - .../columns/publicAccountColumn.js | 38 - .../basicData/publicAccount/detail/index.vue | 80 - .../publicAccount/formFields/detailFields.js | 102 - .../publicAccount/formFields/searchFields.js | 12 - .../basicData/stash/columns/brandColumns.js | 46 - .../basicData/stash/detail/index.vue | 150 - .../stash/formFields/detailFields.js | 133 - .../stash/formFields/searchFields.js | 12 - .../basicData/stash/index.vue | 162 - .../basicData/tissue/column/tissueColumn.js | 45 - .../basicData/tissue/detail/TissueForm.vue | 208 - .../basicData/tissue/detail/index.vue | 29 - .../tissue/formFields/searchFields.js | 12 - .../basicData/tissue/index.vue | 163 - .../basicData/unit/columns/unitColumns.js | 69 - .../basicData/unit/detail/UnitGroupForm.vue | 68 - .../basicData/unit/detail/index.vue | 86 - .../basicData/unit/formFields/detailFields.js | 91 - .../basicData/unit/formFields/drawerForm.js | 41 - .../basicData/unit/formFields/searchFields.js | 20 - .../basicData/unit/index.vue | 237 - .../employee/personnel/detail/index.vue | 229 - .../detail/personnelCategoryForm.vue | 125 - .../employee/personnel/index.vue | 273 - .../detail/addPersonnelItem.vue | 145 - .../employee/personnelReport/detail/index.vue | 529 - .../personnelReport/detail/personnelForm.vue | 145 - .../employee/personnelReport/index.vue | 219 - .../report/columns/detailColumns.js | 121 - .../report/columns/reportColumns.js | 69 - .../productionCenter/report/detail/index.vue | 105 - .../report/formFields/detailFields.js | 75 - .../report/formFields/searchFields.js | 20 - .../productionCenter/report/index.vue | 125 - .../productionCenter/task/detail/index.vue | 177 - .../productionCenter/task/formItems/index.js | 112 - .../productionCenter/task/index.vue | 278 - src/src/views/sys/org/form.vue | 151 - src/src/views/sys/org/index.vue | 201 - src/src/views/sys/position/form.vue | 113 - src/src/views/sys/position/index.vue | 200 - src/src/views/sys/resource/button/form.vue | 81 - src/src/views/sys/resource/button/index.vue | 99 - src/src/views/sys/resource/field/form.vue | 85 - src/src/views/sys/resource/field/index.vue | 99 - .../sys/resource/menu/changeModuleForm.vue | 82 - src/src/views/sys/resource/menu/form.vue | 265 - src/src/views/sys/resource/menu/index.vue | 266 - src/src/views/sys/resource/module/form.vue | 98 - src/src/views/sys/resource/module/index.vue | 134 - src/src/views/sys/role/form.vue | 123 - .../sys/role/grantMobileResourceForm.vue | 305 - .../views/sys/role/grantPermissionForm.vue | 414 - src/src/views/sys/role/grantResourceForm.vue | 310 - src/src/views/sys/role/index.vue | 302 - src/src/views/sys/role/scopeDefineOrg.vue | 112 - src/src/views/sys/user/form.vue | 567 - .../views/sys/user/grantPermissionForm.vue | 415 - src/src/views/sys/user/grantResourceForm.vue | 312 - src/src/views/sys/user/impExp.vue | 131 - src/src/views/sys/user/index.vue | 422 - src/src/views/sys/user/scopeDefineOrg.vue | 112 - src/src/views/sys/user/userCenter.vue | 267 - .../views/sys/user/userTab/accountBasic.vue | 84 - .../views/sys/user/userTab/accountBind.vue | 64 - .../user/userTab/bindForm/updatePassword.vue | 81 - .../sys/user/userTab/organizationChart.vue | 43 - .../sys/user/userTab/shortcutSetting.vue | 64 - .../views/sys/user/userTab/userMessage.vue | 89 - .../sys/user/userTab/userMessage/detail.vue | 87 - src/store/sysBaseConfig.js | 12 +- .../basicData/materiel/detail/index.vue | 6 +- .../materiel/formFields/detailFields.js | 20 +- .../basicData/tissue/index.vue | 20 +- .../materialPrint/detail/index.vue | 29 + .../labelPrinting/materialPrint/index.vue | 29 + .../singlePrint/detail/index.vue | 29 + .../labelPrinting/singlePrint/index.vue | 29 + .../template/columns/templateColumns.js} | 49 +- .../labelPrinting/template/detail/index.vue | 454 + .../labelPrinting/template}/index.vue | 29 +- .../report/columns/detailColumns.js | 25 +- .../productionCenter/task/detail/index.vue | 22 +- .../productionCenter/task/formItems/index.js | 3 +- .../productionCenter/task/index.vue | 10 +- 752 files changed, 1057 insertions(+), 80061 deletions(-) create mode 100644 public/print-lock.css create mode 100644 src/api/print/printApi.js delete mode 100644 src/src/App.vue delete mode 100644 src/src/api/auth/loginApi.js delete mode 100644 src/src/api/auth/monitorApi.js delete mode 100644 src/src/api/auth/oauthApi.js delete mode 100644 src/src/api/auth/thirdApi.js delete mode 100644 src/src/api/base/brand/sysBrandApi.js delete mode 100644 src/src/api/base/customer/customerApi.js delete mode 100644 src/src/api/base/customer/customerCategoryApi.js delete mode 100644 src/src/api/base/employee/employeeApi.js delete mode 100644 src/src/api/base/employee/employeeCategoryApi.js delete mode 100644 src/src/api/base/extendfield/extendFieldApi.js delete mode 100644 src/src/api/base/manual-task/manualTaskApi.js delete mode 100644 src/src/api/base/manual-task/manualTaskDetailApi.js delete mode 100644 src/src/api/base/manual-task/manualTaskTagApi.js delete mode 100644 src/src/api/base/material/materialApi.js delete mode 100644 src/src/api/base/material/materialCategoryApi.js delete mode 100644 src/src/api/base/production-organization/productionOrganizationApi.js delete mode 100644 src/src/api/base/store/sysStoreApi.js delete mode 100644 src/src/api/base/unit/unitApi.js delete mode 100644 src/src/api/base/unit/unitGroupsApi.js delete mode 100644 src/src/api/base/wx/officialAccountApi.js delete mode 100644 src/src/api/biz/bizDictApi.js delete mode 100644 src/src/api/biz/bizIndexApi.js delete mode 100644 src/src/api/biz/bizNoticeApi.js delete mode 100644 src/src/api/biz/bizOrgApi.js delete mode 100644 src/src/api/biz/bizPositionApi.js delete mode 100644 src/src/api/biz/bizUserApi.js delete mode 100644 src/src/api/biz/produceTagApi.js delete mode 100644 src/src/api/dev/configApi.js delete mode 100644 src/src/api/dev/dictApi.js delete mode 100644 src/src/api/dev/emailApi.js delete mode 100644 src/src/api/dev/fileApi.js delete mode 100644 src/src/api/dev/jobApi.js delete mode 100644 src/src/api/dev/logApi.js delete mode 100644 src/src/api/dev/messageApi.js delete mode 100644 src/src/api/dev/monitorApi.js delete mode 100644 src/src/api/dev/slideshowApi.js delete mode 100644 src/src/api/dev/smsApi.js delete mode 100644 src/src/api/gen/genBasicApi.js delete mode 100644 src/src/api/gen/genConfigApi.js delete mode 100644 src/src/api/mobile/resource/buttonApi.js delete mode 100644 src/src/api/mobile/resource/menuApi.js delete mode 100644 src/src/api/mobile/resource/moduleApi.js delete mode 100644 src/src/api/production/produce/produceTagApi.js delete mode 100644 src/src/api/production/produceReport/produceReportApi.js delete mode 100644 src/src/api/production/produceTask/producePackageBarcodeApi.js delete mode 100644 src/src/api/production/produceTask/produceReportApi.js delete mode 100644 src/src/api/production/produceTask/produceTaskApi.js delete mode 100644 src/src/api/sys/indexApi.js delete mode 100644 src/src/api/sys/orgApi.js delete mode 100644 src/src/api/sys/positionApi.js delete mode 100644 src/src/api/sys/resource/buttonApi.js delete mode 100644 src/src/api/sys/resource/fieldApi.js delete mode 100644 src/src/api/sys/resource/menuApi.js delete mode 100644 src/src/api/sys/resource/moduleApi.js delete mode 100644 src/src/api/sys/roleApi.js delete mode 100644 src/src/api/sys/userApi.js delete mode 100644 src/src/api/sys/userCenterApi.js delete mode 100644 src/src/assets/icons/GiteeIcon.vue delete mode 100644 src/src/assets/icons/index.js delete mode 100644 src/src/assets/icons/mobile/filled/iconfont.css delete mode 100644 src/src/assets/icons/mobile/filled/iconfont.json delete mode 100644 src/src/assets/icons/mobile/filled/iconfont.ttf delete mode 100644 src/src/assets/icons/mobile/index.js delete mode 100644 src/src/assets/icons/mobile/line/iconfont.css delete mode 100644 src/src/assets/icons/mobile/line/iconfont.json delete mode 100644 src/src/assets/icons/mobile/line/iconfont.ttf delete mode 100644 src/src/assets/icons/uiw/UiwAdobe.vue delete mode 100644 src/src/assets/icons/uiw/UiwAlipay.vue delete mode 100644 src/src/assets/icons/uiw/UiwAliwangwang.vue delete mode 100644 src/src/assets/icons/uiw/UiwAndroid.vue delete mode 100644 src/src/assets/icons/uiw/UiwAndroidO.vue delete mode 100644 src/src/assets/icons/uiw/UiwApple.vue delete mode 100644 src/src/assets/icons/uiw/UiwAppstore.vue delete mode 100644 src/src/assets/icons/uiw/UiwAppstoreO.vue delete mode 100644 src/src/assets/icons/uiw/UiwAreaChart.vue delete mode 100644 src/src/assets/icons/uiw/UiwArrowDown.vue delete mode 100644 src/src/assets/icons/uiw/UiwArrowLeft.vue delete mode 100644 src/src/assets/icons/uiw/UiwArrowRight.vue delete mode 100644 src/src/assets/icons/uiw/UiwArrowUp.vue delete mode 100644 src/src/assets/icons/uiw/UiwArrowsAlt.vue delete mode 100644 src/src/assets/icons/uiw/UiwAsterisk.vue delete mode 100644 src/src/assets/icons/uiw/UiwBackward.vue delete mode 100644 src/src/assets/icons/uiw/UiwBaidu.vue delete mode 100644 src/src/assets/icons/uiw/UiwBarChart.vue delete mode 100644 src/src/assets/icons/uiw/UiwBarcode.vue delete mode 100644 src/src/assets/icons/uiw/UiwBell.vue delete mode 100644 src/src/assets/icons/uiw/UiwCameraO.vue delete mode 100644 src/src/assets/icons/uiw/UiwCaretDown.vue delete mode 100644 src/src/assets/icons/uiw/UiwCaretLeft.vue delete mode 100644 src/src/assets/icons/uiw/UiwCaretRight.vue delete mode 100644 src/src/assets/icons/uiw/UiwCaretUp.vue delete mode 100644 src/src/assets/icons/uiw/UiwCheck.vue delete mode 100644 src/src/assets/icons/uiw/UiwCheckSquare.vue delete mode 100644 src/src/assets/icons/uiw/UiwCheckSquareO.vue delete mode 100644 src/src/assets/icons/uiw/UiwChrome.vue delete mode 100644 src/src/assets/icons/uiw/UiwCircleCheck.vue delete mode 100644 src/src/assets/icons/uiw/UiwCircleCheckO.vue delete mode 100644 src/src/assets/icons/uiw/UiwCircleClose.vue delete mode 100644 src/src/assets/icons/uiw/UiwCircleCloseO.vue delete mode 100644 src/src/assets/icons/uiw/UiwCircleO.vue delete mode 100644 src/src/assets/icons/uiw/UiwClose.vue delete mode 100644 src/src/assets/icons/uiw/UiwCloseSquare.vue delete mode 100644 src/src/assets/icons/uiw/UiwCloseSquareO.vue delete mode 100644 src/src/assets/icons/uiw/UiwCloudDownload.vue delete mode 100644 src/src/assets/icons/uiw/UiwCloudDownloadO.vue delete mode 100644 src/src/assets/icons/uiw/UiwCloudUpload.vue delete mode 100644 src/src/assets/icons/uiw/UiwCloudUploadO.vue delete mode 100644 src/src/assets/icons/uiw/UiwCoffee.vue delete mode 100644 src/src/assets/icons/uiw/UiwComponent.vue delete mode 100644 src/src/assets/icons/uiw/UiwCopy.vue delete mode 100644 src/src/assets/icons/uiw/UiwCopyright.vue delete mode 100644 src/src/assets/icons/uiw/UiwCss3.vue delete mode 100644 src/src/assets/icons/uiw/UiwCut.vue delete mode 100644 src/src/assets/icons/uiw/UiwDArrowLeft.vue delete mode 100644 src/src/assets/icons/uiw/UiwDArrowRight.vue delete mode 100644 src/src/assets/icons/uiw/UiwDCaret.vue delete mode 100644 src/src/assets/icons/uiw/UiwDashboard.vue delete mode 100644 src/src/assets/icons/uiw/UiwDate.vue delete mode 100644 src/src/assets/icons/uiw/UiwDelete.vue delete mode 100644 src/src/assets/icons/uiw/UiwDingding.vue delete mode 100644 src/src/assets/icons/uiw/UiwDislikeO.vue delete mode 100644 src/src/assets/icons/uiw/UiwDocument.vue delete mode 100644 src/src/assets/icons/uiw/UiwDotChart.vue delete mode 100644 src/src/assets/icons/uiw/UiwDown.vue delete mode 100644 src/src/assets/icons/uiw/UiwDownCircle.vue delete mode 100644 src/src/assets/icons/uiw/UiwDownCircleO.vue delete mode 100644 src/src/assets/icons/uiw/UiwDownSquare.vue delete mode 100644 src/src/assets/icons/uiw/UiwDownSquareO.vue delete mode 100644 src/src/assets/icons/uiw/UiwDownload.vue delete mode 100644 src/src/assets/icons/uiw/UiwEdit.vue delete mode 100644 src/src/assets/icons/uiw/UiwEnter.vue delete mode 100644 src/src/assets/icons/uiw/UiwEnvironment.vue delete mode 100644 src/src/assets/icons/uiw/UiwEnvironmentO.vue delete mode 100644 src/src/assets/icons/uiw/UiwEye.vue delete mode 100644 src/src/assets/icons/uiw/UiwEyeO.vue delete mode 100644 src/src/assets/icons/uiw/UiwFacebook.vue delete mode 100644 src/src/assets/icons/uiw/UiwFileAdd.vue delete mode 100644 src/src/assets/icons/uiw/UiwFileExcel.vue delete mode 100644 src/src/assets/icons/uiw/UiwFileJpg.vue delete mode 100644 src/src/assets/icons/uiw/UiwFilePdf.vue delete mode 100644 src/src/assets/icons/uiw/UiwFileText.vue delete mode 100644 src/src/assets/icons/uiw/UiwFileUnknown.vue delete mode 100644 src/src/assets/icons/uiw/UiwFilter.vue delete mode 100644 src/src/assets/icons/uiw/UiwFirefox.vue delete mode 100644 src/src/assets/icons/uiw/UiwFolder.vue delete mode 100644 src/src/assets/icons/uiw/UiwFolderAdd.vue delete mode 100644 src/src/assets/icons/uiw/UiwFolderOpen.vue delete mode 100644 src/src/assets/icons/uiw/UiwForward.vue delete mode 100644 src/src/assets/icons/uiw/UiwFoursquare.vue delete mode 100644 src/src/assets/icons/uiw/UiwFrown.vue delete mode 100644 src/src/assets/icons/uiw/UiwFrownO.vue delete mode 100644 src/src/assets/icons/uiw/UiwGithub.vue delete mode 100644 src/src/assets/icons/uiw/UiwGithubO.vue delete mode 100644 src/src/assets/icons/uiw/UiwGlobal.vue delete mode 100644 src/src/assets/icons/uiw/UiwHeartOff.vue delete mode 100644 src/src/assets/icons/uiw/UiwHeartOn.vue delete mode 100644 src/src/assets/icons/uiw/UiwHome.vue delete mode 100644 src/src/assets/icons/uiw/UiwHtml5.vue delete mode 100644 src/src/assets/icons/uiw/UiwIe.vue delete mode 100644 src/src/assets/icons/uiw/UiwInbox.vue delete mode 100644 src/src/assets/icons/uiw/UiwInformation.vue delete mode 100644 src/src/assets/icons/uiw/UiwInformationO.vue delete mode 100644 src/src/assets/icons/uiw/UiwLaptop.vue delete mode 100644 src/src/assets/icons/uiw/UiwLeft.vue delete mode 100644 src/src/assets/icons/uiw/UiwLeftCircle.vue delete mode 100644 src/src/assets/icons/uiw/UiwLeftCircleO.vue delete mode 100644 src/src/assets/icons/uiw/UiwLeftSquare.vue delete mode 100644 src/src/assets/icons/uiw/UiwLeftSquareO.vue delete mode 100644 src/src/assets/icons/uiw/UiwLikeO.vue delete mode 100644 src/src/assets/icons/uiw/UiwLink.vue delete mode 100644 src/src/assets/icons/uiw/UiwLinkedin.vue delete mode 100644 src/src/assets/icons/uiw/UiwLinux.vue delete mode 100644 src/src/assets/icons/uiw/UiwLoading.vue delete mode 100644 src/src/assets/icons/uiw/UiwLock.vue delete mode 100644 src/src/assets/icons/uiw/UiwLogin.vue delete mode 100644 src/src/assets/icons/uiw/UiwLogout.vue delete mode 100644 src/src/assets/icons/uiw/UiwMail.vue delete mode 100644 src/src/assets/icons/uiw/UiwMailO.vue delete mode 100644 src/src/assets/icons/uiw/UiwMan.vue delete mode 100644 src/src/assets/icons/uiw/UiwMap.vue delete mode 100644 src/src/assets/icons/uiw/UiwMeh.vue delete mode 100644 src/src/assets/icons/uiw/UiwMehO.vue delete mode 100644 src/src/assets/icons/uiw/UiwMenu.vue delete mode 100644 src/src/assets/icons/uiw/UiwMenuFold.vue delete mode 100644 src/src/assets/icons/uiw/UiwMenuUnfold.vue delete mode 100644 src/src/assets/icons/uiw/UiwMessage.vue delete mode 100644 src/src/assets/icons/uiw/UiwMinus.vue delete mode 100644 src/src/assets/icons/uiw/UiwMinusCircle.vue delete mode 100644 src/src/assets/icons/uiw/UiwMinusCircleO.vue delete mode 100644 src/src/assets/icons/uiw/UiwMinusSquare.vue delete mode 100644 src/src/assets/icons/uiw/UiwMinusSquareO.vue delete mode 100644 src/src/assets/icons/uiw/UiwMobile.vue delete mode 100644 src/src/assets/icons/uiw/UiwMore.vue delete mode 100644 src/src/assets/icons/uiw/UiwNotification.vue delete mode 100644 src/src/assets/icons/uiw/UiwOpera.vue delete mode 100644 src/src/assets/icons/uiw/UiwPaperClip.vue delete mode 100644 src/src/assets/icons/uiw/UiwPause.vue delete mode 100644 src/src/assets/icons/uiw/UiwPauseCircle.vue delete mode 100644 src/src/assets/icons/uiw/UiwPauseCircleO.vue delete mode 100644 src/src/assets/icons/uiw/UiwPay.vue delete mode 100644 src/src/assets/icons/uiw/UiwPayCircleO.vue delete mode 100644 src/src/assets/icons/uiw/UiwPicasa.vue delete mode 100644 src/src/assets/icons/uiw/UiwPicture.vue delete mode 100644 src/src/assets/icons/uiw/UiwPieChart.vue delete mode 100644 src/src/assets/icons/uiw/UiwPinterest.vue delete mode 100644 src/src/assets/icons/uiw/UiwPlayCircle.vue delete mode 100644 src/src/assets/icons/uiw/UiwPlayCircleO.vue delete mode 100644 src/src/assets/icons/uiw/UiwPlus.vue delete mode 100644 src/src/assets/icons/uiw/UiwPlusCircle.vue delete mode 100644 src/src/assets/icons/uiw/UiwPlusCircleO.vue delete mode 100644 src/src/assets/icons/uiw/UiwPlusSquare.vue delete mode 100644 src/src/assets/icons/uiw/UiwPlusSquareO.vue delete mode 100644 src/src/assets/icons/uiw/UiwPoweroff.vue delete mode 100644 src/src/assets/icons/uiw/UiwPrinter.vue delete mode 100644 src/src/assets/icons/uiw/UiwQq.vue delete mode 100644 src/src/assets/icons/uiw/UiwQrcode.vue delete mode 100644 src/src/assets/icons/uiw/UiwQuestionCircle.vue delete mode 100644 src/src/assets/icons/uiw/UiwQuestionCircleO.vue delete mode 100644 src/src/assets/icons/uiw/UiwReddit.vue delete mode 100644 src/src/assets/icons/uiw/UiwReload.vue delete mode 100644 src/src/assets/icons/uiw/UiwRight.vue delete mode 100644 src/src/assets/icons/uiw/UiwRightCircle.vue delete mode 100644 src/src/assets/icons/uiw/UiwRightCircleO.vue delete mode 100644 src/src/assets/icons/uiw/UiwRightSquare.vue delete mode 100644 src/src/assets/icons/uiw/UiwRightSquareO.vue delete mode 100644 src/src/assets/icons/uiw/UiwRollback.vue delete mode 100644 src/src/assets/icons/uiw/UiwSafari.vue delete mode 100644 src/src/assets/icons/uiw/UiwSafety.vue delete mode 100644 src/src/assets/icons/uiw/UiwSave.vue delete mode 100644 src/src/assets/icons/uiw/UiwSearch.vue delete mode 100644 src/src/assets/icons/uiw/UiwSetting.vue delete mode 100644 src/src/assets/icons/uiw/UiwSettingO.vue delete mode 100644 src/src/assets/icons/uiw/UiwShare.vue delete mode 100644 src/src/assets/icons/uiw/UiwShoppingCart.vue delete mode 100644 src/src/assets/icons/uiw/UiwShrink.vue delete mode 100644 src/src/assets/icons/uiw/UiwSmile.vue delete mode 100644 src/src/assets/icons/uiw/UiwSmileO.vue delete mode 100644 src/src/assets/icons/uiw/UiwSquareO.vue delete mode 100644 src/src/assets/icons/uiw/UiwStarOff.vue delete mode 100644 src/src/assets/icons/uiw/UiwStarOn.vue delete mode 100644 src/src/assets/icons/uiw/UiwStop.vue delete mode 100644 src/src/assets/icons/uiw/UiwStopO.vue delete mode 100644 src/src/assets/icons/uiw/UiwSwap.vue delete mode 100644 src/src/assets/icons/uiw/UiwSwapLeft.vue delete mode 100644 src/src/assets/icons/uiw/UiwSwapRight.vue delete mode 100644 src/src/assets/icons/uiw/UiwTable.vue delete mode 100644 src/src/assets/icons/uiw/UiwTag.vue delete mode 100644 src/src/assets/icons/uiw/UiwTagO.vue delete mode 100644 src/src/assets/icons/uiw/UiwTags.vue delete mode 100644 src/src/assets/icons/uiw/UiwTagsO.vue delete mode 100644 src/src/assets/icons/uiw/UiwTaobao.vue delete mode 100644 src/src/assets/icons/uiw/UiwTime.vue delete mode 100644 src/src/assets/icons/uiw/UiwTimeO.vue delete mode 100644 src/src/assets/icons/uiw/UiwTwitter.vue delete mode 100644 src/src/assets/icons/uiw/UiwUiw.vue delete mode 100644 src/src/assets/icons/uiw/UiwUnlock.vue delete mode 100644 src/src/assets/icons/uiw/UiwUp.vue delete mode 100644 src/src/assets/icons/uiw/UiwUpCircle.vue delete mode 100644 src/src/assets/icons/uiw/UiwUpCircleO.vue delete mode 100644 src/src/assets/icons/uiw/UiwUpSquare.vue delete mode 100644 src/src/assets/icons/uiw/UiwUpSquareO.vue delete mode 100644 src/src/assets/icons/uiw/UiwUpload.vue delete mode 100644 src/src/assets/icons/uiw/UiwUser.vue delete mode 100644 src/src/assets/icons/uiw/UiwUserAdd.vue delete mode 100644 src/src/assets/icons/uiw/UiwUserDelete.vue delete mode 100644 src/src/assets/icons/uiw/UiwUsergroupAdd.vue delete mode 100644 src/src/assets/icons/uiw/UiwUsergroupDelete.vue delete mode 100644 src/src/assets/icons/uiw/UiwVerification.vue delete mode 100644 src/src/assets/icons/uiw/UiwVerticleLeft.vue delete mode 100644 src/src/assets/icons/uiw/UiwVerticleRight.vue delete mode 100644 src/src/assets/icons/uiw/UiwVideoCamera.vue delete mode 100644 src/src/assets/icons/uiw/UiwWarning.vue delete mode 100644 src/src/assets/icons/uiw/UiwWarningO.vue delete mode 100644 src/src/assets/icons/uiw/UiwWeibo.vue delete mode 100644 src/src/assets/icons/uiw/UiwWeixin.vue delete mode 100644 src/src/assets/icons/uiw/UiwWifi.vue delete mode 100644 src/src/assets/icons/uiw/UiwWindows.vue delete mode 100644 src/src/assets/icons/uiw/UiwWoman.vue delete mode 100644 src/src/assets/icons/uiw/UiwZoomIn.vue delete mode 100644 src/src/assets/icons/uiw/UiwZoomOut.vue delete mode 100644 src/src/assets/images/fileImg/README.md delete mode 100644 src/src/assets/images/fileImg/docx.png delete mode 100644 src/src/assets/images/fileImg/file.png delete mode 100644 src/src/assets/images/fileImg/gif.png delete mode 100644 src/src/assets/images/fileImg/html.png delete mode 100644 src/src/assets/images/fileImg/img.png delete mode 100644 src/src/assets/images/fileImg/pdf.png delete mode 100644 src/src/assets/images/fileImg/png.png delete mode 100644 src/src/assets/images/fileImg/ppt.png delete mode 100644 src/src/assets/images/fileImg/rar.png delete mode 100644 src/src/assets/images/fileImg/txt.png delete mode 100644 src/src/assets/images/fileImg/xlsx.png delete mode 100644 src/src/assets/images/fileImg/zip.png delete mode 100644 src/src/assets/images/login_home.jpg delete mode 100644 src/src/components/AdvancedSearchForm/index.vue delete mode 100644 src/src/components/CardTitle/index.vue delete mode 100644 src/src/components/Chart/eCBingZhuangTu/CustomizedPie.vue delete mode 100644 src/src/components/Chart/eCBingZhuangTu/DoughnutChartWithRoundedCorner.vue delete mode 100644 src/src/components/Chart/eCBingZhuangTu/NightingaleChart.vue delete mode 100644 src/src/components/Chart/eCBingZhuangTu/RefererOfAWebsite.vue delete mode 100644 src/src/components/Chart/eCKXianTu/BasicCandlestick.vue delete mode 100644 src/src/components/Chart/eCKXianTu/LargeScaleCandlestick.vue delete mode 100644 src/src/components/Chart/eCKXianTu/ShangHaiIndex.vue delete mode 100644 src/src/components/Chart/eCLouDouTu/CustomizedFunnel.vue delete mode 100644 src/src/components/Chart/eCLouDouTu/FunnelChart.vue delete mode 100644 src/src/components/Chart/eCLouDouTu/FunnelCompare.vue delete mode 100644 src/src/components/Chart/eCLouDouTu/MultipleFunnels.vue delete mode 100644 src/src/components/Chart/eCSanDianTu/BasicScatterChart.vue delete mode 100644 src/src/components/Chart/eCSanDianTu/ClusteringProcess.vue delete mode 100644 src/src/components/Chart/eCSanDianTu/EffectScatterChart.vue delete mode 100644 src/src/components/Chart/eCSanDianTu/ScatterAqiColor.vue delete mode 100644 src/src/components/Chart/eCShuXingTu/TreeWithPolylineEdge.vue delete mode 100644 src/src/components/Chart/eCXianXingTu/BasicLineChart.vue delete mode 100644 src/src/components/Chart/eCXianXingTu/StackedAreaChart.vue delete mode 100644 src/src/components/Chart/eCXianXingTu/StackedLineChart.vue delete mode 100644 src/src/components/Chart/eCXianXingTu/StepLine.vue delete mode 100644 src/src/components/Chart/eCYiBiaoTu/GaugeBasicChart.vue delete mode 100644 src/src/components/Chart/eCYiBiaoTu/GrogressGauge.vue delete mode 100644 src/src/components/Chart/eCYiBiaoTu/StageSpeedGauge.vue delete mode 100644 src/src/components/Chart/eCYiBiaoTu/TemperatureGaugeChart.vue delete mode 100644 src/src/components/Chart/eCZhuZhuangTu/BarChartWithNegativeValue.vue delete mode 100644 src/src/components/Chart/eCZhuZhuangTu/BarLabelRotation.vue delete mode 100644 src/src/components/Chart/eCZhuZhuangTu/BasicBar.vue delete mode 100644 src/src/components/Chart/eCZhuZhuangTu/WatermarkEChartsDownload.vue delete mode 100644 src/src/components/Chart/g2BingZhuangTu/BingZhuangTu01.vue delete mode 100644 src/src/components/Chart/g2BingZhuangTu/BingZhuangTu02.vue delete mode 100644 src/src/components/Chart/g2BingZhuangTu/BingZhuangTu03.vue delete mode 100644 src/src/components/Chart/g2BingZhuangTu/BingZhuangTu04.vue delete mode 100644 src/src/components/Chart/g2CiYunTu/CiYunTu01.vue delete mode 100644 src/src/components/Chart/g2CiYunTu/CiYunTu02.vue delete mode 100644 src/src/components/Chart/g2JinDuTu/JinDuTu01.vue delete mode 100644 src/src/components/Chart/g2JinDuTu/JinDuTu02.vue delete mode 100644 src/src/components/Chart/g2JinDuTu/JinDuTu03.vue delete mode 100644 src/src/components/Chart/g2JinDuTu/JinDuTu04.vue delete mode 100644 src/src/components/Chart/g2LouDouTu/LouDouTu01.vue delete mode 100644 src/src/components/Chart/g2LouDouTu/LouDouTu02.vue delete mode 100644 src/src/components/Chart/g2MianJiTu/MianJiTu01.vue delete mode 100644 src/src/components/Chart/g2MianJiTu/MianJiTu02.vue delete mode 100644 src/src/components/Chart/g2MianJiTu/MianJiTu03.vue delete mode 100644 src/src/components/Chart/g2MianJiTu/MianJiTu04.vue delete mode 100644 src/src/components/Chart/g2SanDianTu/SanDianTu01.vue delete mode 100644 src/src/components/Chart/g2SanDianTu/SanDianTu02.vue delete mode 100644 src/src/components/Chart/g2SanDianTu/SanDianTu03.vue delete mode 100644 src/src/components/Chart/g2SanDianTu/SanDianTu04.vue delete mode 100644 src/src/components/Chart/g2TiaoXingTu/TiaoXingTu01.vue delete mode 100644 src/src/components/Chart/g2TiaoXingTu/TiaoXingTu02.vue delete mode 100644 src/src/components/Chart/g2TiaoXingTu/TiaoXingTu03.vue delete mode 100644 src/src/components/Chart/g2TiaoXingTu/TiaoXingTu04.vue delete mode 100644 src/src/components/Chart/g2ZheXianTu/ZheXianTu01.vue delete mode 100644 src/src/components/Chart/g2ZheXianTu/ZheXianTu02.vue delete mode 100644 src/src/components/Chart/g2ZheXianTu/ZheXianTu03.vue delete mode 100644 src/src/components/Chart/g2ZheXianTu/ZheXianTu04.vue delete mode 100644 src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu01.vue delete mode 100644 src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu02.vue delete mode 100644 src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu03.vue delete mode 100644 src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu04.vue delete mode 100644 src/src/components/Chart/g2ZiDanTu/ZiDanTu01.vue delete mode 100644 src/src/components/Chart/g2ZiDanTu/ZiDanTu02.vue delete mode 100644 src/src/components/ColorPicker/index.vue delete mode 100644 src/src/components/Cron/data.js delete mode 100644 src/src/components/Cron/index.vue delete mode 100644 src/src/components/CropUpload/index.vue delete mode 100644 src/src/components/DragModal/index.vue delete mode 100644 src/src/components/DragModal/props.js delete mode 100644 src/src/components/DynamicForm/index.vue delete mode 100644 src/src/components/DynamicSearchForm/index.vue delete mode 100644 src/src/components/DynamicTable/index.vue delete mode 100644 src/src/components/DynamicTree/index.vue delete mode 100644 src/src/components/Editor/README.md delete mode 100644 src/src/components/Editor/index.vue delete mode 100644 src/src/components/Ellipsis/index.md delete mode 100644 src/src/components/Ellipsis/index.vue delete mode 100644 src/src/components/Ellipsis/util.js delete mode 100644 src/src/components/FounderForm/index.vue delete mode 100644 src/src/components/HomeCard/BizMiniMessageCard/index.vue delete mode 100644 src/src/components/HomeCard/BizNoticeCard/detail.vue delete mode 100644 src/src/components/HomeCard/BizNoticeCard/index.vue delete mode 100644 src/src/components/HomeCard/BizScheduleCard/index.vue delete mode 100644 src/src/components/HomeCard/BizShortcutCard/index.vue delete mode 100644 src/src/components/HomeCard/BizSlideshowCard/index.vue delete mode 100644 src/src/components/HomeCard/SysBizDataCard/index.vue delete mode 100644 src/src/components/HomeCard/SysOpDataCard/index.vue delete mode 100644 src/src/components/HomeCard/SysOpLogCard/index.vue delete mode 100644 src/src/components/HomeCard/SysToolDataCard/index.vue delete mode 100644 src/src/components/HomeCard/SysUserInfoCard/index.vue delete mode 100644 src/src/components/HomeCard/SysVisChartDataCard/index.vue delete mode 100644 src/src/components/HomeCard/SysVisLogCard/index.vue delete mode 100644 src/src/components/Map/baiduMap/README.md delete mode 100644 src/src/components/Map/baiduMap/index.vue delete mode 100644 src/src/components/Map/gaodeMap/README.md delete mode 100644 src/src/components/Map/gaodeMap/index.vue delete mode 100644 src/src/components/NumberInfo/NumberInfo.vue delete mode 100644 src/src/components/NumberInfo/index.less delete mode 100644 src/src/components/OperationalInformation/index.vue delete mode 100644 src/src/components/Selector/employeeSelectorPlus.vue delete mode 100644 src/src/components/Selector/iconMobileSelector.vue delete mode 100644 src/src/components/Selector/iconSelector.vue delete mode 100644 src/src/components/Selector/iconSelector_README.md delete mode 100644 src/src/components/Selector/lineSelectorPlus.vue delete mode 100644 src/src/components/Selector/materielSelectorPlus.vue delete mode 100644 src/src/components/Selector/orgSelectorPlus.vue delete mode 100644 src/src/components/Selector/posSelectorPlus.vue delete mode 100644 src/src/components/Selector/roleSelectorPlus.vue delete mode 100644 src/src/components/Selector/userSelectorPlus.vue delete mode 100644 src/src/components/ShortcutCard/index.vue delete mode 100644 src/src/components/Table/README.md delete mode 100644 src/src/components/Table/columnSetting.vue delete mode 100644 src/src/components/Table/index.vue delete mode 100644 src/src/components/TagModal/index.vue delete mode 100644 src/src/components/TreeSelect/menuTreeSelect.vue delete mode 100644 src/src/components/Trend/Trend.vue delete mode 100644 src/src/components/Trend/index.less delete mode 100644 src/src/components/XnBatchButton/index.vue delete mode 100644 src/src/components/XnBatchDelete/index.vue delete mode 100644 src/src/components/XnCardList/README.md delete mode 100644 src/src/components/XnCardList/index.vue delete mode 100644 src/src/components/XnContextMenu/index.vue delete mode 100644 src/src/components/XnDataList/README.md delete mode 100644 src/src/components/XnDataList/index.vue delete mode 100644 src/src/components/XnEditor/index.vue delete mode 100644 src/src/components/XnFilePreview/README.md delete mode 100644 src/src/components/XnFilePreview/index.vue delete mode 100644 src/src/components/XnFormContainer/index.vue delete mode 100644 src/src/components/XnHighlightjs/index.vue delete mode 100644 src/src/components/XnOrgSelector/README.md delete mode 100644 src/src/components/XnOrgSelector/index.vue delete mode 100644 src/src/components/XnPageSelect/README.assets/分页下拉查询展示.gif delete mode 100644 src/src/components/XnPageSelect/README.md delete mode 100644 src/src/components/XnPageSelect/index.vue delete mode 100644 src/src/components/XnPositionSelector/README.md delete mode 100644 src/src/components/XnPositionSelector/index.vue delete mode 100644 src/src/components/XnRoleSelector/README.md delete mode 100644 src/src/components/XnRoleSelector/index.vue delete mode 100644 src/src/components/XnSignName/README.md delete mode 100644 src/src/components/XnSignName/index.vue delete mode 100644 src/src/components/XnSignName/vueEsign.vue delete mode 100644 src/src/components/XnUpload/README.md delete mode 100644 src/src/components/XnUpload/index.vue delete mode 100644 src/src/components/XnUserSelector/README.md delete mode 100644 src/src/components/XnUserSelector/index.vue delete mode 100644 src/src/components/XnUserSelector/userSelectorTest.vue delete mode 100644 src/src/components/global.less delete mode 100644 src/src/components/index.less delete mode 100644 src/src/config/iconSelect.js delete mode 100644 src/src/config/index.js delete mode 100644 src/src/config/route.js delete mode 100644 src/src/config/settingConfig.js delete mode 100644 src/src/config/themeColor.js delete mode 100644 src/src/hook/useFormHandler.js delete mode 100644 src/src/hook/useNavigation.js delete mode 100644 src/src/hook/useTableManagement.js delete mode 100644 src/src/layout/components/NavMenu.vue delete mode 100644 src/src/layout/components/breadcrumb.vue delete mode 100644 src/src/layout/components/iframeView.vue delete mode 100644 src/src/layout/components/message.vue delete mode 100644 src/src/layout/components/moduleMenu.vue delete mode 100644 src/src/layout/components/panel-search/index.vue delete mode 100644 src/src/layout/components/panel-search/item.vue delete mode 100644 src/src/layout/components/setting.vue delete mode 100644 src/src/layout/components/sideM.vue delete mode 100644 src/src/layout/components/tags.vue delete mode 100644 src/src/layout/components/topbar.vue delete mode 100644 src/src/layout/components/userbar.vue delete mode 100644 src/src/layout/enum/layoutEnum.js delete mode 100644 src/src/layout/enum/themeEnum.js delete mode 100644 src/src/layout/index.vue delete mode 100644 src/src/layout/menu/classicalMenu.vue delete mode 100644 src/src/layout/menu/doubleRowMenu.vue delete mode 100644 src/src/layout/menu/topMenu.vue delete mode 100644 src/src/layout/other/403.vue delete mode 100644 src/src/layout/other/404.vue delete mode 100644 src/src/layout/other/empty.vue delete mode 100644 src/src/locales/index.js delete mode 100644 src/src/locales/lang/en.js delete mode 100644 src/src/locales/lang/zh-cn.js delete mode 100644 src/src/main.js delete mode 100644 src/src/router/index.js delete mode 100644 src/src/router/scrollBehavior.js delete mode 100644 src/src/router/systemRouter.js delete mode 100644 src/src/router/whiteList.js delete mode 100644 src/src/snowy.js delete mode 100644 src/src/store/global.js delete mode 100644 src/src/store/iframe.js delete mode 100644 src/src/store/index.js delete mode 100644 src/src/store/keepAlive.js delete mode 100644 src/src/store/menu.js delete mode 100644 src/src/store/search.js delete mode 100644 src/src/store/sysBaseConfig.js delete mode 100644 src/src/store/user.js delete mode 100644 src/src/store/viewTags.js delete mode 100644 src/src/style/default.less delete mode 100644 src/src/style/index.less delete mode 100644 src/src/style/readme.md delete mode 100644 src/src/style/realdark.less delete mode 100644 src/src/tailwind.css delete mode 100644 src/src/utils/cityOptions.js delete mode 100644 src/src/utils/color.js delete mode 100644 src/src/utils/device.js delete mode 100644 src/src/utils/downloadUtil.js delete mode 100644 src/src/utils/enum.js delete mode 100644 src/src/utils/errorHandler.js delete mode 100644 src/src/utils/formRules.js delete mode 100644 src/src/utils/loading.js delete mode 100644 src/src/utils/objects.js delete mode 100644 src/src/utils/permission/index.js delete mode 100644 src/src/utils/request.js delete mode 100644 src/src/utils/routerUtil.js delete mode 100644 src/src/utils/smCrypto.js delete mode 100644 src/src/utils/template.js delete mode 100644 src/src/utils/themeUtil.js delete mode 100644 src/src/utils/tool.js delete mode 100644 src/src/utils/useTabs.js delete mode 100644 src/src/utils/watermark.js delete mode 100644 src/src/views/auth/findPwd/emailFindForm.vue delete mode 100644 src/src/views/auth/findPwd/index.vue delete mode 100644 src/src/views/auth/findPwd/phoneFindForm.vue delete mode 100644 src/src/views/auth/login/callback.vue delete mode 100644 src/src/views/auth/login/login.less delete mode 100644 src/src/views/auth/login/login.vue delete mode 100644 src/src/views/auth/login/phoneLoginForm.vue delete mode 100644 src/src/views/auth/login/threeLogin.vue delete mode 100644 src/src/views/auth/login/util.js delete mode 100644 src/src/views/auth/monitor/analyse.vue delete mode 100644 src/src/views/auth/monitor/bTab.vue delete mode 100644 src/src/views/auth/monitor/cTab.vue delete mode 100644 src/src/views/auth/monitor/index.vue delete mode 100644 src/src/views/auth/monitor/tokenInfoList.vue delete mode 100644 src/src/views/auth/third/index.vue delete mode 100644 src/src/views/biz/dict/form.vue delete mode 100644 src/src/views/biz/dict/index.vue delete mode 100644 src/src/views/biz/extendedField/detail/form.vue delete mode 100644 src/src/views/biz/extendedField/index.vue delete mode 100644 src/src/views/biz/index/index.vue delete mode 100644 src/src/views/biz/notice/detail.vue delete mode 100644 src/src/views/biz/notice/form.vue delete mode 100644 src/src/views/biz/notice/index.vue delete mode 100644 src/src/views/biz/org/form.vue delete mode 100644 src/src/views/biz/org/index.vue delete mode 100644 src/src/views/biz/position/form.vue delete mode 100644 src/src/views/biz/position/index.vue delete mode 100644 src/src/views/biz/searchTags/form.vue delete mode 100644 src/src/views/biz/searchTags/index.vue delete mode 100644 src/src/views/biz/user/form.vue delete mode 100644 src/src/views/biz/user/index.vue delete mode 100644 src/src/views/dev/config/emailConfig/aliyunEmailForm.vue delete mode 100644 src/src/views/dev/config/emailConfig/index.vue delete mode 100644 src/src/views/dev/config/emailConfig/localEmailForm.vue delete mode 100644 src/src/views/dev/config/emailConfig/tencentEmailForm.vue delete mode 100644 src/src/views/dev/config/fileConfig/aliyunFileForm.vue delete mode 100644 src/src/views/dev/config/fileConfig/index.vue delete mode 100644 src/src/views/dev/config/fileConfig/localFileForm.vue delete mode 100644 src/src/views/dev/config/fileConfig/minioFileForm.vue delete mode 100644 src/src/views/dev/config/fileConfig/tencentFileForm.vue delete mode 100644 src/src/views/dev/config/index.vue delete mode 100644 src/src/views/dev/config/otherConfig/form.vue delete mode 100644 src/src/views/dev/config/otherConfig/index.vue delete mode 100644 src/src/views/dev/config/smsConfig/aliyunSmsForm.vue delete mode 100644 src/src/views/dev/config/smsConfig/index.vue delete mode 100644 src/src/views/dev/config/smsConfig/tencentSmsForm.vue delete mode 100644 src/src/views/dev/config/smsConfig/xiaonuoSmsForm.vue delete mode 100644 src/src/views/dev/config/sysConfig.vue delete mode 100644 src/src/views/dev/config/thirdConfig/giteeThirdForm.vue delete mode 100644 src/src/views/dev/config/thirdConfig/index.vue delete mode 100644 src/src/views/dev/config/thirdConfig/wechatThirdForm.vue delete mode 100644 src/src/views/dev/dict/category/bizIndex.vue delete mode 100644 src/src/views/dev/dict/category/form.vue delete mode 100644 src/src/views/dev/dict/category/frmIndex.vue delete mode 100644 src/src/views/dev/dict/index.vue delete mode 100644 src/src/views/dev/email/detail.vue delete mode 100644 src/src/views/dev/email/form.vue delete mode 100644 src/src/views/dev/email/index.vue delete mode 100644 src/src/views/dev/email/send/aliyunEmailSend.vue delete mode 100644 src/src/views/dev/email/send/localEmailSend.vue delete mode 100644 src/src/views/dev/email/send/tencentEmailSend.vue delete mode 100644 src/src/views/dev/file/detail.vue delete mode 100644 src/src/views/dev/file/index.vue delete mode 100644 src/src/views/dev/file/preview.vue delete mode 100644 src/src/views/dev/file/uploadForm.vue delete mode 100644 src/src/views/dev/job/form.vue delete mode 100644 src/src/views/dev/job/index.vue delete mode 100644 src/src/views/dev/log/oplog/columnChart.vue delete mode 100644 src/src/views/dev/log/oplog/detail.vue delete mode 100644 src/src/views/dev/log/oplog/index.vue delete mode 100644 src/src/views/dev/log/oplog/pieChart.vue delete mode 100644 src/src/views/dev/log/vislog/detail.vue delete mode 100644 src/src/views/dev/log/vislog/index.vue delete mode 100644 src/src/views/dev/log/vislog/lineChart.vue delete mode 100644 src/src/views/dev/log/vislog/pieChart.vue delete mode 100644 src/src/views/dev/message/detail.vue delete mode 100644 src/src/views/dev/message/form.vue delete mode 100644 src/src/views/dev/message/index.vue delete mode 100644 src/src/views/dev/monitor/index.vue delete mode 100644 src/src/views/dev/slideshow/form.vue delete mode 100644 src/src/views/dev/slideshow/index.vue delete mode 100644 src/src/views/dev/slideshow/subForm.vue delete mode 100644 src/src/views/dev/sms/detail.vue delete mode 100644 src/src/views/dev/sms/form.vue delete mode 100644 src/src/views/dev/sms/index.vue delete mode 100644 src/src/views/dev/sms/send/aliyunSmsSend.vue delete mode 100644 src/src/views/dev/sms/send/tencentSmsSend.vue delete mode 100644 src/src/views/dev/sms/send/xiaonuoSmsSend.vue delete mode 100644 src/src/views/exm/chart/eCBingZhuangTu.vue delete mode 100644 src/src/views/exm/chart/eCHengTiaoTu.vue delete mode 100644 src/src/views/exm/chart/eCKXianTu.vue delete mode 100644 src/src/views/exm/chart/eCLouDouTu.vue delete mode 100644 src/src/views/exm/chart/eCSanDianTu.vue delete mode 100644 src/src/views/exm/chart/eCShuXingTu.vue delete mode 100644 src/src/views/exm/chart/eCXianXingTu.vue delete mode 100644 src/src/views/exm/chart/eCYiBiaoTu.vue delete mode 100644 src/src/views/exm/chart/eCZheZhuTu.vue delete mode 100644 src/src/views/exm/chart/eCZhuZhuangTu.vue delete mode 100644 src/src/views/exm/chart/g2BingZhuangTu.vue delete mode 100644 src/src/views/exm/chart/g2CiYunTu.vue delete mode 100644 src/src/views/exm/chart/g2JinDuTu.vue delete mode 100644 src/src/views/exm/chart/g2LouDouTu.vue delete mode 100644 src/src/views/exm/chart/g2MianJiTu.vue delete mode 100644 src/src/views/exm/chart/g2SanDianTu.vue delete mode 100644 src/src/views/exm/chart/g2TiaoXingTu.vue delete mode 100644 src/src/views/exm/chart/g2ZheXianTu.vue delete mode 100644 src/src/views/exm/chart/g2ZhuZhuangTu.vue delete mode 100644 src/src/views/exm/chart/g2ZiDanTu.vue delete mode 100644 src/src/views/exm/editor/index.vue delete mode 100644 src/src/views/exm/iconSelect/index.vue delete mode 100644 src/src/views/exm/map/baiduMap.vue delete mode 100644 src/src/views/exm/map/gaodeMap.vue delete mode 100644 src/src/views/exm/nestRoutor/index.vue delete mode 100644 src/src/views/gen/basic.vue delete mode 100644 src/src/views/gen/config.vue delete mode 100644 src/src/views/gen/index.vue delete mode 100644 src/src/views/gen/preview.vue delete mode 100644 src/src/views/gen/steps.vue delete mode 100644 src/src/views/index/index.vue delete mode 100644 src/src/views/mobile/resource/button/form.vue delete mode 100644 src/src/views/mobile/resource/button/index.vue delete mode 100644 src/src/views/mobile/resource/menu/changeModuleForm.vue delete mode 100644 src/src/views/mobile/resource/menu/form.vue delete mode 100644 src/src/views/mobile/resource/menu/index.vue delete mode 100644 src/src/views/mobile/resource/module/form.vue delete mode 100644 src/src/views/mobile/resource/module/index.vue delete mode 100644 src/src/views/other/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/brand/columns/brandColumns.js delete mode 100644 src/src/views/productionBusiness/basicData/brand/detail/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/brand/formFields/detailFields.js delete mode 100644 src/src/views/productionBusiness/basicData/brand/formFields/searchFields.js delete mode 100644 src/src/views/productionBusiness/basicData/brand/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/client/detail/CustomerCategoryForm.vue delete mode 100644 src/src/views/productionBusiness/basicData/client/detail/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/client/formFields/detailFields.js delete mode 100644 src/src/views/productionBusiness/basicData/client/formFields/drawerForm.js delete mode 100644 src/src/views/productionBusiness/basicData/client/formFields/searchFields.js delete mode 100644 src/src/views/productionBusiness/basicData/client/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/employee/detail/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/employee/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/materiel/column/materiel-column.js delete mode 100644 src/src/views/productionBusiness/basicData/materiel/detail/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/materiel/detail/materialCategoryForm.vue delete mode 100644 src/src/views/productionBusiness/basicData/materiel/formFields/detailFields.js delete mode 100644 src/src/views/productionBusiness/basicData/materiel/formFields/drawerForm.js delete mode 100644 src/src/views/productionBusiness/basicData/materiel/formFields/searchFields.js delete mode 100644 src/src/views/productionBusiness/basicData/materiel/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/publicAccount/columns/publicAccountColumn.js delete mode 100644 src/src/views/productionBusiness/basicData/publicAccount/detail/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/publicAccount/formFields/detailFields.js delete mode 100644 src/src/views/productionBusiness/basicData/publicAccount/formFields/searchFields.js delete mode 100644 src/src/views/productionBusiness/basicData/stash/columns/brandColumns.js delete mode 100644 src/src/views/productionBusiness/basicData/stash/detail/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/stash/formFields/detailFields.js delete mode 100644 src/src/views/productionBusiness/basicData/stash/formFields/searchFields.js delete mode 100644 src/src/views/productionBusiness/basicData/stash/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/tissue/column/tissueColumn.js delete mode 100644 src/src/views/productionBusiness/basicData/tissue/detail/TissueForm.vue delete mode 100644 src/src/views/productionBusiness/basicData/tissue/detail/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/tissue/formFields/searchFields.js delete mode 100644 src/src/views/productionBusiness/basicData/tissue/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/unit/columns/unitColumns.js delete mode 100644 src/src/views/productionBusiness/basicData/unit/detail/UnitGroupForm.vue delete mode 100644 src/src/views/productionBusiness/basicData/unit/detail/index.vue delete mode 100644 src/src/views/productionBusiness/basicData/unit/formFields/detailFields.js delete mode 100644 src/src/views/productionBusiness/basicData/unit/formFields/drawerForm.js delete mode 100644 src/src/views/productionBusiness/basicData/unit/formFields/searchFields.js delete mode 100644 src/src/views/productionBusiness/basicData/unit/index.vue delete mode 100644 src/src/views/productionBusiness/employee/personnel/detail/index.vue delete mode 100644 src/src/views/productionBusiness/employee/personnel/detail/personnelCategoryForm.vue delete mode 100644 src/src/views/productionBusiness/employee/personnel/index.vue delete mode 100644 src/src/views/productionBusiness/employee/personnelReport/detail/addPersonnelItem.vue delete mode 100644 src/src/views/productionBusiness/employee/personnelReport/detail/index.vue delete mode 100644 src/src/views/productionBusiness/employee/personnelReport/detail/personnelForm.vue delete mode 100644 src/src/views/productionBusiness/employee/personnelReport/index.vue delete mode 100644 src/src/views/productionBusiness/productionCenter/report/columns/detailColumns.js delete mode 100644 src/src/views/productionBusiness/productionCenter/report/columns/reportColumns.js delete mode 100644 src/src/views/productionBusiness/productionCenter/report/detail/index.vue delete mode 100644 src/src/views/productionBusiness/productionCenter/report/formFields/detailFields.js delete mode 100644 src/src/views/productionBusiness/productionCenter/report/formFields/searchFields.js delete mode 100644 src/src/views/productionBusiness/productionCenter/report/index.vue delete mode 100644 src/src/views/productionBusiness/productionCenter/task/detail/index.vue delete mode 100644 src/src/views/productionBusiness/productionCenter/task/formItems/index.js delete mode 100644 src/src/views/productionBusiness/productionCenter/task/index.vue delete mode 100644 src/src/views/sys/org/form.vue delete mode 100644 src/src/views/sys/org/index.vue delete mode 100644 src/src/views/sys/position/form.vue delete mode 100644 src/src/views/sys/position/index.vue delete mode 100644 src/src/views/sys/resource/button/form.vue delete mode 100644 src/src/views/sys/resource/button/index.vue delete mode 100644 src/src/views/sys/resource/field/form.vue delete mode 100644 src/src/views/sys/resource/field/index.vue delete mode 100644 src/src/views/sys/resource/menu/changeModuleForm.vue delete mode 100644 src/src/views/sys/resource/menu/form.vue delete mode 100644 src/src/views/sys/resource/menu/index.vue delete mode 100644 src/src/views/sys/resource/module/form.vue delete mode 100644 src/src/views/sys/resource/module/index.vue delete mode 100644 src/src/views/sys/role/form.vue delete mode 100644 src/src/views/sys/role/grantMobileResourceForm.vue delete mode 100644 src/src/views/sys/role/grantPermissionForm.vue delete mode 100644 src/src/views/sys/role/grantResourceForm.vue delete mode 100644 src/src/views/sys/role/index.vue delete mode 100644 src/src/views/sys/role/scopeDefineOrg.vue delete mode 100644 src/src/views/sys/user/form.vue delete mode 100644 src/src/views/sys/user/grantPermissionForm.vue delete mode 100644 src/src/views/sys/user/grantResourceForm.vue delete mode 100644 src/src/views/sys/user/impExp.vue delete mode 100644 src/src/views/sys/user/index.vue delete mode 100644 src/src/views/sys/user/scopeDefineOrg.vue delete mode 100644 src/src/views/sys/user/userCenter.vue delete mode 100644 src/src/views/sys/user/userTab/accountBasic.vue delete mode 100644 src/src/views/sys/user/userTab/accountBind.vue delete mode 100644 src/src/views/sys/user/userTab/bindForm/updatePassword.vue delete mode 100644 src/src/views/sys/user/userTab/organizationChart.vue delete mode 100644 src/src/views/sys/user/userTab/shortcutSetting.vue delete mode 100644 src/src/views/sys/user/userTab/userMessage.vue delete mode 100644 src/src/views/sys/user/userTab/userMessage/detail.vue create mode 100644 src/views/productionBusiness/labelPrinting/materialPrint/detail/index.vue create mode 100644 src/views/productionBusiness/labelPrinting/materialPrint/index.vue create mode 100644 src/views/productionBusiness/labelPrinting/singlePrint/detail/index.vue create mode 100644 src/views/productionBusiness/labelPrinting/singlePrint/index.vue rename src/{src/views/productionBusiness/basicData/client/columns/clientColumn.js => views/productionBusiness/labelPrinting/template/columns/templateColumns.js} (65%) create mode 100644 src/views/productionBusiness/labelPrinting/template/detail/index.vue rename src/{src/views/productionBusiness/basicData/publicAccount => views/productionBusiness/labelPrinting/template}/index.vue (75%) diff --git a/index.html b/index.html index 55d2e34..617068f 100644 --- a/index.html +++ b/index.html @@ -5,6 +5,7 @@ + Snowy diff --git a/src/src/components/Chart/eCBingZhuangTu/CustomizedPie.vue b/src/src/components/Chart/eCBingZhuangTu/CustomizedPie.vue deleted file mode 100644 index e748881..0000000 --- a/src/src/components/Chart/eCBingZhuangTu/CustomizedPie.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - diff --git a/src/src/components/Chart/eCBingZhuangTu/DoughnutChartWithRoundedCorner.vue b/src/src/components/Chart/eCBingZhuangTu/DoughnutChartWithRoundedCorner.vue deleted file mode 100644 index b250f93..0000000 --- a/src/src/components/Chart/eCBingZhuangTu/DoughnutChartWithRoundedCorner.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - diff --git a/src/src/components/Chart/eCBingZhuangTu/NightingaleChart.vue b/src/src/components/Chart/eCBingZhuangTu/NightingaleChart.vue deleted file mode 100644 index 64f7b08..0000000 --- a/src/src/components/Chart/eCBingZhuangTu/NightingaleChart.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - diff --git a/src/src/components/Chart/eCBingZhuangTu/RefererOfAWebsite.vue b/src/src/components/Chart/eCBingZhuangTu/RefererOfAWebsite.vue deleted file mode 100644 index 96bc235..0000000 --- a/src/src/components/Chart/eCBingZhuangTu/RefererOfAWebsite.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - diff --git a/src/src/components/Chart/eCKXianTu/BasicCandlestick.vue b/src/src/components/Chart/eCKXianTu/BasicCandlestick.vue deleted file mode 100644 index 2ba80ed..0000000 --- a/src/src/components/Chart/eCKXianTu/BasicCandlestick.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - diff --git a/src/src/components/Chart/eCKXianTu/LargeScaleCandlestick.vue b/src/src/components/Chart/eCKXianTu/LargeScaleCandlestick.vue deleted file mode 100644 index 3579116..0000000 --- a/src/src/components/Chart/eCKXianTu/LargeScaleCandlestick.vue +++ /dev/null @@ -1,207 +0,0 @@ - - - diff --git a/src/src/components/Chart/eCKXianTu/ShangHaiIndex.vue b/src/src/components/Chart/eCKXianTu/ShangHaiIndex.vue deleted file mode 100644 index bd03c99..0000000 --- a/src/src/components/Chart/eCKXianTu/ShangHaiIndex.vue +++ /dev/null @@ -1,324 +0,0 @@ - - - diff --git a/src/src/components/Chart/eCLouDouTu/CustomizedFunnel.vue b/src/src/components/Chart/eCLouDouTu/CustomizedFunnel.vue deleted file mode 100644 index dbe223c..0000000 --- a/src/src/components/Chart/eCLouDouTu/CustomizedFunnel.vue +++ /dev/null @@ -1,100 +0,0 @@ - - diff --git a/src/src/components/Chart/eCLouDouTu/FunnelChart.vue b/src/src/components/Chart/eCLouDouTu/FunnelChart.vue deleted file mode 100644 index 90153e0..0000000 --- a/src/src/components/Chart/eCLouDouTu/FunnelChart.vue +++ /dev/null @@ -1,81 +0,0 @@ - - diff --git a/src/src/components/Chart/eCLouDouTu/FunnelCompare.vue b/src/src/components/Chart/eCLouDouTu/FunnelCompare.vue deleted file mode 100644 index 37cde53..0000000 --- a/src/src/components/Chart/eCLouDouTu/FunnelCompare.vue +++ /dev/null @@ -1,114 +0,0 @@ - - diff --git a/src/src/components/Chart/eCLouDouTu/MultipleFunnels.vue b/src/src/components/Chart/eCLouDouTu/MultipleFunnels.vue deleted file mode 100644 index e09aa3c..0000000 --- a/src/src/components/Chart/eCLouDouTu/MultipleFunnels.vue +++ /dev/null @@ -1,114 +0,0 @@ - - diff --git a/src/src/components/Chart/eCSanDianTu/BasicScatterChart.vue b/src/src/components/Chart/eCSanDianTu/BasicScatterChart.vue deleted file mode 100644 index 3c815a9..0000000 --- a/src/src/components/Chart/eCSanDianTu/BasicScatterChart.vue +++ /dev/null @@ -1,51 +0,0 @@ - - diff --git a/src/src/components/Chart/eCSanDianTu/ClusteringProcess.vue b/src/src/components/Chart/eCSanDianTu/ClusteringProcess.vue deleted file mode 100644 index e1780e3..0000000 --- a/src/src/components/Chart/eCSanDianTu/ClusteringProcess.vue +++ /dev/null @@ -1,139 +0,0 @@ - - diff --git a/src/src/components/Chart/eCSanDianTu/EffectScatterChart.vue b/src/src/components/Chart/eCSanDianTu/EffectScatterChart.vue deleted file mode 100644 index a9a3dd5..0000000 --- a/src/src/components/Chart/eCSanDianTu/EffectScatterChart.vue +++ /dev/null @@ -1,92 +0,0 @@ - - diff --git a/src/src/components/Chart/eCSanDianTu/ScatterAqiColor.vue b/src/src/components/Chart/eCSanDianTu/ScatterAqiColor.vue deleted file mode 100644 index a44e60a..0000000 --- a/src/src/components/Chart/eCSanDianTu/ScatterAqiColor.vue +++ /dev/null @@ -1,264 +0,0 @@ - - diff --git a/src/src/components/Chart/eCShuXingTu/TreeWithPolylineEdge.vue b/src/src/components/Chart/eCShuXingTu/TreeWithPolylineEdge.vue deleted file mode 100644 index 3d57210..0000000 --- a/src/src/components/Chart/eCShuXingTu/TreeWithPolylineEdge.vue +++ /dev/null @@ -1,182 +0,0 @@ - - diff --git a/src/src/components/Chart/eCXianXingTu/BasicLineChart.vue b/src/src/components/Chart/eCXianXingTu/BasicLineChart.vue deleted file mode 100644 index 5c071a2..0000000 --- a/src/src/components/Chart/eCXianXingTu/BasicLineChart.vue +++ /dev/null @@ -1,34 +0,0 @@ - - diff --git a/src/src/components/Chart/eCXianXingTu/StackedAreaChart.vue b/src/src/components/Chart/eCXianXingTu/StackedAreaChart.vue deleted file mode 100644 index 9e82448..0000000 --- a/src/src/components/Chart/eCXianXingTu/StackedAreaChart.vue +++ /dev/null @@ -1,115 +0,0 @@ - - diff --git a/src/src/components/Chart/eCXianXingTu/StackedLineChart.vue b/src/src/components/Chart/eCXianXingTu/StackedLineChart.vue deleted file mode 100644 index 8442da8..0000000 --- a/src/src/components/Chart/eCXianXingTu/StackedLineChart.vue +++ /dev/null @@ -1,81 +0,0 @@ - - diff --git a/src/src/components/Chart/eCXianXingTu/StepLine.vue b/src/src/components/Chart/eCXianXingTu/StepLine.vue deleted file mode 100644 index 6e27326..0000000 --- a/src/src/components/Chart/eCXianXingTu/StepLine.vue +++ /dev/null @@ -1,68 +0,0 @@ - - diff --git a/src/src/components/Chart/eCYiBiaoTu/GaugeBasicChart.vue b/src/src/components/Chart/eCYiBiaoTu/GaugeBasicChart.vue deleted file mode 100644 index f55b7d7..0000000 --- a/src/src/components/Chart/eCYiBiaoTu/GaugeBasicChart.vue +++ /dev/null @@ -1,37 +0,0 @@ - - diff --git a/src/src/components/Chart/eCYiBiaoTu/GrogressGauge.vue b/src/src/components/Chart/eCYiBiaoTu/GrogressGauge.vue deleted file mode 100644 index 785deac..0000000 --- a/src/src/components/Chart/eCYiBiaoTu/GrogressGauge.vue +++ /dev/null @@ -1,106 +0,0 @@ - - diff --git a/src/src/components/Chart/eCYiBiaoTu/StageSpeedGauge.vue b/src/src/components/Chart/eCYiBiaoTu/StageSpeedGauge.vue deleted file mode 100644 index 367075c..0000000 --- a/src/src/components/Chart/eCYiBiaoTu/StageSpeedGauge.vue +++ /dev/null @@ -1,83 +0,0 @@ - - diff --git a/src/src/components/Chart/eCYiBiaoTu/TemperatureGaugeChart.vue b/src/src/components/Chart/eCYiBiaoTu/TemperatureGaugeChart.vue deleted file mode 100644 index 0bbdc25..0000000 --- a/src/src/components/Chart/eCYiBiaoTu/TemperatureGaugeChart.vue +++ /dev/null @@ -1,147 +0,0 @@ - - diff --git a/src/src/components/Chart/eCZhuZhuangTu/BarChartWithNegativeValue.vue b/src/src/components/Chart/eCZhuZhuangTu/BarChartWithNegativeValue.vue deleted file mode 100644 index 5122cd0..0000000 --- a/src/src/components/Chart/eCZhuZhuangTu/BarChartWithNegativeValue.vue +++ /dev/null @@ -1,77 +0,0 @@ - - diff --git a/src/src/components/Chart/eCZhuZhuangTu/BarLabelRotation.vue b/src/src/components/Chart/eCZhuZhuangTu/BarLabelRotation.vue deleted file mode 100644 index 9449c41..0000000 --- a/src/src/components/Chart/eCZhuZhuangTu/BarLabelRotation.vue +++ /dev/null @@ -1,132 +0,0 @@ - - diff --git a/src/src/components/Chart/eCZhuZhuangTu/BasicBar.vue b/src/src/components/Chart/eCZhuZhuangTu/BasicBar.vue deleted file mode 100644 index 542751a..0000000 --- a/src/src/components/Chart/eCZhuZhuangTu/BasicBar.vue +++ /dev/null @@ -1,32 +0,0 @@ - - diff --git a/src/src/components/Chart/eCZhuZhuangTu/WatermarkEChartsDownload.vue b/src/src/components/Chart/eCZhuZhuangTu/WatermarkEChartsDownload.vue deleted file mode 100644 index 080f7d0..0000000 --- a/src/src/components/Chart/eCZhuZhuangTu/WatermarkEChartsDownload.vue +++ /dev/null @@ -1,249 +0,0 @@ - - diff --git a/src/src/components/Chart/g2BingZhuangTu/BingZhuangTu01.vue b/src/src/components/Chart/g2BingZhuangTu/BingZhuangTu01.vue deleted file mode 100644 index 069039b..0000000 --- a/src/src/components/Chart/g2BingZhuangTu/BingZhuangTu01.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2BingZhuangTu/BingZhuangTu02.vue b/src/src/components/Chart/g2BingZhuangTu/BingZhuangTu02.vue deleted file mode 100644 index 89bb896..0000000 --- a/src/src/components/Chart/g2BingZhuangTu/BingZhuangTu02.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2BingZhuangTu/BingZhuangTu03.vue b/src/src/components/Chart/g2BingZhuangTu/BingZhuangTu03.vue deleted file mode 100644 index 5da57e9..0000000 --- a/src/src/components/Chart/g2BingZhuangTu/BingZhuangTu03.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2BingZhuangTu/BingZhuangTu04.vue b/src/src/components/Chart/g2BingZhuangTu/BingZhuangTu04.vue deleted file mode 100644 index 1d5e7b0..0000000 --- a/src/src/components/Chart/g2BingZhuangTu/BingZhuangTu04.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2CiYunTu/CiYunTu01.vue b/src/src/components/Chart/g2CiYunTu/CiYunTu01.vue deleted file mode 100644 index 0b6c52b..0000000 --- a/src/src/components/Chart/g2CiYunTu/CiYunTu01.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2CiYunTu/CiYunTu02.vue b/src/src/components/Chart/g2CiYunTu/CiYunTu02.vue deleted file mode 100644 index 8f34326..0000000 --- a/src/src/components/Chart/g2CiYunTu/CiYunTu02.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2JinDuTu/JinDuTu01.vue b/src/src/components/Chart/g2JinDuTu/JinDuTu01.vue deleted file mode 100644 index 3d0784c..0000000 --- a/src/src/components/Chart/g2JinDuTu/JinDuTu01.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2JinDuTu/JinDuTu02.vue b/src/src/components/Chart/g2JinDuTu/JinDuTu02.vue deleted file mode 100644 index 46fc47f..0000000 --- a/src/src/components/Chart/g2JinDuTu/JinDuTu02.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2JinDuTu/JinDuTu03.vue b/src/src/components/Chart/g2JinDuTu/JinDuTu03.vue deleted file mode 100644 index 675b100..0000000 --- a/src/src/components/Chart/g2JinDuTu/JinDuTu03.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2JinDuTu/JinDuTu04.vue b/src/src/components/Chart/g2JinDuTu/JinDuTu04.vue deleted file mode 100644 index c025a9f..0000000 --- a/src/src/components/Chart/g2JinDuTu/JinDuTu04.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2LouDouTu/LouDouTu01.vue b/src/src/components/Chart/g2LouDouTu/LouDouTu01.vue deleted file mode 100644 index 4a9ab53..0000000 --- a/src/src/components/Chart/g2LouDouTu/LouDouTu01.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2LouDouTu/LouDouTu02.vue b/src/src/components/Chart/g2LouDouTu/LouDouTu02.vue deleted file mode 100644 index d800bb2..0000000 --- a/src/src/components/Chart/g2LouDouTu/LouDouTu02.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2MianJiTu/MianJiTu01.vue b/src/src/components/Chart/g2MianJiTu/MianJiTu01.vue deleted file mode 100644 index 5efb7ab..0000000 --- a/src/src/components/Chart/g2MianJiTu/MianJiTu01.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2MianJiTu/MianJiTu02.vue b/src/src/components/Chart/g2MianJiTu/MianJiTu02.vue deleted file mode 100644 index 1c1eae4..0000000 --- a/src/src/components/Chart/g2MianJiTu/MianJiTu02.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2MianJiTu/MianJiTu03.vue b/src/src/components/Chart/g2MianJiTu/MianJiTu03.vue deleted file mode 100644 index 92b3e3c..0000000 --- a/src/src/components/Chart/g2MianJiTu/MianJiTu03.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2MianJiTu/MianJiTu04.vue b/src/src/components/Chart/g2MianJiTu/MianJiTu04.vue deleted file mode 100644 index 27160ba..0000000 --- a/src/src/components/Chart/g2MianJiTu/MianJiTu04.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2SanDianTu/SanDianTu01.vue b/src/src/components/Chart/g2SanDianTu/SanDianTu01.vue deleted file mode 100644 index cf8bc43..0000000 --- a/src/src/components/Chart/g2SanDianTu/SanDianTu01.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2SanDianTu/SanDianTu02.vue b/src/src/components/Chart/g2SanDianTu/SanDianTu02.vue deleted file mode 100644 index 8be7761..0000000 --- a/src/src/components/Chart/g2SanDianTu/SanDianTu02.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2SanDianTu/SanDianTu03.vue b/src/src/components/Chart/g2SanDianTu/SanDianTu03.vue deleted file mode 100644 index 49fa842..0000000 --- a/src/src/components/Chart/g2SanDianTu/SanDianTu03.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2SanDianTu/SanDianTu04.vue b/src/src/components/Chart/g2SanDianTu/SanDianTu04.vue deleted file mode 100644 index 4ff3fd9..0000000 --- a/src/src/components/Chart/g2SanDianTu/SanDianTu04.vue +++ /dev/null @@ -1,337 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2TiaoXingTu/TiaoXingTu01.vue b/src/src/components/Chart/g2TiaoXingTu/TiaoXingTu01.vue deleted file mode 100644 index d76c686..0000000 --- a/src/src/components/Chart/g2TiaoXingTu/TiaoXingTu01.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2TiaoXingTu/TiaoXingTu02.vue b/src/src/components/Chart/g2TiaoXingTu/TiaoXingTu02.vue deleted file mode 100644 index 20d06f6..0000000 --- a/src/src/components/Chart/g2TiaoXingTu/TiaoXingTu02.vue +++ /dev/null @@ -1,126 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2TiaoXingTu/TiaoXingTu03.vue b/src/src/components/Chart/g2TiaoXingTu/TiaoXingTu03.vue deleted file mode 100644 index 09d45ae..0000000 --- a/src/src/components/Chart/g2TiaoXingTu/TiaoXingTu03.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2TiaoXingTu/TiaoXingTu04.vue b/src/src/components/Chart/g2TiaoXingTu/TiaoXingTu04.vue deleted file mode 100644 index 515f98c..0000000 --- a/src/src/components/Chart/g2TiaoXingTu/TiaoXingTu04.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2ZheXianTu/ZheXianTu01.vue b/src/src/components/Chart/g2ZheXianTu/ZheXianTu01.vue deleted file mode 100644 index 63249f2..0000000 --- a/src/src/components/Chart/g2ZheXianTu/ZheXianTu01.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2ZheXianTu/ZheXianTu02.vue b/src/src/components/Chart/g2ZheXianTu/ZheXianTu02.vue deleted file mode 100644 index b61e39c..0000000 --- a/src/src/components/Chart/g2ZheXianTu/ZheXianTu02.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2ZheXianTu/ZheXianTu03.vue b/src/src/components/Chart/g2ZheXianTu/ZheXianTu03.vue deleted file mode 100644 index 34cae3a..0000000 --- a/src/src/components/Chart/g2ZheXianTu/ZheXianTu03.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2ZheXianTu/ZheXianTu04.vue b/src/src/components/Chart/g2ZheXianTu/ZheXianTu04.vue deleted file mode 100644 index 18a5eb2..0000000 --- a/src/src/components/Chart/g2ZheXianTu/ZheXianTu04.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu01.vue b/src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu01.vue deleted file mode 100644 index bf8fcf3..0000000 --- a/src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu01.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu02.vue b/src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu02.vue deleted file mode 100644 index f05769b..0000000 --- a/src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu02.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu03.vue b/src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu03.vue deleted file mode 100644 index 128bff9..0000000 --- a/src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu03.vue +++ /dev/null @@ -1,120 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu04.vue b/src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu04.vue deleted file mode 100644 index 1222331..0000000 --- a/src/src/components/Chart/g2ZhuZhuangTu/ZhuZhuangTu04.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2ZiDanTu/ZiDanTu01.vue b/src/src/components/Chart/g2ZiDanTu/ZiDanTu01.vue deleted file mode 100644 index 08727da..0000000 --- a/src/src/components/Chart/g2ZiDanTu/ZiDanTu01.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - diff --git a/src/src/components/Chart/g2ZiDanTu/ZiDanTu02.vue b/src/src/components/Chart/g2ZiDanTu/ZiDanTu02.vue deleted file mode 100644 index 19db78c..0000000 --- a/src/src/components/Chart/g2ZiDanTu/ZiDanTu02.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - diff --git a/src/src/components/ColorPicker/index.vue b/src/src/components/ColorPicker/index.vue deleted file mode 100644 index 6952228..0000000 --- a/src/src/components/ColorPicker/index.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - - - diff --git a/src/src/components/Cron/data.js b/src/src/components/Cron/data.js deleted file mode 100644 index c7abcfc..0000000 --- a/src/src/components/Cron/data.js +++ /dev/null @@ -1,103 +0,0 @@ -export const getYear = () => { - let v = [] - let y = new Date().getFullYear() - for (let i = 0; i < 11; i++) { - v.push(y + i) - } - return v -} -export const data = { - second: ['0', '5', '15', '20', '25', '30', '35', '40', '45', '50', '55', '59'], - minute: ['0', '5', '15', '20', '25', '30', '35', '40', '45', '50', '55', '59'], - hour: [ - '0', - '1', - '2', - '3', - '4', - '5', - '6', - '7', - '8', - '9', - '10', - '11', - '12', - '13', - '14', - '15', - '16', - '17', - '18', - '19', - '20', - '21', - '22', - '23' - ], - day: [ - '1', - '2', - '3', - '4', - '5', - '6', - '7', - '8', - '9', - '10', - '11', - '12', - '13', - '14', - '15', - '16', - '17', - '18', - '19', - '20', - '21', - '22', - '23', - '24', - '25', - '26', - '27', - '28', - '29', - '30', - '31' - ], - month: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], - week: [ - { - value: '0', - label: '周日' - }, - { - value: '1', - label: '周一' - }, - { - value: '2', - label: '周二' - }, - { - value: '3', - label: '周三' - }, - { - value: '4', - label: '周四' - }, - { - value: '5', - label: '周五' - }, - { - value: '6', - label: '周六' - } - ], - year: getYear() -} diff --git a/src/src/components/Cron/index.vue b/src/src/components/Cron/index.vue deleted file mode 100644 index fedfc99..0000000 --- a/src/src/components/Cron/index.vue +++ /dev/null @@ -1,756 +0,0 @@ - - - - - diff --git a/src/src/components/CropUpload/index.vue b/src/src/components/CropUpload/index.vue deleted file mode 100644 index e17bee0..0000000 --- a/src/src/components/CropUpload/index.vue +++ /dev/null @@ -1,186 +0,0 @@ - - - - - diff --git a/src/src/components/DragModal/index.vue b/src/src/components/DragModal/index.vue deleted file mode 100644 index b925aa4..0000000 --- a/src/src/components/DragModal/index.vue +++ /dev/null @@ -1,318 +0,0 @@ - - - diff --git a/src/src/components/DragModal/props.js b/src/src/components/DragModal/props.js deleted file mode 100644 index f29069f..0000000 --- a/src/src/components/DragModal/props.js +++ /dev/null @@ -1,30 +0,0 @@ -export default { - props: [ - 'afterClose', // Modal 完全关闭后的回调 function 无 - 'bodyStyle', // Modal body 样式 object {} - 'cancelText', // 取消按钮文字 string| slot 取消 - 'centered', // 垂直居中展示 Modal Boolean false - 'closable', // 是否显示右上角的关闭按钮 boolean true - 'closeIcon', // 自定义关闭图标 VNode | slot - 1.5.0 - 'confirmLoading', // 确定按钮 loading boolean 无 - 'destroyOnClose', // 关闭时销毁 Modal 里的子元素 boolean false - 'footer', // 底部内容,当不需要默认底部按钮时,可以设为 :footer="null" string|slot 确定取消按钮 - 'forceRender', // 强制渲染 Modal boolean false - 'getContainer', // 指定 Modal 挂载的 HTML 节点 (instance): HTMLElement () => document.body - 'keyboard', // 是否支持键盘 esc 关闭 boolean true - 'mask', // 是否展示遮罩 Boolean true - 'maskClosable', // 点击蒙层是否允许关闭 boolean true - 'maskStyle', // 遮罩样式 object {} - 'okText', // 确认按钮文字 string|slot 确定 - 'okType', // 确认按钮类型 string primary - 'okButtonProps', // ok 按钮 props, 遵循 jsx规范 {props: ButtonProps, on: {}} - - 'cancelButtonProps', // cancel 按钮 props, 遵循 jsx规范 {props: ButtonProps, on: {}} - - 'title', // 标题 string|slot 无 - // 'visible', // (v-model) 对话框是否可见 boolean 无 - // 'width', // 宽度 string|number 520 - // 'wrapClassName', // 对话框外层容器的类名 string - - 'zIndex', // 设置 Modal 的 z-index Number 1000 - 'dialogStyle', // 可用于设置浮层的样式,调整浮层位置等 object - 1.6.1 - 'dialogClass' // 可用于设置浮层的类名 string - ] -} diff --git a/src/src/components/DynamicForm/index.vue b/src/src/components/DynamicForm/index.vue deleted file mode 100644 index cd8b1bf..0000000 --- a/src/src/components/DynamicForm/index.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - - - diff --git a/src/src/components/DynamicSearchForm/index.vue b/src/src/components/DynamicSearchForm/index.vue deleted file mode 100644 index a9d0503..0000000 --- a/src/src/components/DynamicSearchForm/index.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - - - diff --git a/src/src/components/DynamicTable/index.vue b/src/src/components/DynamicTable/index.vue deleted file mode 100644 index d9b6479..0000000 --- a/src/src/components/DynamicTable/index.vue +++ /dev/null @@ -1,145 +0,0 @@ - - - - - diff --git a/src/src/components/DynamicTree/index.vue b/src/src/components/DynamicTree/index.vue deleted file mode 100644 index de5ad3c..0000000 --- a/src/src/components/DynamicTree/index.vue +++ /dev/null @@ -1,210 +0,0 @@ - - - - - diff --git a/src/src/components/Editor/README.md b/src/src/components/Editor/README.md deleted file mode 100644 index a9fb1a6..0000000 --- a/src/src/components/Editor/README.md +++ /dev/null @@ -1,15 +0,0 @@ -## 富文本 - -### 说明 - -这个组件将在3.2版本移除,请及时更新使用xn-editor - -> 更新提示 -> -> 1、将 改为 -> -> 2、v-model绑定改为v-model:value -> -> 3、整体写法为: -> -> 4、移除业务内跟此组件无关的其他代码即可 diff --git a/src/src/components/Editor/index.vue b/src/src/components/Editor/index.vue deleted file mode 100644 index e95fd2c..0000000 --- a/src/src/components/Editor/index.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - diff --git a/src/src/components/Ellipsis/index.md b/src/src/components/Ellipsis/index.md deleted file mode 100644 index e4316bf..0000000 --- a/src/src/components/Ellipsis/index.md +++ /dev/null @@ -1,33 +0,0 @@ -# Ellipsis 文本自动省略号 - -文本过长自动处理省略号,支持按照文本长度和最大行数两种方式截取。 - - - -引用方式: - -```javascript -import Ellipsis from '@/components/Ellipsis' -// vue3 不需要利用compoents去注册组件,引入后可直接使用 -``` - - - -## 代码演示 [demo](https://snowy.xiaonuo.vip) - -```html - - There were injuries alleged in three cases in 2015, and a - fourth incident in September, according to the safety recall report. After meeting with US regulators in October, the firm decided to issue a voluntary recall. - -``` - - - -## API - - -参数 | 说明 | 类型 | 默认值 -----|------|-----|------ -tooltip | 移动到文本展示完整内容的提示 | boolean | - -length | 在按照长度截取下的文本最大字符数,超过则截取省略 | number | - diff --git a/src/src/components/Ellipsis/index.vue b/src/src/components/Ellipsis/index.vue deleted file mode 100644 index 4f8c64d..0000000 --- a/src/src/components/Ellipsis/index.vue +++ /dev/null @@ -1,48 +0,0 @@ - - diff --git a/src/src/components/Ellipsis/util.js b/src/src/components/Ellipsis/util.js deleted file mode 100644 index b9577bb..0000000 --- a/src/src/components/Ellipsis/util.js +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ - -/** - * 获取字符串长度,英文字符 长度1,中文字符长度2 - * @param {*} str - */ -export const getStrFullLength = (str = '') => - str.split('').reduce((pre, cur) => { - const charCode = cur.charCodeAt(0) - if (charCode >= 0 && charCode <= 128) { - return pre + 1 - } - return pre + 2 - }, 0) - -/** - * 截取字符串,根据 maxLength 截取后返回 - * @param {*} str - * @param {*} maxLength - */ -export const cutStrByFullLength = (str = '', maxLength) => { - let showLength = 0 - return str.split('').reduce((pre, cur) => { - const charCode = cur.charCodeAt(0) - if (charCode >= 0 && charCode <= 128) { - showLength += 1 - } else { - showLength += 2 - } - if (showLength <= maxLength) { - return pre + cur - } - return pre - }, '') -} diff --git a/src/src/components/FounderForm/index.vue b/src/src/components/FounderForm/index.vue deleted file mode 100644 index c6338c3..0000000 --- a/src/src/components/FounderForm/index.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/src/src/components/HomeCard/BizMiniMessageCard/index.vue b/src/src/components/HomeCard/BizMiniMessageCard/index.vue deleted file mode 100644 index 7301f30..0000000 --- a/src/src/components/HomeCard/BizMiniMessageCard/index.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - - - diff --git a/src/src/components/HomeCard/BizNoticeCard/detail.vue b/src/src/components/HomeCard/BizNoticeCard/detail.vue deleted file mode 100644 index 1285bfd..0000000 --- a/src/src/components/HomeCard/BizNoticeCard/detail.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - diff --git a/src/src/components/HomeCard/BizNoticeCard/index.vue b/src/src/components/HomeCard/BizNoticeCard/index.vue deleted file mode 100644 index 321a834..0000000 --- a/src/src/components/HomeCard/BizNoticeCard/index.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - - diff --git a/src/src/components/HomeCard/BizScheduleCard/index.vue b/src/src/components/HomeCard/BizScheduleCard/index.vue deleted file mode 100644 index 8232811..0000000 --- a/src/src/components/HomeCard/BizScheduleCard/index.vue +++ /dev/null @@ -1,132 +0,0 @@ - - - - - diff --git a/src/src/components/HomeCard/BizShortcutCard/index.vue b/src/src/components/HomeCard/BizShortcutCard/index.vue deleted file mode 100644 index 77478f5..0000000 --- a/src/src/components/HomeCard/BizShortcutCard/index.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - - - diff --git a/src/src/components/HomeCard/BizSlideshowCard/index.vue b/src/src/components/HomeCard/BizSlideshowCard/index.vue deleted file mode 100644 index 481ed92..0000000 --- a/src/src/components/HomeCard/BizSlideshowCard/index.vue +++ /dev/null @@ -1,108 +0,0 @@ - - - - - diff --git a/src/src/components/HomeCard/SysBizDataCard/index.vue b/src/src/components/HomeCard/SysBizDataCard/index.vue deleted file mode 100644 index ae65873..0000000 --- a/src/src/components/HomeCard/SysBizDataCard/index.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/src/src/components/HomeCard/SysOpDataCard/index.vue b/src/src/components/HomeCard/SysOpDataCard/index.vue deleted file mode 100644 index 8e2ba73..0000000 --- a/src/src/components/HomeCard/SysOpDataCard/index.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - - - diff --git a/src/src/components/HomeCard/SysOpLogCard/index.vue b/src/src/components/HomeCard/SysOpLogCard/index.vue deleted file mode 100644 index a2a4174..0000000 --- a/src/src/components/HomeCard/SysOpLogCard/index.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - diff --git a/src/src/components/HomeCard/SysToolDataCard/index.vue b/src/src/components/HomeCard/SysToolDataCard/index.vue deleted file mode 100644 index 205d105..0000000 --- a/src/src/components/HomeCard/SysToolDataCard/index.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/src/src/components/HomeCard/SysUserInfoCard/index.vue b/src/src/components/HomeCard/SysUserInfoCard/index.vue deleted file mode 100644 index cd01735..0000000 --- a/src/src/components/HomeCard/SysUserInfoCard/index.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - - - diff --git a/src/src/components/HomeCard/SysVisChartDataCard/index.vue b/src/src/components/HomeCard/SysVisChartDataCard/index.vue deleted file mode 100644 index 1e62eb2..0000000 --- a/src/src/components/HomeCard/SysVisChartDataCard/index.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - diff --git a/src/src/components/HomeCard/SysVisLogCard/index.vue b/src/src/components/HomeCard/SysVisLogCard/index.vue deleted file mode 100644 index 4b9db19..0000000 --- a/src/src/components/HomeCard/SysVisLogCard/index.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - diff --git a/src/src/components/Map/baiduMap/README.md b/src/src/components/Map/baiduMap/README.md deleted file mode 100644 index 3a821e0..0000000 --- a/src/src/components/Map/baiduMap/README.md +++ /dev/null @@ -1,187 +0,0 @@ -BMap -==== - -> 百度地图组件,常用于地图展示使用 - -该组件由 [小诺开源技术](https://www.xiaonuo.vip) 封装 - -### 使用方式 - -```text -申请key -``` - -访问 [百度地图官网](https://lbsyun.baidu.com/apiconsole/center#/home) 注册账号,申请应用获得key - -```vue - - - -``` - -### Prop属性 - -| 名称 | 说明 | 类型 | 默认值 | -|---------------|------------|--------|----------| -| mid | 容器ID | String | 时间戳 | -| height | 容器高度 | Number | 800,单位px | -| apiKey | 地图Key | String | | -| center | 地图中心点 | String | 自动定位 | -| plugins | 地图控件 | Array | | -| viewMode | 效果:2D,3D | String | 3D | -| rotationAngle | 旋转角度 | Number | 60 | -| tiltAngle | 倾斜角度 | Number | 70 | -| zoom | 地图缩放比例 | Number | 12 | -| mapStyle | 地图样式:个性化地图 | String | | - -#### 地图控件 - -- BMap.ScaleControl:比例尺 -- BMap.ZoomControl:缩放 -- BMap.LocationControl:定位 -- BMap.NavigationControl3D:3D控件 - -### 事件 - -| 名称 | 说明 | 参数 | 参数类型 | -|-------------|---------------|----------|-------| -| complete | 当地图初始化完成时触发 | - | - | -| markerClick | 当点击了点覆盖物时触发 | position | Array | - -### 方法 - -| 名称 | 说明 | 参数 | 参数类型 | -|----------------------|-----------|------------------------|-------------------| -| renderMarker | 渲染 点标记 | dataArr | Array | -| renderIconMarker | 渲染 图标标记 | dataArr | Array | -| render3DCircleMarker | 渲染 3D圆点标记 | dataArr | Array | -| render3DIconMarker | 渲染 3D图标标记 | dataArr | Array | -| renderPolyline | 渲染 线 | dataArr,option | Array,JSON | -| renderCircle | 渲染 圆 | position,radius,option | Array,Number,JSON | -| renderPolygon | 渲染 面 | dataArr,option | Array,JSON | -| renderInfoWindow | 渲染 信息窗体 | dataArr | Array | -| openInfoWindow | 打开 信息窗体 | position | Array | -| clearOverlay | 清理 覆盖物 | | | - -### 方法参数```dataArr```结构 - -> 点标记 - -```json -[{ - "position": "坐标数组", - "title": "鼠标滑过点标记时的文字提示" -}] -``` - -> 图标标记 - -```json -[{ - "position": "坐标数组", - "title": "鼠标滑过点标记时的文字提示", - "img": "图片地址", - "imgWidth": "图片宽度,默认40", - "imgHeight": "图片高度,默认40" -}] -``` - -> 3D圆点标记 - -```json -[{ - "position": "坐标数组", - "height": "高度,默认8000", - "size": "大小,默认50", - "fillColor": "填充颜色,默认#006600" -}] -``` - -> 3D图标标记 - -```json -[{ - "position": "坐标数组", - "height": "高度,默认8000", - "size": "大小,默认50", - "img": "图片地址", - "imgWidth": "图片宽度,默认40", - "imgHeight": "图片高度,默认40" -}] -``` - -> 线、面 - -```json -[{ - "position": "坐标数组" -}] -``` - -> 信息窗体 - -```json -[{ - "position": "坐标数组", - "title": "标题", - "content": "内容,文本数组,会以换行进行连接", - "width": "窗体宽度", - "height": "窗体高度" -}] -``` - -### 方法参数```option```结构 - -> 线、圆 - -```json -{ - "strokeColor": "边线颜色,默认blue", - "strokeWeight": "边线宽度,默认2", - "strokeOpacity": "边线透明度,默认0.5" -} -``` - -> 面 - -```json -{ - "strokeColor": "边线颜色,默认blue", - "strokeWeight": "边线宽度,默认2", - "strokeOpacity": "边线透明度,默认0.5", - "fillColor": "填充颜色,默认blue", - "fllOpacity": "填充透明度,默认0.5" -} -``` diff --git a/src/src/components/Map/baiduMap/index.vue b/src/src/components/Map/baiduMap/index.vue deleted file mode 100644 index d327dd8..0000000 --- a/src/src/components/Map/baiduMap/index.vue +++ /dev/null @@ -1,344 +0,0 @@ - - - - - diff --git a/src/src/components/Map/gaodeMap/README.md b/src/src/components/Map/gaodeMap/README.md deleted file mode 100644 index 4ab6d00..0000000 --- a/src/src/components/Map/gaodeMap/README.md +++ /dev/null @@ -1,205 +0,0 @@ -AMap -==== - -> 高德地图组件,常用于地图展示使用 - -该组件由 [小诺开源技术](https://www.xiaonuo.vip) 封装 - -### 使用方式 - -```text -申请key -``` - -访问 [高德地图官网](https://console.amap.com/dev/index) 注册账号,申请应用获得key - -```vue - - - - -``` - -### Prop属性 - -| 名称 | 说明 | 类型 | 默认值 | -|---------------|-------------------|----------|-----------| -| mid | 容器ID | String | 时间戳 | -| height | 容器高度 | Number | 800,单位px | -| apiKey | 地图Key | String | | -| center | 地图中心点 | String | 自动定位 | -| plugins | 地图控件 | Array | | -| viewMode | 效果:2D,3D | String | 3D | -| zoom | 地图缩放比例 | Number | 12 | -| pitch | 地图俯仰角度,有效范围 0-83 | String | 50 | -| mapStyle | 地图样式 | String | normal | -| markerCluster | 点聚合 | Boolean | true | - -#### 地图控件 - -- AMap.ToolBar:缩放工具条 -- AMap.Scale:比例尺 -- AMap.HawkEye:鹰眼 -- AMap.MapType:图层切换 -- AMap.Geolocation:定位 -- AMap.MarkerCluster:点聚合 - -#### 地图样式 - -- normal -- macaron -- dark -- fresh -- grey - -### 事件 - -| 名称 | 说明 | 参数 | 参数类型 | -|-------------|---------------|----------|-------| -| complete | 当地图初始化完成时触发 | - | - | -| markerClick | 当点击了点覆盖物时触发 | position | Array | - -### 方法 - -| 名称 | 说明 | 参数 | 参数类型 | -|---------------------|----------|---------------------|-------------------| -| renderMarker | 渲染 点标记 | dataArr | Array | -| renderCircleMarker | 渲染 圆点标记 | dataArr | Array | -| renderSimpleMarker | 渲染 简单点标记 | dataArr, theme | Array, String | -| renderAwesomeMarker | 渲染 字体点标记 | dataArr | Array | -| renderPolyline | 渲染 线 | dataArr,opt | Array,JSON | -| renderCircle | 渲染 圆 | position,radius,opt | Array,Number,JSON | -| renderPolygon | 渲染 面 | dataArr,opt | Array,JSON | -| renderInfoWindow | 渲染 信息窗体 | dataArr | Array | -| openInfoWindow | 打开 信息窗体 | position | Array | -| clearOverlay | 清理 覆盖物 | | | - -### 方法参数```dataArr```结构 - -> 点标记 - -```json -[{ - "position": "坐标数组", - "title": "鼠标滑过点标记时的文字提示", - "content": "显示内容,content有效时,icon属性将被覆盖", - "icon": "图标", - "label": { - "content": "文本标注" - } -}] -``` - -> 圆点标记 - -```json -[{ - "position": "坐标数组,圆心位置", - "radius": "圆点半径", - "strokeColor": "线条颜色,默认#006600", - "fillColor": "填充颜色,默认#006600" -}] -``` - -> 简单点标记 - -```json -[{ - "position": "坐标数组", - "label": "前景文字", - "labelStyle": { - "color": "颜色", - "fontSize": "字体大小" - }, - "style": "背景图标样式" -}] -``` - -> 字体点标记 - -```json -[{ - "position": "坐标数组", - "awesomeIcon": "图标,参见:http://fontawesome.io/icons/", - "labelStyle": { - "color": "颜色", - "fontSize": "字体大小" - }, - "style": "背景图标样式" -}] -``` - -> 线、面 - -```json -[{ - "position": "坐标数组" -}] -``` - -> 信息窗体 - -```json -[{ - "position": "坐标数组", - "content": "显示内容,文本数组,会以换行进行连接" -}] -``` - -### 方法参数```opt```结构 - -> 线 - -```json -{ - "strokeColor": "边线颜色,默认blue", - "strokeWeight": "边线宽度,默认2", - "strokeOpacity": "边线透明度,默认0.5", - "isOutline": "是否显示描边,默认false", - "borderWeight": "描边宽度,默认1" -} -``` - -> 圆、面 - -```json -{ - "strokeColor": "边线颜色,默认blue", - "strokeWeight": "边线宽度,默认2", - "strokeOpacity": "边线透明度,默认0.5", - "fillColor": "填充颜色,默认blue", - "fllOpacity": "填充透明度,默认0.5" -} -``` diff --git a/src/src/components/Map/gaodeMap/index.vue b/src/src/components/Map/gaodeMap/index.vue deleted file mode 100644 index b95597b..0000000 --- a/src/src/components/Map/gaodeMap/index.vue +++ /dev/null @@ -1,373 +0,0 @@ - - - - - diff --git a/src/src/components/NumberInfo/NumberInfo.vue b/src/src/components/NumberInfo/NumberInfo.vue deleted file mode 100644 index a524626..0000000 --- a/src/src/components/NumberInfo/NumberInfo.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - - - diff --git a/src/src/components/NumberInfo/index.less b/src/src/components/NumberInfo/index.less deleted file mode 100644 index 18233ae..0000000 --- a/src/src/components/NumberInfo/index.less +++ /dev/null @@ -1,55 +0,0 @@ -@import "../index.less"; - -@numberInfo-prefix-cls: ~"@{ant-pro-prefix}-number-info"; - -.@{numberInfo-prefix-cls} { - - .ant-pro-number-info-subtitle { - color: @text-color-secondary; - font-size: @font-size-base; - height: 22px; - line-height: 22px; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - white-space: nowrap; - } - - .number-info-value { - margin-top: 4px; - font-size: 0; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - white-space: nowrap; - - & > span { - color: @heading-color; - display: inline-block; - line-height: 32px; - height: 32px; - font-size: 24px; - margin-right: 32px; - } - - .sub-total { - color: @text-color-secondary; - font-size: @font-size-lg; - vertical-align: top; - margin-right: 0; - i { - font-size: 12px; - transform: scale(0.82); - margin-left: 4px; - } - // :global { - // .anticon-caret-up { - // color: @red-6; - // } - // .anticon-caret-down { - // color: @green-6; - // } - // } - } - } -} \ No newline at end of file diff --git a/src/src/components/OperationalInformation/index.vue b/src/src/components/OperationalInformation/index.vue deleted file mode 100644 index 8750e81..0000000 --- a/src/src/components/OperationalInformation/index.vue +++ /dev/null @@ -1,72 +0,0 @@ - - - - - diff --git a/src/src/components/Selector/employeeSelectorPlus.vue b/src/src/components/Selector/employeeSelectorPlus.vue deleted file mode 100644 index 0c1767d..0000000 --- a/src/src/components/Selector/employeeSelectorPlus.vue +++ /dev/null @@ -1,401 +0,0 @@ - - - - - diff --git a/src/src/components/Selector/iconMobileSelector.vue b/src/src/components/Selector/iconMobileSelector.vue deleted file mode 100644 index 9e78944..0000000 --- a/src/src/components/Selector/iconMobileSelector.vue +++ /dev/null @@ -1,145 +0,0 @@ - - - - diff --git a/src/src/components/Selector/iconSelector.vue b/src/src/components/Selector/iconSelector.vue deleted file mode 100644 index 3a88994..0000000 --- a/src/src/components/Selector/iconSelector.vue +++ /dev/null @@ -1,161 +0,0 @@ - - - - diff --git a/src/src/components/Selector/iconSelector_README.md b/src/src/components/Selector/iconSelector_README.md deleted file mode 100644 index 265ecfa..0000000 --- a/src/src/components/Selector/iconSelector_README.md +++ /dev/null @@ -1,48 +0,0 @@ -iconSelector -==== - -> 图标选择组件,常用于为某一个数据设定一个图标时使用 -> eg: 设定菜单列表时,为每个菜单设定一个图标 - -该组件由 [小诺开源技术](https://www.xiaonuo.vip) 封装 - - - -### 使用方式 - -```vue - - - -``` - - - -### 事件 - -| 名称 | 说明 | 类型 | 默认值 | -| ------------ | -------------------------- | ------ | ------ | -| iconCallBack | 当改变了 `icon` 选中项触发 | String | - | - -### 方法 - -| 名称 | 说明 | 类型 | 默认值 | -| --------- | --------------------------------------- | ------ | ------ | -| showIconModal | 打开选择器Model触发,携带图标时默认选中 | String | - | diff --git a/src/src/components/Selector/lineSelectorPlus.vue b/src/src/components/Selector/lineSelectorPlus.vue deleted file mode 100644 index 00a0a81..0000000 --- a/src/src/components/Selector/lineSelectorPlus.vue +++ /dev/null @@ -1,222 +0,0 @@ - - - - - diff --git a/src/src/components/Selector/materielSelectorPlus.vue b/src/src/components/Selector/materielSelectorPlus.vue deleted file mode 100644 index 6779134..0000000 --- a/src/src/components/Selector/materielSelectorPlus.vue +++ /dev/null @@ -1,177 +0,0 @@ - - - - - diff --git a/src/src/components/Selector/orgSelectorPlus.vue b/src/src/components/Selector/orgSelectorPlus.vue deleted file mode 100644 index fb512cf..0000000 --- a/src/src/components/Selector/orgSelectorPlus.vue +++ /dev/null @@ -1,400 +0,0 @@ - - - - - diff --git a/src/src/components/Selector/posSelectorPlus.vue b/src/src/components/Selector/posSelectorPlus.vue deleted file mode 100644 index 8a695e5..0000000 --- a/src/src/components/Selector/posSelectorPlus.vue +++ /dev/null @@ -1,395 +0,0 @@ - - - - - diff --git a/src/src/components/Selector/roleSelectorPlus.vue b/src/src/components/Selector/roleSelectorPlus.vue deleted file mode 100644 index 31d5c25..0000000 --- a/src/src/components/Selector/roleSelectorPlus.vue +++ /dev/null @@ -1,448 +0,0 @@ - - - - - diff --git a/src/src/components/Selector/userSelectorPlus.vue b/src/src/components/Selector/userSelectorPlus.vue deleted file mode 100644 index a0a0496..0000000 --- a/src/src/components/Selector/userSelectorPlus.vue +++ /dev/null @@ -1,407 +0,0 @@ - - - - - diff --git a/src/src/components/ShortcutCard/index.vue b/src/src/components/ShortcutCard/index.vue deleted file mode 100644 index c3ab6b1..0000000 --- a/src/src/components/ShortcutCard/index.vue +++ /dev/null @@ -1,84 +0,0 @@ - - - - - diff --git a/src/src/components/Table/README.md b/src/src/components/Table/README.md deleted file mode 100644 index 94d51e1..0000000 --- a/src/src/components/Table/README.md +++ /dev/null @@ -1,375 +0,0 @@ -Table 重封装组件说明 -==== - - -封装说明 ----- - -> 基础的使用方式与 API 与 [官方版(Table)](https://vuecomponent.github.io/ant-design-vue/components/table-cn/) 本一致,在其基础上,封装了加载数据的方法。 -> -> 你无需在你是用表格的页面进行分页逻辑处理,仅需向 Table 组件传递绑定 `:data="Promise"` 对象即可 - -该 `table` 由 [@Saraka](https://github.com/saraka-tsukai) 完成封装 - -由 `小诺技术团队` 完成Vue3升级并二次封装改进 - -例子1 ----- -(基础使用) - -```vue - - - - -``` - - - -例子2 ----- - -(简单的表格,最后一列是各种操作) - -```vue - - - -``` - - - -内置方法 ----- - -通过 `声明的ref去调用 ==> tableRef.value` 调用 - -`tableRef.value.refresh(true)` 刷新列表 (用户新增/修改数据后,重载列表数据) - -> 注意:要调用 `refresh(bool)` 需要给表格组件设定 `ref` 值 -> -> `refresh()` 方法可以传一个 `bool` 值,当有传值 或值为 `true` 时,则刷新时会强制刷新到第一页(常用户页面 搜索 按钮进行搜索时,结果从第一页开始分页) - - -内置属性 ----- -> 除去 `a-table` 自带属性外,还而外提供了一些额外属性属性 - - -| 属性 | 说明 | 类型 | 默认值 | -| -------------- | ----------------------------------------------- | ----------------- | ------ | -| alert | 设置是否显示表格信息栏 | [object, boolean] | null | -| showPagination | 显示分页选择器,可传 'auto' \| boolean | [string, boolean] | 'auto' | -| data | 加载数据方法 必须为 `Promise` 对象 **必须绑定** | Promise | - | -| lineSelection | 是否开启点击行高亮显示并选中 | Boolean | 'false' | - - -`alert` 属性对象: - -```javascript -alert: { - show: Boolean, - clear: [Function, Boolean] -} -``` - -注意事项 ----- - -> 你可能需要为了与后端提供的接口返回结果一致而去修改以下代码: -> (需要注意的是,这里的修改是全局性的,意味着整个项目所有使用该 table 组件都需要遵守这个返回结果定义的字段。) -> -> 文档中的结构有可能由于组件 bug 进行修正而改动。实际修改请以当时最新版本为准 - -修改 `@/components/table/index.js` 第 348 行起 - - - -```javascript -const data = reactive({ - needTotalList: [], - localLoading: false, - localDataSource: [], - localPagination: Object.assign({}, props.pagination), - isFullscreen: false, - customSize: props.compSize, - columnsSetting: [], - localSettings: { - rowClassName: props.rowClassName, - rowClassNameSwitch: Boolean(props.rowClassName) - } - }) - -// 这里的 data.xxx 是之前声明的 -// 在 loadData() 方法中去获取后端数据,进行一个数据的加载更新 -result.then((r) => { - if (r == null) { - data.localLoading = false - return - } - // 获取分页数据及分页的显示内容 - data.localPagination = - (props.showPagination && - Object.assign({}, data.localPagination, { - current: r.current, // pageNo, // 返回结果中的当前分页数 - total: r.total, // totalRows, // 返回结果中的总记录数 - showSizeChanger: props.showSizeChanger, - pageSizeOptions: props.pageSizeOptions, - showTotal: (total, range) => { - return `${range[0]}-${range[1]} 共 ${total} 条 ` - }, - pageSize: (pagination && pagination.pageSize) || data.localPagination.pageSize - })) || - false - - // 后端数据records为null保存修复 - if (r.records == null) { - r.records = [] - } - - // 为防止删除数据后导致页面当前页面数据长度为 0 ,自动翻页到上一页 - if (r.records.length === 0 && props.showPagination && data.localPagination.current > 1) { - data.localPagination.current-- - loadData() - return - } - - try { - // 当情况满足时,表示数据不满足分页大小,关闭 table 分页功能 - // 没有数据或只有一页数据时隐藏分页栏 - // if ((['auto', true].includes(props.showPagination) && r.total <= (r.pages * data.localPagination.pageSize))) { - // data.localPagination.hideOnSinglePage = true - // } - if (!props.showPagination) { - data.localPagination.hideOnSinglePage = true - } - } catch (e) { - data.localPagination = false - } - - // if (props.showPagination === false) { - // // 既然配置了不分页,那么我们这里接收到肯定是数组 - // console.log(r); - // data.localDataSource = [] - // if (r instanceof Array) { - // data.localDataSource = r - // } - // } else { - // data.localDataSource = r.records - // } - - // 返回结果中的数组数据 - data.localDataSource = r.records - data.localLoading = false - getTableProps() - }) -``` -返回 JSON 例子: -```json -{ - "message": "", - "result": { - "data": [{ - id: 1, - cover: 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', - title: 'Alipay', - description: '那是一种内在的东西, 他们到达不了,也无法触及的', - status: 1, - updatedAt: '2018-07-26 00:00:00' - }, - { - id: 2, - cover: 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', - title: 'Angular', - description: '希望是一个好东西,也许是最好的,好东西是不会消亡的', - status: 1, - updatedAt: '2018-07-26 00:00:00' - }, - { - id: 3, - cover: 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', - title: 'Ant Design', - description: '城镇中有那么多的酒馆,她却偏偏走进了我的酒馆', - status: 1, - updatedAt: '2018-07-26 00:00:00' - }, - { - id: 4, - cover: 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', - title: 'Snowy', - description: '那时候我只会想自己想要什么,从不想自己拥有什么', - status: 1, - updatedAt: '2018-07-26 00:00:00' - }, - { - id: 5, - cover: 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png', - title: 'Bootstrap', - description: '凛冬将至', - status: 1, - updatedAt: '2018-07-26 00:00:00' - }, - { - id: 6, - cover: 'https://gw.alipayobjects.com/zos/rmsportal/ComBAopevLwENQdKWiIn.png', - title: 'Vue', - description: '生命就像一盒巧克力,结果往往出人意料', - status: 1, - updatedAt: '2018-07-26 00:00:00' - } - ], - "pageSize": 10, - "pageNo": 0, - "totalPage": 6, - "totalCount": 57 - }, - "status": 200, - "timestamp": 1534955098193 -} -``` - - - -更新时间 ----- - -该文档最后更新于: 2023-12-27 PM 16:45 diff --git a/src/src/components/Table/columnSetting.vue b/src/src/components/Table/columnSetting.vue deleted file mode 100644 index 3dbd5f0..0000000 --- a/src/src/components/Table/columnSetting.vue +++ /dev/null @@ -1,124 +0,0 @@ - - - diff --git a/src/src/components/Table/index.vue b/src/src/components/Table/index.vue deleted file mode 100644 index 58a9602..0000000 --- a/src/src/components/Table/index.vue +++ /dev/null @@ -1,672 +0,0 @@ - - - diff --git a/src/src/components/TagModal/index.vue b/src/src/components/TagModal/index.vue deleted file mode 100644 index ca2eec0..0000000 --- a/src/src/components/TagModal/index.vue +++ /dev/null @@ -1,83 +0,0 @@ - - - - - diff --git a/src/src/components/TreeSelect/menuTreeSelect.vue b/src/src/components/TreeSelect/menuTreeSelect.vue deleted file mode 100644 index a07098f..0000000 --- a/src/src/components/TreeSelect/menuTreeSelect.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - diff --git a/src/src/components/Trend/Trend.vue b/src/src/components/Trend/Trend.vue deleted file mode 100644 index c70fa98..0000000 --- a/src/src/components/Trend/Trend.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - - diff --git a/src/src/components/Trend/index.less b/src/src/components/Trend/index.less deleted file mode 100644 index 8a3d24c..0000000 --- a/src/src/components/Trend/index.less +++ /dev/null @@ -1,42 +0,0 @@ -@import "../index"; - -@trend-prefix-cls: ~"@{ant-pro-prefix}-trend"; - -.@{trend-prefix-cls} { - display: inline-block; - font-size: @font-size-base; - line-height: 22px; - - .up, - .down { - margin-left: 4px; - position: relative; - top: 1px; - - i { - font-size: 12px; - transform: scale(0.83); - } - } - - .item-text { - display: inline-block; - margin-left: 8px; - color: rgba(0,0,0,.85); - } - - .up { - color: @red-6; - } - .down { - color: @green-6; - top: -1px; - } - - &.reverse-color .up { - color: @green-6; - } - &.reverse-color .down { - color: @red-6; - } -} \ No newline at end of file diff --git a/src/src/components/XnBatchButton/index.vue b/src/src/components/XnBatchButton/index.vue deleted file mode 100644 index 1fa17b8..0000000 --- a/src/src/components/XnBatchButton/index.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - diff --git a/src/src/components/XnBatchDelete/index.vue b/src/src/components/XnBatchDelete/index.vue deleted file mode 100644 index f4023ef..0000000 --- a/src/src/components/XnBatchDelete/index.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - diff --git a/src/src/components/XnCardList/README.md b/src/src/components/XnCardList/README.md deleted file mode 100644 index e1b17a1..0000000 --- a/src/src/components/XnCardList/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# 小诺卡片列表的组件 - -## 说明 - -### props定义 - -| 序号 | 编码 | 类型 | 说明 | 示例 | -|----|------------|---------|--------|------------------------| -| 1 | grid | Object | grid布局 | 见:and-design定义(Grid栅格) | -| 2 | dataSource | Array | 数据源 | 见:dataSource字段定义 | -| 3 | page | Object | 分页 | 见:page字段定义 | -| 4 | actions | Array | 操作数组 | 见:action字段定义 | -| 5 | loading | Boolean | 加载中提示 | - | - -> dataSource字段定义 - -| 序号 | 编码 | 类型 | 说明 | 示例 | -|----|----------|--------|-----------------|---------------| -| 1 | title | String | 标题 | 设备编码 | -| 2 | subTitle | String | 副标题 | 设备名称 | -| 3 | img | String | 图片 | | -| 4 | contents | Array | 内容 | 见:content字段定义 | -| 5 | badge | Object | 徽标 | 见:badge字段定义 | -| 6 | record | Object | 数据记录,emit触发回调参数 | | - -> content字段定义 - -| 序号 | 编码 | 类型 | 说明 | 示例 | -|----|-------|--------|----|------| -| 1 | label | String | 标签 | 所属产品 | -| 2 | value | Object | 值 | 透传 | - -> badge字段定义 - -| 序号 | 编码 | 类型 | 说明 | 示例 | -|----|-------|--------|----|------------------------| -| 1 | text | String | 标签 | 所属产品 | -| 2 | color | String | 颜色 | 见:ant-design定义(预设、自定义) | - -> action字段定义 - -| 序号 | 编码 | 类型 | 说明 | 示例 | -|----|-------|--------|----|---------| -| 1 | key | String | 键 | setting | -| 2 | label | String | 标签 | 所属产品 | -| 3 | icon | String | 图标 | setting | -| 4 | color | String | 颜色 | red | - -> page字段定义 - -| 序号 | 编码 | 类型 | 说明 | 示例 | -|----|---------|--------|------|----| -| 1 | current | Number | 当前页 | 1 | -| 2 | size | Number | 每页大小 | 6 | -| 3 | total | Number | 总数 | 0 | - -### emits定义 - -| 序号 | 方法名 | 参数类型 | 参数示例 | -|----|-------------|--------|-----------------------------| -| 1 | action | Object | {key: 'edit', record:{...}} | -| 2 | page-change | Number | 1 | diff --git a/src/src/components/XnCardList/index.vue b/src/src/components/XnCardList/index.vue deleted file mode 100644 index 44844c5..0000000 --- a/src/src/components/XnCardList/index.vue +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - diff --git a/src/src/components/XnContextMenu/index.vue b/src/src/components/XnContextMenu/index.vue deleted file mode 100644 index 3264afc..0000000 --- a/src/src/components/XnContextMenu/index.vue +++ /dev/null @@ -1,82 +0,0 @@ - - diff --git a/src/src/components/XnDataList/README.md b/src/src/components/XnDataList/README.md deleted file mode 100644 index e016364..0000000 --- a/src/src/components/XnDataList/README.md +++ /dev/null @@ -1,67 +0,0 @@ -# 小诺数据列表的组件 - -## 说明 - -### props定义 - -| 序号 | 编码 | 类型 | 说明 | 示例 | -|----|------------|---------|-------|------------------| -| 1 | dataSource | Array | 数据源 | 见:dataSource字段定义 | -| 2 | page | Object | 分页 | 见:page字段定义 | -| 3 | actions | Array | 操作数组 | 见:action字段定义 | -| 4 | loading | Boolean | 加载中提示 | - | - -> dataSource字段定义 - -| 序号 | 编码 | 类型 | 说明 | 示例 | -|----|--------------|--------|-----------------|-------------------| -| 1 | title | String | 标题 | 设备编码 | -| 2 | descriptions | Array | 描述 | 见:description字段定义 | -| 3 | contents | Array | 内容 | 见:content字段定义 | -| 4 | record | Object | 数据记录,emit触发回调参数 | | - -> description字段定义 - -| 序号 | 编码 | 类型 | 说明 | 示例 | -|----|---------|--------|----|------| -| 1 | title | String | 标题 | 设备名称 | -| 2 | content | Object | 内容 | 测试设备 | - -> content字段定义 - -| 序号 | 编码 | 类型 | 说明 | 示例 | -|----|---------|--------|----|---------------------| -| 1 | title | String | 标题 | 数据更新时间 | -| 2 | content | Object | 内容 | 2023-11-14 09:00:00 | - -> action字段定义 - -| 序号 | 编码 | 类型 | 说明 | 示例 | -|----|-------|--------|----|---------| -| 1 | key | String | 键 | setting | -| 2 | label | String | 标签 | 所属产品 | -| 3 | icon | String | 图标 | setting | -| 4 | color | String | 颜色 | red | - -> page字段定义 - -| 序号 | 编码 | 类型 | 说明 | 示例 | -|----|---------|--------|------|----| -| 1 | current | Number | 当前页 | 1 | -| 2 | size | Number | 每页大小 | 6 | -| 3 | total | Number | 总数 | 0 | - -### emits定义 - -| 序号 | 方法名 | 参数类型 | 参数示例 | -|----|-------------|--------|-----------------------------| -| 1 | title | Object | {record: {...}} | -| 1 | action | Object | {key: 'edit', record:{...}} | -| 2 | page-change | Number | 1 | - -### slots定义 - -| 序号 | 名称 | 说明 | 示例 | -|----|--------------|--------|----| -| 1 | title-prefix | 标题前缀插槽 | - | -| 2 | title-suffix | 内容后缀插槽 | - | diff --git a/src/src/components/XnDataList/index.vue b/src/src/components/XnDataList/index.vue deleted file mode 100644 index 07beb9a..0000000 --- a/src/src/components/XnDataList/index.vue +++ /dev/null @@ -1,188 +0,0 @@ - - - - - diff --git a/src/src/components/XnEditor/index.vue b/src/src/components/XnEditor/index.vue deleted file mode 100644 index f04a984..0000000 --- a/src/src/components/XnEditor/index.vue +++ /dev/null @@ -1,125 +0,0 @@ - - - - diff --git a/src/src/components/XnFilePreview/README.md b/src/src/components/XnFilePreview/README.md deleted file mode 100644 index 0e82169..0000000 --- a/src/src/components/XnFilePreview/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 小诺文件预览的组件 - -## 说明 - -该组件支持图片、PDF、OFFICE、WORD在线预览,其他类型的不支持 - -## 使用 - -使用的时候直接在界面引入即可,配置相关参数就能行 diff --git a/src/src/components/XnFilePreview/index.vue b/src/src/components/XnFilePreview/index.vue deleted file mode 100644 index f8af5d4..0000000 --- a/src/src/components/XnFilePreview/index.vue +++ /dev/null @@ -1,128 +0,0 @@ - - - - - diff --git a/src/src/components/XnFormContainer/index.vue b/src/src/components/XnFormContainer/index.vue deleted file mode 100644 index ef29a45..0000000 --- a/src/src/components/XnFormContainer/index.vue +++ /dev/null @@ -1,49 +0,0 @@ - - - - diff --git a/src/src/components/XnHighlightjs/index.vue b/src/src/components/XnHighlightjs/index.vue deleted file mode 100644 index 33d44fa..0000000 --- a/src/src/components/XnHighlightjs/index.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - - - diff --git a/src/src/components/XnOrgSelector/README.md b/src/src/components/XnOrgSelector/README.md deleted file mode 100644 index 47d6aa0..0000000 --- a/src/src/components/XnOrgSelector/README.md +++ /dev/null @@ -1,36 +0,0 @@ -## 小诺机构选择器 - -### 说明 - -改组件为小诺机构选择器,可返回id用逗号隔离的字符串或id数组类型的数据格式 - -@author yubaoshan - -@data 2024年7月5日23:59:23 - -### props定义 - -| 序号 | 编码 | 类型 | 说明 | 默认 | -|-----|-------------------------|---------------|------------------------------|--------| -| 1 | radioModel | Boolean | 是否单选;与addShow隐藏同时可用 | false | -| 2 | dataIsConverterFlw | Boolean | 是否为工作流格式 | false | -| 3 | orgTreeApi | function | 机构树接口 | - | -| 4 | orgPageApi | function | 机构分页接口 | - | -| 5 | orgListByIdListApi | function | 通过id数组查询list数据接口 | 已配置 | -| 6 | value | object或string | 通过v-model:value绑定数据 | - | -| 7 | dataType | string | 数据类型object或string | string | -| 8 | show | Boolean | 是否显示已选择机构(非表单内、单纯的选择机构需要隐藏) | true | -| 9 | addShow | Boolean | 是否默认的增加人员按钮,与radioModel为或的关系 | true | - -### emits定义 - -| 序号 | 方法名 | 参数类型 | 说明 | -|----|--------|----------------|---------------------------------| -| 1 | value | 根据 dataType 而定 | 当选择机构后通过v-model:value绑定到组件上 | -| 2 | onBack | 根据 dataType 而定 | 通过@onBack 方法返回选中的数据,触发点为选中或删除机构 | - -### slot定义 - -| 序号 | 插槽名 | 用途 | 用途 | -|----|--------|-------------------|-------------------| -| 1 | button | 在机构新增按钮后可以插入自定义按钮 | 不满足新增机构按钮样式,可以自定义 | diff --git a/src/src/components/XnOrgSelector/index.vue b/src/src/components/XnOrgSelector/index.vue deleted file mode 100644 index c5df64e..0000000 --- a/src/src/components/XnOrgSelector/index.vue +++ /dev/null @@ -1,579 +0,0 @@ - - - - diff --git a/src/src/components/XnPageSelect/README.assets/分页下拉查询展示.gif b/src/src/components/XnPageSelect/README.assets/分页下拉查询展示.gif deleted file mode 100644 index be201025b649acd44d614899b8d944f091d03378..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461247 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 #jkwWjU@Ft?5 zU{J>u-b7;Si%W0T-M9DSBbl6w-86znp~phZ#c}fBhhA|Z0tQkjm^CUb?EdE?5u*_F z*~doMd?*WP?Bb-J;0H>0Y_q}BN(D3^QhO;V`t3Tq70=Hjdo*xZL(g3YHmPzAZ0whc z5%BB7Q!5dOXZjSOMee6`;m&Ry-t_0uG@oxp{ziUbhH8PSpSI<&3=J$Lv_5g;MfGN@<(SnOq%;^pV(@LoAdsxjtp^^9&Yx8H$%D1@`FXuUKp5 zUq*Zgj#3V`B4Fe7V=YQj-zti4E6rGbBFVB$lk~YjBLsd_5W|GYRky_HgnHAy1%mL= zp{h2$tK6JE)Uthkvi8ikthiE>LnAB(v)CeJP}!t9)+H?ZZqrM>D8?}Blqw2LqDKxj z_Eu359B$Rz&Yq4qk%1n4O65rV2+V!wox1(|&er(*g?Od0iYKhrjr$HpOyLe8)f!+3 zHZPcHtNxw5!_oqmkAp}|mFKXaPk=@F`MQyZW9RW;$T)u}=6dHhU1PhTYp*XVSSX1` z>(CKkuOC7V7Kt@&6_##8zOS5_hVDJkD#!a!f$?)no`8U#gCj9JVbf<}B1Ea|16$CW z>QDkQdJTN6IG?ti>Xw?*UN%pRirj0W_7)gx>jR8q+$PRNupi_zJ_Ci&v%7KhMJ=t4 zGSBisCP=d)LNEv4S2W4e5ZzgN_~6#P*~2jo@lO~8 z`IBAVOIZ0JD`*HVU7u4UVJHNBup7P97J8ix0Z}*z!4?H}HBBJkVkr~`CKE)yJ0C&W z27y;w(9xLm5g2jNU37?dHEnk)@;)AiOY#^VFGaG6rmxyBjcQ>POTtRln$F6ikQr)ClFx~Wqhi%Bx=?P|)xLk^Oc-9j z5%vtlD%csNQV-Gc!>Z{^%4Znib|A&&>l@juy^FG6+S?0b3UF>un{bOw7bb)V7Smo= zY*I8*O>LpiKUYO?!g|#o4maiTVzM3AIV#r7Ca0HCDPEs>r0B0CR7@q|s6|N(6wen+ z;omRa{E5i3m{p-~iCvddA*_3Mij9I(BUDTLDXcR~Yce?zdRR`cn6e!$P930k5;60V zG@EqFVx%#I2YOly7=V+YV8opoZ72rycac6f^HRIxeS0;_x`Yjv>CwQG(WktS8^QedWU(J~a6*TVV}ltiLyTh@f^ z&z;%L8!J(Zlkatyqoj*Q1x*gGTX!xNj}9&>v5~sz<&Boi(^IP~OmY-geZOvtFBdax z$bqA^qcf|jEwHFod7@H-w#~9o^(=|PpgvJ(-9Fu@%$!A3CB%7cP-{ymBgeC%;s=2! zPLm$7Vz9|7HleO5_L!#aK_wAMeYoeGLP4P_-4Nl|Fw&19LZ`TmHCS}X!W3ML=$ z<`O!KI7U+qjdKY@d~cCb-U}{LMp5T@lvj1pCJ8E_pTA?b<`VKeMCnw#M|(8LpuUs+ zCJR+EV^4oe{jNj0(I@p_wMb=Ov(SFS< z;6OnH;Bp86us2#zI1EOBfk{kANJ~b>2v}2e^qefLfba&*Q`Ub|oaGU^zIWjUbIwl@qE@x+Fmz0zMoXy6jr)_QR-Q7Je`UVGwh9)Pce}R=Z zH!rEm|2q&w^I^WKag+awIca4*w2- z1M4B5UW56_-S(8OY5{-%_$B!PUn&&${vXv(j^X0k8mU3zw)g{U{K2kMVSX9mtPRb#o_TShrY%Pwy_j-Hh`iHS z&d3#EeHjgwMIgv*BchhtWY^QPZ!f`2rDQ+MnO``9sH6`NgMyqXrK;qz_RI84r!+g1 zK6c%LvajOQ#E%fzMOL-0Iq3q38NTJ=3v3H>p3eum-UpM}PtU$!_T1u$NHFnNT`#%--#llUm6k!T4MUPj0#x0z*t2{K+cD5b~lW7ciHmowqCY*W&( z0_ryUD26eGwflM<=xd(T-)$D|606clBWE1+dtjsz?e8Ne!QQrLa1^K)?B)}YlKpf7 zgE<#TO=hXih$*^m@x(vPrb6%Mg*+%IF5JJwaX6I(k}Ia`=BNsd0wK|f*}8)>ooQGK z%3i-g9@ek?@hZ%*~47*mRzjIy)z1}U@NSg@sZ?s-B5aSsbDaZ zpLuuA$a#TddzZ%y+V>__+EGfv;7P4dlgu+wSPUZ<`j;Y@VM zC(r0!Su-NGHNS5o<|JpQ;Uoy3B0B*ex7i4^#J$R}Z$DuBfoMi1(j%sek>*i!*r;yw zQ*>&NvX0sl3phNXWfsj(cs;vSz!FJ?mShoG#F$TOn9Wy@JERe=vs1$t08I{F`~KtjquM$P~T12YRBJG;xVyNxw6wIcy}kWA6#GBcfPemnfGVi{lPU=Ry(&mUFvb0-lrF>KY}yoD_*%ah z4)X>fC4(84-e+`!txB$xXENC(Lh))XvD4&3Z))rn59ZxgjxvMm(u*iU&YR-XawGT=q$;0pFv#d$!($_h;|=LU zV9-RVFF6&^p~KOry;wSeJ#C)lUMF?wqNspjF;W?@i9=*Ia4I9mTzA^S5U@v&=4#@4 z_`@cO;?>*Y@mhB_Q}wNC)k2P)iar>6Ug!k`mWS`l241YsQ}ji(GNEy3AiF^xYo{~( zzKddk?=T1z2c~?d3tAVPYlm27rSPQOMqTAo?NZ=C2a*&z3!0P^mGBYzP(2t)(|gM5JNF&NC@;cpP|A zP)f!8U@&tK5}8-+2rKst^|&zHKqtyvven|n44aFFz)muK)2J1D(OA$7~U4tW@l=~Wew6|xS7#p9mMCQ^P(D}3Qlcvja>VP%pMw)>UJBOMy< zlUwaj7{uTBT}iGAWA%uoCoNy7+7;Ge`AN!9g)wTipCr`O*#V+(TCb&`(wPbC$#8CX zkEX9->?+MO!uza)Mo|b1yL%0XP8Q#-#>l~`=swZAd%0~s>2KFq+-g{Y6i@y;Rk&Ol z8{q!769p#vHKT+6Ix<{VIRKNbzls9|CEagv;QCV>R8&+Hm300=8~{=`APyNB8HI&~ zfH>6D08MAjfH(jogZ}=0KpX(e0#JruarrAu!T%;x^{)~Eh{NrF6bB{-<@vq83`P_Z z31qdtEB+FPN(nNpkHc3Rr8D&e&!+T*V)oshS)rokDx#~apUOfWxZ`4nhrx#{M~1O|)|3^aN+CxatH2K|Epq)#H3}l?B~C(r zcVCYJ!z95g?*W5^f>B2G+T_YZS~)MUyV}bP4dcAq?4}Q6UEp~#Ti)%ty5tEZlupGC zh7=FsNf~QKg+1(_ikg*1*Ufk#6h^VcIul@+jU(%%oTDV0_5JxSVSS6HoSD_~IC6jE zI268D8C$U`x-Gr-ccqfa2p#Y_@na=rA`a)dq)dam!b0m-GL7r$BsQaC9ConqACVje zk4#x9A?L+qRsydYZuY6SmYjvF|2=?pj4Fl%Nz*CkHxRH23 z;lMW~CMG6u{{Y3BO4KmmwlOm^10JRR{{FumM4)FAxN{N{6M;LYprD|tstUMm0H^Rz zDDu*;g1}!pnj_EqM}QJ#;FtdXH*ekm>nDF_`(15e0%e-NN&$hb6yP=kngD@1!2g-0 z2i!;&|8OG(gBW_F5K9HWM&rM-HuMpHK4odD%P%L4yjBma*{_x_wZ~o$H3G|*2ww;_ z@RU_4kO$7*mH6zJ%a^!b0H}DP;1X19^au7aILZqQ+IOS10!R_u_sOO#+cCKPFXvF9Ya(du}aQJRwrwCkA3JLnk zf#=Nn=6SO_*+5U-2d`u?a~c`^C_D29-`HF41}##vX856o^m7Ba<)jv^c5buY^`(F9 zi^N>l{Ur5}t@8LTa*mHI1Iqdgk?TpoUH-ueH=z|0o+#Fh7m<|8mf?Zr4;+c<1^2*^ zV`4$87>$6ILinhK0t!x3P6|nd2k+%ceOgG*M$(ZjS%eLGE3U?o+_YVg!DpMIviU&G z9{d1Djx;w+^LS<^Wi(pJA_L&&BQXtq%FWYpFgHSiKNpZYcuJ@nWq2Sq*vSK?g#3_U zG}ElzQhetQj<#>T6_^p{{!2)|VT+4s)MFw3n4+RD^f9IGWE7tmA?PlH1yJBHVQ;Gg z@n=f)%-!0_<1MFPD||wuP+aN-!D1+DF;-f70(al>g_4_n)EvxHUdkH}EwT2xup ziI0TggX&sG`w)Uk42wo5+#vD-d>OobD~aCpDz81IAWoDxF1vX&w#Ux?TdRofmGoVA z1a(A-f>mJBSDI zaI&L*6L{zNWI#{ej5nYp#O2HKUskg(pR!F;uHSasKGlBv{Pg7Ww=dmrp6`3D&_ABM zQ~;Ens~1EK!T^zg!T`azY~}@iW)~M1X9p^IrTA$9sQ|>_uWg}M0x${GLVsQ!`BnG% zZ{FVs6%Ym*NCS-Q!9?I=Dh}3#1V>;3jkRMT*JSDF9GqrzgG@k4f_{dj4;j6$iL@eNbs$Mg#QaJhQCE0MhGkS=w8pi z;9@wKh=Ru;f8k<~{9m~k%Y?tV82W@dwev4l*Wc>%curtv)+dk(c%+z7>mKTjJqjEY z{t@v{-RcIaV1aR4} zQZFuUn$4fOe;s@%Kzgf7;@kd6tJMVl3!k|8nS;-6J(m5LlsCdyrgSBDP}0aH>7&Jv zp))C}P@LgU`2mDl2D#e3T_VKS#Qi2iaRo;6L&MKznrX4V*CRu)gxy5)b?KRSdvGO@ zQ*<7rmVS$#D>ZQ1XfgHH9DgF^jTa6)PnYNem?tM*V6t`4F{f~SKC-+=Z@mP8A(DNq z5;ogOsY5L|POZWv8X{Rx{UaK^SprgzLvhu{!e3x&&C-=%`E}qe=`1KQXW^JkB9=p( zjH2wr#gjLS^7kd9%&xgUQ-Ve-K9jP`aha(r#F3mfhvI6sAU0AL@s$~!$y>xN0%962 z*jb_pKDTWYXs_YPV(`bE>Xb0|(Q%fU?ME||-}$@=(G6BEt1J*v#{5tfS(&l%cx*`F zW8yCRV8Iizu{~Q10c;g6{qF@xR$O5XcIL)%nRBkHtqKR4BGGgE-6}nYSG&!smK!>* z;)8h3xa+x9skz^iFzHfDl_#n*4lvJb{3gCu6$PU4x7ReCYW2%TW%-ms+c1lo@8vrjDk{82YTSM9jpXj@X&C9gy2iS&e zW)Iw+r2L>O9`_C6Bi|W*n451jGi7gKCDc7;@`Zxyfy0w#=nD|0-?5Xsu@DH#iFcuR z*Ae4Wj{bX{9u_|x=xMj_Krn3r>9RKY=Qi!=le*K7okMZ{`l+0YC+j8BxaYb#fj7_X z3iH%;H%qH-8gA7xa??OL`WDG9K^uX3lGxoeyPd2oB!&X%qhlI_tWUnHf$LgBA;erf zKMuzk@1|e~?74+t{0)ip@$tQ%XB$~`-GQQ9bTa3EAdz@}V$j4p1IWvhyFbsr)b~KX zD*(t#w}&%WX8Irlx*6W3;A=YhXpPWrY7hu5?VuY?q&%z7&>+qy3!*&? zhHB-@;HB?{Ke7OUZni?8r};3ZumW7xRV2wN2z=xFE8L5Se?lTDdP#%nP!Kkw{TPGS zg(R(Qa%I36#T>hcY(ViPe{WayVScQPjv`X!cj&34{+zRQ<>t%{I&sLXfPq zBL#N`P<%x7w|QixStI?F<%QRhJd2R5SVOOPXud{89|kkrHW<>>(@NFalwudEQ#Qq| zPwJfSVOKGfa~vahT;a8bD~=p#SJTQ&L@U9f!%)+;)Pi=Yej<73&}WWIC>0h{iau&6 zr=q8wbi>?MB2Ve!^_>WUJh^eCZj+&$Cq;dduCz4cW9HZ8WZF4+x(qkIu&WZOdOT8> z24k9RLSp5^VLjH$0+JYNBocIK7bZ+xj2NR%g&tW@myarQ6^db7U$csx9proi`l8pH z3Lkl~sPH&w;cjR_bB)%R9*b!`fJ9|1^+~fkIgFIE)F%<;7vmdNC?)IZWNH+!-Wf2G z%fr=7&TnGF@`{Gwq%5&kJ^gap{_)NtoG8 z?(=Flh_{rfIWQPSw(H$#Z!T4R$H4&R)T$M>Nh=($lKIB2;iarqrNL||q3Zx`<<`v4 z3}>+@`8qmqAv0c`bSP~U>KKY^GFjN&Z*P#%amP3yIg4I#Q-U*NUS+Z&?XAS7u&Mu4 zkkM`En%A1coa5ZUN}7g~?zU!X^xM>q!`xWaU0qspoeC`^bWGAo(0=uwOWMor4@cex~ZgaVU+Ll(<`FOc{bEW>smR{%iL|wwa9HXf1 zSWcs#OWd*j>8XhKU95Z`h%{x&;p)`BC71Y?Ve%@s9*(b=S2G0o{Lmwd7{ zU#YoLlm&XM+P1cTkQDQOoVA$HDAK-vU-Z6b+6VUok?sSQz2LH%C3F#rUc%bCaDi+C z+=qTS4BYz!non0|+C^U)7VXDBE?uR$z#fz}%Sd_@#Ltp_%il_?_G^FL)3s=SvDa|M zgA91-y6^?o8_(RwIS1dlZvsn(A>4{g@+|&C7bHEu*QpirdDWoaq2xk z*K4Rfs&?zz);|-Uu3|W@zf-bfn}|94{%1;aFI}D}KucacO|CLAc;DP$Y18 z1HjG_BM=+HjFmF*$Q~!{e7wehD!AG;f#!NOiW4i7P$=8g-i~W77UR#jPd3c zxt7+2w)PbcPPNRaB>J!x#;7jFxL#(|AaMM(iYhYCZ2>4`YPCPjbKhDPPS}*r+LkZa zRW8|Auf#GkqL`TC7;SPb=nJhGD(sn}ZLD%F%u8&n%k6Ee9qr>8<55hgT#NAdIHr~` z`t}Hht|-QqT=SY5hn_gbK@@X$tj*h8^X^ic$wJH7Qk#Wx+oejom1=w7#XLSf9^gX& zaER!xuHxuo-~b5JgaL;?z}5)DNeu?Mixa$hf_29A=3PLhYuN+-Lk z7he{RhLYCa7Ho|df1Rt?-0bS>>jO@d`S-g(sukklL!!$ zOXUl-9+o3xs2s1l%wu28BrYeFDrr0UcvgdMYKX$>xz;PLbZf0D9>!FHgVWVa0*b{F zT9RCOCx&bu!R&5>(DO4%~dqc zQ@MzLAT$Qqdtd+7#nrUygPQNo;1^eTqTW9L&?_$j5IEq(o0(O^6NJw8A=qcsS3&PI zzBo@&oy#o}azRX{AIOMrZ(*1)PJcJ(URxu^_k&iY?mc(^8W; z)n`8HYT+VE(oOpn?lL9$ozm+u6L=LWnm0tTNUJ9+q2lcpD~M^}n43jea>~S?q&x|9 z%JTHrGE(o^Iu6?F$vilN$Ijl)vPIGd#*--xWxronW<@3{|{%z)G2H{RD&yzQ?>hym8 zys>8qp;fJHo95V=YSA%VoBoSNrXSC8+3>t{awc<@#Ve*JKiw7+SBnI@6`<(R6-?&14?MpX$-V(hys zy>y+J=AE&3N*kJWZp=BJtH?p$>~fouoSFAXbUIlaWWNxhTnK_MX3d9)Odel?>`qtW zL_VLcqW(6iq{Y?y%cL^)p8B64J4V-lUo(j&yRQMi+!EA>H&<>+=a*j6d*AnS2myxa zYmp~yU*9P3bnTDcp^e7ZSAX(jXM*#={bQF8Ng$eO+RuZKgt~=3d?(s>XsZcKpl2)I zRH&cFr>%=!D{9k;r{^E6=J2=No_!Nr0eRbh_|_Eq>>>y5?#n9$Vi6@cuCGC!y)ys$ zY^4pVe#w$za30J;9*I)}MCNaust^kwN98Lwc} z^yUp2Q1-M8BN;Nruy`45#;?E6!QI6ht%!!2wU1?xFHF?{NkwXoCOCNy?5qRO6y$qh zROZ1N*m-CdhyjVu`^nLStIG*w7++HFM8i~jF>*ErZqK@h{KU$`7e9Nh9Dx6*&N++a zOWm-l+gCRxGj>-!K zIJ6#jNI&5{s;KA8)+tk-s5CmNG#IJWYaO1b4LC9iDxAAFy~?R{d)T?OH@&MjQ?Hvm zPX6J6arg-fQ$5Cz2b?3#x@yU*ki63&1aBR+ytg(j%3ctG;BX0EV zn#>j6=3X2=){CClwl?iFp4q~A(r-gR!{RSTLD7BlHL*2D!3~AY$vO>9PRQ$b}HDI7KpzlfJ+j<&6~6yc_&ozfW<) zEn2LH_5$?ziDS64&#O7}=@p-*)l}a2Td}JL3?d42lePp2$S|UrspnB9-Grii9~qvU zK9^x>NHXN2$Ltbq*o4&-zwt6UDirB;%h`*M$1;4=0q=Vw`Ssy@)s>6N?TdEcU}OUkQ!8o9n{$@AdP89PRn3H_^E6X|^1a5XIy1*?r%wf+ zx#!)VpBB$LGP5yy5)a2&rGUam=nt<|N|!q_iHJ;O79P55#u~G^WHhAe?dIP5VFVAH z>UrRD7=d}8S}sfeU1Zv!Gm6@wdAMV$^Zs5fZPgNI66drFFS7@>ft}#r@MDt)45)A!RF=3nB#JUjarY6Baz8)e?@}@+2IY+urj zUpq({AJ?R(avGCz?S8Fod9DAca=h%BdC!}ft)AoEe3v+`I>MGFGwK^NbGW|h#&a!m zyN69f)t&`KzLGIQoe4q<-tU_Q_fYC(+39xNlgJ*baV((L+oAkv zIVb4jw*UCRRbR#F$CpgWtPkJJNSKQKz!~X0tXf`hkkhozbqRjIWWs{6JoNb|7#79Y zLB_l%hDS!Jodz47y%@_D;HFQ7gXA|+^Vf=39%j>JYp2YB-DPIL>tPogY8R_&zG79w zaFrO=yKA2m^3JX0y4!HL@Xppp&KuUdelQ9aK%Goy{q0PgT6H&1i2aZtV)Bdw2{9`cxWBy5UkS;utevXP}ETqo-u@llgS;AdB~2`#3Gu657p|v@4$;M!&on zYr{jHZcke7aKq0DLpb~vTZqjghFLGU+k;3@se2YG5KIzk$7ae|7%{CNZ2$?BKXLXs zv6@eFv5oLD+aQTMzMuTk-8wx)VF~fY6YW?!B*V?)JH3J`8y@AwOJYidw<$Qx)ZM?J z6?AP7(fxECzQ4gcs;>m*ZdR>zhc>~KCiB{0uNa$OvqQTu^P$28@*z#dp zl;C(&6e5}P83fOh4%FmE!TQY@Kp%PA8}`#FZlwn{22LLhg?d?B z8G|87iQfjfe+(*9DuhGbA#q;jQ1V3Brf_UOf*lFdB?`ouVG#N%<8mNE+Kq9$8|?Ce z#hF2t$uOD4Kbb8fnWH_KYbKfdESa|=*>5!2jt;`*57oF>LWJ)@^vsjP>mal#U=chS z>^&Is3_4LhlvV>Ouatai4-~kBu)_ms>_H);kN6KC(OW-KY=_@Mf%)2#85~gctRmD7 ze)M8#7VT-yGik18Y5YUUk=+nMCXk6#vOVfP;}XJ?9L5w4l?Q>5O9*!ja45U1I~~{@ z4~-F(ZjMU!Z-2}d4MotUM>(XsDJ5GerP(;}kanYI@4@ZT)3OXROZ_v;GcqgNGplDZ zYtJ$nD>6Nnz$$nMh75E(^QCM6B%u(!Lo5<|d6=_#lqdujFAT>K!Qqx8 zF$zLZV94y{bt-`_hMUATP_Xzqs5m3PST#UYF%v^p1L87ViZ6xmGzW*}BiN*1MOM_G+c9qAfm7-7ZUl&B z&j{NO3(MhwSdgOOF&K9)C`zI$OYZL#p)xV#MnMiSqH?J6Xzg;xm@*sSzZZwYKqa2a z7%3Fs(sMD}#Nq8!Q8fVMzggGz!6WtFTjss>WdO*TLBFfB{g+ZBX&O zIv{fdY3Kmo#sf9Qh~CaeWr13Nl}#rp?dq#`aw)8Z)I!ODdaQBVwH&H zlc7}^qfk~5ybrU)xe@UKGdU7keK;&EDV5}g1Pj(d`#Xe>W1hGa)kHTU1ef4Z@1Hn_ z)_tV_p>K-?>DQA4){|w`Q)E$TwAIsmtEZ!EV7Sr1WZXdI)WDY2z|q;jHP_%bQO`}; z$bX|z(75rLt7e*TR-<@lqeN`I=v<=|Ws}TYp3jU{cn(HUSq zZ+~jI_|yPo^oECr0SDpDWhUUw+S=O2#s=`J5B%ZZd~Zj*1F`;nAm9)9246u~Eb*W4 z4O(U?^L!~V6ak|qvIqSN1URO2FCj;=u+b^f>5wI_FJE!j*erTRir^%wyu2VVI8PR+ zVG}>5bO9`0jaNA@0oN6 zzgv_E5Y9!027V|cu?(Ck92l1ug8ap@HyuCvfiTEnNe41<7O)a>JBN-CH`-hPx?4d?hX%c3=wET3ua5N%_z9OBJR4*p!jr+<%GmsJtLNQYvYQG*BS~2&{AUuNt z$asalTBU}x&bA&Y*CggsI*jmq)_Y>Ukm$@3dssK6VYDDR`1yK>GE|&RRW&MR8p}M(Xr_CMA_xpM z(P3i7O)KbDu*^5Ro+4k`T-a5tzooTcZ4YPU`Mmk|Nw+txMt^$4Q6td$Gs3XkT1oWD zKBnsGLjzYcmh%vH{gxm@+Fj(elOJIj==q!DA9SF+sBGD;`zbO=tarY23edKEI=M$m zc1vNBy3@VkR1xJ#ktEz~E77<~1`IJ={KYFV*Iz1*g2-(Lk#PRuX-K?~x{p-?ANuI3 zH764<7{!Ij`_Y<>3k6PQHWI^`ebXGmlbvV4u zO(x4eLbMyGsv4EfA?q8W2LgL1!C>w%P+2akI9>=A0xzZz0h4gElmA;1DgDx$B?i3N zq$_Whk&%&s!4mLhtr!`dSy-$Xt;{XW85klN8Dp85Q?C5jBEXLYl*61p+=ej@&=0_s zwX!Y(TvX1MQmQt0pl2R% zVteD_-*-g*c4FVZEdZR@wc+GTC$=vEaAGgsrU6du_IUB$O!?YcJD{e39}5WTuL_J` zy_U1Pv%f9b-u?ZNpFe;5v6DOhwIBQK+c03p0`-@_%vc~Q4VbY@2TQ-r*xheG4-S9; z*Y^MK$NoEt_OCwXmp99YL8Vyt*M2En9@CIN;o?`Uj4%S`2Y)8ngt5v0$csx1X?=X1 zMP$4(KO|r^5-k}@VXYIHkS*rTaU>yUl_;fr9Zej?1fo-5%b!3og~Zp zPMsm0NVLB=BBq;$qV3Ii^bvgFGF--Iw)ZT#5zT0h2}Rd_I`5nc4~sw8 zR!sSR;;|B}v3hM!#Tz` z#+-Bf^ZWjPt+lh(76Lgq+{p2~dG71H&&z*@gK{@GSKsq%W>bfoirejHt|*h13CR;_ z=kXU0%&$e+%+|aMb2+$_?a8`er1 z*RYKi`t#g*j}2@yIbw(%H%bzV?ozDYy`L8S8PC47VinJ}RmzIiy`Psm$8~B0M(ej) z!JX%G7=6z{@|3sSES1W!yfBO_;De%xMaBA)>*B-qj}i@~)3w;795+fOZH6lhkdb_w z<;7_~<>IB4o0ZkAo10bEwU^*8)y-3mUuxP{v-ndw4>!NmVet5!(fu-Cl&!*zQ;laB}VZ+Df?9x!uoSSHCmr z^zC`;RP48|^U6xM7p`}@B4TYqVU-@6sG;JDiGH|Ev z)=C8jIrY?Z^6b^n z+sHVt3Zc)#dlOFxo;1!>vy!w(JD!X@W8A}?o;hDEcVOExi+-1@F<7!}~B72TBEG923^)>fV@Ds(*m zD4)?^BYI5W2$Oq1p?%%WPH1nH6?%SxDK?dBFOB#Xe>zwb^~2$&DSr0k*0bcpqdJa5 zAz8y0XAI{%&+h96)eW#;R_ygid^;~4!{`5T5L4RqtX9D4M!8~?>;3PA^?~T$F7+sz{v(PM6=qvUl9urzQLtpevcl_QTdXrn^ z?Bh3M(9j!88e<-`*4Ho?xDbEHuA7kIl`ND)ZBt>ehbBbW4e%Oc#B?ZT24V?8f)FTu?A;hsJ zUQ4bh9t2NXLzFlXdr~V}Q9^nkK2-O~?=Xem>nFcpirq(A&7%mu$KeVzy1a41#cae5 znKc~{N+=~sh^%sy5|;(ZHIOxmqCr&}Lc#G=6dh|u#jYvqnZ%e}Y^YE%q(#Fg5w2g% zCklTR%HjFgKADr7(1c3EvN07}*~>_^A*DB^3rj7)DS^;uYmCYBn!bz~a2(3g1Ut_Nj6@C{d1FiYHl*IHk}|6br4DhNUdWwz6s7svF4goVgq7u&9k3UoxB(17EYFp>teislkUU`7oy zNjL!rvqVD(BOoTa8Ef}?iIhX3Pu;$NIHn#T%dtd6vE#8ex`PxrUcgZtMS*RcKSO30 z0N0s46SclBqNq1vwwPY#2_s>?Kx}?NvY&oiwp-kN0TN_iKu4Fjs#v{v2_PL)V8h!5 z@q2CK!7}ym! z0C?a*sn>W;EQX5yvcl*{b6{xtxlr;5z#+zu%w1m0^b_<2 z=n70H3@M7jC#rv$=kWC#_1A22+#BuPc%u+lIA)pi(hkWoyoE2HgTYGikIDnV(Tua_ ztME4+qrMm2bird}qGMr&C?u3zm1tc-1x!@0!^2GXoS1A3hv6E)yAYohsE}_=7AGfC ztPzK=UEWK3Q2$+m4!Pk{0D$q4hvQY}u3bKTQ@(iXsPn^*ZOSVay+j_UdTkVLhCPzq z82SCCe=vn`c@I>W6;MjZij$flO{$DJB7y)ZEz&c{ly~;~SUC1mXU+>JE+EfX94E`U z)=9?-r}2%ZkHepX+ZP-AJLI}_=qW3CRjwc`oq{Ctz#DFmDr|Un)2LGLb0ptzuRAb$gnMSot^z5dfxUFq9-!YUdk7TCmwF<|coeb3 z!vrjbh)cBC8C%Y!Ld~w3kmxrC22+BJAWV);<-^oCw-aF^$+#1tRK{X}&4UV^C&t%{ z5Zz6i2x?PYUF5M*JxSHBz*ze&7L=Z-ITh~swEG2M2MXgIJ~JiUmfh^(fu|yJMd8e4^XyN$y=(cj8|#}K#Fjq3o|u@xRu5xV&$~A+enIWOdf4CXTz=fSz~V(4 z8ygEdmsl&n&e7$cq4vMKqWzD4j(yu{r|cva{`oTZO9A{-d?*;e!}^!9V0vZ_#NU+# zQ_2n^gm0oqx&N*#I0}qU{-?6wnEzPdZudu7aHM8tW%Mg9K5SXAf74o7x{Uq$P6xIu zxK!i*Dxgq&V>0jd%lRPxn@$jhYj5&mGiyG4OuU*82|g2dZ)X)UE;ncGg;X|{B$)4< z!_COANLx$XM!mGBcv(|*Nel#mPY9`VKKu~$Mgei(^*s?EXH@`0>qOjWgncT;KeuBz=EU|Ky)Syt%z1G4|oh=A;v=om=298HDI5!pN9Y{X-m+0 zhkka3o#RKAww&M-pi0=SRPHFoG?NtvWF@ct6XS8aPte(|BhFH7c>>;me4*4*JttHa zZ+b^+C7=Eyg=T3~Rm#$LJ~JLm_k4)({O0--cFjtwlCHGW@W(!ShZGIM*S^wqQxu18`h4nL6d+p~jFFh&oDQ3rdO zJLGo*kyvBoq4*Z&JKfm*zMUQ-$*(&v$yA6u06OGj$X+_T>fL@uU!q-kM(=bW9!1Ju zL7Nwv9(^Ly&ifbdcA7YIw{3otVt}PsAkl!2jPPCjY=Cv8Ap5AIBwsZAkwA zxa9xneEomt#lNOE95ORA6cm6qcBT z{2OAj8b)T>@2+)R_+P~2Yf|WR%%6x!qyIom%EaPTsl8o)YjVSmIKH!Ga-tL~g(zp> z|MI@p;${C<=i$2#&$PeHGcne0%$Nmh;NE-Y=@9zzv1A*eLo$=J_qO?Lr5V?QibNXy z%lvsGNw59oFP5EFWx-6+J`4_9a(ickTtKoo?W>ZfCu`>;CD5R)mZ)4N-{Le{+dzkR zy&xZ+`uj*XCGL+1fUYVH2e{GBJdiR$F<;F&0;LYm%ym3 zIS+ge++p8$XmBdeL^SIJ`dw^YVbr3#a-{b_sBelg3}p~(TqH*1z z4)ns{tFh~G9e+j@h_|PvSu($;MvC-z7_j5+l{1CPsoRtwj7h*{x!1g-sguq5)OZYK zTh|tuyy3T19)~w{WM$tW?&Oh=43PR9mu5@Of=tp{=+*ZH zax?JT!%qvb3}<^P7=ZItS+E$AX>9t2rf_ITMg}uik6ySkQ9bfl55|Svvn`h=b<`9# z$G=qR>BLQZxaX98x(;LBSGyX#XO(|8KhX7~;;QUfSk?)Arj=CM9q6r!fm~{+Dz@jk z`}KKRfGvy#*umzJx0E6%Zs#n0Fh7uM00W;RIsji zyj2@V2nU=y(uvE=yooWTDxy7_X=QJXk4SXSrl6mZWc9Kl{U+HZO~aaar}_!= ziRw_<$*zNs9|sqpLjp{ZND}VFeAUqW7g*hetzF;Im?!BNcp*@>N+c z7_-n#-s{}eA}H5oYlz6YG8YepYhAbv?bRW<(-z$*r^%J8pSjf~XdXP2JAj?LtF>A4 zC8I-n3(2XDUrVkwLNv%&xwxad_B(E)NSfKshofJsg*?dY3Ckuww7XOxTGfeu`PxE8 z#9zgGG%0B3%KCNM*@2*I2Zfi(oQm9?($TsHMa4}#%968E@ty}y()M{&RZiiLlMaf} zq8lobp%W?6%_YJ$IqFvGde2Kn^weKf-0}_3tKT{(L*N=~XVXk#i#N;fh*s)8h?%Sw z{9d8q#P_y9-Jns;+tgsBvZpr2peEp*lbQEBqXEZv^)b=a*5XwK+k-tI284>UpcQB_ z;6>|bi-4mMS#5z&!K@x3SZDH) z|33NCeq6>vD5?gBg6PBaXoy7f6YpvV`9SdaEs6S*hOagvXZjRZ2N z;OtL+KEDDo*7R-vOkO=`3e|)69AyjR(Vu_9|DdMvT-@2|8`*WTD~7%Ac|~Frf}+S( zNIOXm-E+XPP}r13eGMlh-X-qyflzC|cl$1v=d<^8uiDiT5diB)IwllX_=hxH_hO+{ z%YEu54^&1Q)7oCI2>mvdYswhVT)md``xGBE8?~YJHhGV7RT`BVOXo zM6dmDa|)eskQMzgGpNNxx@Nnn%1F?~)`}DLp~c5;8yT)O$@=irf|so0dJ<%6u?6f< zZMaG1>JqyOskw{s>3P5=!*kfg*6riV5^mE)(~QK{o%qd-Wc0`hEBG2Co>LRrpv(fq@KISU)r_;{O108Yr=zujd7W6Z94^D!P*1g90;*TA(9vm9#RUg3$t{Z zOLrkw1sUr(JFQ8V9-#0qssH31{ z`qri&zU|YIK|8NkCNmR12HC8c`>@w~_MXuA5M!8UU~=_Y0M)B)+;y`#b0Z`$YiFmQ zz~njGkj#3Ag5Su~2vw~D_zR;;mx^!K0g|qQC~j>`BYxiZOyB2buCjrlj6f(ksighU z#mV#Jbj*ri;M)l8ADcg0(%y6(w!QhWjh)IZkQ!Wmc&VL9_a*WCStv)^3vl%AlN;Bz zjvjPCO{b1Nw@7C_B_pUUxT!h$>0(}7{`LcY>B$f~OL<5JlAs+)G=n5LMv~EmQouv0 zW{|#Qp|)foGJ72DF-Z6V$e;ijUI02y21+0hL<_jkK|HEN9A*R#9~vpQ0|*#{*pdOX z7jQsiC>k*oxHwdx9A7RGNPUdND-SWbjl?q!*PIEzbsVm;?R+F|}Z0bfg~|oq>*NN5{>e6E2U@8s%t@F`zmCf``Tec+rVuKLI>*05oa`WHuH8 zhk*+0BY*|KL?n(H3@3j*GMxwT1QP3^19)POeBcf;q{7{z#TSHu>|r1T0O)}I-;4qB zA<@z8681Rk&QIdT=;9~f@sl%A@dfDX7+gnT(3TN|8;1Ka17rfj@drTBu$ZkjoH@UQ z*>)hh9;9245RnLKYsVqhNk}9E&$UN`G4V1mvLj=(3?Knr0KS2VpXb5Fl82%7I9GJy zw+1B28X?(8+yEoJP*KI(Z}G0|h$++q<1io&fVhk>ZZr%h2nmhD@`O8LGQvsGiJ-ff z$NcYcJ%xedm%>RI^*H26d;uKEa?(r6fPpy*Qq<^yVK96eVMw$)NY5NT z<;j<#!$1dxZw^Q(LB(&@Lpc{xd7`1|m?R;oG|3@+#*VZMVKA|IinA!#>b=B${}cl? zydXq6mR1ymrY7&Ck&|VFJ+be?<1!tRyh|@0jRYB*rwPsg7o6Dn1^miplAWkKs0n{D91@J+vUkm9MPFFSLf!- z+`f*SP7^013#U&ld0#UP636m(=<`LcIq$JK?qP|^3h1}Y{PPpLwMFXNxX3v2g5vRf zywkfEz6At#Oih7gf1p`(KfOC7Snm$(Uobc!898peRWpy_kmI=AOShDSvO?5XA5K!%3;H z=KhaOFULmiU-mhI37(%`9Ce!wub=k0e8Um!rk7EU=?ms75aA984y z_OP{0wRf{=c@XXk0ELKTXZc$QvPJCmgZ6OGyP&}Bb|)7lm`vxmex;R`Szz_UOgBzb zq8b++28mdCRX(J_Iy`^CJ=5{W?%wwZn4+qLOx&k;m2%$_s1_~LP*~*^G5X5h<}Ov!MJjIcpSm^ z>FWu|_pD`w+gvBc1uyjBC2{$JJ~d)2`##dUZ6VycL}f8T&jh^~sp&Ad7^UJ5SwbVC zRhOcrGO^7YV)O;%vBCr;;|M$|^Uv|{)$-2?vWM%RA0hB~mlG9f9I!M27d?kO!|#(# zf?sI`JvOZ%`rk+^%mCytxQ;mz1H=Ur$YNpin*d^BzM%DbRxJDnF{WBbd~y?nca@C{ z8$S#Hfy|av$HEBpP)=fFFgDsyN#+zJffY2eD*_m<>sAkvg^m>B#1IIqQxq!v4h`Z0 zcz<=xt^6xA`0t6qU%22eO7Q2Pzo`=&!u%N##9~LkC_(Hf_LpJg!-o%l9`r9RE@I!q zzbHX0I`n@&=>KCPfPLrd{dMAhGo1U@pS_FYuxL^iRj*$h4bE+Qy3jofC@B?>AJ2GW zsa6D^7MVV;Wf@*BuY|p7p~X%4RCZ0XL`-u99u;nCqZ!Wg?zDKW+TEiIa z5V|_j#CbcTUA=x2U90t(fqFNE`}Pw#6Wix^4hnS2ahv*?WW5R&x+&sZ&0~xl`zT?S zs6=$@UVm+d7J#|k0*9d7htQGC172&;PEl?6u42)FpaiY;rDe0tJ*L_ex0P$gWMQe> zkK9#=oGtu4Rkk2MR-5<|{l?(NH$_&qRzpc|7d6jNnl%cyA}GHl1oP5m9RD==^+bULW6w+DxZGP3M!p zvxmgweO`U;9=z!e{5hBVkB!Kn%ziuaAvn1^@-b{bxUKZP$>AuwiHK?Wh{v$_q$ zB}sbEzN6pc#@|KUb3kX#SXi3zLT5~&>MDt`BDcvDJbA(sS7JmXPqIS5t}sw&-4Bj@ zw}=S*N&8trx*~)Z=fRbL$d0r;m-;@#Po}m$5?Odm3;z1nB7Lf4P!m*QPR6T3bFNSx zGlWBy6Oi60d+Yr>T4PmWsTo|aA@TfD?eXvB_L}sSrrJq|m&z=uPnp7dRH%^da|ljF znu*Fp!_u@Qb}BwtmTN6NRasUGp27X#%<0_Z7pyd9ZbTgpWI4It4{1{mpab_q3`>QD z>br}S7NYDD+y(R(gUfjzGdY%6`_?pu>$ilt?+!c8)HHqOrjxp{v^m7&aZIoL{EcRMai3GY)s(myvv1d75IhCo;ScA;HFsp< z8nxt?#DH!Q9F5o6v~5YK;}j!XZ>D!)d(9d8;(O-&jxx87)B;}R9)1d^y}&jKUBT`+ z60zpNu{(}=JplOC#L(po+62%_>ixWvH9vg!7AOP`INfk1bQdRJ=Me^O)*IEFZnANZ zoo#iG)=t?G9?Z*ZW8T1@LIH~PlHhLct5$QpPUeWHH~d$h+u(@hgK+4~Sh^49J~aaX z5e_;C0!GD8KTae?F!BWW1>Zunn8?NuhuEJSs^5{ zOun^6FFyH>IjwfSKt{opoPrIFhJ|i8k}$(~?vt=8td=kvYkveRw&{_O-MJY*Cabtp zoi5mWX{)m+wbj8Yn^ER?h41_N>rC2D3qeOaOV3Ro?9`;Rzg_sk8F4r0HMDFJ38vu= z^*mN8%eBdjkeGK~8)||1o;R#b=~FClqk=V+>Vc@;?zSBKZ^UakkRfuq{1EzU-*b`g zBkav}nU*qO`b@@1`EZz-@GL%yA!Hiw$}$be$DoCq+FMA@@4oKEN*Ps(q;lCkuq2mv z4&=FK7ePz8scW8G?A3`TKhQw*Ipjot0uB2A*)=;yXj{LxD$As1=m@SL4 za~!z)fDG1I5bKJf|D4eSsI<#5j+2axOCF7&TjJ@uVw;Ee$;l0x;J+oRK2V}qZ7((~PCf=I8U+JBxyld(w zd<8lV9ky9`j%u84_CkD|!8+H6*L3qQ(pPH8+B@>WnRspYV{SzNKzOv~h~je3iJ|Hi zQ#BYTSj+P)rL7tCDnIxl*f*#4s?ad39yb#43G*X&CI!vnV{De4?+MMy1x5;2=Fqxp z3L6GC;+154SQ1Zd3t6J8b*rjb&wqITo=J6QZt2EmPjUib&LBqW$RV5CsLCyz4nBqf zGd&A3tg7KuY0|5g;N%~FMX$=_BRM)d>tUUq`##QUNyT1&DRM9y%^cUOEG-NG2lzSllQ73zvWmro?9E6y=w~F z;g`#NGuoeer3A-=>F58rH}jB`c6jOjr+}07be53QuTIZH&UV&LLe3A$Bp&`ab}OB^ zeR6bv(FnH#fJ;?RQ9!qYgycX0dDj3q96O<8aRoqftYF9t0LITm;z7jcmK$L**5w4`NhPG%J;7crF8=AL z!+wiB?Ytq3JY*`dRP29~hFHbWz_DpaG|oTyBb-G*z2T6*NkhCqXmUYp8UhcE_-B7a zt3WK2UDsWU?$2om1nZBm|C2u={D19_Xkb{^ykncdSfXe5BS-w;-FT%&zB1EOiN$9b zN4616G6PWh6uURAS~=o|)4IetWE*F=@}F>S3)~1rowzY^H9ARppd{oeF-={U!l4Fu ze%0LVYl+N;$L>pE&wa&1s5>-qKD!lvs(pSMyFIdj$o0l#s*EAo)wuH!tGjI z&AoZ7jdBrd9^P4qZ9z!>{WA|q7T1Cet}GHBv+|orw%i?5_&Kyam*g|lOTm{;dhmYe z@=z~x7(Iy>yF4#}KI=oi1P;b1jSvVO!PQ#(1;Yb1n@_6G;>)c3B<`UX5M3S>oZ%9+ z@Z|^7TA8qL>S08wn_7{dMdFN9S#hAI>-zG2sRJI4bYlbFx2bH@iA-5OvwrKL9+4G1 zzFZvs#bMEvycB^16ZSoXE-3n<2JCe#f+KfwEPp9{E%pTo@?GHD!!LEFb3^VNMjt5-Y7mQ-lC?dy z^LIWX6G)o3OIj+8mkq0C*K-D_e2#>G(Y7UJ72K~%u04{pf47IY`bC((Oj-e+=Wp%k ze=j3>FN(cm{O(|pp*$hHIcJp`{RHr8^F#5FmWf^Z)tp{ z!(Pzc*Qw8JC=Y6z*}rLce)P_y6>syOZaWH=u`B=BAv>k+gps+-El5|hOO+TN&cq5X0lb^aMpubm7>R?^ummM>2SBuTaUmFhygCv|I|oPyK}rF1^@2=s zNh#4m*7wyBudVtUW7-AesjvFt7!l|Jo)f(zhP!J4y^zWv3oiFkwOb$PAEXX8$MP=r zXjMZBz*`)ulDGvLR%x&d#(FNiN}kJ6-q9pjuWXrA{)whnX|m9lpx7JKiPE9cda$>X zWhBD&Z+PeR(k0DTaU&f-k&&VWq!B#gi+(!cd`&`hNX~e=#7={vB-mT$HQBlf4Wegn zi}t`3@)nMxiD{F9Q193fx&V!|wEc7l9a=bBtO3SdqxW@B2{4h@*- zaDPzRU0oJ0OK_V+f3oO+Y7Dp4M$3X=IZOK8rqq*8gATAkp%AW}z7%GXH_JO!0@q3K z)ew-x%%GNi*WqrTr%~H8WC?$;yoHg!23WNzhBucDk8CV71}mH@>_qZC=1X-R_2!Sc zD`3p7NNNh~}zU4ChE=xNYGZf^sdeN0eX&o;tmq+4~TuHH~U?{0anJ%8By zL(i-sV!P`%oKQICZ_`aamRhK&nRU{%2@Fub(hHTk{W>eP!lk54e*EP9s^M;xIq{cU zFRoUX@QncRL!tq6c49F_}?{h%84^qQ=qcjAajGt5m z7jWs|Kpb1X_8>LQ+VqCoY&l@s;^Nu)1g-7_dTg4j=1^+^7yS*+k|s;6mH46;wE{ zu(C_MK_3D{lB>Vok=z>>mm8@S1uVOVb=>44TP>;=&GyQMjWHQx#6M}RT$hn~@2&ix z5*pkg@kaEOPpN0;Q-5o1RNze;p}oh`59}s$&ZJHyTA|m3KWy?a$WYxsO!H0*WyhbL zUsRJw8xeI0xO#_c<5EtlNDHxC!)!LUSSr@R8$9y(boTdtLYE zGF%1-nop!{NEA)^PP_DrUO-p79#YIXF(1WKCcf#GOa_Y9`7KGNtj1_}jw>;DKH?{4 zmbANgbJjJy^~CCKIc>+7%KY_^1`^t*14inu_nPYZ?%MO3`Y-6bL8g#v1*=~@-A$Ef z91om)@IWYcxbw*WGXLeT~jsaVNm4m1-t zVSa*aa8#f!itCt_Cj-^nfD$miB6N(ZBoDi0%phhQmg^A)Z>N`T4@(^nlY`SE=)xb1 zgezufQu>91t;0PJr7Ff=rZiR*WEqKT5@ ziIka&lm^7^rv%8gij^8gl)&vI6Fq&|lwlc`rWuh#67et6{7>xSb%E~vt&XIA0AzcJ zr+ui62;-z~0^tG>e@4r+m3dskBbUa3e$1NNjw4+X+gcm01&_3~*ECDBWdeB5p&6?B zUEynPgm%shJ+bU?+i&EtUk!bOb*&$-CR80-;k4O@t=V??_|CV6X:$dj)@>BLNu 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

xf)h|bwnM>`+q(?c;57}57#c;4cc!%(wOOl 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

p%Y@*51ktsZAc%+%0B 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

XIkf7< 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%0D$+I#q3 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 z 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 diff --git a/src/src/components/XnPageSelect/README.md b/src/src/components/XnPageSelect/README.md deleted file mode 100644 index 7c45cf2..0000000 --- a/src/src/components/XnPageSelect/README.md +++ /dev/null @@ -1,192 +0,0 @@ -XnPageSelect 分页下拉选择器 -==== - - -封装说明 ----- - -> 基础的使用方式与 API 与 [官方版(Select)](https://www.antdv.com/components/select-cn/) 本一致,在其基础上,封装了加载数据的方法。(调用后端分页接口,懒加载的效果查询下拉数据) -> -> @zhanggengbi在此基础上完善了功能:下拉查询同时支持搜索框搜索--调用后端数据搜索。 - -例子1 ----- -(基础使用) - -```vue - - - - -``` - - - -例子2 ----- - -(支持搜索框搜索--调用后端数据搜索) - -```vue - - - -``` - -![分页下拉查询展示](.\README.assets\分页下拉查询展示.gif) - -内置方法 ----- - - -| 方法 | 说明 | 参数类型 | 参数示例 | -| ------ | ------------ | -------- | ------------ | -| onPage | 请求分页数据 | Object | {current: 1} | - - -内置属性 ----- -> 除去 `a-select` 自带属性外,还而外提供了一些额外属性属性 - - -| 属性 | 说明 | 类型 | 默认值 | -| ------------- | ------------------------------------------- | ------- | ------ | -| pageFunction | 分页函数 必须为 `Promise` 对象 **必须绑定** | Promise | - | -| pageSize | 分页条数 | Number | 10 | -| showSearch | 配置是否可搜索 | Boolean | false | -| searchKeyName | 搜索字段属性名 | String | '' | - -注意事项 ----- - -> 分页函数,返回的Promise对象的data数据是分页格式的数据 -> -> data.records格式如下:{ name: name, id: id } id最后是你的value,name是你的显示名称 - -如果返回的数据data.records格式命名不对,可以重新封装一下 - -```javascript -// 示例重新封装一下data.records -const selectApiFunction = { - customerSelector: (param) => { - return customerInfoApi.customerPage(Object.assign(param, {envFlag: searchFormState.value.envFlag})).then((data) => { - if (data.records){ - data.records = data.records.map((item) => { - return { - name: item.customerName, - id: item.customerInfoId, - }; - }); - } - return Promise.resolve(data) - }) - } -} -``` -更新时间 ----- - -该文档最后更新于: 2024-06-28 PM 16:45 diff --git a/src/src/components/XnPageSelect/index.vue b/src/src/components/XnPageSelect/index.vue deleted file mode 100644 index ba8ff4a..0000000 --- a/src/src/components/XnPageSelect/index.vue +++ /dev/null @@ -1,172 +0,0 @@ - - - diff --git a/src/src/components/XnPositionSelector/README.md b/src/src/components/XnPositionSelector/README.md deleted file mode 100644 index 2964be3..0000000 --- a/src/src/components/XnPositionSelector/README.md +++ /dev/null @@ -1,36 +0,0 @@ -## 小诺职位选择器 - -### 说明 - -改组件为小诺职位选择器,可返回id用逗号隔离的字符串或id数组类型的数据格式 - -@author yubaoshan - -@data 2024年7月5日23:59:23 - -### props定义 - -| 序号 | 编码 | 类型 | 说明 | 默认 | -|-----|---------------------|---------------|------------------------------|--------| -| 1 | radioModel | Boolean | 是否单选;与addShow隐藏同时可用 | false | -| 2 | dataIsConverterFlw | Boolean | 是否为工作流格式 | false | -| 3 | orgTreeApi | function | 机构树接口 | - | -| 4 | positionPageApi | function | 职位分页接口 | - | -| 5 | positionListByIdListApi | function | 通过id数组查询list数据接口 | 已配置 | -| 6 | value | object或string | 通过v-model:value绑定数据 | - | -| 7 | dataType | string | 数据类型object或string | string | -| 8 | show | Boolean | 是否显示已选择职位(非表单内、单纯的选择职位需要隐藏) | true | -| 9 | addShow | Boolean | 是否默认的增加人员按钮,与radioModel为或的关系 | true | - -### emits定义 - -| 序号 | 方法名 | 参数类型 | 说明 | -|----|--------|----------------|---------------------------------| -| 1 | value | 根据 dataType 而定 | 当选择职位后通过v-model:value绑定到组件上 | -| 2 | onBack | 根据 dataType 而定 | 通过@onBack 方法返回选中的数据,触发点为选中或删除职位 | - -### slot定义 - -| 序号 | 插槽名 | 用途 | 用途 | -|----|--------|-------------------|-------------------| -| 1 | button | 在职位新增按钮后可以插入自定义按钮 | 不满足新增职位按钮样式,可以自定义 | diff --git a/src/src/components/XnPositionSelector/index.vue b/src/src/components/XnPositionSelector/index.vue deleted file mode 100644 index 81aa587..0000000 --- a/src/src/components/XnPositionSelector/index.vue +++ /dev/null @@ -1,579 +0,0 @@ - - - - diff --git a/src/src/components/XnRoleSelector/README.md b/src/src/components/XnRoleSelector/README.md deleted file mode 100644 index 0b26be8..0000000 --- a/src/src/components/XnRoleSelector/README.md +++ /dev/null @@ -1,36 +0,0 @@ -## 小诺角色选择器 - -### 说明 - -改组件为小诺角色选择器,可返回id用逗号隔离的字符串或id数组类型的数据格式 - -@author yubaoshan - -@data 2024年7月5日23:59:23 - -### props定义 - -| 序号 | 编码 | 类型 | 说明 | 默认 | -|-----|---------------------|---------------|------------------------------|--------| -| 1 | radioModel | Boolean | 是否单选;与addShow隐藏同时可用 | false | -| 2 | dataIsConverterFlw | Boolean | 是否为工作流格式 | false | -| 3 | orgTreeApi | function | 机构树接口 | - | -| 4 | rolePageApi | function | 角色分页接口 | - | -| 5 | roleListByIdListApi | function | 通过id数组查询list数据接口 | 已配置 | -| 6 | value | object或string | 通过v-model:value绑定数据 | - | -| 7 | dataType | string | 数据类型object或string | string | -| 8 | show | Boolean | 是否显示已选择角色(非表单内、单纯的选择角色需要隐藏) | true | -| 9 | addShow | Boolean | 是否默认的增加人员按钮,与radioModel为或的关系 | true | - -### emits定义 - -| 序号 | 方法名 | 参数类型 | 说明 | -|----|--------|----------------|---------------------------------| -| 1 | value | 根据 dataType 而定 | 当选择角色后通过v-model:value绑定到组件上 | -| 2 | onBack | 根据 dataType 而定 | 通过@onBack 方法返回选中的数据,触发点为选中或删除角色 | - -### slot定义 - -| 序号 | 插槽名 | 用途 | 用途 | -|----|--------|-------------------|-------------------| -| 1 | button | 在角色新增按钮后可以插入自定义按钮 | 不满足新增角色按钮样式,可以自定义 | diff --git a/src/src/components/XnRoleSelector/index.vue b/src/src/components/XnRoleSelector/index.vue deleted file mode 100644 index 86c5527..0000000 --- a/src/src/components/XnRoleSelector/index.vue +++ /dev/null @@ -1,607 +0,0 @@ - - - - diff --git a/src/src/components/XnSignName/README.md b/src/src/components/XnSignName/README.md deleted file mode 100644 index 36b3522..0000000 --- a/src/src/components/XnSignName/README.md +++ /dev/null @@ -1,117 +0,0 @@ -# vue-esign - -https://github.com/JaimeCheng/vue-esign#readme - -> Canvas 手写签字 电子签名 -![npm](https://img.shields.io/npm/dm/vue-esign) ![GitHub package.json version](https://img.shields.io/github/package-json/v/jaimecheng/vue-esign) - -## 时隔三年的更新!!支持vue3 -- **支持vue3!!!!更新依赖后,仅`bgColor`原来的`.sync`修饰符需改为vue3写法`v-model:bgColor`**; -- 新增属性 `isClearBgColor`,默认值`true`, 清空画布时(reset)是否同时清空设置的背景色(bgColor) ; -- 直接`npm install vue-esign@latest --save`即可,对vue2版本无任何影响; -## 功能 -1. 兼容 PC 和 Mobile; -2. 画布自适应屏幕大小变化(窗口缩放、屏幕旋转时画布无需重置,自动校正坐标); -3. 自定义画布尺寸(导出图尺寸),画笔粗细、颜色,画布背景色; -4. 支持裁剪 (针对需求:有的签字需要裁剪掉四周空白)。 -5. 导出图片格式为 `base64`; -6. [示例demo](https://jaimecheng.github.io/vue-esign/demo/) - -## 安装 - -``` bash -npm install vue-esign --save -``` - -## 使用 -1. 全局使用 、局部 -```js -// 全局 vue2 main.js -import vueEsign from 'vue-esign' -Vue.use(vueEsign) -// 全局vue3 main.js -import { createApp } from 'vue' -import App from './App.vue' -import vueEsign from 'vue-esign' -const app = createApp(App) -app.use(vueEsign) -// 局部 -import vueEsign from 'vue-esign' -// vue3 中只需需引入组件就可以使用无需注册 -``` -2. 页面中使用 - // 在组件中使用 ref="esign" - **在script中必须设置 `const esign = ref()` ,用来调用组件的两个内置方法 `reset()` 和 `generate()`** - - 无需给组件设置 `style` 的宽高,如果画布的 `width`属性值没超出父元素的样式宽度,则该组件的样式宽度就是画布宽度,超出的话,组件样式宽度则是父元素的100%; 所以只需设置好父元素的宽度即可; -```html - - - - - - -预览 -清屏 -``` - -```vue - -3. 说明 - -| 属性 | 类型 | 默认值 | 说明 | -| :-: | :-- | :-: | :-- | -| width | Number | 800 | 画布宽度,即导出图片的宽度 | -| height | Number | 300 | 画布高度,即导出图片的高度 | -| lineWidth | 4 | Number | 画笔粗细 | -| lineColor | String | #000000 | 画笔颜色 | -| bgColor | String | 空 | 画布背景色,为空时画布背景透明,
支持多种格式 '#ccc','#E5A1A1','rgb(229, 161, 161)','rgba(0,0,0,.6)','red' | -| isCrop | Boolean | false | 是否裁剪,在画布设定尺寸基础上裁掉四周空白部分 | -| isClearBgColor | Boolean | true | 清空画布时(reset)是否同时清空设置的背景色(bgColor) | -| format | String | image/png | 生成图片格式 image/jpeg(jpg格式下生成的图片透明背景会变黑色请慎用或指定背景色)、 image/webp | -| quality | Number | 1 | 生成图片质量;在指定图片格式为 image/jpeg 或 image/webp的情况下,可以从 0 到 1 的区间内选择图片的质量。如果超出取值范围,将会使用默认值 0.92。其他参数会被忽略。 | - -两个内置方法,通过给组件设置 `ref` 调用: - -**清空画布** -```js -esign.value.reset() -``` - -**生成图片** - -```js -// 可选配置参数 ,在未设置format或quality属性时可在生成图片时配置 例如: {format:'image/jpeg', quality: 0.5} -// this.$refs.esign.generate({format:'image/jpeg', quality: 0.5}) -esign.value.generate().then(res => { - console.log(res) // base64图片 -}).catch(err => { - alert(err) // 画布没有签字时会执行这里 'Not Signned' -}) -``` - -![](./static/demo.gif) diff --git a/src/src/components/XnSignName/index.vue b/src/src/components/XnSignName/index.vue deleted file mode 100644 index 01e2b2a..0000000 --- a/src/src/components/XnSignName/index.vue +++ /dev/null @@ -1,122 +0,0 @@ - - - - - diff --git a/src/src/components/XnSignName/vueEsign.vue b/src/src/components/XnSignName/vueEsign.vue deleted file mode 100644 index db0d292..0000000 --- a/src/src/components/XnSignName/vueEsign.vue +++ /dev/null @@ -1,297 +0,0 @@ - - - - diff --git a/src/src/components/XnUpload/README.md b/src/src/components/XnUpload/README.md deleted file mode 100644 index d424653..0000000 --- a/src/src/components/XnUpload/README.md +++ /dev/null @@ -1,39 +0,0 @@ -## 小诺文件上传 - -### 说明 - -改组件为文件上传、支持单个、多个文件;返回id、返回数组、返回所有 - -@author yubaoshan - -@data 2024年5月27日09:15:17 - -### props定义 - -| 序号 | 编码 | 类型 | 说明 | 默认 | -|-----|---------------------------|---------|---------------------------------------------------------------------------------------------|----------------------------------| -| 1 | uploadReturnIdApi | String | 上传返回id接口地址 | /dev/file/uploadLocalReturnId | -| 2 | uploadDynamicReturnUrlApi | String | 上传返回url接口地址 | /dev/file/uploadDynamicReturnUrl | -| 3 | uploadIdDownloadUrl | String | 当上传接口为id的情况下,配置下载接口 | /dev/file/download?id= | -| 4 | uploadMode | String | 上传样式或图片方式 file、drag、image | file | -| 5 | uploadNumber | Number | 上传数量 | 1 | -| 6 | uploadText | String | 上传文字 | 上传 | -| 7 | uploadResultType | String | 上传返回分类 字符串逗号隔离或数组 interval、array | interval | -| 8 | showUploadList | Boolean | 跟antdv官方一样,是否显示文件列表 | true | -| 9 | accept | String | 跟antdv官方一样,接受上传的文件类型,如果uploadMode配置了image类型,上传的必须是图片,该参数也只能配置图片的某一项或多项,具体百度查看文件上传accept类型配置 | - | -| 10 | completeResult | Boolean | 是否是完整的结果(就是文件上传返回什么,该组件返回什么,uploadResultCategory必须为array) | false | -| 11 | value | String, Array | 父组件传来的参数,通过v-model:value绑定 | - | - - -### emits定义 - -| 序号 | 方法名 | 参数类型 | 说明 | -|----|--------|---------------------------------------|-----------------------------| -| 1 | value | 根据uploadResultType、completeResult 而定 | 当选择用户后通过v-model:value绑定到组件上 | -| 2 | onChange | 根据uploadResultType、completeResult 而定 | 通过@onChange 方法返回上传的数据 | - -### slot定义 - -| 序号 | 插槽名 | 用途 | -|----|--------|-------------| -| 1 | explain | 主要用于一些提示性文字 | diff --git a/src/src/components/XnUpload/index.vue b/src/src/components/XnUpload/index.vue deleted file mode 100644 index a30a932..0000000 --- a/src/src/components/XnUpload/index.vue +++ /dev/null @@ -1,359 +0,0 @@ - - - diff --git a/src/src/components/XnUserSelector/README.md b/src/src/components/XnUserSelector/README.md deleted file mode 100644 index d62d4bf..0000000 --- a/src/src/components/XnUserSelector/README.md +++ /dev/null @@ -1,36 +0,0 @@ -## 小诺人员选择器 - -### 说明 - -改组件为小诺人员选择器,可返回id用逗号隔离的字符串或id数组类型的数据格式 - -@author yubaoshan - -@data 2024年4月13日23:59:23 - -### props定义 - -| 序号 | 编码 | 类型 | 说明 | 默认 | -|-----|---------------------|---------------|------------------------------|--------| -| 1 | radioModel | Boolean | 是否单选;与addShow隐藏同时可用 | false | -| 2 | dataIsConverterFlw | Boolean | 是否为工作流格式 | false | -| 3 | orgTreeApi | function | 机构树接口 | - | -| 4 | userPageApi | function | 用户分页接口 | - | -| 5 | userListByIdListApi | function | 通过id数组查询list数据接口 | - | -| 6 | value | object或string | 通过v-model:value绑定数据 | - | -| 7 | dataType | string | 数据类型object或string | string | -| 8 | userShow | Boolean | 是否显示已选择用户(非表单内、单纯的选择用户需要隐藏) | true | -| 9 | addShow | Boolean | 是否默认的增加人员按钮,与radioModel为或的关系 | true | - -### emits定义 - -| 序号 | 方法名 | 参数类型 | 说明 | -|----|--------|----------------|---------------------------------| -| 1 | value | 根据 dataType 而定 | 当选择用户后通过v-model:value绑定到组件上 | -| 2 | onBack | 根据 dataType 而定 | 通过@onBack 方法返回选中的数据,触发点为选中或删除用户 | - -### slot定义 - -| 序号 | 插槽名 | 用途 | 用途 | -|----|--------|-------------------|-------------------| -| 1 | button | 在人员新增按钮后可以插入自定义按钮 | 不满足新增人员按钮样式,可以自定义 | diff --git a/src/src/components/XnUserSelector/index.vue b/src/src/components/XnUserSelector/index.vue deleted file mode 100644 index 3c6cb35..0000000 --- a/src/src/components/XnUserSelector/index.vue +++ /dev/null @@ -1,623 +0,0 @@ - - - - diff --git a/src/src/components/XnUserSelector/userSelectorTest.vue b/src/src/components/XnUserSelector/userSelectorTest.vue deleted file mode 100644 index 57e3ec2..0000000 --- a/src/src/components/XnUserSelector/userSelectorTest.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/src/src/components/global.less b/src/src/components/global.less deleted file mode 100644 index fda3196..0000000 --- a/src/src/components/global.less +++ /dev/null @@ -1,503 +0,0 @@ -@import './index.less'; - -body { - - -} - -#app { - height: 100%; - - &.colorWeak { - filter: invert(80%); - } - &.userLayout { - overflow: auto; - } -} - -.layout.ant-layout { - height: auto; - overflow-x: hidden; - - &.mobile, - &.tablet { - .ant-layout-content { - .content { - margin: 24px 0 0; - } - } - .topmenu { - /* 必须为 topmenu 才能启用流式布局 */ - &.content-width-Fluid { - .header-index-wide { - margin-left: 0; - } - } - } - } - - &.mobile { - .sidemenu { - .ant-header-fixedHeader { - &.ant-header-side-opened, - &.ant-header-side-closed { - width: 100%; - } - } - } - } - - &.ant-layout-has-sider { - flex-direction: row; - } - - .trigger { - font-size: 20px; - line-height: 55px; - padding: 0 24px; - cursor: pointer; - transition: color 0.3s; - &:hover { - background: rgba(0, 0, 0, 0.025); - } - } - - .topmenu { - .ant-header-fixedHeader { - position: fixed; - top: 0; - right: 0; - z-index: 9; - width: 100%; - transition: width 0.2s; - - &.ant-header-side-opened { - width: 100%; - } - - &.ant-header-side-closed { - width: 100%; - } - } - /* 必须为 topmenu 才能启用流式布局 */ - &.content-width-Fluid { - .header-index-wide { - max-width: unset; - .header-index-left { - flex: 1 1 1000px; - .logo{ - margin-left: 25px; - } - .ant-menu.ant-menu-horizontal{ - max-width: calc(100vw - 190px - 238px - 25px); - flex: 1 1 calc(100vw - 190px - 238px - 25px); - } - } - .header-index-right{ - margin-right:25px; - } - } - - .page-header-index-wide { - max-width: unset; - } - } - } - - .sidemenu { - .ant-header-fixedHeader { - position: fixed; - top: 0; - right: 0; - z-index: 9; - width: 100%; - transition: width 0.2s; - - &.ant-header-side-opened { - width: calc(100% - 230px); - } - - &.ant-header-side-closed { - width: calc(100% - 80px); - } - } - } - - .header { - height: 55px; - // padding: 0 12px 0 0; - background: #fff; - box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); - position: relative; - } - - .header, - .top-nav-header-index { - .user-wrapper { - float: right; - height: 100%; - - .action { - line-height: 55px; - cursor: pointer; - padding: 0 12px; - display: inline-block; - transition: all 0.3s; - height: 100%; - color: rgba(0, 0, 0, 0.65); - - &:hover { - background: rgba(0, 0, 0, 0.025); - } - - .avatar { - margin: 15px 8px 15px 0; - color: #1890ff; - background: hsla(0, 0%, 100%, 0.85); - vertical-align: middle; - } - - .icon { - font-size: 16px; - padding: 4px; - } - } - } - - &.dark { - .user-wrapper { - .action { - color: rgba(255, 255, 255, 0.85); - a { - color: rgba(255, 255, 255, 0.85); - } - - &:hover { - background: rgba(255, 255, 255, 0.16); - } - } - } - } - } - - &.mobile, - &.tablet { - .top-nav-header-index { - .header-index-wide { - .header-index-left { - .trigger { - color: rgba(255, 255, 255, 0.85); - padding: 0 12px; - } - - .logo.top-nav-header { - flex: 0 0 56px; - text-align: center; - line-height: 58px; - h1 { - display: none; - } - } - } - } - - &.light { - .header-index-wide { - .header-index-left { - .trigger { - color: rgba(0, 0, 0, 0.65); - } - } - } - } - } - } - - &.tablet { - // overflow: hidden; text-overflow:ellipsis; white-space: nowrap; - .top-nav-header-index { - .header-index-wide { - .header-index-left { - .logo > a { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - } - .ant-menu.ant-menu-horizontal { - flex: 1 1 auto; - white-space: normal; - } - } - } - } - - .top-nav-header-index { - box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); - position: relative; - transition: background 0.3s, width 0.2s; - - .header-index-wide { - max-width: 1200px; - margin: auto; - padding-left: 0; - display: flex; - height: 55px; - - .ant-menu.ant-menu-horizontal { - max-width: 835px; - flex: 0 1 835px; - border: none; - height: 55px; - line-height: 55px; - } - - .header-index-left { - flex: 0 1 1000px; - display: flex; - - .logo.top-nav-header { - flex: 0 0 165px; - width: 165px; - height: 55px; - position: relative; - line-height: 55px; - transition: all 0.3s; - overflow: hidden; - - img, - svg { - display: inline-block; - vertical-align: middle; - height: 32px; - width: 32px; - } - - h1 { - color: #fff; - display: inline-block; - vertical-align: top; - font-size: 16px; - margin: 0 0 0 12px; - font-weight: 400; - } - } - } - - .header-index-right { - flex: 0 0 238px; - align-self: flex-end; - height: 55px; - overflow: hidden; - - .content-box { - float: right; - .action { - max-width: 140px; - overflow: hidden; - text-overflow:ellipsis; - white-space:nowrap; - } - } - } - } - - &.light { - background-color: #fff; - - .header-index-wide { - .header-index-left { - .logo { - h1 { - color: #002140; - } - } - } - } - } - } - - // 内容区 - .layout-content { - margin: 24px 24px 0px; - //height: 100%; - //height: 64px; - padding: 0 12px 0 0; - } - - // footer - .ant-layout-footer { - padding: 0; - } -} - -.topmenu { - .page-header-index-wide { - max-width: 1200px; - margin: 0 auto; - } -} - -// drawer-sider 自定义 -.ant-drawer.drawer-sider { - .sider { - box-shadow: none; - } - - &.dark { - .ant-drawer-content { - background-color: rgb(0, 21, 41); - } - } - &.light { - box-shadow: none; - .ant-drawer-content { - background-color: #fff; - } - } - - .ant-drawer-body { - padding: 0; - } -} - -// 菜单样式 -.sider { - box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); - position: relative; - z-index: @ant-global-sider-zindex; - min-height: 100vh; - - .ant-layout-sider-children { - overflow-y: hidden; - - &:hover { - overflow-y: auto; - } - } - - &.ant-fixed-sidemenu { - position: fixed; - height: 100%; - } - - // logo区域样式 - .logo { - position: relative; - height: 55px; - padding-left: 24px; - overflow: hidden; - line-height: 55px; - background: #002140; - transition: all .3s; - - img, - svg, - h1 { - display: inline-block; - vertical-align: middle; - } - - img, - svg { - height: 32px; - width: 32px; - } - - h1 { - color: #fff; - font-size: 20px; - margin: 0 0 0 12px; - font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; - font-weight: 600; - vertical-align: middle; - } - } - - &.light { - background-color: #fff; - box-shadow: 2px 0px 8px 0px rgba(29, 35, 41, 0.05); - - .logo { - background: #fff; - box-shadow: 1px 1px 0px 0px #e8e8e8; - - h1 { - color: unset; - } - } - - .ant-menu-light { - border-right-color: transparent; - } - } -} - -// 外置的样式控制 -.user-dropdown-menu { - span { - user-select: none; - } -} -.user-dropdown-menu-wrapper.ant-dropdown-menu { - padding: 4px 0; - - .ant-dropdown-menu-item { - width: 160px; - } - - .ant-dropdown-menu-item > .anticon:first-child, - .ant-dropdown-menu-item > a > .anticon:first-child, - .ant-dropdown-menu-submenu-title > .anticon:first-child .ant-dropdown-menu-submenu-title > a > .anticon:first-child { - min-width: 12px; - margin-right: 8px; - } -} - -// 数据列表 样式 -.table-alert { - margin-bottom: 16px; -} - -.table-page-search-wrapper { - .ant-form-inline { - .ant-form-item { - display: flex; - margin-bottom: 24px; - margin-right: 0; - - .ant-form-item-control-wrapper { - flex: 1 1; - display: inline-block; - vertical-align: middle; - } - - > .ant-form-item-label { - line-height: 32px; - padding-right: 8px; - width: auto; - } - .ant-form-item-control { - height: 32px; - line-height: 32px; - } - } - } - - .table-page-search-submitButtons { - display: block; - margin-bottom: 24px; - white-space: nowrap; - } -} - -.content { - .table-operator { - margin-bottom: 18px; - - button { - margin-right: 8px; - } - } -} diff --git a/src/src/components/index.less b/src/src/components/index.less deleted file mode 100644 index 25cb200..0000000 --- a/src/src/components/index.less +++ /dev/null @@ -1,6 +0,0 @@ -@import "ant-design-vue/lib/style/index"; - -// The prefix to use on all css classes from ant-pro. -@ant-pro-prefix : ant-pro; -@ant-global-sider-zindex : 106; -@ant-global-header-zindex : 105; diff --git a/src/src/config/iconSelect.js b/src/src/config/iconSelect.js deleted file mode 100644 index 0c57c0b..0000000 --- a/src/src/config/iconSelect.js +++ /dev/null @@ -1,827 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -/** - * 图标选择器基础数据 - * 推荐前往https://icones.js.org下载图标的Vue文件,然后放在src/assets/icons文件夹里面 - * 这个网址有118个图标集,包括antd、font awesome、bootstrap、eleme等累计140456个图标 - */ -const uiwIconComponentMap = import.meta.glob('../assets/icons/uiw/*.vue') // 异步方式 - -const uiwIcons = Object.keys(uiwIconComponentMap).map((key) => { - return key.slice(key.lastIndexOf('/') + 1, key.lastIndexOf('.')) -}) - -export default { - icons: [ - { - name: '基础', - key: 'default', - iconItem: [ - { - name: '线框风格', - key: 'default', - item: [ - 'step-backward-outlined', - 'step-forward-outlined', - 'fast-backward-outlined', - 'fast-forward-outlined', - 'shrink-outlined', - 'arrows-alt-outlined', - 'down-outlined', - 'up-outlined', - 'left-outlined', - 'right-outlined', - 'caret-up-outlined', - 'caret-down-outlined', - 'caret-left-outlined', - 'caret-right-outlined', - 'up-circle-outlined', - 'down-circle-outlined', - 'left-circle-outlined', - 'right-circle-outlined', - 'double-right-outlined', - 'double-left-outlined', - 'vertical-left-outlined', - 'vertical-right-outlined', - 'vertical-align-top-outlined', - 'vertical-align-middle-outlined', - 'vertical-align-bottom-outlined', - 'forward-outlined', - 'backward-outlined', - 'rollback-outlined', - 'enter-outlined', - 'retweet-outlined', - 'swap-outlined', - 'swap-left-outlined', - 'swap-right-outlined', - 'arrow-up-outlined', - 'arrow-down-outlined', - 'arrow-left-outlined', - 'arrow-right-outlined', - 'play-circle-outlined', - 'up-Square-outlined', - 'down-square-outlined', - 'left-square-outlined', - 'right-square-outlined', - 'login-outlined', - 'logout-outlined', - 'menu-fold-outlined', - 'menu-unfold-outlined', - 'border-bottom-outlined', - 'border-horizontal-outlined', - 'border-inner-outlined', - 'border-outer-outlined', - 'border-left-outlined', - 'border-right-outlined', - 'border-top-outlined', - 'border-verticle-outlined', - 'pic-center-outlined', - 'pic-left-outlined', - 'pic-right-outlined', - 'radius-bottomleft-outlined', - 'radius-bottomright-outlined', - 'radius-upleft-outlined', - 'radius-upright-outlined', - 'fullscreen-outlined', - 'fullscreen-exit-outlined', - 'question-outlined', - 'question-circle-outlined', - 'plus-outlined', - 'plus-circle-outlined', - 'pause-outlined', - 'pause-circle-outlined', - 'minus-outlined', - 'minus-circle-outlined', - 'plus-square-outlined', - 'minus-square-outlined', - 'info-outlined', - 'info-circle-outlined', - 'exclamation-outlined', - 'exclamation-circle-outlined', - 'close-outlined', - 'close-circle-outlined', - 'close-square-outlined', - 'check-outlined', - 'check-circle-outlined', - 'check-square-outlined', - 'clock-circle-outlined', - 'warning-outlined', - 'issues-close-outlined', - 'stop-outlined', - 'edit-outlined', - 'form-outlined', - 'copy-outlined', - 'scissor-outlined', - 'delete-outlined', - 'snippets-outlined', - 'diff-outlined', - 'highlight-outlined', - 'align-center-outlined', - 'align-left-outlined', - 'align-right-outlined', - 'bg-colors-outlined', - 'bold-outlined', - 'italic-outlined', - 'underline-outlined', - 'strikethrough-outlined', - 'redo-outlined', - 'undo-outlined', - 'zoom-in-outlined', - 'zoom-out-outlined', - 'font-colors-outlined', - 'font-size-outlined', - 'line-height-outlined', - 'dash-outlined', - 'small-dash-outlined', - 'sort-ascending-outlined', - 'sort-descending-outlined', - 'drag-outlined', - 'ordered-list-outlined', - 'unordered-list-outlined', - 'radius-setting-outlined', - 'column-width-outlined', - 'column-height-outlined', - 'account-book-outlined', - 'aim-outlined', - 'alert-outlined', - 'apartment-outlined', - 'api-outlined', - 'appstore-add-outlined', - 'appstore-outlined', - 'audio-outlined', - 'audio-muted-outlined', - 'audit-outlined', - 'bank-outlined', - 'barcode-outlined', - 'bars-outlined', - 'bell-outlined', - 'block-outlined', - 'book-outlined', - 'border-outlined', - 'borderless-table-outlined', - 'branches-outlined', - 'bug-outlined', - 'build-outlined', - 'bulb-outlined', - 'calculator-outlined', - 'calendar-outlined', - 'camera-outlined', - 'car-outlined', - 'carry-out-outlined', - 'ci-circle-outlined', - 'ci-outlined', - 'clear-outlined', - 'cloud-download-outlined', - 'cloud-outlined', - 'cloud-server-outlined', - 'cloud-sync-outlined', - 'cloud-upload-outlined', - 'cluster-outlined', - 'code-outlined', - 'coffee-outlined', - 'comment-outlined', - 'compass-outlined', - 'compress-outlined', - 'console-sql-outlined', - 'contacts-outlined', - 'container-outlined', - 'control-outlined', - 'copyright-circle-outlined', - 'copyright-outlined', - 'credit-card-outlined', - 'crown-outlined', - 'customer-service-outlined', - 'dashboard-outlined', - 'database-outlined', - 'delete-column-outlined', - 'delete-row-outlined', - 'delivered-procedure-outlined', - 'deployment-unit-outlined', - 'desktop-outlined', - 'dingtalk-outlined', - 'disconnect-outlined', - 'dislike-outlined', - 'dollar-circle-outlined', - 'dollar-outlined', - 'download-outlined', - 'ellipsis-outlined', - 'environment-outlined', - 'euro-circle-outlined', - 'euro-outlined', - 'exception-outlined', - 'expand-alt-outlined', - 'expand-outlined', - 'experiment-outlined', - 'export-outlined', - 'eye-outlined', - 'eye-invisible-outlined', - 'field-binary-outlined', - 'field-number-outlined', - 'field-string-outlined', - 'field-time-outlined', - 'file-add-outlined', - 'file-done-outlined', - 'file-excel-outlined', - 'file-exclamation-outlined', - 'file-outlined', - 'file-gif-outlined', - 'file-image-outlined', - 'file-jpg-outlined', - 'file-markdown-outlined', - 'file-pdf-outlined', - 'file-ppt-outlined', - 'file-protect-outlined', - 'file-search-outlined', - 'file-sync-outlined', - 'file-text-outlined', - 'file-unknown-outlined', - 'file-word-outlined', - 'file-zip-outlined', - 'filter-outlined', - 'fire-outlined', - 'flag-outlined', - 'folder-add-outlined', - 'folder-outlined', - 'folder-open-outlined', - 'folder-view-outlined', - 'fork-outlined', - 'format-painter-outlined', - 'frown-outlined', - 'function-outlined', - 'fund-projection-screen-outlined', - 'fund-view-outlined', - 'funnel-plot-outlined', - 'gateway-outlined', - 'gif-outlined', - 'gift-outlined', - 'global-outlined', - 'gold-outlined', - 'group-outlined', - 'hdd-outlined', - 'heart-outlined', - 'history-outlined', - 'holder-outlined', - 'home-outlined', - 'hourglass-outlined', - 'idcard-outlined', - 'import-outlined', - 'inbox-outlined', - 'insert-row-above-outlined', - 'insert-row-below-outlined', - 'insert-row-left-outlined', - 'insert-row-right-outlined', - 'insurance-outlined', - 'interaction-outlined', - 'key-outlined', - 'laptop-outlined', - 'layout-outlined', - 'like-outlined', - 'line-outlined', - 'link-outlined', - 'loading3-quarters-outlined', - 'loading-outlined', - 'lock-outlined', - 'mac-command-outlined', - 'mail-outlined', - 'man-outlined', - 'medicine-box-outlined', - 'meh-outlined', - 'menu-outlined', - 'merge-cells-outlined', - 'message-outlined', - 'mobile-outlined', - 'money-collect-outlined', - 'monitor-outlined', - 'more-outlined', - 'node-collapse-outlined', - 'node-expand-outlined', - 'node-index-outlined', - 'notification-outlined', - 'number-outlined', - 'one-to-one-outlined', - 'paper-clip-outlined', - 'partition-outlined', - 'pay-circle-outlined', - 'percentage-outlined', - 'phone-outlined', - 'picture-outlined', - 'play-square-outlined', - 'pound-circle-outlined', - 'pound-outlined', - 'poweroff-outlined', - 'printer-outlined', - 'profile-outlined', - 'project-outlined', - 'property-safety-outlined', - 'pull-request-outlined', - 'pushpin-outlined', - 'qrcode-outlined', - 'read-outlined', - 'reconciliation-outlined', - 'red-envelope-outlined', - 'reload-outlined', - 'rest-outlined', - 'robot-outlined', - 'rocket-outlined', - 'rotate-left-outlined', - 'rotate-right-outlined', - 'safety-certificate-outlined', - 'safety-outlined', - 'save-outlined', - 'scan-outlined', - 'schedule-outlined', - 'search-outlined', - 'security-scan-outlined', - 'select-outlined', - 'send-outlined', - 'setting-outlined', - 'shake-outlined', - 'share-alt-outlined', - 'shop-outlined', - 'shopping-cart-outlined', - 'shopping-outlined', - 'sisternode-outlined', - 'skin-outlined', - 'smile-outlined', - 'solution-outlined', - 'sound-outlined', - 'split-cells-outlined', - 'star-outlined', - 'subnode-outlined', - 'switcher-outlined', - 'sync-outlined', - 'table-outlined', - 'tablet-outlined', - 'tag-outlined', - 'tags-outlined', - 'team-outlined', - 'thunderbolt-outlined', - 'to-top-outlined', - 'tool-outlined', - 'trademark-circle-outlined', - 'trademark-outlined', - 'transaction-outlined', - 'translation-outlined', - 'trophy-outlined', - 'ungroup-outlined', - 'unlock-outlined', - 'upload-outlined', - 'usb-outlined', - 'user-add-outlined', - 'user-delete-outlined', - 'user-outlined', - 'user-switch-outlined', - 'usergroup-add-outlined', - 'usergroup-delete-outlined', - 'verified-outlined', - 'video-camera-add-outlined', - 'video-camera-outlined', - 'wallet-outlined', - 'whats-app-outlined', - 'wifi-outlined', - 'woman-outlined' - ] - }, - { - name: '实底风格', - key: 'filled', - item: [ - 'step-backward-filled', - 'step-forward-filled', - 'fast-backward-filled', - 'fast-forward-filled', - 'caret-up-filled', - 'caret-down-filled', - 'caret-left-filled', - 'caret-right-filled', - 'up-circle-filled', - 'down-circle-filled', - 'left-circle-filled', - 'right-circle-filled', - 'forward-filled', - 'backward-filled', - 'play-circle-filled', - 'up-square-filled', - 'down-square-filled', - 'left-square-filled', - 'right-square-filled', - 'question-circle-filled', - 'plus-circle-filled', - 'pause-circle-filled', - 'minus-circle-filled', - 'plus-square-filled', - 'minus-square-filled', - 'info-circle-filled', - 'exclamation-circle-filled', - 'close-circle-filled', - 'close-square-filled', - 'check-circle-filled', - 'check-square-filled', - 'clock-circle-filled', - 'warning-filled', - 'stop-filled', - 'edit-filled', - 'copy-filled', - 'delete-filled', - 'snippets-filled', - 'diff-filled', - 'highlight-filled', - 'pie-chart-filled', - 'box-plot-filled', - 'fund-filled', - 'sliders-filled', - 'android-filled', - 'apple-filled', - 'windows-filled', - 'chrome-filled', - 'github-filled', - 'aliwangwang-filled', - 'weibo-square-filled', - 'weibo-circle-filled', - 'taobao-circle-filled', - 'html5-filled', - 'wechat-filled', - 'youtube-filled', - 'alipay-circle-filled', - 'skype-filled', - 'gitlab-filled', - 'linkedin-filled', - 'facebook-filled', - 'code-sandbox-circle-filled', - 'codepen-circle-filled', - 'slack-square-filled', - 'behance-square-filled', - 'dribbble-square-filled', - 'instagram-filled', - 'yuque-filled', - 'yahoo-filled', - 'account-book-filled', - 'alert-filled', - 'alipay-square-filled', - 'amazon-circle-filled', - 'amazon-square-filled', - 'api-filled', - 'appstore-filled', - 'audio-filled', - 'bank-filled', - 'behance-circle-filled', - 'bell-filled', - 'book-filled', - 'bug-filled', - 'build-filled', - 'bulb-filled', - 'calculator-filled', - 'calendar-filled', - 'camera-filled', - 'car-filled', - 'carry-out-filled', - 'ci-circle-filled', - 'cloud-filled', - 'code-filled', - 'code-sandbox-square-filled', - 'codepen-square-filled', - 'compass-filled', - 'contacts-filled', - 'container-filled', - 'control-filled', - 'copyright-circle-filled', - 'credit-card-filled', - 'crown-filled', - 'customer-service-filled', - 'dashboard-filled', - 'database-filled', - 'dingtalk-circle-filled', - 'dingtalk-square-filled', - 'dislike-filled', - 'dollar-circle-filled', - 'dribbble-circle-filled', - 'dropbox-circle-filled', - 'dropbox-square-filled', - 'environment-filled', - 'euro-circle-filled', - 'experiment-filled', - 'eye-filled', - 'eye-invisible-filled', - 'file-add-filled', - 'file-excel-filled', - 'file-exclamation-filled', - 'file-filled', - 'file-image-filled', - 'file-markdown-filled', - 'file-pdf-filled', - 'file-ppt-filled', - 'file-text-filled', - 'file-unknown-filled', - 'file-word-filled', - 'file-zip-filled', - 'filter-filled', - 'fire-filled', - 'flag-filled', - 'folder-add-filled', - 'folder-filled', - 'folder-open-filled', - 'format-painter-filled', - 'frown-filled', - 'funnel-plot-filled', - 'gift-filled', - 'gold-filled', - 'golden-filled', - 'google-circle-filled', - 'google-plus-circle-filled', - 'google-plus-square-filled', - 'google-square-filled', - 'hdd-filled', - 'heart-filled', - 'home-filled', - 'hourglass-filled', - 'idcard-filled', - 'ie-circle-filled', - 'ie-square-filled', - 'insurance-filled', - 'interaction-filled', - 'layout-filled', - 'like-filled', - 'lock-filled', - 'mac-command-filled', - 'mail-filled', - 'medicine-box-filled', - 'medium-circle-filled', - 'medium-square-filled', - 'meh-filled', - 'message-filled', - 'mobile-filled', - 'money-collect-filled', - 'notification-filled', - 'pay-circle-filled', - 'phone-filled', - 'picture-filled', - 'play-square-filled', - 'pound-circle-filled', - 'printer-filled', - 'profile-filled', - 'project-filled', - 'property-safety-filled', - 'pushpin-filled', - 'qq-circle-filled', - 'qq-square-filled', - 'read-filled', - 'reconciliation-filled', - 'red-envelope-filled', - 'reddit-circle-filled', - 'reddit-square-filled', - 'rest-filled', - 'robot-filled', - 'rocket-filled', - 'safety-certificate-filled', - 'save-filled', - 'schedule-filled', - 'security-scan-filled', - 'setting-filled', - 'shop-filled', - 'shopping-filled', - 'signal-filled', - 'sketch-circle-filled', - 'sketch-square-filled', - 'skin-filled', - 'slack-circle-filled', - 'smile-filled', - 'sound-filled', - 'star-filled', - 'switcher-filled', - 'tablet-filled', - 'tag-filled', - 'tags-filled', - 'taobao-square-filled', - 'thunderbolt-filled', - 'tool-filled', - 'trademark-circle-filled', - 'trophy-filled', - 'twitter-circle-filled', - 'twitter-square-filled', - 'unlock-filled', - 'usb-filled', - 'video-camera-filled', - 'wallet-filled', - 'zhihu-circle-filled', - 'zhihu-square-filled' - ] - }, - { - name: '双色风格', - key: 'twotone', - item: [ - 'up-circle-two-tone', - 'down-circle-two-tone', - 'left-circle-two-tone', - 'right-circle-two-tone', - 'play-circle-two-tone', - 'up-square-two-tone', - 'down-square-two-tone', - 'left-square-two-tone', - 'right-square-two-tone', - 'question-circle-two-tone', - 'plus-circle-two-tone', - 'pause-circle-two-tone', - 'minus-circle-two-tone', - 'plus-square-two-tone', - 'minus-square-two-tone', - 'info-circle-two-tone', - 'exclamation-circle-two-tone', - 'close-circle-two-tone', - 'close-square-two-tone', - 'check-circle-two-tone', - 'check-square-two-tone', - 'clock-circle-two-tone', - 'warning-two-tone', - 'stop-two-tone', - 'edit-two-tone', - 'copy-two-tone', - 'delete-two-tone', - 'snippets-two-tone', - 'diff-two-tone', - 'highlight-two-tone', - 'pie-chart-two-tone', - 'box-plot-two-tone', - 'fund-two-tone', - 'sliders-two-tone', - 'account-book-two-tone', - 'alert-two-tone', - 'api-two-tone', - 'appstore-two-tone', - 'audio-two-tone', - 'bank-two-tone', - 'bell-two-tone', - 'book-two-tone', - 'bug-two-tone', - 'build-two-tone', - 'bulb-two-tone', - 'calculator-two-tone', - 'calendar-two-tone', - 'camera-two-tone', - 'car-two-tone', - 'carry-out-two-tone', - 'ci-circle-two-tone', - 'ci-two-tone', - 'cloud-two-tone', - 'code-two-tone', - 'compass-two-tone', - 'contacts-two-tone', - 'container-two-tone', - 'control-two-tone', - 'copyright-circle-two-tone', - 'copyright-two-tone', - 'credit-card-two-tone', - 'crown-two-tone', - 'customer-service-two-tone', - 'dashboard-two-tone', - 'database-two-tone', - 'dislike-two-tone', - 'dollar-circle-two-tone', - 'dollar-two-tone', - 'environment-two-tone', - 'euro-circle-two-tone', - 'account-book-two-tone', - 'alert-two-tone', - 'api-two-tone', - 'appstore-two-tone', - 'audio-two-tone', - 'bank-two-tone', - 'bell-two-tone', - 'book-two-tone', - 'bug-two-tone', - 'build-two-tone', - 'bulb-two-tone', - 'calculator-two-tone', - 'calendar-two-tone', - 'camera-two-tone', - 'car-two-tone', - 'carry-out-two-tone', - 'ci-circle-two-tone', - 'ci-two-tone', - 'cloud-two-tone', - 'code-two-tone', - 'compass-two-tone', - 'contacts-two-tone', - 'container-two-tone', - 'control-two-tone', - 'copyright-circle-two-tone', - 'copyright-two-tone', - 'credit-card-two-tone', - 'crown-two-tone', - 'customer-service-two-tone', - 'dashboard-two-tone', - 'database-two-tone', - 'dislike-two-tone', - 'dollar-circle-two-tone', - 'dollar-two-tone', - 'environment-two-tone', - 'euro-circle-two-tone', - 'euro-two-tone', - 'experiment-two-tone', - 'eye-two-tone', - 'eye-invisible-two-tone', - 'file-add-two-tone', - 'file-excel-two-tone', - 'file-exclamation-two-tone', - 'file-two-tone', - 'file-image-two-tone', - 'file-markdown-two-tone', - 'file-pdf-two-tone', - 'file-ppt-two-tone', - 'file-text-two-tone', - 'file-unknown-two-tone', - 'file-word-two-tone', - 'file-zip-two-tone', - 'filter-two-tone', - 'fire-two-tone', - 'flag-two-tone', - 'folder-add-two-tone', - 'folder-two-tone', - 'folder-open-two-tone', - 'frown-two-tone', - 'funnel-plot-two-tone', - 'gift-two-tone', - 'gold-two-tone', - 'hdd-two-tone', - 'heart-two-tone', - 'home-two-tone', - 'hourglass-two-tone', - 'idcard-two-tone', - 'insurance-two-tone', - 'interaction-two-tone', - 'layout-two-tone', - 'like-two-tone', - 'lock-two-tone', - 'mail-two-tone', - 'medicine-box-two-tone', - 'meh-two-tone', - 'message-two-tone', - 'mobile-two-tone', - 'money-collect-two-tone', - 'notification-two-tone', - 'phone-two-tone', - 'picture-two-tone', - 'play-square-two-tone', - 'pound-circle-two-tone', - 'printer-two-tone', - 'profile-two-tone', - 'project-two-tone', - 'property-safety-two-tone', - 'pushpin-two-tone', - 'reconciliation-two-tone', - 'red-envelope-two-tone', - 'rest-two-tone', - 'rocket-two-tone', - 'safety-certificate-two-tone', - 'save-two-tone', - 'schedule-two-tone', - 'security-scan-two-tone', - 'setting-two-tone', - 'shop-two-tone', - 'shopping-two-tone', - 'skin-two-tone', - 'smile-two-tone', - 'sound-two-tone', - 'star-two-tone', - 'switcher-two-tone', - 'tablet-two-tone', - 'tag-two-tone', - 'tags-two-tone', - 'thunderbolt-two-tone', - 'tool-two-tone', - 'trademark-circle-two-tone', - 'trophy-two-tone', - 'unlock-two-tone', - 'usb-two-tone', - 'video-camera-two-tone', - 'wallet-two-tone' - ] - } - ] - }, - { - name: '扩展', - key: 'extend', - iconItem: [ - { - name: '常用', - key: 'default', - item: uiwIcons - }, - { - name: '其他', - key: 'other', - item: ['GiteeIcon'] - } - ] - } - ] -} diff --git a/src/src/config/index.js b/src/src/config/index.js deleted file mode 100644 index 5e1c9d1..0000000 --- a/src/src/config/index.js +++ /dev/null @@ -1,101 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -const DEFAULT_CONFIG = { - // 首页地址 - DASHBOARD_URL: '/index', - - // 接口地址 - API_URL: import.meta.env.VITE_API_BASEURL, - - // 请求超时 - TIMEOUT: 60000, - - // TokenName // Authorization - TOKEN_NAME: 'token', - - // Token前缀,注意最后有个空格,如不需要需设置空字符串 // Bearer - TOKEN_PREFIX: '', - - // 追加其他头 - HEADERS: {}, - - // 请求是否开启缓存 - REQUEST_CACHE: false, - - // 布局 经典:classical,双排菜单:doublerow, 顶栏菜单:top - SNOWY_LAYOUT: 'classical', - - // 菜单是否折叠 - SNOWY_MENU_COLLAPSE: false, - - // 模块坞 - SNOWY_MODULE_UNFOLD_OPEN: true, - - // 是否开启多标签 - SNOWY_LAYOUT_TAGS_OPEN: true, - - // 是否开启展示面包屑 - SNOWY_BREADCRUMD_OPEN: false, - - // 顶栏是否应用主题色 - SNOWY_TOP_HEADER_THEME_COLOR_OPEN: false, - - // 顶栏主题色通栏 - SNOWY_TOP_HEADER_THEME_COLOR_SPREAD: false, - - // 侧边菜单是否排他展开 - SNOWY_SIDE_UNIQUE_OPEN: true, - - // 登录用户水印 - SNOWY_LOGIN_USER_WATERMARK_OPEN: false, - - // 页脚版权信息 - SNOWY_FOOTER_COPYRIGHT_OPEN: true, - - // 圆角风格 - SNOWY_ROUNDED_CORNER_STYLE_OPEN: true, - - // 语言 - LANG: 'zh-cn', - - // 主题颜色 - COLOR: '#1677FF', - - // 默认整体主题 - SNOWY_THEME: 'light', - - // 整体表单风格 - SNOWY_FORM_STYLE: 'drawer', - - // 系统基础配置,这些是数据库中保存起来的 - SYS_BASE_CONFIG: { - // 默认logo - SNOWY_SYS_LOGO: '/img/logo.png', - // 背景图 - SNOWY_SYS_BACK_IMAGE: '', - // 系统名称 - SNOWY_SYS_NAME: 'Snowy', - // 版本 - SNOWY_SYS_VERSION: '2.0', - // 版权 - SNOWY_SYS_COPYRIGHT: 'Snowy ©2022 Created by xiaonuo.vip', - // 版权跳转URL - SNOWY_SYS_COPYRIGHT_URL: 'https://www.xiaonuo.vip', - // 默认文件存储 - SNOWY_SYS_DEFAULT_FILE_ENGINE: 'LOCAL', - // 是否开启验证码 - SNOWY_SYS_DEFAULT_CAPTCHA_OPEN: 'false', - // 默认重置密码 - SNOWY_SYS_DEFAULT_PASSWORD: '123456' - } -} - -export default DEFAULT_CONFIG diff --git a/src/src/config/route.js b/src/src/config/route.js deleted file mode 100644 index 21e1d17..0000000 --- a/src/src/config/route.js +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -// 静态路由配置 -const routes = { - // 默认模块,仅限于后端未添加任何单页配置,用此路由 - module: [ - { - id: '01', - name: 'homeModule', - path: '/homeModule', - component: '', - meta: { - title: '默认', - type: 'module', - icon: 'bank-outlined' - }, - children: [] - } - ], - // 默认谁都有个人中心 - menu: [ - { - id: '001', - name: 'usercenter', - path: '/usercenter', - component: 'sys/user/userCenter', - meta: { - title: '个人中心', - type: 'menu', - hidden: true - } - } - ] -} - -export default routes diff --git a/src/src/config/settingConfig.js b/src/src/config/settingConfig.js deleted file mode 100644 index 9d071df..0000000 --- a/src/src/config/settingConfig.js +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -const colorList = [ - { - key: '薄暮', - color: '#F5222D' - }, - { - key: '火山', - color: '#FA541C' - }, - { - key: '胭脂粉', - color: '#EB2F96' - }, - { - key: '日暮', - color: '#FAAD14' - }, - { - key: '明青', - color: '#13C2C2' - }, - { - key: '极光绿', - color: '#52C41A' - }, - { - key: '深绿', - color: '#009688' - }, - { - key: '拂晓蓝(默认)', - color: '#1677FF' - }, - { - key: '极客蓝', - color: '#2F54EB' - }, - { - key: '酱紫', - color: '#722ED1' - }, - { - key: '主题黑', - color: '#001529' - } -] - -const updateColorWeak = (colorWeak) => { - // document.body.className = colorWeak ? 'colorWeak' : ''; - const app = document.body.querySelector('#app') - colorWeak ? app.classList.add('colorWeak') : app.classList.remove('colorWeak') -} - -export { colorList, updateColorWeak } diff --git a/src/src/config/themeColor.js b/src/src/config/themeColor.js deleted file mode 100644 index b9f5456..0000000 --- a/src/src/config/themeColor.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ diff --git a/src/src/hook/useFormHandler.js b/src/src/hook/useFormHandler.js deleted file mode 100644 index 4880040..0000000 --- a/src/src/hook/useFormHandler.js +++ /dev/null @@ -1,160 +0,0 @@ -import { useRoute, useRouter } from 'vue-router' -import { cloneDeep } from 'lodash-es' -import useTabs from '@/utils/useTabs' -import extendFieldApi from '@/api/base/extendfield/extendFieldApi' - -export default function useFormHandler(formItems, api, backRouter) { - const state = reactive({ - PAGE_TYPE: '' - }) - - const extendFormData = ref({}) - const inform = reactive({ - createUserName: '', - createTime: '', - updateUserName: '', - updateTime: '' - }) - - const formData = reactive({}) - const submitLoading = ref(false) - const formRefs = ref([]) - - const route = useRoute() - const router = useRouter() - - // 初始化表单数据 - const initializeFormData = () => { - formItems.forEach((item) => { - formData[item.name] = item.defaultValue || null - }) - } - - // 提交表单 - const onSubmit = async (params = {}) => { - submitLoading.value = true - try { - await validateForms() - - const formDataParam = params.isDeep ? cloneDeep(params) : formData - const safeId = validateAndCleanId(route.query.id || params.id) - if (safeId) { - formDataParam.id = safeId - } - - const res = await api.submitForm(formDataParam, safeId) - - if (params.isEnable) return res - - handleBack() - } catch (error) { - console.error('Validation or submission error:', error) - throw error - } finally { - submitLoading.value = false - } - } - - // 验证表单 - const validateForms = () => { - return Promise.all(formRefs.value.map((form) => form.validate())) - } - - // 校验并清洁ID - const validateAndCleanId = (id) => { - return id && /^[a-zA-Z0-9\-_]+$/.test(id) ? id : undefined - } - - // 返回并关闭当前标签页 - const handleBack = () => { - useTabs.close('', backRouter) - } - - // 根据页面类型加载表单数据 - const fetchData = async (pageType) => { - initializeFormData() - if (pageType && pageType !== 'ADD') { - try { - const res = await api.getDetail({ id: route.query.id }) - populateFormData(res) - if (res.extJson) { - extendFormData.value = JSON.parse(res.extJson) - } - return res - } catch (error) { - console.error('Failed to fetch data:', error) - } - } - } - - // 填充表单数据 - const populateFormData = (data) => { - Object.keys(formData).forEach((key) => { - if (data[key] !== undefined) formData[key] = data[key] - }) - - Object.keys(inform).forEach((key) => { - if (data[key] !== undefined) inform[key] = data[key] - }) - } - - // 获取扩展字段 - const getExtendField = async (model) => { - try { - const resExtendField = await extendFieldApi.extendFieldTypeList({ - enabledState: 'ENABLE', - model - }) - console.log(resExtendField, 'resExtendField') - const extendData = - resExtendField?.map((item) => { - if (item.enabledState === 'ENABLE') { - const options = item.showValues - ? JSON.parse(item.showValues).map((value) => ({ - value: value.name, - label: value.name - })) - : [] - return { - label: item.name, - name: item.fieldName, - type: item.showType, - span: 6, - attrs: { - placeholder: '请输入内容', - options - } - } - } - }) || [] - - extendData.forEach((item) => { - if (item && item.fieldName) extendFormData.value[item.fieldName] = null - }) - - console.log(extendData.length, 'extendData') - if (extendData) { - return extendData - } else { - return [] - } - } catch (error) { - console.error('Failed to get extend fields:', error) - return [] - } - } - - return { - formData, - submitLoading, - formRefs, - inform, - extendFormData, - populateFormData, - getExtendField, - onSubmit, - handleBack, - fetchData, - initializeFormData - } -} diff --git a/src/src/hook/useNavigation.js b/src/src/hook/useNavigation.js deleted file mode 100644 index 994d522..0000000 --- a/src/src/hook/useNavigation.js +++ /dev/null @@ -1,25 +0,0 @@ -import { useRouter } from 'vue-router' - -/** - * 封装路由跳转的 Hook - */ -export function useNavigation() { - // 创建 router 实例 - const router = useRouter() - - /** - * 跳转到指定的路由 - * @param {string|object} to - 目标路由的路径或路由对象 - * @param {object} params - 跳转所需的参数 - */ - const navigateTo = (to, params) => { - router.push({ - path: to, - query: params - }) - } - - return { - navigateTo - } -} diff --git a/src/src/hook/useTableManagement.js b/src/src/hook/useTableManagement.js deleted file mode 100644 index 8bdfafc..0000000 --- a/src/src/hook/useTableManagement.js +++ /dev/null @@ -1,103 +0,0 @@ -import { cloneDeep } from 'lodash-es' -import { hasPerm } from '@/utils/permission' -import { useRouter } from 'vue-router' -import useTabs from '@/utils/useTabs' - -/** - * 列表页面表格信息 hook 封装(数据操作) - * @param apiModule 调用接口 - * @param tableColumns 表格头部信息 - * @param hasPermData 权限控制 - * @param isShowAction 是否在列首添加列 - * @returns {{searchFormRef: Ref>, toolConfig: {columnSetting: boolean, striped: boolean, refresh: boolean, height: boolean}, searchFormState: Ref>, tableRef: Ref>, selectedRowKeys: Ref>, columns: Ref>, options: {rowSelection: {onChange: options.rowSelection.onChange}, alert: {show: boolean, clear: options.alert.clear}}, reset: reset, loadData: (function(*): *), deleteBatchRecords: deleteBatchRecords, deleteRecord: deleteRecord}} - */ -export function useTableManagement(apiModule = {}, tableColumns, hasPermData, isShowAction = true) { - const searchFormState = ref({}) - const selectedRowKeys = ref([]) - - const router = useRouter() - - const tableRef = ref(null) - - // 动态列配置 - const columns = ref(tableColumns) - - // 选择配置 - const options = { - alert: { - show: true, - clear: () => { - selectedRowKeys.value = [] - } - }, - rowSelection: { - onChange: (selectedRowKey, selectedRows) => { - selectedRowKeys.value = selectedRowKey - } - }, - toolConfig: { refresh: true, height: true, columnSetting: true, striped: false } - } - - // 根据权限添加操作列 - if (hasPerm(hasPermData)) { - // 判断columns 是否有操作 - const columnsFilter = columns.value.filter((item) => item.dataIndex === 'action') - if (columnsFilter.length === 0 && isShowAction) - columns.value.unshift({ - title: '操作', - dataIndex: 'action', - align: 'center', - width: 150, - fixed: 'left' - }) - } - - // 加载数据 - const loadData = (parameter) => { - const searchFormParam = cloneDeep(searchFormState.value) - return apiModule.page(Object.assign(parameter, searchFormParam)).then((data) => { - return data - }) - } - - // 删除 - const deleteRecord = (record) => { - let params = [{ id: record.id }] - return apiModule.delete(params).then(() => { - if (tableRef.value) { - tableRef.value.refresh(true) - } - }) - } - - // 批量删除 - const deleteBatchRecords = (params) => { - apiModule.delete(params).then(() => { - if (tableRef.value) { - tableRef.value.clearRefreshSelected() - } - }) - } - - // 页面跳转 - const navigateTo = (to, params) => { - router.push({ - path: to, - query: params - }) - } - - - // 返回Hook的值 - return { - searchFormState, - tableRef, - selectedRowKeys, - columns, - options, - loadData, - deleteRecord, - deleteBatchRecords, - navigateTo - } -} diff --git a/src/src/layout/components/NavMenu.vue b/src/src/layout/components/NavMenu.vue deleted file mode 100644 index acc532b..0000000 --- a/src/src/layout/components/NavMenu.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - diff --git a/src/src/layout/components/breadcrumb.vue b/src/src/layout/components/breadcrumb.vue deleted file mode 100644 index bd852ac..0000000 --- a/src/src/layout/components/breadcrumb.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - diff --git a/src/src/layout/components/iframeView.vue b/src/src/layout/components/iframeView.vue deleted file mode 100644 index c714a98..0000000 --- a/src/src/layout/components/iframeView.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - diff --git a/src/src/layout/components/message.vue b/src/src/layout/components/message.vue deleted file mode 100644 index 5166f30..0000000 --- a/src/src/layout/components/message.vue +++ /dev/null @@ -1,192 +0,0 @@ - - - - - diff --git a/src/src/layout/components/moduleMenu.vue b/src/src/layout/components/moduleMenu.vue deleted file mode 100644 index fe47994..0000000 --- a/src/src/layout/components/moduleMenu.vue +++ /dev/null @@ -1,216 +0,0 @@ - - - - - diff --git a/src/src/layout/components/panel-search/index.vue b/src/src/layout/components/panel-search/index.vue deleted file mode 100644 index 7ac2320..0000000 --- a/src/src/layout/components/panel-search/index.vue +++ /dev/null @@ -1,336 +0,0 @@ - - - - - diff --git a/src/src/layout/components/panel-search/item.vue b/src/src/layout/components/panel-search/item.vue deleted file mode 100644 index 5201dee..0000000 --- a/src/src/layout/components/panel-search/item.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - - - diff --git a/src/src/layout/components/setting.vue b/src/src/layout/components/setting.vue deleted file mode 100644 index ea70ed8..0000000 --- a/src/src/layout/components/setting.vue +++ /dev/null @@ -1,489 +0,0 @@ - - - - diff --git a/src/src/layout/components/sideM.vue b/src/src/layout/components/sideM.vue deleted file mode 100644 index ba66128..0000000 --- a/src/src/layout/components/sideM.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - diff --git a/src/src/layout/components/tags.vue b/src/src/layout/components/tags.vue deleted file mode 100644 index 162f791..0000000 --- a/src/src/layout/components/tags.vue +++ /dev/null @@ -1,473 +0,0 @@ - - - - diff --git a/src/src/layout/components/topbar.vue b/src/src/layout/components/topbar.vue deleted file mode 100644 index 4e8e61f..0000000 --- a/src/src/layout/components/topbar.vue +++ /dev/null @@ -1,36 +0,0 @@ - - diff --git a/src/src/layout/components/userbar.vue b/src/src/layout/components/userbar.vue deleted file mode 100644 index 9a0c0ab..0000000 --- a/src/src/layout/components/userbar.vue +++ /dev/null @@ -1,192 +0,0 @@ - - - - - diff --git a/src/src/layout/enum/layoutEnum.js b/src/src/layout/enum/layoutEnum.js deleted file mode 100644 index 60b916e..0000000 --- a/src/src/layout/enum/layoutEnum.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -export const layoutEnum = { - CLASSICAL: 'classical', - DOUBLEROW: 'doublerow', - TOP: 'top' -} diff --git a/src/src/layout/enum/themeEnum.js b/src/src/layout/enum/themeEnum.js deleted file mode 100644 index d0503b4..0000000 --- a/src/src/layout/enum/themeEnum.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -export const themeEnum = { - LIGHT: 'light', - DARK: 'dark', - REAL_DARK: 'realDark' -} diff --git a/src/src/layout/index.vue b/src/src/layout/index.vue deleted file mode 100644 index d55a81e..0000000 --- a/src/src/layout/index.vue +++ /dev/null @@ -1,650 +0,0 @@ - - - - - diff --git a/src/src/layout/menu/classicalMenu.vue b/src/src/layout/menu/classicalMenu.vue deleted file mode 100644 index 882da50..0000000 --- a/src/src/layout/menu/classicalMenu.vue +++ /dev/null @@ -1,154 +0,0 @@ - - - - diff --git a/src/src/layout/menu/doubleRowMenu.vue b/src/src/layout/menu/doubleRowMenu.vue deleted file mode 100644 index a4e8038..0000000 --- a/src/src/layout/menu/doubleRowMenu.vue +++ /dev/null @@ -1,185 +0,0 @@ - - - - diff --git a/src/src/layout/menu/topMenu.vue b/src/src/layout/menu/topMenu.vue deleted file mode 100644 index 90402c2..0000000 --- a/src/src/layout/menu/topMenu.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - - - diff --git a/src/src/layout/other/403.vue b/src/src/layout/other/403.vue deleted file mode 100644 index 32fa3f5..0000000 --- a/src/src/layout/other/403.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/src/layout/other/404.vue b/src/src/layout/other/404.vue deleted file mode 100644 index 27b3fe8..0000000 --- a/src/src/layout/other/404.vue +++ /dev/null @@ -1,20 +0,0 @@ - - diff --git a/src/src/layout/other/empty.vue b/src/src/layout/other/empty.vue deleted file mode 100644 index 497d470..0000000 --- a/src/src/layout/other/empty.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/src/locales/index.js b/src/src/locales/index.js deleted file mode 100644 index 08e82b9..0000000 --- a/src/src/locales/index.js +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import { createI18n } from 'vue-i18n' -import zhCN from 'ant-design-vue/es/locale/zh_CN' -import enGB from 'ant-design-vue/es/locale/en_GB' -import zh_cn from './lang/zh-cn.js' -import en from './lang/en.js' -import tool from '@/utils/tool' -import sysConfig from '@/config/index' - -export const messages = { - 'zh-cn': { - lang: zhCN, - ...zh_cn - }, - en: { - lang: enGB, - ...en - } -} - -const i18n = createI18n({ - legacy: false, - locale: tool.data.get('APP_LANG') || sysConfig.LANG, - fallbackLocale: 'zh-cn', - globalInjection: true, - messages -}) - -export default i18n diff --git a/src/src/locales/lang/en.js b/src/src/locales/lang/en.js deleted file mode 100644 index 75ac196..0000000 --- a/src/src/locales/lang/en.js +++ /dev/null @@ -1,72 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -export default { - common: { - searchButton: 'search', - resetButton: 'reset', - addButton: 'add', - editButton: 'edit', - removeButton: 'delete', - batchRemoveButton: 'batch Remove', - detailButton: 'detail', - searchKey: 'Search Key', - imports: 'Import', - more: 'More', - export: 'Export' - }, - model: { - user: 'user', - org: 'org', - pos: 'pos', - role: 'role', - bizUser: 'bizUser' - }, - login: { - signInTitle: 'Sign in', - forgetPassword: 'Forget password', - signIn: 'Sign in', - signInOther: 'Sign in with', - accountPlaceholder: 'Please input a user account', - accountError: 'Please input a user account', - PWPlaceholder: 'Please input a password', - PWError: 'Please input a password', - validLaceholder: 'Please input a valid', - validError: 'Please input a valid', - accountPassword: 'Account Password', - phoneSms: 'Phone SMS', - phonePlaceholder: 'Please input a phone', - smsCodePlaceholder: 'Please input a SMS code', - getSmsCode: 'SMS code', - machineValidation: 'Machine Validation', - sendingSmsMessage: 'Sending SMS Message', - newPwdPlaceholder: 'Please input a new password', - backLogin: 'Back Login', - restPassword: 'Rest Password', - emailPlaceholder: 'Please input a email', - emailCodePlaceholder: 'Please input a Email code', - restPhoneType: 'For phone rest', - restEmailType: 'For email rest' - }, - user: { - userStatus: 'User Status', - resetPassword: 'Reset Password', - role: 'Role', - batchExportButton: 'Batch Export', - grantRole: 'Grant Role', - grantResource: 'Grant Resource', - grantPermission: 'Grant Permission', - exportUserInfo: 'Export UserInfo', - placeholderNameAndSearchKey: 'Please enter your name or keyword', - placeholderUserStatus: 'Please select status', - popconfirmDeleteUser: 'Are you sure you want to delete it?', - popconfirmResatUserPwd: 'Are you sure you want to reset?' - } -} diff --git a/src/src/locales/lang/zh-cn.js b/src/src/locales/lang/zh-cn.js deleted file mode 100644 index b25b2d0..0000000 --- a/src/src/locales/lang/zh-cn.js +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import 'dayjs/locale/zh-cn' - -export default { - common: { - searchButton: '查询', - resetButton: '重置', - addButton: '增加', - editButton: '编辑', - removeButton: '删除', - batchRemoveButton: '批量删除', - detailButton: '详情', - searchKey: '关键词', - imports: '导入', - more: '更多', - export: '导出' - }, - model: { - user: '用户', - org: '机构', - pos: '职位', - role: '角色', - bizUser: '人员' - }, - login: { - signInTitle: '用户登录', - forgetPassword: '忘记密码', - signIn: '登录', - signInOther: '其他登录方式', - accountPlaceholder: '请输入账号', - accountError: '请输入账号', - PWPlaceholder: '请输入密码', - PWError: '请输入密码', - validLaceholder: '请输入验证码', - validError: '请输入验证码', - accountPassword: '账号密码', - phoneSms: '手机号登录', - phonePlaceholder: '请输入手机号', - smsCodePlaceholder: '请输入短信验证码', - getSmsCode: '获取验证码', - machineValidation: '机器验证', - sendingSmsMessage: '短信发送中', - newPwdPlaceholder: '请输入新密码', - backLogin: '返回登录', - restPassword: '重置密码', - emailPlaceholder: '请输入邮箱号', - emailCodePlaceholder: '请输入邮件验证码', - restPhoneType: '手机号找回', - restEmailType: '邮箱找回' - }, - user: { - userStatus: '用户状态', - resetPassword: '重置密码', - role: '角色', - batchExportButton: '批量导出', - grantRole: '授权角色', - grantResource: '授权资源', - grantPermission: '授权权限', - exportUserInfo: '导出信息', - placeholderNameAndSearchKey: '请输入姓名或关键词', - placeholderUserStatus: '请选择状态', - popconfirmDeleteUser: '确定要删除吗?', - popconfirmResatUserPwd: '确定要重置吗?' - } -} diff --git a/src/src/main.js b/src/src/main.js deleted file mode 100644 index e3b5ecb..0000000 --- a/src/src/main.js +++ /dev/null @@ -1,20 +0,0 @@ -import { createApp } from 'vue' -import Antd from 'ant-design-vue' -import { createPinia } from 'pinia' - -import './style/index.less' -import snowy from './snowy' -import i18n from './locales' -import router from './router' -import App from './App.vue' -import './tailwind.css' - -const app = createApp(App) -app.use(createPinia()) -app.use(router) -app.use(Antd) -app.use(i18n) -app.use(snowy) - -// 挂载app -app.mount('#app') diff --git a/src/src/router/index.js b/src/src/router/index.js deleted file mode 100644 index b11228f..0000000 --- a/src/src/router/index.js +++ /dev/null @@ -1,172 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router' -import { notification } from 'ant-design-vue' -import NProgress from 'nprogress' -import 'nprogress/nprogress.css' -import systemRouter from './systemRouter' -import { afterEach, beforeEach } from './scrollBehavior' -import whiteListRouters from './whiteList' -import userRoutes from '@/config/route' -import tool from '@/utils/tool' -import { cloneDeep } from 'lodash-es' -import { globalStore } from '@/store' -import { NextLoading } from '@/utils/loading' -import { useMenuStore } from '@/store/menu' - -// 进度条配置 -NProgress.configure({ showSpinner: false, speed: 500 }) - -// 系统特殊路由 -const routes_404 = [ - { - path: '/:pathMatch(.*)*', - hidden: true, - component: () => import('@/layout/other/404.vue') - } -] -// 系统路由 -const routes = [...systemRouter, ...whiteListRouters, ...routes_404] - -const router = createRouter({ - history: createWebHashHistory(), - routes -}) - -// 设置标题 -// document.title = sysBaseConfig.SNOWY_SYS_NAME - -// 判断是否已加载过动态/静态路由 -const isGetRouter = ref(false) - -// 白名单校验 -const exportWhiteListFromRouter = (router) => { - const res = [] - for (const item of router) res.push(item.path) - return res -} -const whiteList = exportWhiteListFromRouter(whiteListRouters) - -router.beforeEach(async (to, from, next) => { - NProgress.start() - const store = globalStore() - - const sysBaseConfig = tool.data.get('SNOWY_SYS_BASE_CONFIG') || store.sysBaseConfig - // 动态标题 - document.title = to.meta.title - ? `${to.meta.title} - ${sysBaseConfig.SNOWY_SYS_NAME}` - : `${sysBaseConfig.SNOWY_SYS_NAME}` - - // 过滤白名单 - if (whiteList.includes(to.path)) { - next() - // NProgress.done() - return false - } - - if (!isGetRouter.value) { - // 初始化菜单加载,代码位置不能变动 - const menuStore = useMenuStore() - menuStore.refreshMenu() - isGetRouter.value = true - next({ ...to, replace: true }) - return false - } - - const token = tool.data.get('TOKEN') - - // 页面刷新,加载loading - if (from.path === '/' && to.path !== '/login' && !window.nextLoading && token) { - NextLoading.start() - } - if (to.path === '/login') { - // 当用户输入了login路由,将其跳转首页即可 - if (token) { - next({ - path: '/' - }) - return false - } - // 删除路由(替换当前layout路由) - router.addRoute(routes[0]) - next() - return false - } else { - if (token) { - // 有token的时候才保存登录之前要访问的页面 - tool.data.set('LAST_VIEWS_PATH', to.fullPath) - } - } - if (!token) { - next({ - path: '/login' - }) - return false - } - // 整页路由处理 - if (to.meta.fullpage) { - to.matched = [to.matched[to.matched.length - 1]] - } - beforeEach(to, from) - next() -}) - -router.afterEach((to, from) => { - afterEach(to, from) - NProgress.done() - window.nextLoading && NextLoading.done() -}) - -router.onError((error) => { - NProgress.done() - window.nextLoading && NextLoading.done() - notification.error({ - message: '路由错误', - description: error.message - }) -}) - -// 入侵追加自定义方法、对象 -router.getMenu = () => { - const menuStore = useMenuStore() - let apiMenu = menuStore.menuData.value || tool.data.get('MENU') || [] - // 增加固定路由 - if (apiMenu.length === 0) { - // 创建默认模块,显示默认菜单 - apiMenu[0] = cloneDeep(userRoutes.module[0]) - } - const childrenApiMenu = apiMenu[0].children - apiMenu[0].children = [...(childrenApiMenu ? childrenApiMenu : []), ...userRoutes.menu] - return filterUrl(apiMenu) -} - -const filterUrl = (map) => { - const newMap = [] - const traverse = (maps) => { - maps && - maps.forEach((item) => { - item.meta = item.meta ? item.meta : {} - // 处理iframe - if (item.meta.type === 'iframe') { - item.path = `/${item.name}` - } - // 递归循环 - if (item.children && item.children.length > 0) { - item.children = filterUrl(item.children) - } - newMap.push(item) - }) - } - traverse(map) - return newMap -} - -export default router diff --git a/src/src/router/scrollBehavior.js b/src/src/router/scrollBehavior.js deleted file mode 100644 index 040f60b..0000000 --- a/src/src/router/scrollBehavior.js +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import { nextTick } from 'vue' -import { viewTagsStore } from '@/store' - -export function beforeEach(to, from) { - const adminMain = document.querySelector('#admin-ui-main') - if (!adminMain) { - return false - } - const store = viewTagsStore() - store.updateViewTags({ - fullPath: from.fullPath, - scrollTop: adminMain.scrollTop - }) -} - -export function afterEach(to) { - const adminMain = document.querySelector('#admin-ui-main') - if (!adminMain) { - return false - } - nextTick(() => { - const store = viewTagsStore() - const beforeRoute = store.viewTags.filter((v) => v.fullPath == to.fullPath)[0] - if (beforeRoute) { - adminMain.scrollTop = beforeRoute.scrollTop || 0 - } - }) -} diff --git a/src/src/router/systemRouter.js b/src/src/router/systemRouter.js deleted file mode 100644 index e3d19ea..0000000 --- a/src/src/router/systemRouter.js +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import config from '@/config' -import tool from '@/utils/tool' -import routerUtil from '@/utils/routerUtil' - -import Layout from '@/layout/index.vue' -import Login from '@/views/auth/login/login.vue' -import Findpwd from '@/views/auth/findPwd/index.vue' -import Callback from '@/views/auth/login/callback.vue' - -// 系统路由 -const routes = [ - { - name: 'layout', - path: '/', - component: Layout, - redirect: tool.data.get('MENU') ? routerUtil.getIndexMenu(tool.data.get('MENU')).path : config.DASHBOARD_URL, - children: [] - }, - { - path: '/login', - component: Login, - meta: { - title: '登录' - } - }, - { - path: '/findpwd', - component: Findpwd, - meta: { - title: '找回密码' - } - }, - { - path: '/callback', - component: Callback, - meta: { - title: '三方登录' - } - } -] - -export default routes diff --git a/src/src/router/whiteList.js b/src/src/router/whiteList.js deleted file mode 100644 index 7da14bf..0000000 --- a/src/src/router/whiteList.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -const constRouters = [ - { - path: '/findpwd' - }, - { - path: '/callback' - }, - { - path: '/other', - name: 'other', - component: () => import('@/views/other/index.vue'), - meta: { - title: '其他' - } - } -] -/** - * 路由白名单(数组形式) - * - * 如果组件像登录一样,那就简单的写一个path,即可实现放开, - * 如果组件不在这边的,需要手动添加组件,就像other一样, - * 因为没登陆你没法拿到后端给你返回的那一坨,当然就找不到component - * - * @author yubaoshan - */ -export default constRouters diff --git a/src/src/snowy.js b/src/src/snowy.js deleted file mode 100644 index d3feb5b..0000000 --- a/src/src/snowy.js +++ /dev/null @@ -1,40 +0,0 @@ -import * as antdvIcons from '@ant-design/icons-vue' -import config from './config' -import tool from './utils/tool' -import { hasPerm } from './utils/permission/index' -import errorHandler from './utils/errorHandler' -import customIcons from './assets/icons/index.js' -import 'highlight.js/styles/atom-one-dark.css' -import hljsCommon from 'highlight.js/lib/common' -import hljsVuePlugin from '@highlightjs/vue-plugin' -import STable from './components/Table/index.vue' -import Ellipsis from './components/Ellipsis/index.vue' -import DragModal from './components/DragModal/index.vue' - -export default { - install(app) { - // 挂载全局对象 - app.config.globalProperties.$CONFIG = config - app.config.globalProperties.$TOOL = tool - app.config.globalProperties.hasPerm = hasPerm - - // 注册常用组件 - app.component('STable', STable) - app.component('Ellipsis', Ellipsis) - app.component('DragModal', DragModal) - - // 统一注册antdv图标 - for (const icon in antdvIcons) { - app.component(icon, antdvIcons[icon]) - } - // 统一注册自定义全局图标 - app.use(customIcons) - // 注册代码高亮组件 (博客:https://blog.csdn.net/weixin_41897680/article/details/124925222) - // 注意:解决Vue使用highlight.js build打包发布后样式消失问题,原因是webpack在打包的时候没有把未被使用的代码打包进去,因此,在此处引用一下,看似无意义实则有用 - hljsCommon.highlightAuto('

Highlight.js has been registered successfully!

').value - app.use(hljsVuePlugin) - - // 全局代码错误捕捉 - app.config.errorHandler = errorHandler - } -} diff --git a/src/src/store/global.js b/src/src/store/global.js deleted file mode 100644 index 7337fcd..0000000 --- a/src/src/store/global.js +++ /dev/null @@ -1,174 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import { defineStore } from 'pinia' -import { changeColor } from '@/utils/themeUtil' -import config from '@/config' -import { message } from 'ant-design-vue' -import tool from '@/utils/tool' - -const toolDataGet = (key) => { - return tool.data.get(key) -} - -// 获取缓存中的,如果取不到那就用配置的 -const getCacheConfig = (value) => { - const data = toolDataGet(value) - if (data === null) { - return config[value] - } - return data -} - -// deprecated 请使用 useGlobalStore -export const globalStore = defineStore('global', () => { - // 移动端布局 - const isMobile = ref(false) - // 布局 - const layout = ref(getCacheConfig('SNOWY_LAYOUT')) - // 菜单是否折叠 toggle - const menuIsCollapse = ref(getCacheConfig('SNOWY_MENU_COLLAPSE')) - // 侧边菜单是否排他展开 - const sideUniqueOpen = ref(getCacheConfig('SNOWY_SIDE_UNIQUE_OPEN')) - // 多标签栏 - const layoutTagsOpen = ref(getCacheConfig('SNOWY_LAYOUT_TAGS_OPEN')) - // 是否展示面包屑 - const breadcrumbOpen = ref(getCacheConfig('SNOWY_BREADCRUMD_OPEN')) - // 是否开启固定宽度(顶栏菜单) - const fixedWidth = ref(getCacheConfig('SNOWY_FIXEDWIDTH_OPEN')) - // 顶栏是否应用主题色 - const topHeaderThemeColorOpen = ref(getCacheConfig('SNOWY_TOP_HEADER_THEME_COLOR_OPEN')) - // 顶栏主题色通栏 - const topHeaderThemeColorSpread = ref(getCacheConfig('SNOWY_TOP_HEADER_THEME_COLOR_SPREAD')) - // 登录用户水印 - const loginUserWatermarkOpen = ref(getCacheConfig('SNOWY_LOGIN_USER_WATERMARK_OPEN')) - // 页脚版权信息 - const footerCopyrightOpen = ref(getCacheConfig('SNOWY_FOOTER_COPYRIGHT_OPEN')) - // 模块坞 - const moduleUnfoldOpen = ref(getCacheConfig('SNOWY_MODULE_UNFOLD_OPEN')) - // 主题 - const theme = ref(getCacheConfig('SNOWY_THEME')) - // 主题颜色 - const themeColor = ref(toolDataGet('SNOWY_THEME_COLOR') || config.COLOR) - // 圆角分格 - const roundedCornerStyleOpen = ref(getCacheConfig('SNOWY_ROUNDED_CORNER_STYLE_OPEN')) - // 整体表单风格 - const formStyle = ref(getCacheConfig('SNOWY_FORM_STYLE')) - // 用户信息 - const userInfo = ref(toolDataGet('USER_INFO') || {}) - // 系统配置 - const sysBaseConfig = ref(toolDataGet('SNOWY_SYS_BASE_CONFIG') || config.SYS_BASE_CONFIG) - // 默认应用 - const module = ref(getCacheConfig('SNOWY_MENU_MODULE_ID')) - - // 定义action - const setIsMobile = (key) => { - isMobile.value = key - } - const setLayout = (key) => { - layout.value = key - } - const setTheme = (key) => { - theme.value = key - changeColor(themeColor.value, key).then() - } - const setThemeColor = (key) => { - themeColor.value = key - changeColor(key, theme.value).then() - } - const initTheme = () => { - changeColor(themeColor.value, theme.value).then() - } - const toggleConfig = (key) => { - switch (key) { - case 'menuIsCollapse': - menuIsCollapse.value = !menuIsCollapse.value - break - case 'topHeaderThemeColorSpread': - topHeaderThemeColorSpread.value = !topHeaderThemeColorSpread.value - break - case 'sideUniqueOpen': - sideUniqueOpen.value = !sideUniqueOpen.value - break - case 'layoutTagsOpen': - layoutTagsOpen.value = !layoutTagsOpen.value - break - case 'breadcrumbOpen': - breadcrumbOpen.value = !breadcrumbOpen.value - break - case 'fixedWidth': - fixedWidth.value = !fixedWidth.value - break - case 'topHeaderThemeColorOpen': - topHeaderThemeColorOpen.value = !topHeaderThemeColorOpen.value - topHeaderThemeColorSpread.value = topHeaderThemeColorOpen.value - ? topHeaderThemeColorSpread.value - : topHeaderThemeColorOpen.value - break - case 'loginUserWatermarkOpen': - loginUserWatermarkOpen.value = !loginUserWatermarkOpen.value - break - case 'footerCopyrightOpen': - footerCopyrightOpen.value = !footerCopyrightOpen.value - break - case 'roundedCornerStyleOpen': - roundedCornerStyleOpen.value = !roundedCornerStyleOpen.value - break - case 'moduleUnfoldOpen': - moduleUnfoldOpen.value = !moduleUnfoldOpen.value - break - } - } - const setFormStyle = (key) => { - formStyle.value = key - } - const setUserInfo = (key) => { - userInfo.value = key - } - const setSysBaseConfig = (key) => { - sysBaseConfig.value = key - } - const setModule = (key) => { - module.value = key - } - return { - isMobile, - layout, - menuIsCollapse, - sideUniqueOpen, - layoutTagsOpen, - breadcrumbOpen, - fixedWidth, - topHeaderThemeColorOpen, - topHeaderThemeColorSpread, - loginUserWatermarkOpen, - footerCopyrightOpen, - moduleUnfoldOpen, - theme, - themeColor, - roundedCornerStyleOpen, - formStyle, - userInfo, - sysBaseConfig, - module, - setIsMobile, - setLayout, - setTheme, - setThemeColor, - initTheme, - toggleConfig, - setFormStyle, - setUserInfo, - setSysBaseConfig, - setModule - } -}) - -export const useGlobalStore = globalStore diff --git a/src/src/store/iframe.js b/src/src/store/iframe.js deleted file mode 100644 index a3a8e9c..0000000 --- a/src/src/store/iframe.js +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import { defineStore } from 'pinia' - -export const iframeStore = defineStore('iframe', () => { - // 定义state - const iframeList = ref([]) - const setIframeList = (route) => { - iframeList.value = [] - iframeList.value.push(route) - } - - // 定义action - const pushIframeList = (route) => { - const target = iframeList.value.find((item) => item.path === route.path) - if (!target) { - iframeList.value.push(route) - } - } - const removeIframeList = (route) => { - iframeList.value.forEach((item, index) => { - if (item.path === route.path) { - iframeList.value.splice(index, 1) - } - }) - } - const refreshIframe = (route) => { - iframeList.value.forEach((item) => { - if (item.path === route.path) { - const url = route.meta.url - item.meta.url = '' - setTimeout(() => { - item.meta.url = url - }, 200) - } - }) - } - const clearIframeList = () => { - iframeList.value = [] - } - - return { - iframeList, - setIframeList, - pushIframeList, - removeIframeList, - refreshIframe, - clearIframeList - } -}) diff --git a/src/src/store/index.js b/src/src/store/index.js deleted file mode 100644 index c4004d2..0000000 --- a/src/src/store/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export * from './global' -export * from './search' -export * from './iframe' -export * from './keepAlive' -export * from './viewTags' diff --git a/src/src/store/keepAlive.js b/src/src/store/keepAlive.js deleted file mode 100644 index d40546b..0000000 --- a/src/src/store/keepAlive.js +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import { defineStore } from 'pinia' - -export const keepAliveStore = defineStore('keepAlive', () => { - // 定义state - const keepLiveRoute = ref([]) - const routeKey = ref(null) - const routeShow = ref(true) - - // 定义action - const pushKeepLive = (component) => { - if (!keepLiveRoute.value.includes(component)) { - keepLiveRoute.value.push(component) - } - } - const removeKeepLive = (component) => { - const index = keepLiveRoute.value.indexOf(component) - if (index !== -1) { - keepLiveRoute.value.splice(index, 1) - } - } - const clearKeepLive = () => { - keepLiveRoute.value = [] - } - const setRouteKey = (key) => { - routeKey.value = key - } - const setRouteShow = (key) => { - routeShow.value = key - } - const setRouteKeyAction = (key) => { - setRouteKey(key) - } - - return { - keepLiveRoute, - routeKey, - routeShow, - pushKeepLive, - removeKeepLive, - clearKeepLive, - setRouteKey, - setRouteShow, - setRouteKeyAction - } -}) diff --git a/src/src/store/menu.js b/src/src/store/menu.js deleted file mode 100644 index 62aca7b..0000000 --- a/src/src/store/menu.js +++ /dev/null @@ -1,142 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import { defineStore } from 'pinia' -import tool from '@/utils/tool' -import { cloneDeep } from 'lodash-es' -import userRoutes from '@/config/route' -import { searchStore } from '@/store/search' -import router from '@/router' -import userCenterApi from '@/api/sys/userCenterApi' -import whiteList from '@/router/whiteList' -import routesData from '@/router/systemRouter' - -const modules = import.meta.glob('/src/views/**/**.vue') -export const useMenuStore = defineStore('menuStore', () => { - const menuData = ref([]) - const refreshFlag = ref(false) - // 改变刷新标志 - const changeRefreshFlag = (flag) => { - refreshFlag.value = flag - } - // 加载菜单 - const loadMenu = () => { - // 获取用户菜单 - const apiMenu = tool.data.get('MENU') || [] - if (apiMenu.length === 0) { - // 创建默认模块,显示默认菜单 - apiMenu[0] = cloneDeep(userRoutes.module[0]) - } - const childrenApiMenu = apiMenu[0].children - apiMenu[0].children = [...(childrenApiMenu ? childrenApiMenu : []), ...userRoutes.menu] - let menuRouter = filterAsyncRouter(apiMenu) - menuRouter = flatAsyncRoutes(menuRouter) - menuData.value = menuRouter - // 初始化搜索 - const search_store = searchStore() - search_store.init(menuRouter) - } - // 过滤异步路由 - const filterAsyncRouter = (routerMap) => { - const accessedRouters = [] - routerMap.forEach((item) => { - item.meta = item.meta ? item.meta : {} - // 处理外部链接特殊路由 - if (item.meta.type === 'iframe') { - item.meta.url = item.path - item.path = `/${item.name}` - } - // MAP转路由对象 - const route = { - path: item.path, - name: item.name, - meta: item.meta, - redirect: item.redirect, - children: item.children ? filterAsyncRouter(item.children) : null, - component: loadComponent(item.component) - } - accessedRouters.push(route) - }) - return accessedRouters - } - // 将异步路由扁平化 - const flatAsyncRoutes = (routes, breadcrumb = []) => { - const res = [] - routes.forEach((route) => { - const tmp = { ...route } - if (tmp.children) { - const childrenBreadcrumb = [...breadcrumb] - childrenBreadcrumb.push(route) - const tmpRoute = { ...route } - tmpRoute.meta.breadcrumb = childrenBreadcrumb - delete tmpRoute.children - res.push(tmpRoute) - const childrenRoutes = flatAsyncRoutes(tmp.children, childrenBreadcrumb) - childrenRoutes.map((item) => { - res.push(item) - }) - } else { - const tmpBreadcrumb = [...breadcrumb] - tmpBreadcrumb.push(tmp) - tmp.meta.breadcrumb = tmpBreadcrumb - res.push(tmp) - } - }) - return res - } - // 动态加载组件 - const loadComponent = (component) => { - if (component) { - if (component.includes('/')) { - return modules[`/src/views/${component}.vue`] - } - return modules[`/src/views/${component}/index.vue`] - } else { - return () => import(/* @vite-ignore */ `/src/layout/other/empty.vue`) - } - } - // 从路由中移除菜单 - const removeFromRouter = () => { - const routes = router.getRoutes() - // 遍历所有路由 - routes.forEach((route) => { - // 过滤白名单 - if ( - whiteList.filter((e) => e.path === route.path).length > 0 || - routesData.filter((e) => e.path === route.path).length > 0 - ) { - return - } - if (route.name && route.name !== 'layout') { - router.removeRoute(route.name) - } - }) - } - // 获取用户菜单 - const fetchMenu = async () => { - const menu = await userCenterApi.userLoginMenu() - tool.data.set('MENU', menu) - refreshMenu() - } - // 刷新菜单 - const refreshMenu = () => { - loadMenu() - removeFromRouter() - addToRouter() - changeRefreshFlag(true) - } - // 将菜单添加到路由 - const addToRouter = () => { - menuData.value.forEach((item) => { - router.addRoute('layout', item) - }) - } - return { menuData, loadMenu, addToRouter, refreshMenu, changeRefreshFlag, refreshFlag, fetchMenu } -}) diff --git a/src/src/store/search.js b/src/src/store/search.js deleted file mode 100644 index e1ca521..0000000 --- a/src/src/store/search.js +++ /dev/null @@ -1,63 +0,0 @@ -import '@/utils/objects' -import { defineStore } from 'pinia' - -export const searchStore = defineStore('search', () => { - // 定义state - const pool = ref([]) - const hotkey = ref({ - open: 's', - close: 'esc' - }) - const active = ref(false) - - // 定义action - const toggleActive = () => { - active.value = !active.value - } - const setActive = (val) => { - active.value = val - } - const init = (menu) => { - const poolList = [] - const getFullName = function (meta) { - if (meta.breadcrumb) { - let list = [] - meta.breadcrumb.forEach((item) => { - list.push(item.meta.title) - }) - return list.join(' / ') - } - return meta.title - } - const push = function (menu) { - menu.forEach((m) => { - if ('menu' === m.meta.type) { - if (m.children) { - push(m.children) - } else if (m.children === null) { - poolList.push({ - icon: m.meta.icon, - path: m.path, - fullPath: m.path, - name: m.meta.title, - fullName: getFullName(m.meta), - namePinyin: m.meta.title.toPinyin(), - namePinyinFirst: m.meta.title.toPinyin(true) - }) - } - } - }) - } - push(menu) - pool.value = poolList - } - - return { - pool, - hotkey, - active, - toggleActive, - setActive, - init - } -}) diff --git a/src/src/store/sysBaseConfig.js b/src/src/store/sysBaseConfig.js deleted file mode 100644 index 33fb235..0000000 --- a/src/src/store/sysBaseConfig.js +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import configApi from '@/api/dev/configApi' -import { message } from 'ant-design-vue' - -const formData = ref({ - SNOWY_SYS_LOGO: '', - SNOWY_SYS_BACK_IMAGE: '', - SNOWY_SYS_NAME: '', - SNOWY_SYS_VERSION: '', - SNOWY_SYS_COPYRIGHT: '', - SNOWY_SYS_COPYRIGHT_URL: '', - SNOWY_SYS_DEFAULT_FILE_ENGINE: 'LOCAL', - SNOWY_SYS_DEFAULT_CAPTCHA_OPEN: false, - SNOWY_SYS_DEFAULT_PASSWORD: '' -}) - -const param = { - category: 'SYS_BASE' -} - -const getSysBaseConfig = () => { - configApi.configList(param).then((data) => { - if (data) { - data.forEach((item) => { - formData.value[item.configKey] = item.configValue ? '' : item.configValue - }) - } else { - message.warning('表单项不存在,请初始化数据库') - } - }) -} diff --git a/src/src/store/user.js b/src/src/store/user.js deleted file mode 100644 index 6fb7401..0000000 --- a/src/src/store/user.js +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import { defineStore } from 'pinia' -import loginApi from '@/api/auth/loginApi' -import { useGlobalStore } from '@/store' -import tool from '@/utils/tool' -export const userStore = defineStore('userStore', () => { - // 初始化用户信息 - const initUserInfo = async () => { - const data = await loginApi.getLoginUser() - const globalStore = useGlobalStore() - globalStore.setUserInfo(data) - tool.data.set('USER_INFO', data) - } - // 刷新登录用户信息 - const refreshUserLoginUserInfo = () => { - loginApi.getLoginUser().then((data) => { - const globalStore = useGlobalStore() - globalStore.setUserInfo(data) - tool.data.set('USER_INFO', data) - }) - } - return { initUserInfo, refreshUserLoginUserInfo } -}) diff --git a/src/src/store/viewTags.js b/src/src/store/viewTags.js deleted file mode 100644 index b0862cc..0000000 --- a/src/src/store/viewTags.js +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import { defineStore } from 'pinia' - -export const viewTagsStore = defineStore('viewTags', () => { - // 定义state - const viewTags = ref([]) - - // 定义action - const pushViewTags = (route) => { - const target = viewTags.value.find((item) => item.path === route.path) - const isName = route.name - if (!target && isName) { - viewTags.value.push(route) - } - if (target) { - viewTags.value.forEach((item, index) => { - if (item.path === route.path) { - viewTags.value[index] = { ...route, ...item } - // Object.assign(item, route) - } - }) - } - } - const removeViewTags = (route) => { - viewTags.value.forEach((item, index) => { - if (item.fullPath === route.fullPath) { - viewTags.value.splice(index, 1) - } - }) - } - const updateViewTags = (route) => { - viewTags.value.forEach((item, index) => { - if (item.fullPath === route.fullPath) { - viewTags.value[index] = { ...route, ...item } - // Object.assign(item, route) - } - }) - } - // 更新或删除视图标签 - const updateOrRemoveViewTags = (routes) => { - if (routes && routes.length > 0) { - viewTags.value.forEach((item, index) => { - const target = routes.find((route) => route.path === item.fullPath) - if (!target) { - // 路由不存在,删除 - viewTags.value.splice(index, 1) - } else { - // 路由存在,更新 - viewTags.value = viewTags.value.map((item) => { - if (item.fullPath === target.path) { - return { ...item, meta: target.meta } - } - return item - }) - } - }) - } - } - const updateViewTagsTitle = (title = '') => { - const nowFullPath = location.hash.substring(1) - viewTags.value.forEach((item) => { - if (item.fullPath === nowFullPath) { - item.meta.title = title - } - }) - } - const clearViewTags = () => { - viewTags.value = [] - } - - return { - viewTags, - pushViewTags, - removeViewTags, - updateViewTags, - updateViewTagsTitle, - clearViewTags, - updateOrRemoveViewTags - } -}) diff --git a/src/src/style/default.less b/src/src/style/default.less deleted file mode 100644 index c3846d6..0000000 --- a/src/src/style/default.less +++ /dev/null @@ -1,399 +0,0 @@ -:root { - --blue-1: #e6f7ff; - --blue-2: #bae7ff; - --blue-3: #91d5ff; - --blue-4: #69c0ff; - --blue-5: #40a9ff; - --blue-6: #1677FF; - --blue-7: #096dd9; - --blue-8: #0050b3; - --blue-9: #003a8c; - --blue-10: #002766; - - --green-1: #f6ffed; - --green-2: #d9f7be; - --green-3: #b7eb8f; - --green-4: #95de64; - --green-5: #73d13d; - --green-6: #52c41a; - --green-7: #389e0d; - --green-8: #237804; - --green-9: #135200; - --green-10: #092b00; - - --red-1: #fff1f0; - --red-2: #ffccc7; - --red-3: #ffa39e; - --red-4: #ff7875; - --red-5: #ff4d4f; - --red-6: #f5222d; - --red-7: #cf1322; - --red-8: #a8071a; - --red-9: #820014; - --red-10: #5c0011; - - --gold-1: #fffbe6; - --gold-2: #fff1b8; - --gold-3: #ffe58f; - --gold-4: #ffd666; - --gold-5: #ffc53d; - --gold-6: #faad14; - --gold-7: #d48806; - --gold-8: #ad6800; - --gold-9: #874d00; - --gold-10: #613400; - - --purple-1: #f9f0ff; - --purple-2: #efdbff; - --purple-3: #d3adf7; - --purple-4: #b37feb; - --purple-5: #9254de; - --purple-6: #722ed1; - --purple-7: #531dab; - --purple-8: #391085; - --purple-9: #22075e; - --purple-10: #120338; - - --cyan-1: #e6fffb; - --cyan-2: #b5f5ec; - --cyan-3: #87e8de; - --cyan-4: #5cdbd3; - --cyan-5: #36cfc9; - --cyan-6: #13c2c2; - --cyan-7: #08979c; - --cyan-8: #006d75; - --cyan-9: #00474f; - --cyan-10: #002329; - - --pink-1: #fff0f6; - --pink-2: #ffd6e7; - --pink-3: #ffadd2; - --pink-4: #ff85c0; - --pink-5: #f759ab; - --pink-6: #eb2f96; - --pink-7: #c41d7f; - --pink-8: #9e1068; - --pink-9: #780650; - --pink-10: #520339; - - --orange-1: #fff7e6; - --orange-2: #ffe7ba; - --orange-3: #ffd591; - --orange-4: #ffc069; - --orange-5: #ffa940; - --orange-6: #fa8c16; - --orange-7: #d46b08; - --orange-8: #ad4e00; - --orange-9: #873800; - --orange-10: #612500; - - --primary-radius: #fff; - --primary-1: var(--blue-1); - --primary-2: var(--blue-2); - --primary-3: var(--blue-3); - --primary-4: var(--blue-4); - --primary-5: var(--blue-5); - --primary-6: var(--blue-6); - --primary-7: var(--blue-7); - --primary-8: var(--blue-8); - --primary-9: var(--blue-9); - --primary-10: var(--blue-10); - - --primary-color: var(--primary-6); - --primary-color-hover: var(--primary-5); - --primary-color-active: var(--primary-7); - --primary-color-outline: var(--primary-2); - - --info-color: var(--primary-color); - --success-color: var(--green-6); - --processing-color: var(--blue-6); - --highlight-color: var(--red-5); - - --warning-color: var(--gold-6); - --warning-color-hover: var(--gold-5); - --warning-color-active: var(--gold-7); - --warning-color-outline: var(--gold-2); - - --error-color: var(--red-5); - --error-color-hover: var(--red-4); - --error-color-active: var(--red-7); - --error-color-outline: var(--red-2); - - --body-background: #fff; - --component-background: #fff; - - --popover-background: @component-background; - --popover-customize-border-color: @border-color-split; - - --text-color: fade(@black, 85%); - --text-color-secondary: fade(@black, 45%); - --text-color-inverse: @white; - --icon-color-hover: fade(@black, 75%); - --heading-color: fade(@black, 85%); - - --item-hover-bg: #f5f5f5; - - // Border color - --border-color-base: hsv(0, 0, 85%); - --border-color-split: hsv(0, 0, 94%); - //--border-color-inverse: @white; - - // - --background-color-light: hsv(0, 0, 98%); - --background-color-base: hsv(0, 0, 96%); - - // Disabled states - --disabled-color: fade(#000, 25%); - --disabled-bg: @background-color-base; - --disabled-color-dark: fade(#fff, 35%); - - // Shadow - --shadow-color: rgba(195, 62, 62, 0.15); - --shadow-color-inverse: @component-background; - --box-shadow-base: @shadow-1-down; - --shadow-1-up: 0 -2px 8px @shadow-color; - --shadow-1-down: 0 2px 8px @shadow-color; - --shadow-1-left: -2px 0 8px @shadow-color; - --shadow-1-right: 2px 0 8px @shadow-color; - --shadow-2: 0 4px 12px @shadow-color; - - // Buttons - --btn-shadow: 0 2px 0 rgba(0, 0, 0, 0.015); - --btn-primary-shadow: 0 2px 0 rgba(0, 0, 0, 0.045); - --btn-text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12); - - --btn-default-bg: @component-background; - - --btn-default-ghost-color: @component-background; - --btn-default-ghost-border: @component-background; - - --btn-text-hover-bg: rgba(0, 0, 0, 0.018); - --btn-text-active-bg: rgba(0, 0, 0, 0.028); - - // Checkbox - --checkbox-check-bg: @checkbox-check-color; - - // Descriptions - --descriptions-bg: #fafafa; - - // Divider - --divider-color: rgba(0, 0, 0, 6%); - - // Dropdown 有两个 - --dropdown-menu-submenu-disabled-bg: @component-background; - - // Radio - --radio-dot-disabled-color: fade(@black, 20%); - --radio-solid-checked-color: @component-background; - - // Radio buttons - --radio-disabled-button-checked-bg: coverTintMixin(@black, 90%); - --radio-disabled-button-checked-color: @disabled-color; - - // Layout - --layout-body-background: #f0f2f5; - --layout-header-background: #001529; - --layout-trigger-background: #002140; - //--layout-sider-background-1: coverTintMixin(#001529, 10%); - - // Dropdown 有两个 - --dropdown-menu-bg: @component-background; - - // Input - --input-placeholder-color: hsv(0, 0, 75%); - --input-icon-color: @input-color; - --input-bg: @component-background; - --input-number-handler-active-bg: #f4f4f4; - --input-icon-hover-color: fade(@black, 85%); - - // Mentions - --mentions-dropdown-bg: @component-background; - - // Select - --select-dropdown-bg: @component-background; - --select-background: @component-background; - --select-clear-background: @select-background; - --select-selection-item-bg: @background-color-base; - --select-selection-item-border-color: @border-color-split; - --select-multiple-disabled-background: @input-disabled-bg; - --select-multiple-item-disabled-color: #bfbfbf; - --select-multiple-item-disabled-border-color: @select-border-color; - - // Cascader - --cascader-bg: @component-background; - --cascader-menu-bg: @component-background; - --cascader-menu-border-color-split: @border-color-split; - - // Tooltip - --tooltip-bg: rgba(0, 0, 0, 0.75); - - // Popover - --popover-bg: @component-background; - - // Modal - --modal-header-bg: @component-background; - --modal-header-border-color-split: @border-color-split; - --modal-content-bg: @component-background; - --modal-footer-border-color-split: @border-color-split; - - // Progress - --progress-steps-item-bg: #f3f3f3; - - // Menu - --menu-popup-bg: @component-background; - --menu-dark-bg: @layout-header-background; - --menu-dark-inline-submenu-bg: #000c17; - - // Table - --table-header-bg: @background-color-light; - --table-header-sort-bg: @background-color-base; - --table-body-sort-bg: #fafafa; - --table-row-hover-bg: @background-color-light; - --table-expanded-row-bg: #fbfbfb; - --table-header-cell-split-color: rgba(0, 0, 0, 0.06); - --table-header-sort-active-bg: rgba(0, 0, 0, 0.04); - --table-header-filter-active-bg: rgba(0, 0, 0, 0.04); - --table-filter-btns-bg: inherit; - --table-filter-dropdown-bg: @component-background; - --table-expand-icon-bg: @component-background; - - // TimePicker - --picker-bg: @component-background; - --picker-basic-cell-disabled-bg: @disabled-bg; - --picker-border-color: @border-color-split; - - // Calendar - --calendar-bg: @component-background; - --calendar-input-bg: @input-bg; - --calendar-border-color: @border-color-inverse; - --calendar-full-bg: @calendar-bg; - - // Badge - --badge-text-color: @component-background; - - // Rate - --rate-star-bg: @border-color-split; - - // Card - --card-actions-background: @component-background; - --card-skeleton-bg: #cfd8dc; - --card-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), - 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09); - - // Comment - --comment-bg: inherit; - --comment-author-time-color: #ccc; - --comment-action-hover-color: #595959; - - // BackTop - --back-top-bg: @text-color-secondary; - --back-top-hover-bg: @text-color; - - // Avatar - --avatar-bg: #ccc; - - // Switch - --switch-bg: @component-background; - - // Pagination - --pagination-item-bg: @component-background; - --pagination-item-bg-active: @component-background; - --pagination-item-link-bg: @component-background; - --pagination-item-disabled-color-active: @white; - --pagination-item-disabled-bg-active: darken(hsv(0, 0, 96%), 10%); - --pagination-item-input-bg: @component-background; - - // PageHeader - --page-header-back-color: #000; - --page-header-ghost-bg: inherit; - - // Slider - --slider-rail-background-color: @background-color-base; - --slider-rail-background-color-hover: #e1e1e1; - --slider-dot-border-color: @border-color-split; - --slider-dot-border-color-active: @primary-4; - - // Tree - --tree-bg: @component-background; - - // Skeleton - --skeleton-to-color: coverShadeMixin(@skeleton-color, 5%); - - // Transfer - --transfer-item-hover-bg: @item-hover-bg; - - // Message - --message-notice-content-bg: @component-background; - - // List - --list-customize-card-bg: @component-background; - - // Drawer - --drawer-bg: @component-background; - - // Timeline - --timeline-color: @border-color-split; - --timeline-dot-color: @primary-color; - - // Image - --image-preview-operation-disabled-color: rgba(255, 255, 255, 0.45); - - // Steps - --steps-nav-arrow-color: fade(@black, 25%); - --steps-background: @component-background; - - // Notification - --notification-bg: @component-background; - - // 侧边栏 - --sidebar-light-shadow: 1px 3px 3px rgba(0, 21, 41, 0.08); - --sidebar-dark-shadow: 0 4px 4px rgba(0, 0, 0, 0.35); - - // 顶栏 - --header-light-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); - --header-dark-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); - --header-tool-hover-bg: rgba(0, 0, 0, 0.025); - --header-dark-tool-hover-bg: rgba(255, 255, 255, 0.05); - --header-color-split: rgba(0, 0, 0, 0.08); - - // logo - --logo-light-shadow: 1px 2px 3px rgba(0, 21, 41, 0.08); - --logo-dark-shadow: 0 3px 4px rgba(0, 0, 0, 0.35); - - // - --gradient-min: fade(#cfd8dc, 20%); - --gradient-max: fade(#cfd8dc, 40%); - - // font - --font-color: rgba(0, 0, 0, 0.88); - // header-bottom - --header-bottom: rgba(246, 246, 246, 0.85); - // breadcrumb-background - --breadcrumb-background: rgba(253, 253, 253, 0.85); - // background-color - --snowy-background-color: #FFFFFF; - // tag-background - --tag-background: rgba(253, 253, 253); - // - --success-fade-20: fade(#52c41a, 20%); - --error-fade-20: fade(#ff4d4f, 20%); - --warning-fade-20: fade(#faad14, 20%); - - //--primary-fade-20: fade(#1890ff, 20%); - --primary-fade-20: var(--primary-2); - //--primary-fade-8: fade(#1890ff, 8%); - - --white--fade--65: rgba(255,255,255,.65); - --menu-dark-highlight-color: #fff; - --btn-primary-color: #fff; - --tooltip-color: #fff; - --card-above-color: #F0F0F0; - --card-above-border-color: #CCCCCC; - - // workfolw design - --node-wrap-box-color: rgb(255, 255, 255); - --node-wrap-box-before-color: #FFFFFF; - --node-wrap-box-before-borde-color: rgb(202, 202, 202); - --auto-judge-before-color: #FFF; - --cover-line-before-color: #FFF; -} diff --git a/src/src/style/index.less b/src/src/style/index.less deleted file mode 100644 index 4daa801..0000000 --- a/src/src/style/index.less +++ /dev/null @@ -1,519 +0,0 @@ -@import './realdark'; -@import './default'; - -.body, html { - width: 100%; - height: 100%; - background-color: #f6f8f9; -} - -a, button, input, textarea { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - box-sizing: border-box; - outline: none !important; - -webkit-appearance: none; -} - -* { - margin: 0; - padding: 0; - box-sizing: border-box; - outline: none; -} - -/* 大布局样式 */ -.admin-ui { - overflow: hidden; - height: 100%; - display: flex; - flex-flow: column; -} - -.admin-ui-wrapper { - display: flex; - flex: 1; - overflow: auto; -} - -.admin-ui-main { - display: flex; - flex-direction: column; - height: 100%; - flex: 1; -} -.main-content-wrapper{ - padding: 11px 11px 0px; - overflow-y: auto; - overflow-x: hidden; - flex: auto; -} - -.main-bottom-wrapper { - height: 60px; - margin-top: 25px; - text-align: center; - flex: auto; - display: flex; - align-items: flex-end; - justify-content: center; - padding-bottom: 25px; -} - -/* 双排菜单布局 */ -.snowy-doublerow-layout-menu { - padding-right: 5px; - line-height: 0; - align-items: center; -} - -.snowy-doublerow-layout-menu-item-fort-div { - overflow: hidden; - text-overflow: ellipsis; - opacity: 1; - display: block; - flex: auto; -} - -.snowy-doublerow-layout-menu-item-fort-div-span { - font-size: 13px; - text-overflow: ellipsis; -} - -.snowy-title{ - color: var(--text-color); -} -.ant-layout-sider-collapsed{ - .logo-bar>span{ - display: none; - } -} -.ant-layout-sider-dark{ - .snowy-header-logo{ - color: #fff; - } -} - -/* 设置抽屉样式 */ -.layout-setting { - position: fixed; - width: 40px; - height: 40px; - border-radius: 3px 0 0 3px; - bottom: 50%; - right: 0px; - z-index: 100; - background: @primary-color; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - cursor: pointer; -} - -.layout-setting i { - color: #fff; -} - -/* 头部 */ -.snowy-header { - height: 50px; - display: flex; - justify-content: space-between; - border-bottom: 1px solid var(--header-bottom); - box-shadow: 0 0.4px 0.5px rgb(0 21 41 / 12%); - .ant-menu-item{ - height: 48px; - line-height: 48px; - } - background: var(--snowy-background-color); -} -// 应用主题色 -.snowy-header-primary-color { - color: white; - background-color: var(--primary-color); - .ant-badge{ - color: white; - } - .ant-breadcrumb-link { - color: white; - } - .ant-breadcrumb-separator { - color: white; - } - .ant-menu-light .ant-menu-item:hover{ - color: #ccc; - background-color: var(--primary-7); - } -} - -.ant-layout-sider-dark { - .snowy-title{ - color: #fff; - } -} - -.snowy-header-left { - display: flex; - align-items: center; - padding-left: 20px; -} - -.snowy-header-left .menu-unfold-outlined { - padding: 0 12px -} - -.snowy-header-right { - display: flex; - align-items: center; -} - -.snowy-header-logo { - height: 49px; - display: flex; - justify-content: space-between; - border-bottom: 1px solid rgba(255, 255, 255, 0.04); -} - -.snowy-header-logo-primary-color { - color: white; - background-color: var(--primary-color); -} - -.snowy-header-logo .logo-bar { - font-weight: bold; - display: flex; - align-items: center; - font-size: 20px; -} - -.snowy-header-logo .logo-bar .logo { - margin-right: 10px; - width: 35px; - height: 35px; -} - -.top-snowy-header { - background: #001529; - color: white; -} -.top-snowy-header-light { - background: #ffffff; - color: #000000; -} -.top-snowy-header-layout { - background: var(--primary-color); - color: #ffffff; -} -.panel-item { - padding: 0 10px; - cursor: pointer; - height: 100%; - display: flex; - align-items: center; - /*color: var(--font-color);*/ -} -.panel-item:hover { - background: var(--header-color-split); -} -.contextmenu { - position: fixed; - width: 200px; - margin:0; - border-radius: 0px; - background: @body-background; - border: 1px solid var(--border-color-split); - box-shadow: 0 2px 12px 0 rgba(0,0,0,.1); - z-index: 3000; - list-style-type: none; - padding: 10px 0; -} -.contextmenu hr { - margin:5px 0; - border: none; - height: 1px; - font-size: 0px; - background-color: var(--border-color-split) -} -.contextmenu li { - display: flex; - align-items: center; - margin:0; - cursor: pointer; - line-height: 30px; - padding: 0 17px; - color: @text-color; -} -.contextmenu li i { - font-size: 14px; - margin-right: 10px; -} -.contextmenu li:hover { - background-color: @component-background; - color: #66b1ff; -} -.contextmenu li.disabled { - cursor: not-allowed; - color: #bbb; - background: transparent; -} - -/*页面最大化*/ -.app-main.main-maximize { - .main-maximize-exit { - display: block; - } - .ant-layout-sider, .ant-layout-sider-dark, .layout-setting, .snowy-header, .admin-ui-breadcrumb, .snowy-tags { - display: none; - } - .main-content-wrapper { - padding: 0; - } -} - -/* 最大化后的退出按钮 */ -.main-maximize-exit { - display: none; - position: fixed; - z-index: 3000; - top: -20px; - padding-top: 18px; - left: 50%; - margin-left: -20px; - border-radius: 50%; - width: 40px; - height: 40px; - cursor: pointer; - background: rgba(0, 0, 0, 0.2); - text-align: center; -} - -.main-maximize-exit:hover { - background: rgba(0, 0, 0, 0.4); -} - -.ant-layout-sider{ - overflow: auto; -} - -/* 重写antdv的一些样式,定义到全局 */ -.ant-card-head-title { - padding: 12px 0!important; -} -.ant-tabs-large > .ant-tabs-nav .ant-tabs-tab { - padding: 12px 0!important; -} -.ant-card-extra { - padding: 12px 0!important; -} -.ant-card-head { - border-bottom: 0px !important; - min-height: 50px !important; -} - -/* 重写antdv的表格滚动条 */ -.ant-table-body, .ant-table-content{ - &::-webkit-scrollbar { - height: 10px; - width: 10px; - } - &::-webkit-scrollbar-thumb { - border-radius: 10px; - -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.1); - background: @border-color-split; - } - &::-webkit-scrollbar-track { - -webkit-box-shadow: 0; - border-radius: 10px; - background: @background-color-base; - } -} - -.left-span-label { - border-left: 4px solid var(--primary-color); - font-size: 15px; - color: var(--font-color); - font-weight: 600; - padding-left: 8px; -} - -// 滚动条,需要哪里,加哪个class -body, -.ant-scrolling-effect, -.ant-drawer-wrapper-body, -.ant-drawer-body, -.admin-ui, -.ant-modal-wrap, -.ant-transfer-list-content, -.ant-card, -.ant-layout-sider, -.CodeMirror-scroll, -.main-content-wrapper, -.xn-icon-select-list, -.form-user-table, -.scopeDefineOrgTreeDiv, -.user-table, -.role-table, -.org-table, -.pos-table, -.poi-list, -.snowy-orgpos-vis, -.index-message-list, -.ant-picker-time-panel-column, -.timeline-div, -.gen-preview-content, -.ant-menu, -.ant-tabs-dropdown-menu, -.xn-table, -.selector-table, -.card-div, -.ant-table-body, - -.admin-ui-main{ - &::-webkit-scrollbar { - /*滚动条整体样式*/ - width : 5px; /*高宽分别对应横竖滚动条的尺寸*/ - height: 5px; - } - &::-webkit-scrollbar-thumb { - /*滚动条里面小方块*/ - border-radius : 10px; - background-color: #CCCCCC; // skyblue - background-image: -webkit-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.2) 25%, - transparent 25%, - transparent 50%, - rgba(255, 255, 255, 0.2) 50%, - rgba(255, 255, 255, 0.2) 75%, - transparent 75%, - transparent - ); - } - &::-webkit-scrollbar-track { - /*滚动条里面轨道*/ - box-shadow : inset 0 0 2px rgba(0, 0, 0, 0.2); - background : @component-background; - border-radius: 5px; - opacity: 0; - display: none; - } -} - -.json-box-9136076486841527{ - overflow: hidden!important;; - .CodeMirror-scrollbar-filler{ - display: none!important; - } -} -.ant-modal-close-x .anticon { - padding: 2px !important; -} -.xn-mb10 { - margin-bottom: 10px; -} -.xn-mt4 { - margin-top: 4px; -} -.xn-mg08 { - margin: 0 8px; -} -.xn-fdr { - float: right; -} -.xn-wd { - width: 100%; -} -.xn-wd90 { - width: 90px; -} -.xn-wdcalc-70 { - width: calc(100% - 70px); -} -.xn-mr8 { - margin-right: 8px; -} -.xn-ht400 { - height: 400px; -} -.xn-wh25 { - height: 25px; - width: 25px; -} -.xn-ml10 { - margin-left: 10px; -} -.xn-pl0 { - padding-left: 0px; -} -.xn-pd8 { - padding: 8px; -} -.xn-pb10 { - padding-bottom: 10px; -} -.xn-color-a0a0a0 { - color: #a0a0a0; -} -.xn-color-d9d9d9 { - color: #d9d9d9; -} -.xn-color-ff4d4f { - color: #ff4d4f; -} -.xn-color-00025 { - color: rgba(0, 0, 0, 0.25); -} -.xn-jk-line { - width: 188px; - margin-bottom: 8px; - display: block; -} -.xn-findform-line { - border: 1px solid var(--border-color-split); - cursor: pointer; - width: 100%; - height: 40px; -} -.odd { - background-color: var(--table-row-hover-bg); -} -.snowy-theme-dark .odd { - background-color: #1d1d1d -} -// 以下是重写表单设计器的样式 -.list-main { - background: var(--auto-judge-before-color) !important; -} -.drag-move-box:before { - background: var(--primary-color) !important; -} -.drag-move-box>.delete { - background: var(--primary-color) !important; -} -.drag-move-box>.copy { - background: var(--primary-color) !important; -} -.drag-move-box .show-key-box { - color: var(--primary-color) !important; -} -.left-ul-item:hover { - color: var(--primary-color) !important; - border: 1px solid var(--primary-color) !important; - -webkit-box-shadow: 0 2px 6px var(--primary-color) !important; - box-shadow: 0 2px 6px var(--primary-color) !important; -} -.list-main>.moving:before { - background: var(--primary-color) !important; -} -.operating-area a:hover { - color: var(--primary-color) !important; -} -.batch-box>.delete { - background: var(--primary-color) !important; -} -.batch-box>.copy { - background: var(--primary-color) !important; -} -.batch-box.active:before { - background: var(--primary-color) !important; -} diff --git a/src/src/style/readme.md b/src/src/style/readme.md deleted file mode 100644 index 700dda4..0000000 --- a/src/src/style/readme.md +++ /dev/null @@ -1,7 +0,0 @@ - -适配暗黑模式的操作 - -直接 var(--primary-color) - -例如:新建个变量,在default.less跟realdark.less中设定好,这个时候就会跟着颜色的主题变化 - diff --git a/src/src/style/realdark.less b/src/src/style/realdark.less deleted file mode 100644 index 644e6c6..0000000 --- a/src/src/style/realdark.less +++ /dev/null @@ -1,417 +0,0 @@ -[snowy-theme=realdark] { - .ant-btn-primary{ - color: #fff; - &:hover, &:focus{ - color: #fff; - } - } - -} -.fade() { - @functions: ~`(function() { - this.fade = function(color, amount) { - if (String(color).indexOf('var(') === 0) { - if (color.indexOf('--primary-color') !== -1 ) { - var m = amount > 10 ? amount/10 :amount - return color.replace('-color)', '-' + m + ')') - } - return color.replace(')', '--fade--' + parseInt(amount) + ')') - } - return color - } - })()`; -} -.fade(); - -@import 'ant-design-vue/dist/reset.css'; - -.snowy-theme-dark { - --blue-1: #111d2c; - --blue-2: #112a45; - --blue-3: #15395b; - --blue-4: #164c7e; - --blue-5: #1765ad; - --blue-6: #177ddc; - --blue-7: #3c9ae8; - --blue-8: #65b7f3; - --blue-9: #8dcff8; - --blue-10: #b7e3fa; - - --green-1: #162312; - --green-2: #1d3712; - --green-3: #274916; - --green-4: #306317; - --green-5: #3c8618; - --green-6: #49aa19; - --green-7: #6abe39; - --green-8: #8fd460; - --green-9: #b2e58b; - --green-10: #d5f2bb; - - --red-1: #2a1215; - --red-2: #431418; - --red-3: #58181c; - --red-4: #791a1f; - --red-5: #a61d24; - --red-6: #f5222d; - --red-7: #e84749; - --red-8: #f37370; - --red-9: #f89f9a; - --red-10: #fac8c3; - - --gold-1: #2b2111; - --gold-2: #443111; - --gold-3: #594214; - --gold-4: #7c5914; - --gold-5: #aa7714; - --gold-6: #d89614; - --gold-7: #e8b339; - --gold-8: #f3cc62; - --gold-9: #f8df8b; - --gold-10: #faedb5; - - --purple-1: #1a1325; - --purple-2: #24163a; - --purple-3: #301c4d; - --purple-4: #3e2069; - --purple-5: #51258f; - --purple-6: #642ab5; - --purple-7: #854eca; - --purple-8: #ab7ae0; - --purple-9: #cda8f0; - --purple-10: #ebd7fa; - - --cyan-1: #112123; - --cyan-2: #113536; - --cyan-3: #144848; - --cyan-4: #146262; - --cyan-5: #138585; - --cyan-6: #13a8a8; - --cyan-7: #33bcb7; - --cyan-8: #58d1c9; - --cyan-9: #84e2d8; - --cyan-10: #b2f1e8; - - --pink-1: #291321; - --pink-2: #40162f; - --pink-3: #551c3b; - --pink-4: #75204f; - --pink-5: #a02669; - --pink-6: #cb2b83; - --pink-7: #e0529c; - --pink-8: #f37fb7; - --pink-9: #f8a8cc; - --pink-10: #fad2e3; - - --orange-1: #2b1d11; - --orange-2: #442a11; - --orange-3: #593815; - --orange-4: #7c4a15; - --orange-5: #aa6215; - --orange-6: #d87a16; - --orange-7: #e89a3c; - --orange-8: #f3b765; - --orange-9: #f8cf8d; - --orange-10: #fae3b7; - - --primary-radius: #141414; - --primary-1: var(--blue-1); - --primary-2: var(--blue-2); - --primary-3: var(--blue-3); - --primary-4: var(--blue-4); - --primary-5: var(--blue-5); - --primary-6: var(--blue-6); - --primary-7: var(--blue-7); - --primary-8: var(--blue-8); - --primary-9: var(--blue-9); - --primary-10: var(--blue-10); - - --primary-color: var(--primary-6); - --primary-color-hover: var(--primary-5); - --primary-color-active: var(--primary-7); - --primary-color-outline: var(--primary-2); - - --info-color: var(--primary-color); - --success-color: var(--green-6); - --processing-color: var(--blue-6); - --highlight-color: var(--red-5); - - --warning-color: var(--gold-6); - --warning-color-hover: var(--gold-5); - --warning-color-active: var(--gold-7); - --warning-color-outline: var(--gold-2); - - --error-color: var(--red-5); - --error-color-hover: var(--red-4); - --error-color-active: var(--red-7); - --error-color-outline: var(--red-2); - - --body-background: @black; - --component-background: #141414; - --popover-background: #1f1f1f; - --popover-customize-border-color: #3a3a3a; - - --text-color: fade(@white, 85%); - --text-color-secondary: fade(@white, 45%); - --text-color-inverse: @white; - --icon-color-hover: fade(@white, 75%); - --heading-color: fade(@white, 85%); - - --item-hover-bg: fade(@white, 8%); - - // Border color - --border-color-base: #434343; - --border-color-split: #303030; - //--border-color-inverse: @black; - - // - --background-color-light: fade(@white, 4%); - --background-color-base: fade(@white, 8%); - - // Disabled states - --disabled-color: fade(@white, 30%); - --disabled-bg: @background-color-base; - --disabled-color-dark: fade(@white, 30%); - - // Shadow - --shadow-color: rgba(0, 0, 0, 0.45); - --shadow-color-inverse: @component-background; - --box-shadow-base: @shadow-2; - --shadow-1-up: 0 -6px 16px -8px rgba(0, 0, 0, 0.32), - 0 -9px 28px 0 rgba(0, 0, 0, 0.2), 0 -12px 48px 16px rgba(0, 0, 0, 0.12); - --shadow-1-down: 0 6px 16px -8px rgba(0, 0, 0, 0.32), - 0 9px 28px 0 rgba(0, 0, 0, 0.2), 0 12px 48px 16px rgba(0, 0, 0, 0.12); - --shadow-1-right: 6px 0 16px -8px rgba(0, 0, 0, 0.32), - 9px 0 28px 0 rgba(0, 0, 0, 0.2), 12px 0 48px 16px rgba(0, 0, 0, 0.12); - --shadow-2: 0 3px 6px -4px rgba(0, 0, 0, 0.48), - 0 6px 16px 0 rgba(0, 0, 0, 0.32), 0 9px 28px 8px rgba(0, 0, 0, 0.2); - - // Buttons - --btn-shadow: 0 2px 0 rgba(0, 0, 0, 0.015); - --btn-primary-shadow: 0 2px 0 rgba(0, 0, 0, 0.045); - --btn-text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12); - - --btn-default-bg: transparent; - - --btn-default-ghost-color: @text-color; - --btn-default-ghost-border: fade(@white, 25%); - - --btn-text-hover-bg: rgba(255, 255, 255, 0.03); - --btn-text-active-bg: rgba(255, 255, 255, 0.04); - - // Checkbox - --checkbox-check-bg: transparent; - - // Descriptions - --descriptions-bg: @background-color-light; - - // Divider - --divider-color: rgba(255, 255, 255, 12%); - - // Dropdown 有两个 - --dropdown-menu-submenu-disabled-bg: transparent; - - // Radio - --radio-dot-disabled-color: fade(@white, 20%); - --radio-solid-checked-color: @white; - - // Radio buttons - --radio-disabled-button-checked-bg: fade(@white, 20%); - --radio-disabled-button-checked-color: @disabled-color; - - // Layout - --layout-body-background: @body-background; - --layout-header-background: @popover-background; - --layout-trigger-background: #262626; - //--layout-sider-background-1: tint(#1f1f1f, 10%); - - // Dropdown 有两个 - --dropdown-menu-bg: @popover-background; - - // Input - --input-placeholder-color: fade(@white, 30%); - --input-icon-color: fade(@white, 30%); - --input-bg: transparent; - --input-number-handler-active-bg: @item-hover-bg; - --input-icon-hover-color: fade(@white, 85%); - - // Mentions - --mentions-dropdown-bg: @popover-background; - - // Select - --select-dropdown-bg: @popover-background; - --select-background: transparent; - --select-clear-background: @component-background; - --select-selection-item-bg: fade(@white, 8); - --select-selection-item-border-color: @border-color-split; - --select-multiple-disabled-background: @component-background; - --select-multiple-item-disabled-color: #595959; - --select-multiple-item-disabled-border-color: @popover-background; - - // Cascader - --cascader-bg: transparent; - --cascader-menu-bg: @popover-background; - --cascader-menu-border-color-split: @border-color-split; - - // Tooltip - --tooltip-bg: #434343; - - // Popover - --popover-bg: @popover-background; - - // Modal - --modal-header-bg: @popover-background; - --modal-header-border-color-split: @border-color-split; - --modal-content-bg: @popover-background; - --modal-footer-border-color-split: @border-color-split; - - // Progress - --progress-steps-item-bg: fade(@white, 8%); - - // Menu - --menu-popup-bg: @popover-background; - --menu-dark-bg: @popover-background; - --menu-dark-inline-submenu-bg: @component-background; - - // Table - --table-header-bg: #1d1d1d; - --table-header-sort-bg: #262626; - --table-body-sort-bg: fade(@white, 1%); - --table-row-hover-bg: #262626; - --table-expanded-row-bg: @table-header-bg; - --table-header-cell-split-color: fade(@white, 8%); - --table-header-sort-active-bg: #303030; - --table-header-filter-active-bg: #434343; - --table-filter-btns-bg: @popover-background; - --table-filter-dropdown-bg: @popover-background; - --table-expand-icon-bg: transparent; - - // TimePicker - --picker-bg: transparent; - --picker-basic-cell-disabled-bg: #303030; - --picker-border-color: @border-color-split; - - // Calendar - --calendar-bg: @popover-background; - --calendar-input-bg: @calendar-bg; - --calendar-border-color: transparent; - --calendar-full-bg: @component-background; - - // Badge - --badge-text-color: @white; - - // Rate - --rate-star-bg: fade(@white, 12%); - - // Card - --card-actions-background: @component-background; - --card-skeleton-bg: #303030; - --card-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.64), - 0 3px 6px 0 rgba(0, 0, 0, 0.48), 0 5px 12px 4px rgba(0, 0, 0, 0.36); - - // Comment - --comment-bg: transparent; - --comment-author-time-color: fade(@white, 30%); - --comment-action-hover-color: fade(@white, 65%); - - // BackTop - --back-top-bg: var(--tooltip-bg); - --back-top-hover-bg: var(--border-color-split); - - // Avatar - --avatar-bg: fade(@white, 30%); - - // Switch - --switch-bg: @white; - - // Pagination - --pagination-item-bg: transparent; - --pagination-item-bg-active: transparent; - --pagination-item-link-bg: transparent; - --pagination-item-disabled-color-active: @black; - --pagination-item-disabled-bg-active: fade(@white, 25%); - --pagination-item-input-bg: @pagination-item-bg; - - // PageHeader - --page-header-back-color: @icon-color; - --page-header-ghost-bg: transparent; - - // Slider - --slider-rail-background-color: #262626; - --slider-rail-background-color-hover: @border-color-base; - --slider-dot-border-color: @border-color-split; - --slider-dot-border-color-active: @primary-4; - - // Tree - --tree-bg: transparent; - - // Skeleton - --skeleton-to-color: fade(@white, 16%); - - // Transfer - --transfer-item-hover-bg: #262626; - - // Message - --message-notice-content-bg: @popover-background; - - // List - --list-customize-card-bg: transparent; - - // Drawer - --drawer-bg: @popover-background; - - // Timeline - --timeline-color: @border-color-split; - --timeline-dot-color: @primary-color; - - // Steps - --steps-nav-arrow-color: fade(@white, 20%); - --steps-background: transparent; - - // Notification - --notification-bg: @popover-background; - - // 侧边栏 - --sidebar-light-shadow: 0 4px 4px rgba(0, 0, 0, 0.6); - --sidebar-dark-shadow: 0 4px 4px rgba(0, 0, 0, 0.6); - - // 顶栏 - --header-light-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); - --header-dark-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); - --header-tool-hover-bg: rgba(255, 255, 255, 0.05); - --header-dark-tool-hover-bg: rgba(255, 255, 255, 0.05); - --header-color-split: rgba(255, 255, 255, 0.15); - - // logo - --logo-light-shadow: 0 3px 4px rgba(0, 0, 0, 0.6); - --logo-dark-shadow: 0 3px 4px rgba(0, 0, 0, 0.6); - - // - --gradient-min: fade(#303030, 20%); - --gradient-max: fade(#303030, 40%); - - // font - --font-color: #FFFFFF; - // header-bottom - --header-bottom: rgba(54, 54, 54, 0.6); - // breadcrumb-background - --breadcrumb-background: rgba(54, 54, 54, 0.6); - // background-color - --snowy-background-color: #141414; - // tag-background - --tag-background: rgba(56, 56, 56); - // - --primary-fade-20: var(--primary-2); - - --black--fade--85: rgba(255, 255, 255, 0.85); - --switch-shadow-color: 0 2px 4px rgb(0 35 11 / 20%); - --card-above-color: #303030; - --card-above-border-color: #484848; - - // workfolw design - --node-wrap-box-color: #303030; - --node-wrap-box-before-color: rgba(255, 255, 255, 0.09); // 箭头旁边 - --node-wrap-box-before-borde-color: rgba(255, 255, 255, 0.09); // 箭头 - --auto-judge-before-color: #141414; // 箭头背景 - --cover-line-before-color: #141414; -} diff --git a/src/src/tailwind.css b/src/src/tailwind.css deleted file mode 100644 index 2f67a33..0000000 --- a/src/src/tailwind.css +++ /dev/null @@ -1,91 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@layer components { -} - -@layer utilities { -} - -/*默认为row,横向排列*/ -.layout-items-center { - display: flex; - align-items: center; -} - -.layout-items-baseline { - display: flex; - align-items: baseline; -} - -.layout-baseline-between { - display: flex; - align-items: baseline; - justify-content: space-between; -} - -/*左右居中*/ -.layout-center { - display: flex; - justify-content: center; -} - -/*两边排列*/ -.layout-slide { - display: flex; - align-items: center; - justify-content: space-between; -} - -/*左中右排列*/ -.layout-around { - display: flex; - align-items: center; - justify-content: space-around; -} - -/*两边排列, 换行*/ -.layout-slide-wrap { - display: flex; - align-items: center; - justify-content: space-between; - flex-wrap: wrap; -} - -/*上下排列*/ -.layout-col-slide { - display: flex; - flex-direction: column; - justify-content: space-between; -} - -/*左右垂直居中*/ - -.layout-abs-center { - display: flex; - justify-content: center; - align-items: center; -} - -/*横向左右垂直居右*/ -.layout-end { - display: flex; - justify-content: flex-end; - align-items: center; -} - -/*纵向左右垂直居中*/ -.layout-col-center { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -.text-color{ - color: var(--text-color); -} - - - diff --git a/src/src/utils/cityOptions.js b/src/src/utils/cityOptions.js deleted file mode 100644 index 53e132e..0000000 --- a/src/src/utils/cityOptions.js +++ /dev/null @@ -1,16309 +0,0 @@ -const cityOptions = [{ - "code": "110000", - "label": "北京市", - "value": "北京市", - "children": [ - { - "code": "110100", - "label": "北京市", - "value": "北京市", - "children": [ - { "code": "110101", "label": "东城区", "value": "东城区" }, - { "code": "110102", "label": "西城区", "value": "西城区" }, - { "code": "110105", "label": "朝阳区", "value": "朝阳区" }, - { "code": "110106", "label": "丰台区", "value": "丰台区" }, - { "code": "110107", "label": "石景山区", "value": "石景山区" }, - { "code": "110108", "label": "海淀区", "value": "海淀区" }, - { "code": "110109", "label": "门头沟区", "value": "门头沟区" }, - { "code": "110111", "label": "房山区", "value": "房山区" }, - { "code": "110112", "label": "通州区", "value": "通州区" }, - { "code": "110113", "label": "顺义区", "value": "顺义区" }, - { "code": "110114", "label": "昌平区", "value": "昌平区" }, - { "code": "110115", "label": "大兴区", "value": "大兴区" }, - { "code": "110116", "label": "怀柔区", "value": "怀柔区" }, - { "code": "110117", "label": "平谷区", "value": "平谷区" }, - { "code": "110228", "label": "密云区", "value": "密云区" }, - { "code": "110229", "label": "延庆区", "value": "延庆区" } - ] - } - ] -}, - { - "code": "120000", - "label": "天津市", - "value": "天津市", - "children": [ - { - "code": "120100", - "label": "天津市", - "value": "天津市", - "children": [ - { "code": "120101", "label": "和平区", "value": "和平区" }, - { "code": "120102", "label": "河东区", "value": "河东区" }, - { "code": "120103", "label": "河西区", "value": "河西区" }, - { "code": "120104", "label": "南开区", "value": "南开区" }, - { "code": "120105", "label": "河北区", "value": "河北区" }, - { "code": "120106", "label": "红桥区", "value": "红桥区" }, - { "code": "120110", "label": "东丽区", "value": "东丽区" }, - { "code": "120111", "label": "西青区", "value": "西青区" }, - { "code": "120112", "label": "津南区", "value": "津南区" }, - { "code": "120113", "label": "北辰区", "value": "北辰区" }, - { "code": "120114", "label": "武清区", "value": "武清区" }, - { "code": "120115", "label": "宝坻区", "value": "宝坻区" }, - { "code": "120116", "label": "滨海新区", "value": "滨海新区" }, - { "code": "120117", "label": "静海区", "value": "静海区" }, - { "code": "120118", "label": "蓟州区", "value": "蓟州区" } - ] - } - ] - }, - { - "code": "130000", - "value": "河北省", - "label": "河北省", - "children": [ - { - "code": "130100", - "value": "石家庄市", - "label": "石家庄市", - "children": [ - { - "code": "130102", - "value": "长安区", - "label": "长安区" - }, - { - "code": "130104", - "value": "桥西区", - "label": "桥西区" - }, - { - "code": "130105", - "value": "新华区", - "label": "新华区" - }, - { - "code": "130107", - "value": "井陉矿区", - "label": "井陉矿区" - }, - { - "code": "130108", - "value": "裕华区", - "label": "裕华区" - }, - { - "code": "130109", - "value": "藁城区", - "label": "藁城区" - }, - { - "code": "130110", - "value": "鹿泉区", - "label": "鹿泉区" - }, - { - "code": "130111", - "value": "栾城区", - "label": "栾城区" - }, - { - "code": "130121", - "value": "井陉县", - "label": "井陉县" - }, - { - "code": "130123", - "value": "正定县", - "label": "正定县" - }, - { - "code": "130125", - "value": "行唐县", - "label": "行唐县" - }, - { - "code": "130126", - "value": "灵寿县", - "label": "灵寿县" - }, - { - "code": "130127", - "value": "高邑县", - "label": "高邑县" - }, - { - "code": "130128", - "value": "深泽县", - "label": "深泽县" - }, - { - "code": "130129", - "value": "赞皇县", - "label": "赞皇县" - }, - { - "code": "130130", - "value": "无极县", - "label": "无极县" - }, - { - "code": "130131", - "value": "平山县", - "label": "平山县" - }, - { - "code": "130132", - "value": "元氏县", - "label": "元氏县" - }, - { - "code": "130133", - "value": "赵县", - "label": "赵县" - }, - { - "code": "130181", - "value": "辛集市", - "label": "辛集市" - }, - { - "code": "130183", - "value": "晋州市", - "label": "晋州市" - }, - { - "code": "130184", - "value": "新乐市", - "label": "新乐市" - } - ] - }, - { - "code": "130200", - "value": "唐山市", - "label": "唐山市", - "children": [ - { - "code": "130202", - "value": "路南区", - "label": "路南区" - }, - { - "code": "130203", - "value": "路北区", - "label": "路北区" - }, - { - "code": "130204", - "value": "古冶区", - "label": "古冶区" - }, - { - "code": "130205", - "value": "开平区", - "label": "开平区" - }, - { - "code": "130207", - "value": "丰南区", - "label": "丰南区" - }, - { - "code": "130208", - "value": "丰润区", - "label": "丰润区" - }, - { - "code": "130209", - "value": "曹妃甸区", - "label": "曹妃甸区" - }, - { - "code": "130224", - "value": "滦南县", - "label": "滦南县" - }, - { - "code": "130225", - "value": "乐亭县", - "label": "乐亭县" - }, - { - "code": "130227", - "value": "迁西县", - "label": "迁西县" - }, - { - "code": "130229", - "value": "玉田县", - "label": "玉田县" - }, - { - "code": "130281", - "value": "遵化市", - "label": "遵化市" - }, - { - "code": "130283", - "value": "迁安市", - "label": "迁安市" - }, - { - "code": "130284", - "value": "滦州市", - "label": "滦州市" - } - ] - }, - { - "code": "130300", - "value": "秦皇岛市", - "label": "秦皇岛市", - "children": [ - { - "code": "130302", - "value": "海港区", - "label": "海港区" - }, - { - "code": "130303", - "value": "山海关区", - "label": "山海关区" - }, - { - "code": "130304", - "value": "北戴河区", - "label": "北戴河区" - }, - { - "code": "130306", - "value": "抚宁区", - "label": "抚宁区" - }, - { - "code": "130321", - "value": "青龙满族自治县", - "label": "青龙满族自治县" - }, - { - "code": "130322", - "value": "昌黎县", - "label": "昌黎县" - }, - { - "code": "130324", - "value": "卢龙县", - "label": "卢龙县" - } - ] - }, - { - "code": "130400", - "value": "邯郸市", - "label": "邯郸市", - "children": [ - { - "code": "130402", - "value": "邯山区", - "label": "邯山区" - }, - { - "code": "130403", - "value": "丛台区", - "label": "丛台区" - }, - { - "code": "130404", - "value": "复兴区", - "label": "复兴区" - }, - { - "code": "130406", - "value": "峰峰矿区", - "label": "峰峰矿区" - }, - { - "code": "130407", - "value": "肥乡区", - "label": "肥乡区" - }, - { - "code": "130408", - "value": "永年区", - "label": "永年区" - }, - { - "code": "130423", - "value": "临漳县", - "label": "临漳县" - }, - { - "code": "130424", - "value": "成安县", - "label": "成安县" - }, - { - "code": "130425", - "value": "大名县", - "label": "大名县" - }, - { - "code": "130426", - "value": "涉县", - "label": "涉县" - }, - { - "code": "130427", - "value": "磁县", - "label": "磁县" - }, - { - "code": "130430", - "value": "邱县", - "label": "邱县" - }, - { - "code": "130431", - "value": "鸡泽县", - "label": "鸡泽县" - }, - { - "code": "130432", - "value": "广平县", - "label": "广平县" - }, - { - "code": "130433", - "value": "馆陶县", - "label": "馆陶县" - }, - { - "code": "130434", - "value": "魏县", - "label": "魏县" - }, - { - "code": "130435", - "value": "曲周县", - "label": "曲周县" - }, - { - "code": "130481", - "value": "武安市", - "label": "武安市" - } - ] - }, - { - "code": "130500", - "value": "邢台市", - "label": "邢台市", - "children": [ - { - "code": "130502", - "value": "襄都区", - "label": "襄都区" - }, - { - "code": "130503", - "value": "信都区", - "label": "信都区" - }, - { - "code": "130505", - "value": "任泽区", - "label": "任泽区" - }, - { - "code": "130506", - "value": "南和区", - "label": "南和区" - }, - { - "code": "130522", - "value": "临城县", - "label": "临城县" - }, - { - "code": "130523", - "value": "内丘县", - "label": "内丘县" - }, - { - "code": "130524", - "value": "柏乡县", - "label": "柏乡县" - }, - { - "code": "130525", - "value": "隆尧县", - "label": "隆尧县" - }, - { - "code": "130528", - "value": "宁晋县", - "label": "宁晋县" - }, - { - "code": "130529", - "value": "巨鹿县", - "label": "巨鹿县" - }, - { - "code": "130530", - "value": "新河县", - "label": "新河县" - }, - { - "code": "130531", - "value": "广宗县", - "label": "广宗县" - }, - { - "code": "130532", - "value": "平乡县", - "label": "平乡县" - }, - { - "code": "130533", - "value": "威县", - "label": "威县" - }, - { - "code": "130534", - "value": "清河县", - "label": "清河县" - }, - { - "code": "130535", - "value": "临西县", - "label": "临西县" - }, - { - "code": "130581", - "value": "南宫市", - "label": "南宫市" - }, - { - "code": "130582", - "value": "沙河市", - "label": "沙河市" - } - ] - }, - { - "code": "130600", - "value": "保定市", - "label": "保定市", - "children": [ - { - "code": "130602", - "value": "竞秀区", - "label": "竞秀区" - }, - { - "code": "130606", - "value": "莲池区", - "label": "莲池区" - }, - { - "code": "130607", - "value": "满城区", - "label": "满城区" - }, - { - "code": "130608", - "value": "清苑区", - "label": "清苑区" - }, - { - "code": "130609", - "value": "徐水区", - "label": "徐水区" - }, - { - "code": "130623", - "value": "涞水县", - "label": "涞水县" - }, - { - "code": "130624", - "value": "阜平县", - "label": "阜平县" - }, - { - "code": "130626", - "value": "定兴县", - "label": "定兴县" - }, - { - "code": "130627", - "value": "唐县", - "label": "唐县" - }, - { - "code": "130628", - "value": "高阳县", - "label": "高阳县" - }, - { - "code": "130629", - "value": "容城县", - "label": "容城县" - }, - { - "code": "130630", - "value": "涞源县", - "label": "涞源县" - }, - { - "code": "130631", - "value": "望都县", - "label": "望都县" - }, - { - "code": "130632", - "value": "安新县", - "label": "安新县" - }, - { - "code": "130633", - "value": "易县", - "label": "易县" - }, - { - "code": "130634", - "value": "曲阳县", - "label": "曲阳县" - }, - { - "code": "130635", - "value": "蠡县", - "label": "蠡县" - }, - { - "code": "130636", - "value": "顺平县", - "label": "顺平县" - }, - { - "code": "130637", - "value": "博野县", - "label": "博野县" - }, - { - "code": "130638", - "value": "雄县", - "label": "雄县" - }, - { - "code": "130681", - "value": "涿州市", - "label": "涿州市" - }, - { - "code": "130682", - "value": "定州市", - "label": "定州市" - }, - { - "code": "130683", - "value": "安国市", - "label": "安国市" - }, - { - "code": "130684", - "value": "高碑店市", - "label": "高碑店市" - } - ] - }, - { - "code": "130700", - "value": "张家口市", - "label": "张家口市", - "children": [ - { - "code": "130702", - "value": "桥东区", - "label": "桥东区" - }, - { - "code": "130703", - "value": "桥西区", - "label": "桥西区" - }, - { - "code": "130705", - "value": "宣化区", - "label": "宣化区" - }, - { - "code": "130706", - "value": "下花园区", - "label": "下花园区" - }, - { - "code": "130708", - "value": "万全区", - "label": "万全区" - }, - { - "code": "130709", - "value": "崇礼区", - "label": "崇礼区" - }, - { - "code": "130722", - "value": "张北县", - "label": "张北县" - }, - { - "code": "130723", - "value": "康保县", - "label": "康保县" - }, - { - "code": "130724", - "value": "沽源县", - "label": "沽源县" - }, - { - "code": "130725", - "value": "尚义县", - "label": "尚义县" - }, - { - "code": "130726", - "value": "蔚县", - "label": "蔚县" - }, - { - "code": "130727", - "value": "阳原县", - "label": "阳原县" - }, - { - "code": "130728", - "value": "怀安县", - "label": "怀安县" - }, - { - "code": "130730", - "value": "怀来县", - "label": "怀来县" - }, - { - "code": "130731", - "value": "涿鹿县", - "label": "涿鹿县" - }, - { - "code": "130732", - "value": "赤城县", - "label": "赤城县" - } - ] - }, - { - "code": "130800", - "value": "承德市", - "label": "承德市", - "children": [ - { - "code": "130802", - "value": "双桥区", - "label": "双桥区" - }, - { - "code": "130803", - "value": "双滦区", - "label": "双滦区" - }, - { - "code": "130804", - "value": "鹰手营子矿区", - "label": "鹰手营子矿区" - }, - { - "code": "130821", - "value": "承德县", - "label": "承德县" - }, - { - "code": "130822", - "value": "兴隆县", - "label": "兴隆县" - }, - { - "code": "130824", - "value": "滦平县", - "label": "滦平县" - }, - { - "code": "130825", - "value": "隆化县", - "label": "隆化县" - }, - { - "code": "130826", - "value": "丰宁满族自治县", - "label": "丰宁满族自治县" - }, - { - "code": "130827", - "value": "宽城满族自治县", - "label": "宽城满族自治县" - }, - { - "code": "130828", - "value": "围场满族蒙古族自治县", - "label": "围场满族蒙古族自治县" - }, - { - "code": "130881", - "value": "平泉市", - "label": "平泉市" - } - ] - }, - { - "code": "130900", - "value": "沧州市", - "label": "沧州市", - "children": [ - { - "code": "130902", - "value": "新华区", - "label": "新华区" - }, - { - "code": "130903", - "value": "运河区", - "label": "运河区" - }, - { - "code": "130921", - "value": "沧县", - "label": "沧县" - }, - { - "code": "130922", - "value": "青县", - "label": "青县" - }, - { - "code": "130923", - "value": "东光县", - "label": "东光县" - }, - { - "code": "130924", - "value": "海兴县", - "label": "海兴县" - }, - { - "code": "130925", - "value": "盐山县", - "label": "盐山县" - }, - { - "code": "130926", - "value": "肃宁县", - "label": "肃宁县" - }, - { - "code": "130927", - "value": "南皮县", - "label": "南皮县" - }, - { - "code": "130928", - "value": "吴桥县", - "label": "吴桥县" - }, - { - "code": "130929", - "value": "献县", - "label": "献县" - }, - { - "code": "130930", - "value": "孟村回族自治县", - "label": "孟村回族自治县" - }, - { - "code": "130981", - "value": "泊头市", - "label": "泊头市" - }, - { - "code": "130982", - "value": "任丘市", - "label": "任丘市" - }, - { - "code": "130983", - "value": "黄骅市", - "label": "黄骅市" - }, - { - "code": "130984", - "value": "河间市", - "label": "河间市" - } - ] - }, - { - "code": "131000", - "value": "廊坊市", - "label": "廊坊市", - "children": [ - { - "code": "131002", - "value": "安次区", - "label": "安次区" - }, - { - "code": "131003", - "value": "广阳区", - "label": "广阳区" - }, - { - "code": "131022", - "value": "固安县", - "label": "固安县" - }, - { - "code": "131023", - "value": "永清县", - "label": "永清县" - }, - { - "code": "131024", - "value": "香河县", - "label": "香河县" - }, - { - "code": "131025", - "value": "大城县", - "label": "大城县" - }, - { - "code": "131026", - "value": "文安县", - "label": "文安县" - }, - { - "code": "131028", - "value": "大厂回族自治县", - "label": "大厂回族自治县" - }, - { - "code": "131081", - "value": "霸州市", - "label": "霸州市" - }, - { - "code": "131082", - "value": "三河市", - "label": "三河市" - } - ] - }, - { - "code": "131100", - "value": "衡水市", - "label": "衡水市", - "children": [ - { - "code": "131102", - "value": "桃城区", - "label": "桃城区" - }, - { - "code": "131103", - "value": "冀州区", - "label": "冀州区" - }, - { - "code": "131121", - "value": "枣强县", - "label": "枣强县" - }, - { - "code": "131122", - "value": "武邑县", - "label": "武邑县" - }, - { - "code": "131123", - "value": "武强县", - "label": "武强县" - }, - { - "code": "131124", - "value": "饶阳县", - "label": "饶阳县" - }, - { - "code": "131125", - "value": "安平县", - "label": "安平县" - }, - { - "code": "131126", - "value": "故城县", - "label": "故城县" - }, - { - "code": "131127", - "value": "景县", - "label": "景县" - }, - { - "code": "131128", - "value": "阜城县", - "label": "阜城县" - }, - { - "code": "131182", - "value": "深州市", - "label": "深州市" - } - ] - } - ] - }, - { - "code": "140000", - "value": "山西省", - "label": "山西省", - "children": [ - { - "code": "140100", - "value": "太原市", - "label": "太原市", - "children": [ - { - "code": "140105", - "value": "小店区", - "label": "小店区" - }, - { - "code": "140106", - "value": "迎泽区", - "label": "迎泽区" - }, - { - "code": "140107", - "value": "杏花岭区", - "label": "杏花岭区" - }, - { - "code": "140108", - "value": "尖草坪区", - "label": "尖草坪区" - }, - { - "code": "140109", - "value": "万柏林区", - "label": "万柏林区" - }, - { - "code": "140110", - "value": "晋源区", - "label": "晋源区" - }, - { - "code": "140121", - "value": "清徐县", - "label": "清徐县" - }, - { - "code": "140122", - "value": "阳曲县", - "label": "阳曲县" - }, - { - "code": "140123", - "value": "娄烦县", - "label": "娄烦县" - }, - { - "code": "140181", - "value": "古交市", - "label": "古交市" - } - ] - }, - { - "code": "140200", - "value": "大同市", - "label": "大同市", - "children": [ - { - "code": "140212", - "value": "新荣区", - "label": "新荣区" - }, - { - "code": "140213", - "value": "平城区", - "label": "平城区" - }, - { - "code": "140214", - "value": "云冈区", - "label": "云冈区" - }, - { - "code": "140215", - "value": "云州区", - "label": "云州区" - }, - { - "code": "140221", - "value": "阳高县", - "label": "阳高县" - }, - { - "code": "140222", - "value": "天镇县", - "label": "天镇县" - }, - { - "code": "140223", - "value": "广灵县", - "label": "广灵县" - }, - { - "code": "140224", - "value": "灵丘县", - "label": "灵丘县" - }, - { - "code": "140225", - "value": "浑源县", - "label": "浑源县" - }, - { - "code": "140226", - "value": "左云县", - "label": "左云县" - } - ] - }, - { - "code": "140300", - "value": "阳泉市", - "label": "阳泉市", - "children": [ - { - "code": "140302", - "value": "城区", - "label": "城区" - }, - { - "code": "140303", - "value": "矿区", - "label": "矿区" - }, - { - "code": "140311", - "value": "郊区", - "label": "郊区" - }, - { - "code": "140321", - "value": "平定县", - "label": "平定县" - }, - { - "code": "140322", - "value": "盂县", - "label": "盂县" - } - ] - }, - { - "code": "140400", - "value": "长治市", - "label": "长治市", - "children": [ - { - "code": "140403", - "value": "潞州区", - "label": "潞州区" - }, - { - "code": "140404", - "value": "上党区", - "label": "上党区" - }, - { - "code": "140405", - "value": "屯留区", - "label": "屯留区" - }, - { - "code": "140406", - "value": "潞城区", - "label": "潞城区" - }, - { - "code": "140423", - "value": "襄垣县", - "label": "襄垣县" - }, - { - "code": "140425", - "value": "平顺县", - "label": "平顺县" - }, - { - "code": "140426", - "value": "黎城县", - "label": "黎城县" - }, - { - "code": "140427", - "value": "壶关县", - "label": "壶关县" - }, - { - "code": "140428", - "value": "长子县", - "label": "长子县" - }, - { - "code": "140429", - "value": "武乡县", - "label": "武乡县" - }, - { - "code": "140430", - "value": "沁县", - "label": "沁县" - }, - { - "code": "140431", - "value": "沁源县", - "label": "沁源县" - } - ] - }, - { - "code": "140500", - "value": "晋城市", - "label": "晋城市", - "children": [ - { - "code": "140502", - "value": "城区", - "label": "城区" - }, - { - "code": "140521", - "value": "沁水县", - "label": "沁水县" - }, - { - "code": "140522", - "value": "阳城县", - "label": "阳城县" - }, - { - "code": "140524", - "value": "陵川县", - "label": "陵川县" - }, - { - "code": "140525", - "value": "泽州县", - "label": "泽州县" - }, - { - "code": "140581", - "value": "高平市", - "label": "高平市" - } - ] - }, - { - "code": "140600", - "value": "朔州市", - "label": "朔州市", - "children": [ - { - "code": "140602", - "value": "朔城区", - "label": "朔城区" - }, - { - "code": "140603", - "value": "平鲁区", - "label": "平鲁区" - }, - { - "code": "140621", - "value": "山阴县", - "label": "山阴县" - }, - { - "code": "140622", - "value": "应县", - "label": "应县" - }, - { - "code": "140623", - "value": "右玉县", - "label": "右玉县" - }, - { - "code": "140681", - "value": "怀仁市", - "label": "怀仁市" - } - ] - }, - { - "code": "140700", - "value": "晋中市", - "label": "晋中市", - "children": [ - { - "code": "140702", - "value": "榆次区", - "label": "榆次区" - }, - { - "code": "140703", - "value": "太谷区", - "label": "太谷区" - }, - { - "code": "140721", - "value": "榆社县", - "label": "榆社县" - }, - { - "code": "140722", - "value": "左权县", - "label": "左权县" - }, - { - "code": "140723", - "value": "和顺县", - "label": "和顺县" - }, - { - "code": "140724", - "value": "昔阳县", - "label": "昔阳县" - }, - { - "code": "140725", - "value": "寿阳县", - "label": "寿阳县" - }, - { - "code": "140727", - "value": "祁县", - "label": "祁县" - }, - { - "code": "140728", - "value": "平遥县", - "label": "平遥县" - }, - { - "code": "140729", - "value": "灵石县", - "label": "灵石县" - }, - { - "code": "140781", - "value": "介休市", - "label": "介休市" - } - ] - }, - { - "code": "140800", - "value": "运城市", - "label": "运城市", - "children": [ - { - "code": "140802", - "value": "盐湖区", - "label": "盐湖区" - }, - { - "code": "140821", - "value": "临猗县", - "label": "临猗县" - }, - { - "code": "140822", - "value": "万荣县", - "label": "万荣县" - }, - { - "code": "140823", - "value": "闻喜县", - "label": "闻喜县" - }, - { - "code": "140824", - "value": "稷山县", - "label": "稷山县" - }, - { - "code": "140825", - "value": "新绛县", - "label": "新绛县" - }, - { - "code": "140826", - "value": "绛县", - "label": "绛县" - }, - { - "code": "140827", - "value": "垣曲县", - "label": "垣曲县" - }, - { - "code": "140828", - "value": "夏县", - "label": "夏县" - }, - { - "code": "140829", - "value": "平陆县", - "label": "平陆县" - }, - { - "code": "140830", - "value": "芮城县", - "label": "芮城县" - }, - { - "code": "140881", - "value": "永济市", - "label": "永济市" - }, - { - "code": "140882", - "value": "河津市", - "label": "河津市" - } - ] - }, - { - "code": "140900", - "value": "忻州市", - "label": "忻州市", - "children": [ - { - "code": "140902", - "value": "忻府区", - "label": "忻府区" - }, - { - "code": "140921", - "value": "定襄县", - "label": "定襄县" - }, - { - "code": "140922", - "value": "五台县", - "label": "五台县" - }, - { - "code": "140923", - "value": "代县", - "label": "代县" - }, - { - "code": "140924", - "value": "繁峙县", - "label": "繁峙县" - }, - { - "code": "140925", - "value": "宁武县", - "label": "宁武县" - }, - { - "code": "140926", - "value": "静乐县", - "label": "静乐县" - }, - { - "code": "140927", - "value": "神池县", - "label": "神池县" - }, - { - "code": "140928", - "value": "五寨县", - "label": "五寨县" - }, - { - "code": "140929", - "value": "岢岚县", - "label": "岢岚县" - }, - { - "code": "140930", - "value": "河曲县", - "label": "河曲县" - }, - { - "code": "140931", - "value": "保德县", - "label": "保德县" - }, - { - "code": "140932", - "value": "偏关县", - "label": "偏关县" - }, - { - "code": "140981", - "value": "原平市", - "label": "原平市" - } - ] - }, - { - "code": "141000", - "value": "临汾市", - "label": "临汾市", - "children": [ - { - "code": "141002", - "value": "尧都区", - "label": "尧都区" - }, - { - "code": "141021", - "value": "曲沃县", - "label": "曲沃县" - }, - { - "code": "141022", - "value": "翼城县", - "label": "翼城县" - }, - { - "code": "141023", - "value": "襄汾县", - "label": "襄汾县" - }, - { - "code": "141024", - "value": "洪洞县", - "label": "洪洞县" - }, - { - "code": "141025", - "value": "古县", - "label": "古县" - }, - { - "code": "141026", - "value": "安泽县", - "label": "安泽县" - }, - { - "code": "141027", - "value": "浮山县", - "label": "浮山县" - }, - { - "code": "141028", - "value": "吉县", - "label": "吉县" - }, - { - "code": "141029", - "value": "乡宁县", - "label": "乡宁县" - }, - { - "code": "141030", - "value": "大宁县", - "label": "大宁县" - }, - { - "code": "141031", - "value": "隰县", - "label": "隰县" - }, - { - "code": "141032", - "value": "永和县", - "label": "永和县" - }, - { - "code": "141033", - "value": "蒲县", - "label": "蒲县" - }, - { - "code": "141034", - "value": "汾西县", - "label": "汾西县" - }, - { - "code": "141081", - "value": "侯马市", - "label": "侯马市" - }, - { - "code": "141082", - "value": "霍州市", - "label": "霍州市" - } - ] - }, - { - "code": "141100", - "value": "吕梁市", - "label": "吕梁市", - "children": [ - { - "code": "141102", - "value": "离石区", - "label": "离石区" - }, - { - "code": "141121", - "value": "文水县", - "label": "文水县" - }, - { - "code": "141122", - "value": "交城县", - "label": "交城县" - }, - { - "code": "141123", - "value": "兴县", - "label": "兴县" - }, - { - "code": "141124", - "value": "临县", - "label": "临县" - }, - { - "code": "141125", - "value": "柳林县", - "label": "柳林县" - }, - { - "code": "141126", - "value": "石楼县", - "label": "石楼县" - }, - { - "code": "141127", - "value": "岚县", - "label": "岚县" - }, - { - "code": "141128", - "value": "方山县", - "label": "方山县" - }, - { - "code": "141129", - "value": "中阳县", - "label": "中阳县" - }, - { - "code": "141130", - "value": "交口县", - "label": "交口县" - }, - { - "code": "141181", - "value": "孝义市", - "label": "孝义市" - }, - { - "code": "141182", - "value": "汾阳市", - "label": "汾阳市" - } - ] - } - ] - }, - { - "code": "150000", - "value": "内蒙古自治区", - "label": "内蒙古自治区", - "children": [ - { - "code": "150100", - "value": "呼和浩特市", - "label": "呼和浩特市", - "children": [ - { - "code": "150102", - "value": "新城区", - "label": "新城区" - }, - { - "code": "150103", - "value": "回民区", - "label": "回民区" - }, - { - "code": "150104", - "value": "玉泉区", - "label": "玉泉区" - }, - { - "code": "150105", - "value": "赛罕区", - "label": "赛罕区" - }, - { - "code": "150121", - "value": "土默特左旗", - "label": "土默特左旗" - }, - { - "code": "150122", - "value": "托克托县", - "label": "托克托县" - }, - { - "code": "150123", - "value": "和林格尔县", - "label": "和林格尔县" - }, - { - "code": "150124", - "value": "清水河县", - "label": "清水河县" - }, - { - "code": "150125", - "value": "武川县", - "label": "武川县" - } - ] - }, - { - "code": "150200", - "value": "包头市", - "label": "包头市", - "children": [ - { - "code": "150202", - "value": "东河区", - "label": "东河区" - }, - { - "code": "150203", - "value": "昆都仑区", - "label": "昆都仑区" - }, - { - "code": "150204", - "value": "青山区", - "label": "青山区" - }, - { - "code": "150205", - "value": "石拐区", - "label": "石拐区" - }, - { - "code": "150206", - "value": "白云鄂博矿区", - "label": "白云鄂博矿区" - }, - { - "code": "150207", - "value": "九原区", - "label": "九原区" - }, - { - "code": "150221", - "value": "土默特右旗", - "label": "土默特右旗" - }, - { - "code": "150222", - "value": "固阳县", - "label": "固阳县" - }, - { - "code": "150223", - "value": "达尔罕茂明安联合旗", - "label": "达尔罕茂明安联合旗" - } - ] - }, - { - "code": "150300", - "value": "乌海市", - "label": "乌海市", - "children": [ - { - "code": "150302", - "value": "海勃湾区", - "label": "海勃湾区" - }, - { - "code": "150303", - "value": "海南区", - "label": "海南区" - }, - { - "code": "150304", - "value": "乌达区", - "label": "乌达区" - } - ] - }, - { - "code": "150400", - "value": "赤峰市", - "label": "赤峰市", - "children": [ - { - "code": "150402", - "value": "红山区", - "label": "红山区" - }, - { - "code": "150403", - "value": "元宝山区", - "label": "元宝山区" - }, - { - "code": "150404", - "value": "松山区", - "label": "松山区" - }, - { - "code": "150421", - "value": "阿鲁科尔沁旗", - "label": "阿鲁科尔沁旗" - }, - { - "code": "150422", - "value": "巴林左旗", - "label": "巴林左旗" - }, - { - "code": "150423", - "value": "巴林右旗", - "label": "巴林右旗" - }, - { - "code": "150424", - "value": "林西县", - "label": "林西县" - }, - { - "code": "150425", - "value": "克什克腾旗", - "label": "克什克腾旗" - }, - { - "code": "150426", - "value": "翁牛特旗", - "label": "翁牛特旗" - }, - { - "code": "150428", - "value": "喀喇沁旗", - "label": "喀喇沁旗" - }, - { - "code": "150429", - "value": "宁城县", - "label": "宁城县" - }, - { - "code": "150430", - "value": "敖汉旗", - "label": "敖汉旗" - } - ] - }, - { - "code": "150500", - "value": "通辽市", - "label": "通辽市", - "children": [ - { - "code": "150502", - "value": "科尔沁区", - "label": "科尔沁区" - }, - { - "code": "150521", - "value": "科尔沁左翼中旗", - "label": "科尔沁左翼中旗" - }, - { - "code": "150522", - "value": "科尔沁左翼后旗", - "label": "科尔沁左翼后旗" - }, - { - "code": "150523", - "value": "开鲁县", - "label": "开鲁县" - }, - { - "code": "150524", - "value": "库伦旗", - "label": "库伦旗" - }, - { - "code": "150525", - "value": "奈曼旗", - "label": "奈曼旗" - }, - { - "code": "150526", - "value": "扎鲁特旗", - "label": "扎鲁特旗" - }, - { - "code": "150581", - "value": "霍林郭勒市", - "label": "霍林郭勒市" - } - ] - }, - { - "code": "150600", - "value": "鄂尔多斯市", - "label": "鄂尔多斯市", - "children": [ - { - "code": "150602", - "value": "东胜区", - "label": "东胜区" - }, - { - "code": "150603", - "value": "康巴什区", - "label": "康巴什区" - }, - { - "code": "150621", - "value": "达拉特旗", - "label": "达拉特旗" - }, - { - "code": "150622", - "value": "准格尔旗", - "label": "准格尔旗" - }, - { - "code": "150623", - "value": "鄂托克前旗", - "label": "鄂托克前旗" - }, - { - "code": "150624", - "value": "鄂托克旗", - "label": "鄂托克旗" - }, - { - "code": "150625", - "value": "杭锦旗", - "label": "杭锦旗" - }, - { - "code": "150626", - "value": "乌审旗", - "label": "乌审旗" - }, - { - "code": "150627", - "value": "伊金霍洛旗", - "label": "伊金霍洛旗" - } - ] - }, - { - "code": "150700", - "value": "呼伦贝尔市", - "label": "呼伦贝尔市", - "children": [ - { - "code": "150702", - "value": "海拉尔区", - "label": "海拉尔区" - }, - { - "code": "150703", - "value": "扎赉诺尔区", - "label": "扎赉诺尔区" - }, - { - "code": "150721", - "value": "阿荣旗", - "label": "阿荣旗" - }, - { - "code": "150722", - "value": "莫力达瓦达斡尔族自治旗", - "label": "莫力达瓦达斡尔族自治旗" - }, - { - "code": "150723", - "value": "鄂伦春自治旗", - "label": "鄂伦春自治旗" - }, - { - "code": "150724", - "value": "鄂温克族自治旗", - "label": "鄂温克族自治旗" - }, - { - "code": "150725", - "value": "陈巴尔虎旗", - "label": "陈巴尔虎旗" - }, - { - "code": "150726", - "value": "新巴尔虎左旗", - "label": "新巴尔虎左旗" - }, - { - "code": "150727", - "value": "新巴尔虎右旗", - "label": "新巴尔虎右旗" - }, - { - "code": "150781", - "value": "满洲里市", - "label": "满洲里市" - }, - { - "code": "150782", - "value": "牙克石市", - "label": "牙克石市" - }, - { - "code": "150783", - "value": "扎兰屯市", - "label": "扎兰屯市" - }, - { - "code": "150784", - "value": "额尔古纳市", - "label": "额尔古纳市" - }, - { - "code": "150785", - "value": "根河市", - "label": "根河市" - } - ] - }, - { - "code": "150800", - "value": "巴彦淖尔市", - "label": "巴彦淖尔市", - "children": [ - { - "code": "150802", - "value": "临河区", - "label": "临河区" - }, - { - "code": "150821", - "value": "五原县", - "label": "五原县" - }, - { - "code": "150822", - "value": "磴口县", - "label": "磴口县" - }, - { - "code": "150823", - "value": "乌拉特前旗", - "label": "乌拉特前旗" - }, - { - "code": "150824", - "value": "乌拉特中旗", - "label": "乌拉特中旗" - }, - { - "code": "150825", - "value": "乌拉特后旗", - "label": "乌拉特后旗" - }, - { - "code": "150826", - "value": "杭锦后旗", - "label": "杭锦后旗" - } - ] - }, - { - "code": "150900", - "value": "乌兰察布市", - "label": "乌兰察布市", - "children": [ - { - "code": "150902", - "value": "集宁区", - "label": "集宁区" - }, - { - "code": "150921", - "value": "卓资县", - "label": "卓资县" - }, - { - "code": "150922", - "value": "化德县", - "label": "化德县" - }, - { - "code": "150923", - "value": "商都县", - "label": "商都县" - }, - { - "code": "150924", - "value": "兴和县", - "label": "兴和县" - }, - { - "code": "150925", - "value": "凉城县", - "label": "凉城县" - }, - { - "code": "150926", - "value": "察哈尔右翼前旗", - "label": "察哈尔右翼前旗" - }, - { - "code": "150927", - "value": "察哈尔右翼中旗", - "label": "察哈尔右翼中旗" - }, - { - "code": "150928", - "value": "察哈尔右翼后旗", - "label": "察哈尔右翼后旗" - }, - { - "code": "150929", - "value": "四子王旗", - "label": "四子王旗" - }, - { - "code": "150981", - "value": "丰镇市", - "label": "丰镇市" - } - ] - }, - { - "code": "152200", - "value": "兴安盟", - "label": "兴安盟", - "children": [ - { - "code": "152201", - "value": "乌兰浩特市", - "label": "乌兰浩特市" - }, - { - "code": "152202", - "value": "阿尔山市", - "label": "阿尔山市" - }, - { - "code": "152221", - "value": "科尔沁右翼前旗", - "label": "科尔沁右翼前旗" - }, - { - "code": "152222", - "value": "科尔沁右翼中旗", - "label": "科尔沁右翼中旗" - }, - { - "code": "152223", - "value": "扎赉特旗", - "label": "扎赉特旗" - }, - { - "code": "152224", - "value": "突泉县", - "label": "突泉县" - } - ] - }, - { - "code": "152500", - "value": "锡林郭勒盟", - "label": "锡林郭勒盟", - "children": [ - { - "code": "152501", - "value": "二连浩特市", - "label": "二连浩特市" - }, - { - "code": "152502", - "value": "锡林浩特市", - "label": "锡林浩特市" - }, - { - "code": "152522", - "value": "阿巴嘎旗", - "label": "阿巴嘎旗" - }, - { - "code": "152523", - "value": "苏尼特左旗", - "label": "苏尼特左旗" - }, - { - "code": "152524", - "value": "苏尼特右旗", - "label": "苏尼特右旗" - }, - { - "code": "152525", - "value": "东乌珠穆沁旗", - "label": "东乌珠穆沁旗" - }, - { - "code": "152526", - "value": "西乌珠穆沁旗", - "label": "西乌珠穆沁旗" - }, - { - "code": "152527", - "value": "太仆寺旗", - "label": "太仆寺旗" - }, - { - "code": "152528", - "value": "镶黄旗", - "label": "镶黄旗" - }, - { - "code": "152529", - "value": "正镶白旗", - "label": "正镶白旗" - }, - { - "code": "152530", - "value": "正蓝旗", - "label": "正蓝旗" - }, - { - "code": "152531", - "value": "多伦县", - "label": "多伦县" - } - ] - }, - { - "code": "152900", - "value": "阿拉善盟", - "label": "阿拉善盟", - "children": [ - { - "code": "152921", - "value": "阿拉善左旗", - "label": "阿拉善左旗" - }, - { - "code": "152922", - "value": "阿拉善右旗", - "label": "阿拉善右旗" - }, - { - "code": "152923", - "value": "额济纳旗", - "label": "额济纳旗" - } - ] - } - ] - }, - { - "code": "210000", - "value": "辽宁省", - "label": "辽宁省", - "children": [ - { - "code": "210100", - "value": "沈阳市", - "label": "沈阳市", - "children": [ - { - "code": "210102", - "value": "和平区", - "label": "和平区" - }, - { - "code": "210103", - "value": "沈河区", - "label": "沈河区" - }, - { - "code": "210104", - "value": "大东区", - "label": "大东区" - }, - { - "code": "210105", - "value": "皇姑区", - "label": "皇姑区" - }, - { - "code": "210106", - "value": "铁西区", - "label": "铁西区" - }, - { - "code": "210111", - "value": "苏家屯区", - "label": "苏家屯区" - }, - { - "code": "210112", - "value": "浑南区", - "label": "浑南区" - }, - { - "code": "210113", - "value": "沈北新区", - "label": "沈北新区" - }, - { - "code": "210114", - "value": "于洪区", - "label": "于洪区" - }, - { - "code": "210115", - "value": "辽中区", - "label": "辽中区" - }, - { - "code": "210123", - "value": "康平县", - "label": "康平县" - }, - { - "code": "210124", - "value": "法库县", - "label": "法库县" - }, - { - "code": "210181", - "value": "新民市", - "label": "新民市" - } - ] - }, - { - "code": "210200", - "value": "大连市", - "label": "大连市", - "children": [ - { - "code": "210202", - "value": "中山区", - "label": "中山区" - }, - { - "code": "210203", - "value": "西岗区", - "label": "西岗区" - }, - { - "code": "210204", - "value": "沙河口区", - "label": "沙河口区" - }, - { - "code": "210211", - "value": "甘井子区", - "label": "甘井子区" - }, - { - "code": "210212", - "value": "旅顺口区", - "label": "旅顺口区" - }, - { - "code": "210213", - "value": "金州区", - "label": "金州区" - }, - { - "code": "210214", - "value": "普兰店区", - "label": "普兰店区" - }, - { - "code": "210224", - "value": "长海县", - "label": "长海县" - }, - { - "code": "210281", - "value": "瓦房店市", - "label": "瓦房店市" - }, - { - "code": "210283", - "value": "庄河市", - "label": "庄河市" - } - ] - }, - { - "code": "210300", - "value": "鞍山市", - "label": "鞍山市", - "children": [ - { - "code": "210302", - "value": "铁东区", - "label": "铁东区" - }, - { - "code": "210303", - "value": "铁西区", - "label": "铁西区" - }, - { - "code": "210304", - "value": "立山区", - "label": "立山区" - }, - { - "code": "210311", - "value": "千山区", - "label": "千山区" - }, - { - "code": "210321", - "value": "台安县", - "label": "台安县" - }, - { - "code": "210323", - "value": "岫岩满族自治县", - "label": "岫岩满族自治县" - }, - { - "code": "210381", - "value": "海城市", - "label": "海城市" - } - ] - }, - { - "code": "210400", - "value": "抚顺市", - "label": "抚顺市", - "children": [ - { - "code": "210402", - "value": "新抚区", - "label": "新抚区" - }, - { - "code": "210403", - "value": "东洲区", - "label": "东洲区" - }, - { - "code": "210404", - "value": "望花区", - "label": "望花区" - }, - { - "code": "210411", - "value": "顺城区", - "label": "顺城区" - }, - { - "code": "210421", - "value": "抚顺县", - "label": "抚顺县" - }, - { - "code": "210422", - "value": "新宾满族自治县", - "label": "新宾满族自治县" - }, - { - "code": "210423", - "value": "清原满族自治县", - "label": "清原满族自治县" - } - ] - }, - { - "code": "210500", - "value": "本溪市", - "label": "本溪市", - "children": [ - { - "code": "210502", - "value": "平山区", - "label": "平山区" - }, - { - "code": "210503", - "value": "溪湖区", - "label": "溪湖区" - }, - { - "code": "210504", - "value": "明山区", - "label": "明山区" - }, - { - "code": "210505", - "value": "南芬区", - "label": "南芬区" - }, - { - "code": "210521", - "value": "本溪满族自治县", - "label": "本溪满族自治县" - }, - { - "code": "210522", - "value": "桓仁满族自治县", - "label": "桓仁满族自治县" - } - ] - }, - { - "code": "210600", - "value": "丹东市", - "label": "丹东市", - "children": [ - { - "code": "210602", - "value": "元宝区", - "label": "元宝区" - }, - { - "code": "210603", - "value": "振兴区", - "label": "振兴区" - }, - { - "code": "210604", - "value": "振安区", - "label": "振安区" - }, - { - "code": "210624", - "value": "宽甸满族自治县", - "label": "宽甸满族自治县" - }, - { - "code": "210681", - "value": "东港市", - "label": "东港市" - }, - { - "code": "210682", - "value": "凤城市", - "label": "凤城市" - } - ] - }, - { - "code": "210700", - "value": "锦州市", - "label": "锦州市", - "children": [ - { - "code": "210702", - "value": "古塔区", - "label": "古塔区" - }, - { - "code": "210703", - "value": "凌河区", - "label": "凌河区" - }, - { - "code": "210711", - "value": "太和区", - "label": "太和区" - }, - { - "code": "210726", - "value": "黑山县", - "label": "黑山县" - }, - { - "code": "210727", - "value": "义县", - "label": "义县" - }, - { - "code": "210781", - "value": "凌海市", - "label": "凌海市" - }, - { - "code": "210782", - "value": "北镇市", - "label": "北镇市" - } - ] - }, - { - "code": "210800", - "value": "营口市", - "label": "营口市", - "children": [ - { - "code": "210802", - "value": "站前区", - "label": "站前区" - }, - { - "code": "210803", - "value": "西市区", - "label": "西市区" - }, - { - "code": "210804", - "value": "鲅鱼圈区", - "label": "鲅鱼圈区" - }, - { - "code": "210811", - "value": "老边区", - "label": "老边区" - }, - { - "code": "210881", - "value": "盖州市", - "label": "盖州市" - }, - { - "code": "210882", - "value": "大石桥市", - "label": "大石桥市" - } - ] - }, - { - "code": "210900", - "value": "阜新市", - "label": "阜新市", - "children": [ - { - "code": "210902", - "value": "海州区", - "label": "海州区" - }, - { - "code": "210903", - "value": "新邱区", - "label": "新邱区" - }, - { - "code": "210904", - "value": "太平区", - "label": "太平区" - }, - { - "code": "210905", - "value": "清河门区", - "label": "清河门区" - }, - { - "code": "210911", - "value": "细河区", - "label": "细河区" - }, - { - "code": "210921", - "value": "阜新蒙古族自治县", - "label": "阜新蒙古族自治县" - }, - { - "code": "210922", - "value": "彰武县", - "label": "彰武县" - } - ] - }, - { - "code": "211000", - "value": "辽阳市", - "label": "辽阳市", - "children": [ - { - "code": "211002", - "value": "白塔区", - "label": "白塔区" - }, - { - "code": "211003", - "value": "文圣区", - "label": "文圣区" - }, - { - "code": "211004", - "value": "宏伟区", - "label": "宏伟区" - }, - { - "code": "211005", - "value": "弓长岭区", - "label": "弓长岭区" - }, - { - "code": "211011", - "value": "太子河区", - "label": "太子河区" - }, - { - "code": "211021", - "value": "辽阳县", - "label": "辽阳县" - }, - { - "code": "211081", - "value": "灯塔市", - "label": "灯塔市" - } - ] - }, - { - "code": "211100", - "value": "盘锦市", - "label": "盘锦市", - "children": [ - { - "code": "211102", - "value": "双台子区", - "label": "双台子区" - }, - { - "code": "211103", - "value": "兴隆台区", - "label": "兴隆台区" - }, - { - "code": "211104", - "value": "大洼区", - "label": "大洼区" - }, - { - "code": "211122", - "value": "盘山县", - "label": "盘山县" - } - ] - }, - { - "code": "211200", - "value": "铁岭市", - "label": "铁岭市", - "children": [ - { - "code": "211202", - "value": "银州区", - "label": "银州区" - }, - { - "code": "211204", - "value": "清河区", - "label": "清河区" - }, - { - "code": "211221", - "value": "铁岭县", - "label": "铁岭县" - }, - { - "code": "211223", - "value": "西丰县", - "label": "西丰县" - }, - { - "code": "211224", - "value": "昌图县", - "label": "昌图县" - }, - { - "code": "211281", - "value": "调兵山市", - "label": "调兵山市" - }, - { - "code": "211282", - "value": "开原市", - "label": "开原市" - } - ] - }, - { - "code": "211300", - "value": "朝阳市", - "label": "朝阳市", - "children": [ - { - "code": "211302", - "value": "双塔区", - "label": "双塔区" - }, - { - "code": "211303", - "value": "龙城区", - "label": "龙城区" - }, - { - "code": "211321", - "value": "朝阳县", - "label": "朝阳县" - }, - { - "code": "211322", - "value": "建平县", - "label": "建平县" - }, - { - "code": "211324", - "value": "喀喇沁左翼蒙古族自治县", - "label": "喀喇沁左翼蒙古族自治县" - }, - { - "code": "211381", - "value": "北票市", - "label": "北票市" - }, - { - "code": "211382", - "value": "凌源市", - "label": "凌源市" - } - ] - }, - { - "code": "211400", - "value": "葫芦岛市", - "label": "葫芦岛市", - "children": [ - { - "code": "211402", - "value": "连山区", - "label": "连山区" - }, - { - "code": "211403", - "value": "龙港区", - "label": "龙港区" - }, - { - "code": "211404", - "value": "南票区", - "label": "南票区" - }, - { - "code": "211421", - "value": "绥中县", - "label": "绥中县" - }, - { - "code": "211422", - "value": "建昌县", - "label": "建昌县" - }, - { - "code": "211481", - "value": "兴城市", - "label": "兴城市" - } - ] - } - ] - }, - { - "code": "220000", - "value": "吉林省", - "label": "吉林省", - "children": [ - { - "code": "220100", - "value": "长春市", - "label": "长春市", - "children": [ - { - "code": "220102", - "value": "南关区", - "label": "南关区" - }, - { - "code": "220103", - "value": "宽城区", - "label": "宽城区" - }, - { - "code": "220104", - "value": "朝阳区", - "label": "朝阳区" - }, - { - "code": "220105", - "value": "二道区", - "label": "二道区" - }, - { - "code": "220106", - "value": "绿园区", - "label": "绿园区" - }, - { - "code": "220112", - "value": "双阳区", - "label": "双阳区" - }, - { - "code": "220113", - "value": "九台区", - "label": "九台区" - }, - { - "code": "220122", - "value": "农安县", - "label": "农安县" - }, - { - "code": "220182", - "value": "榆树市", - "label": "榆树市" - }, - { - "code": "220183", - "value": "德惠市", - "label": "德惠市" - }, - { - "code": "220184", - "value": "公主岭市", - "label": "公主岭市" - } - ] - }, - { - "code": "220200", - "value": "吉林市", - "label": "吉林市", - "children": [ - { - "code": "220202", - "value": "昌邑区", - "label": "昌邑区" - }, - { - "code": "220203", - "value": "龙潭区", - "label": "龙潭区" - }, - { - "code": "220204", - "value": "船营区", - "label": "船营区" - }, - { - "code": "220211", - "value": "丰满区", - "label": "丰满区" - }, - { - "code": "220221", - "value": "永吉县", - "label": "永吉县" - }, - { - "code": "220281", - "value": "蛟河市", - "label": "蛟河市" - }, - { - "code": "220282", - "value": "桦甸市", - "label": "桦甸市" - }, - { - "code": "220283", - "value": "舒兰市", - "label": "舒兰市" - }, - { - "code": "220284", - "value": "磐石市", - "label": "磐石市" - } - ] - }, - { - "code": "220300", - "value": "四平市", - "label": "四平市", - "children": [ - { - "code": "220302", - "value": "铁西区", - "label": "铁西区" - }, - { - "code": "220303", - "value": "铁东区", - "label": "铁东区" - }, - { - "code": "220322", - "value": "梨树县", - "label": "梨树县" - }, - { - "code": "220323", - "value": "伊通满族自治县", - "label": "伊通满族自治县" - }, - { - "code": "220382", - "value": "双辽市", - "label": "双辽市" - } - ] - }, - { - "code": "220400", - "value": "辽源市", - "label": "辽源市", - "children": [ - { - "code": "220402", - "value": "龙山区", - "label": "龙山区" - }, - { - "code": "220403", - "value": "西安区", - "label": "西安区" - }, - { - "code": "220421", - "value": "东丰县", - "label": "东丰县" - }, - { - "code": "220422", - "value": "东辽县", - "label": "东辽县" - } - ] - }, - { - "code": "220500", - "value": "通化市", - "label": "通化市", - "children": [ - { - "code": "220502", - "value": "东昌区", - "label": "东昌区" - }, - { - "code": "220503", - "value": "二道江区", - "label": "二道江区" - }, - { - "code": "220521", - "value": "通化县", - "label": "通化县" - }, - { - "code": "220523", - "value": "辉南县", - "label": "辉南县" - }, - { - "code": "220524", - "value": "柳河县", - "label": "柳河县" - }, - { - "code": "220581", - "value": "梅河口市", - "label": "梅河口市" - }, - { - "code": "220582", - "value": "集安市", - "label": "集安市" - } - ] - }, - { - "code": "220600", - "value": "白山市", - "label": "白山市", - "children": [ - { - "code": "220602", - "value": "浑江区", - "label": "浑江区" - }, - { - "code": "220605", - "value": "江源区", - "label": "江源区" - }, - { - "code": "220621", - "value": "抚松县", - "label": "抚松县" - }, - { - "code": "220622", - "value": "靖宇县", - "label": "靖宇县" - }, - { - "code": "220623", - "value": "长白朝鲜族自治县", - "label": "长白朝鲜族自治县" - }, - { - "code": "220681", - "value": "临江市", - "label": "临江市" - } - ] - }, - { - "code": "220700", - "value": "松原市", - "label": "松原市", - "children": [ - { - "code": "220702", - "value": "宁江区", - "label": "宁江区" - }, - { - "code": "220721", - "value": "前郭尔罗斯蒙古族自治县", - "label": "前郭尔罗斯蒙古族自治县" - }, - { - "code": "220722", - "value": "长岭县", - "label": "长岭县" - }, - { - "code": "220723", - "value": "乾安县", - "label": "乾安县" - }, - { - "code": "220781", - "value": "扶余市", - "label": "扶余市" - } - ] - }, - { - "code": "220800", - "value": "白城市", - "label": "白城市", - "children": [ - { - "code": "220802", - "value": "洮北区", - "label": "洮北区" - }, - { - "code": "220821", - "value": "镇赉县", - "label": "镇赉县" - }, - { - "code": "220822", - "value": "通榆县", - "label": "通榆县" - }, - { - "code": "220881", - "value": "洮南市", - "label": "洮南市" - }, - { - "code": "220882", - "value": "大安市", - "label": "大安市" - } - ] - }, - { - "code": "222400", - "value": "延边朝鲜族自治州", - "label": "延边朝鲜族自治州", - "children": [ - { - "code": "222401", - "value": "延吉市", - "label": "延吉市" - }, - { - "code": "222402", - "value": "图们市", - "label": "图们市" - }, - { - "code": "222403", - "value": "敦化市", - "label": "敦化市" - }, - { - "code": "222404", - "value": "珲春市", - "label": "珲春市" - }, - { - "code": "222405", - "value": "龙井市", - "label": "龙井市" - }, - { - "code": "222406", - "value": "和龙市", - "label": "和龙市" - }, - { - "code": "222424", - "value": "汪清县", - "label": "汪清县" - }, - { - "code": "222426", - "value": "安图县", - "label": "安图县" - } - ] - } - ] - }, - { - "code": "230000", - "value": "黑龙江省", - "label": "黑龙江省", - "children": [ - { - "code": "230100", - "value": "哈尔滨市", - "label": "哈尔滨市", - "children": [ - { - "code": "230102", - "value": "道里区", - "label": "道里区" - }, - { - "code": "230103", - "value": "南岗区", - "label": "南岗区" - }, - { - "code": "230104", - "value": "道外区", - "label": "道外区" - }, - { - "code": "230108", - "value": "平房区", - "label": "平房区" - }, - { - "code": "230109", - "value": "松北区", - "label": "松北区" - }, - { - "code": "230110", - "value": "香坊区", - "label": "香坊区" - }, - { - "code": "230111", - "value": "呼兰区", - "label": "呼兰区" - }, - { - "code": "230112", - "value": "阿城区", - "label": "阿城区" - }, - { - "code": "230113", - "value": "双城区", - "label": "双城区" - }, - { - "code": "230123", - "value": "依兰县", - "label": "依兰县" - }, - { - "code": "230124", - "value": "方正县", - "label": "方正县" - }, - { - "code": "230125", - "value": "宾县", - "label": "宾县" - }, - { - "code": "230126", - "value": "巴彦县", - "label": "巴彦县" - }, - { - "code": "230127", - "value": "木兰县", - "label": "木兰县" - }, - { - "code": "230128", - "value": "通河县", - "label": "通河县" - }, - { - "code": "230129", - "value": "延寿县", - "label": "延寿县" - }, - { - "code": "230183", - "value": "尚志市", - "label": "尚志市" - }, - { - "code": "230184", - "value": "五常市", - "label": "五常市" - } - ] - }, - { - "code": "230200", - "value": "齐齐哈尔市", - "label": "齐齐哈尔市", - "children": [ - { - "code": "230202", - "value": "龙沙区", - "label": "龙沙区" - }, - { - "code": "230203", - "value": "建华区", - "label": "建华区" - }, - { - "code": "230204", - "value": "铁锋区", - "label": "铁锋区" - }, - { - "code": "230205", - "value": "昂昂溪区", - "label": "昂昂溪区" - }, - { - "code": "230206", - "value": "富拉尔基区", - "label": "富拉尔基区" - }, - { - "code": "230207", - "value": "碾子山区", - "label": "碾子山区" - }, - { - "code": "230208", - "value": "梅里斯达斡尔族区", - "label": "梅里斯达斡尔族区" - }, - { - "code": "230221", - "value": "龙江县", - "label": "龙江县" - }, - { - "code": "230223", - "value": "依安县", - "label": "依安县" - }, - { - "code": "230224", - "value": "泰来县", - "label": "泰来县" - }, - { - "code": "230225", - "value": "甘南县", - "label": "甘南县" - }, - { - "code": "230227", - "value": "富裕县", - "label": "富裕县" - }, - { - "code": "230229", - "value": "克山县", - "label": "克山县" - }, - { - "code": "230230", - "value": "克东县", - "label": "克东县" - }, - { - "code": "230231", - "value": "拜泉县", - "label": "拜泉县" - }, - { - "code": "230281", - "value": "讷河市", - "label": "讷河市" - } - ] - }, - { - "code": "230300", - "value": "鸡西市", - "label": "鸡西市", - "children": [ - { - "code": "230302", - "value": "鸡冠区", - "label": "鸡冠区" - }, - { - "code": "230303", - "value": "恒山区", - "label": "恒山区" - }, - { - "code": "230304", - "value": "滴道区", - "label": "滴道区" - }, - { - "code": "230305", - "value": "梨树区", - "label": "梨树区" - }, - { - "code": "230306", - "value": "城子河区", - "label": "城子河区" - }, - { - "code": "230307", - "value": "麻山区", - "label": "麻山区" - }, - { - "code": "230321", - "value": "鸡东县", - "label": "鸡东县" - }, - { - "code": "230381", - "value": "虎林市", - "label": "虎林市" - }, - { - "code": "230382", - "value": "密山市", - "label": "密山市" - } - ] - }, - { - "code": "230400", - "value": "鹤岗市", - "label": "鹤岗市", - "children": [ - { - "code": "230402", - "value": "向阳区", - "label": "向阳区" - }, - { - "code": "230403", - "value": "工农区", - "label": "工农区" - }, - { - "code": "230404", - "value": "南山区", - "label": "南山区" - }, - { - "code": "230405", - "value": "兴安区", - "label": "兴安区" - }, - { - "code": "230406", - "value": "东山区", - "label": "东山区" - }, - { - "code": "230407", - "value": "兴山区", - "label": "兴山区" - }, - { - "code": "230421", - "value": "萝北县", - "label": "萝北县" - }, - { - "code": "230422", - "value": "绥滨县", - "label": "绥滨县" - } - ] - }, - { - "code": "230500", - "value": "双鸭山市", - "label": "双鸭山市", - "children": [ - { - "code": "230502", - "value": "尖山区", - "label": "尖山区" - }, - { - "code": "230503", - "value": "岭东区", - "label": "岭东区" - }, - { - "code": "230505", - "value": "四方台区", - "label": "四方台区" - }, - { - "code": "230506", - "value": "宝山区", - "label": "宝山区" - }, - { - "code": "230521", - "value": "集贤县", - "label": "集贤县" - }, - { - "code": "230522", - "value": "友谊县", - "label": "友谊县" - }, - { - "code": "230523", - "value": "宝清县", - "label": "宝清县" - }, - { - "code": "230524", - "value": "饶河县", - "label": "饶河县" - } - ] - }, - { - "code": "230600", - "value": "大庆市", - "label": "大庆市", - "children": [ - { - "code": "230602", - "value": "萨尔图区", - "label": "萨尔图区" - }, - { - "code": "230603", - "value": "龙凤区", - "label": "龙凤区" - }, - { - "code": "230604", - "value": "让胡路区", - "label": "让胡路区" - }, - { - "code": "230605", - "value": "红岗区", - "label": "红岗区" - }, - { - "code": "230606", - "value": "大同区", - "label": "大同区" - }, - { - "code": "230621", - "value": "肇州县", - "label": "肇州县" - }, - { - "code": "230622", - "value": "肇源县", - "label": "肇源县" - }, - { - "code": "230623", - "value": "林甸县", - "label": "林甸县" - }, - { - "code": "230624", - "value": "杜尔伯特蒙古族自治县", - "label": "杜尔伯特蒙古族自治县" - } - ] - }, - { - "code": "230700", - "value": "伊春市", - "label": "伊春市", - "children": [ - { - "code": "230717", - "value": "伊美区", - "label": "伊美区" - }, - { - "code": "230718", - "value": "乌翠区", - "label": "乌翠区" - }, - { - "code": "230719", - "value": "友好区", - "label": "友好区" - }, - { - "code": "230722", - "value": "嘉荫县", - "label": "嘉荫县" - }, - { - "code": "230723", - "value": "汤旺县", - "label": "汤旺县" - }, - { - "code": "230724", - "value": "丰林县", - "label": "丰林县" - }, - { - "code": "230725", - "value": "大箐山县", - "label": "大箐山县" - }, - { - "code": "230726", - "value": "南岔县", - "label": "南岔县" - }, - { - "code": "230751", - "value": "金林区", - "label": "金林区" - }, - { - "code": "230781", - "value": "铁力市", - "label": "铁力市" - } - ] - }, - { - "code": "230800", - "value": "佳木斯市", - "label": "佳木斯市", - "children": [ - { - "code": "230803", - "value": "向阳区", - "label": "向阳区" - }, - { - "code": "230804", - "value": "前进区", - "label": "前进区" - }, - { - "code": "230805", - "value": "东风区", - "label": "东风区" - }, - { - "code": "230811", - "value": "郊区", - "label": "郊区" - }, - { - "code": "230822", - "value": "桦南县", - "label": "桦南县" - }, - { - "code": "230826", - "value": "桦川县", - "label": "桦川县" - }, - { - "code": "230828", - "value": "汤原县", - "label": "汤原县" - }, - { - "code": "230881", - "value": "同江市", - "label": "同江市" - }, - { - "code": "230882", - "value": "富锦市", - "label": "富锦市" - }, - { - "code": "230883", - "value": "抚远市", - "label": "抚远市" - } - ] - }, - { - "code": "230900", - "value": "七台河市", - "label": "七台河市", - "children": [ - { - "code": "230902", - "value": "新兴区", - "label": "新兴区" - }, - { - "code": "230903", - "value": "桃山区", - "label": "桃山区" - }, - { - "code": "230904", - "value": "茄子河区", - "label": "茄子河区" - }, - { - "code": "230921", - "value": "勃利县", - "label": "勃利县" - } - ] - }, - { - "code": "231000", - "value": "牡丹江市", - "label": "牡丹江市", - "children": [ - { - "code": "231002", - "value": "东安区", - "label": "东安区" - }, - { - "code": "231003", - "value": "阳明区", - "label": "阳明区" - }, - { - "code": "231004", - "value": "爱民区", - "label": "爱民区" - }, - { - "code": "231005", - "value": "西安区", - "label": "西安区" - }, - { - "code": "231025", - "value": "林口县", - "label": "林口县" - }, - { - "code": "231081", - "value": "绥芬河市", - "label": "绥芬河市" - }, - { - "code": "231083", - "value": "海林市", - "label": "海林市" - }, - { - "code": "231084", - "value": "宁安市", - "label": "宁安市" - }, - { - "code": "231085", - "value": "穆棱市", - "label": "穆棱市" - }, - { - "code": "231086", - "value": "东宁市", - "label": "东宁市" - } - ] - }, - { - "code": "231100", - "value": "黑河市", - "label": "黑河市", - "children": [ - { - "code": "231102", - "value": "爱辉区", - "label": "爱辉区" - }, - { - "code": "231123", - "value": "逊克县", - "label": "逊克县" - }, - { - "code": "231124", - "value": "孙吴县", - "label": "孙吴县" - }, - { - "code": "231181", - "value": "北安市", - "label": "北安市" - }, - { - "code": "231182", - "value": "五大连池市", - "label": "五大连池市" - }, - { - "code": "231183", - "value": "嫩江市", - "label": "嫩江市" - } - ] - }, - { - "code": "231200", - "value": "绥化市", - "label": "绥化市", - "children": [ - { - "code": "231202", - "value": "北林区", - "label": "北林区" - }, - { - "code": "231221", - "value": "望奎县", - "label": "望奎县" - }, - { - "code": "231222", - "value": "兰西县", - "label": "兰西县" - }, - { - "code": "231223", - "value": "青冈县", - "label": "青冈县" - }, - { - "code": "231224", - "value": "庆安县", - "label": "庆安县" - }, - { - "code": "231225", - "value": "明水县", - "label": "明水县" - }, - { - "code": "231226", - "value": "绥棱县", - "label": "绥棱县" - }, - { - "code": "231281", - "value": "安达市", - "label": "安达市" - }, - { - "code": "231282", - "value": "肇东市", - "label": "肇东市" - }, - { - "code": "231283", - "value": "海伦市", - "label": "海伦市" - } - ] - }, - { - "code": "232700", - "value": "大兴安岭地区", - "label": "大兴安岭地区", - "children": [ - { - "code": "232701", - "value": "漠河市", - "label": "漠河市" - }, - { - "code": "232721", - "value": "呼玛县", - "label": "呼玛县" - }, - { - "code": "232722", - "value": "塔河县", - "label": "塔河县" - } - ] - } - ] - }, - { - "code": "310000", - "label": "上海市", - "value": "上海市", - "children": [ - { - "code": "310100", - "label": "上海市", - "value": "上海市", - "children": [ - { "code": "310101", "label": "黄浦区", "value": "黄浦区" }, - { "code": "310104", "label": "徐汇区", "value": "徐汇区" }, - { "code": "310105", "label": "长宁区", "value": "长宁区" }, - { "code": "310106", "label": "静安区", "value": "静安区" }, - { "code": "310107", "label": "普陀区", "value": "普陀区" }, - { "code": "310109", "label": "虹口区", "value": "虹口区" }, - { "code": "310110", "label": "杨浦区", "value": "杨浦区" }, - { "code": "310112", "label": "浦东新区", "value": "浦东新区" }, - { "code": "310113", "label": "闵行区", "value": "闵行区" }, - { "code": "310114", "label": "宝山区", "value": "宝山区" }, - { "code": "310115", "label": "嘉定区", "value": "嘉定区" }, - { "code": "310116", "label": "南汇区", "value": "南汇区" }, - { "code": "310117", "label": "奉贤区", "value": "奉贤区" }, - { "code": "310118", "label": "青浦区", "value": "青浦区" }, - { "code": "310120", "label": "崇明区", "value": "崇明区" } - ] - } - ] - }, - - { - "code": "320000", - "value": "江苏省", - "label": "江苏省", - "children": [ - { - "code": "320100", - "value": "南京市", - "label": "南京市", - "children": [ - { - "code": "320102", - "value": "玄武区", - "label": "玄武区" - }, - { - "code": "320104", - "value": "秦淮区", - "label": "秦淮区" - }, - { - "code": "320105", - "value": "建邺区", - "label": "建邺区" - }, - { - "code": "320106", - "value": "鼓楼区", - "label": "鼓楼区" - }, - { - "code": "320111", - "value": "浦口区", - "label": "浦口区" - }, - { - "code": "320113", - "value": "栖霞区", - "label": "栖霞区" - }, - { - "code": "320114", - "value": "雨花台区", - "label": "雨花台区" - }, - { - "code": "320115", - "value": "江宁区", - "label": "江宁区" - }, - { - "code": "320116", - "value": "六合区", - "label": "六合区" - }, - { - "code": "320117", - "value": "溧水区", - "label": "溧水区" - }, - { - "code": "320118", - "value": "高淳区", - "label": "高淳区" - } - ] - }, - { - "code": "320200", - "value": "无锡市", - "label": "无锡市", - "children": [ - { - "code": "320205", - "value": "锡山区", - "label": "锡山区" - }, - { - "code": "320206", - "value": "惠山区", - "label": "惠山区" - }, - { - "code": "320211", - "value": "滨湖区", - "label": "滨湖区" - }, - { - "code": "320213", - "value": "梁溪区", - "label": "梁溪区" - }, - { - "code": "320214", - "value": "新吴区", - "label": "新吴区" - }, - { - "code": "320281", - "value": "江阴市", - "label": "江阴市" - }, - { - "code": "320282", - "value": "宜兴市", - "label": "宜兴市" - } - ] - }, - { - "code": "320300", - "value": "徐州市", - "label": "徐州市", - "children": [ - { - "code": "320302", - "value": "鼓楼区", - "label": "鼓楼区" - }, - { - "code": "320303", - "value": "云龙区", - "label": "云龙区" - }, - { - "code": "320305", - "value": "贾汪区", - "label": "贾汪区" - }, - { - "code": "320311", - "value": "泉山区", - "label": "泉山区" - }, - { - "code": "320312", - "value": "铜山区", - "label": "铜山区" - }, - { - "code": "320321", - "value": "丰县", - "label": "丰县" - }, - { - "code": "320322", - "value": "沛县", - "label": "沛县" - }, - { - "code": "320324", - "value": "睢宁县", - "label": "睢宁县" - }, - { - "code": "320381", - "value": "新沂市", - "label": "新沂市" - }, - { - "code": "320382", - "value": "邳州市", - "label": "邳州市" - } - ] - }, - { - "code": "320400", - "value": "常州市", - "label": "常州市", - "children": [ - { - "code": "320402", - "value": "天宁区", - "label": "天宁区" - }, - { - "code": "320404", - "value": "钟楼区", - "label": "钟楼区" - }, - { - "code": "320411", - "value": "新北区", - "label": "新北区" - }, - { - "code": "320412", - "value": "武进区", - "label": "武进区" - }, - { - "code": "320413", - "value": "金坛区", - "label": "金坛区" - }, - { - "code": "320481", - "value": "溧阳市", - "label": "溧阳市" - } - ] - }, - { - "code": "320500", - "value": "苏州市", - "label": "苏州市", - "children": [ - { - "code": "320505", - "value": "虎丘区", - "label": "虎丘区" - }, - { - "code": "320506", - "value": "吴中区", - "label": "吴中区" - }, - { - "code": "320507", - "value": "相城区", - "label": "相城区" - }, - { - "code": "320508", - "value": "姑苏区", - "label": "姑苏区" - }, - { - "code": "320509", - "value": "吴江区", - "label": "吴江区" - }, - { - "code": "320581", - "value": "常熟市", - "label": "常熟市" - }, - { - "code": "320582", - "value": "张家港市", - "label": "张家港市" - }, - { - "code": "320583", - "value": "昆山市", - "label": "昆山市" - }, - { - "code": "320585", - "value": "太仓市", - "label": "太仓市" - } - ] - }, - { - "code": "320600", - "value": "南通市", - "label": "南通市", - "children": [ - { - "code": "320602", - "value": "崇川区", - "label": "崇川区" - }, - { - "code": "320611", - "value": "港闸区", - "label": "港闸区" - }, - { - "code": "320612", - "value": "通州区", - "label": "通州区" - }, - { - "code": "320623", - "value": "如东县", - "label": "如东县" - }, - { - "code": "320681", - "value": "启东市", - "label": "启东市" - }, - { - "code": "320682", - "value": "如皋市", - "label": "如皋市" - }, - { - "code": "320684", - "value": "海门市", - "label": "海门市" - }, - { - "code": "320685", - "value": "海安市", - "label": "海安市" - } - ] - }, - { - "code": "320700", - "value": "连云港市", - "label": "连云港市", - "children": [ - { - "code": "320703", - "value": "连云区", - "label": "连云区" - }, - { - "code": "320706", - "value": "海州区", - "label": "海州区" - }, - { - "code": "320707", - "value": "赣榆区", - "label": "赣榆区" - }, - { - "code": "320722", - "value": "东海县", - "label": "东海县" - }, - { - "code": "320723", - "value": "灌云县", - "label": "灌云县" - }, - { - "code": "320724", - "value": "灌南县", - "label": "灌南县" - } - ] - }, - { - "code": "320800", - "value": "淮安市", - "label": "淮安市", - "children": [ - { - "code": "320803", - "value": "淮安区", - "label": "淮安区" - }, - { - "code": "320804", - "value": "淮阴区", - "label": "淮阴区" - }, - { - "code": "320812", - "value": "清江浦区", - "label": "清江浦区" - }, - { - "code": "320813", - "value": "洪泽区", - "label": "洪泽区" - }, - { - "code": "320826", - "value": "涟水县", - "label": "涟水县" - }, - { - "code": "320830", - "value": "盱眙县", - "label": "盱眙县" - }, - { - "code": "320831", - "value": "金湖县", - "label": "金湖县" - } - ] - }, - { - "code": "320900", - "value": "盐城市", - "label": "盐城市", - "children": [ - { - "code": "320902", - "value": "亭湖区", - "label": "亭湖区" - }, - { - "code": "320903", - "value": "盐都区", - "label": "盐都区" - }, - { - "code": "320904", - "value": "大丰区", - "label": "大丰区" - }, - { - "code": "320921", - "value": "响水县", - "label": "响水县" - }, - { - "code": "320922", - "value": "滨海县", - "label": "滨海县" - }, - { - "code": "320923", - "value": "阜宁县", - "label": "阜宁县" - }, - { - "code": "320924", - "value": "射阳县", - "label": "射阳县" - }, - { - "code": "320925", - "value": "建湖县", - "label": "建湖县" - }, - { - "code": "320981", - "value": "东台市", - "label": "东台市" - } - ] - }, - { - "code": "321000", - "value": "扬州市", - "label": "扬州市", - "children": [ - { - "code": "321002", - "value": "广陵区", - "label": "广陵区" - }, - { - "code": "321003", - "value": "邗江区", - "label": "邗江区" - }, - { - "code": "321012", - "value": "江都区", - "label": "江都区" - }, - { - "code": "321023", - "value": "宝应县", - "label": "宝应县" - }, - { - "code": "321081", - "value": "仪征市", - "label": "仪征市" - }, - { - "code": "321084", - "value": "高邮市", - "label": "高邮市" - } - ] - }, - { - "code": "321100", - "value": "镇江市", - "label": "镇江市", - "children": [ - { - "code": "321102", - "value": "京口区", - "label": "京口区" - }, - { - "code": "321111", - "value": "润州区", - "label": "润州区" - }, - { - "code": "321112", - "value": "丹徒区", - "label": "丹徒区" - }, - { - "code": "321181", - "value": "丹阳市", - "label": "丹阳市" - }, - { - "code": "321182", - "value": "扬中市", - "label": "扬中市" - }, - { - "code": "321183", - "value": "句容市", - "label": "句容市" - } - ] - }, - { - "code": "321200", - "value": "泰州市", - "label": "泰州市", - "children": [ - { - "code": "321202", - "value": "海陵区", - "label": "海陵区" - }, - { - "code": "321203", - "value": "高港区", - "label": "高港区" - }, - { - "code": "321204", - "value": "姜堰区", - "label": "姜堰区" - }, - { - "code": "321281", - "value": "兴化市", - "label": "兴化市" - }, - { - "code": "321282", - "value": "靖江市", - "label": "靖江市" - }, - { - "code": "321283", - "value": "泰兴市", - "label": "泰兴市" - } - ] - }, - { - "code": "321300", - "value": "宿迁市", - "label": "宿迁市", - "children": [ - { - "code": "321302", - "value": "宿城区", - "label": "宿城区" - }, - { - "code": "321311", - "value": "宿豫区", - "label": "宿豫区" - }, - { - "code": "321322", - "value": "沭阳县", - "label": "沭阳县" - }, - { - "code": "321323", - "value": "泗阳县", - "label": "泗阳县" - }, - { - "code": "321324", - "value": "泗洪县", - "label": "泗洪县" - } - ] - } - ] - }, - { - "code": "330000", - "value": "浙江省", - "label": "浙江省", - "children": [ - { - "code": "330100", - "value": "杭州市", - "label": "杭州市", - "children": [ - { - "code": "330102", - "value": "上城区", - "label": "上城区" - }, - { - "code": "330103", - "value": "下城区", - "label": "下城区" - }, - { - "code": "330104", - "value": "江干区", - "label": "江干区" - }, - { - "code": "330105", - "value": "拱墅区", - "label": "拱墅区" - }, - { - "code": "330106", - "value": "西湖区", - "label": "西湖区" - }, - { - "code": "330108", - "value": "滨江区", - "label": "滨江区" - }, - { - "code": "330109", - "value": "萧山区", - "label": "萧山区" - }, - { - "code": "330110", - "value": "余杭区", - "label": "余杭区" - }, - { - "code": "330111", - "value": "富阳区", - "label": "富阳区" - }, - { - "code": "330112", - "value": "临安区", - "label": "临安区" - }, - { - "code": "330122", - "value": "桐庐县", - "label": "桐庐县" - }, - { - "code": "330127", - "value": "淳安县", - "label": "淳安县" - }, - { - "code": "330182", - "value": "建德市", - "label": "建德市" - } - ] - }, - { - "code": "330200", - "value": "宁波市", - "label": "宁波市", - "children": [ - { - "code": "330203", - "value": "海曙区", - "label": "海曙区" - }, - { - "code": "330205", - "value": "江北区", - "label": "江北区" - }, - { - "code": "330206", - "value": "北仑区", - "label": "北仑区" - }, - { - "code": "330211", - "value": "镇海区", - "label": "镇海区" - }, - { - "code": "330212", - "value": "鄞州区", - "label": "鄞州区" - }, - { - "code": "330213", - "value": "奉化区", - "label": "奉化区" - }, - { - "code": "330225", - "value": "象山县", - "label": "象山县" - }, - { - "code": "330226", - "value": "宁海县", - "label": "宁海县" - }, - { - "code": "330281", - "value": "余姚市", - "label": "余姚市" - }, - { - "code": "330282", - "value": "慈溪市", - "label": "慈溪市" - } - ] - }, - { - "code": "330300", - "value": "温州市", - "label": "温州市", - "children": [ - { - "code": "330302", - "value": "鹿城区", - "label": "鹿城区" - }, - { - "code": "330303", - "value": "龙湾区", - "label": "龙湾区" - }, - { - "code": "330304", - "value": "瓯海区", - "label": "瓯海区" - }, - { - "code": "330305", - "value": "洞头区", - "label": "洞头区" - }, - { - "code": "330324", - "value": "永嘉县", - "label": "永嘉县" - }, - { - "code": "330326", - "value": "平阳县", - "label": "平阳县" - }, - { - "code": "330327", - "value": "苍南县", - "label": "苍南县" - }, - { - "code": "330328", - "value": "文成县", - "label": "文成县" - }, - { - "code": "330329", - "value": "泰顺县", - "label": "泰顺县" - }, - { - "code": "330381", - "value": "瑞安市", - "label": "瑞安市" - }, - { - "code": "330382", - "value": "乐清市", - "label": "乐清市" - }, - { - "code": "330383", - "value": "龙港市", - "label": "龙港市" - } - ] - }, - { - "code": "330400", - "value": "嘉兴市", - "label": "嘉兴市", - "children": [ - { - "code": "330402", - "value": "南湖区", - "label": "南湖区" - }, - { - "code": "330411", - "value": "秀洲区", - "label": "秀洲区" - }, - { - "code": "330421", - "value": "嘉善县", - "label": "嘉善县" - }, - { - "code": "330424", - "value": "海盐县", - "label": "海盐县" - }, - { - "code": "330481", - "value": "海宁市", - "label": "海宁市" - }, - { - "code": "330482", - "value": "平湖市", - "label": "平湖市" - }, - { - "code": "330483", - "value": "桐乡市", - "label": "桐乡市" - } - ] - }, - { - "code": "330500", - "value": "湖州市", - "label": "湖州市", - "children": [ - { - "code": "330502", - "value": "吴兴区", - "label": "吴兴区" - }, - { - "code": "330503", - "value": "南浔区", - "label": "南浔区" - }, - { - "code": "330521", - "value": "德清县", - "label": "德清县" - }, - { - "code": "330522", - "value": "长兴县", - "label": "长兴县" - }, - { - "code": "330523", - "value": "安吉县", - "label": "安吉县" - } - ] - }, - { - "code": "330600", - "value": "绍兴市", - "label": "绍兴市", - "children": [ - { - "code": "330602", - "value": "越城区", - "label": "越城区" - }, - { - "code": "330603", - "value": "柯桥区", - "label": "柯桥区" - }, - { - "code": "330604", - "value": "上虞区", - "label": "上虞区" - }, - { - "code": "330624", - "value": "新昌县", - "label": "新昌县" - }, - { - "code": "330681", - "value": "诸暨市", - "label": "诸暨市" - }, - { - "code": "330683", - "value": "嵊州市", - "label": "嵊州市" - } - ] - }, - { - "code": "330700", - "value": "金华市", - "label": "金华市", - "children": [ - { - "code": "330702", - "value": "婺城区", - "label": "婺城区" - }, - { - "code": "330703", - "value": "金东区", - "label": "金东区" - }, - { - "code": "330723", - "value": "武义县", - "label": "武义县" - }, - { - "code": "330726", - "value": "浦江县", - "label": "浦江县" - }, - { - "code": "330727", - "value": "磐安县", - "label": "磐安县" - }, - { - "code": "330781", - "value": "兰溪市", - "label": "兰溪市" - }, - { - "code": "330782", - "value": "义乌市", - "label": "义乌市" - }, - { - "code": "330783", - "value": "东阳市", - "label": "东阳市" - }, - { - "code": "330784", - "value": "永康市", - "label": "永康市" - } - ] - }, - { - "code": "330800", - "value": "衢州市", - "label": "衢州市", - "children": [ - { - "code": "330802", - "value": "柯城区", - "label": "柯城区" - }, - { - "code": "330803", - "value": "衢江区", - "label": "衢江区" - }, - { - "code": "330822", - "value": "常山县", - "label": "常山县" - }, - { - "code": "330824", - "value": "开化县", - "label": "开化县" - }, - { - "code": "330825", - "value": "龙游县", - "label": "龙游县" - }, - { - "code": "330881", - "value": "江山市", - "label": "江山市" - } - ] - }, - { - "code": "330900", - "value": "舟山市", - "label": "舟山市", - "children": [ - { - "code": "330902", - "value": "定海区", - "label": "定海区" - }, - { - "code": "330903", - "value": "普陀区", - "label": "普陀区" - }, - { - "code": "330921", - "value": "岱山县", - "label": "岱山县" - }, - { - "code": "330922", - "value": "嵊泗县", - "label": "嵊泗县" - } - ] - }, - { - "code": "331000", - "value": "台州市", - "label": "台州市", - "children": [ - { - "code": "331002", - "value": "椒江区", - "label": "椒江区" - }, - { - "code": "331003", - "value": "黄岩区", - "label": "黄岩区" - }, - { - "code": "331004", - "value": "路桥区", - "label": "路桥区" - }, - { - "code": "331022", - "value": "三门县", - "label": "三门县" - }, - { - "code": "331023", - "value": "天台县", - "label": "天台县" - }, - { - "code": "331024", - "value": "仙居县", - "label": "仙居县" - }, - { - "code": "331081", - "value": "温岭市", - "label": "温岭市" - }, - { - "code": "331082", - "value": "临海市", - "label": "临海市" - }, - { - "code": "331083", - "value": "玉环市", - "label": "玉环市" - } - ] - }, - { - "code": "331100", - "value": "丽水市", - "label": "丽水市", - "children": [ - { - "code": "331102", - "value": "莲都区", - "label": "莲都区" - }, - { - "code": "331121", - "value": "青田县", - "label": "青田县" - }, - { - "code": "331122", - "value": "缙云县", - "label": "缙云县" - }, - { - "code": "331123", - "value": "遂昌县", - "label": "遂昌县" - }, - { - "code": "331124", - "value": "松阳县", - "label": "松阳县" - }, - { - "code": "331125", - "value": "云和县", - "label": "云和县" - }, - { - "code": "331126", - "value": "庆元县", - "label": "庆元县" - }, - { - "code": "331127", - "value": "景宁畲族自治县", - "label": "景宁畲族自治县" - }, - { - "code": "331181", - "value": "龙泉市", - "label": "龙泉市" - } - ] - } - ] - }, - { - "code": "340000", - "value": "安徽省", - "label": "安徽省", - "children": [ - { - "code": "340100", - "value": "合肥市", - "label": "合肥市", - "children": [ - { - "code": "340102", - "value": "瑶海区", - "label": "瑶海区" - }, - { - "code": "340103", - "value": "庐阳区", - "label": "庐阳区" - }, - { - "code": "340104", - "value": "蜀山区", - "label": "蜀山区" - }, - { - "code": "340111", - "value": "包河区", - "label": "包河区" - }, - { - "code": "340121", - "value": "长丰县", - "label": "长丰县" - }, - { - "code": "340122", - "value": "肥东县", - "label": "肥东县" - }, - { - "code": "340123", - "value": "肥西县", - "label": "肥西县" - }, - { - "code": "340124", - "value": "庐江县", - "label": "庐江县" - }, - { - "code": "340181", - "value": "巢湖市", - "label": "巢湖市" - } - ] - }, - { - "code": "340200", - "value": "芜湖市", - "label": "芜湖市", - "children": [ - { - "code": "340202", - "value": "镜湖区", - "label": "镜湖区" - }, - { - "code": "340203", - "value": "弋江区", - "label": "弋江区" - }, - { - "code": "340207", - "value": "鸠江区", - "label": "鸠江区" - }, - { - "code": "340208", - "value": "三山区", - "label": "三山区" - }, - { - "code": "340221", - "value": "芜湖县", - "label": "芜湖县" - }, - { - "code": "340222", - "value": "繁昌县", - "label": "繁昌县" - }, - { - "code": "340223", - "value": "南陵县", - "label": "南陵县" - }, - { - "code": "340281", - "value": "无为市", - "label": "无为市" - } - ] - }, - { - "code": "340300", - "value": "蚌埠市", - "label": "蚌埠市", - "children": [ - { - "code": "340302", - "value": "龙子湖区", - "label": "龙子湖区" - }, - { - "code": "340303", - "value": "蚌山区", - "label": "蚌山区" - }, - { - "code": "340304", - "value": "禹会区", - "label": "禹会区" - }, - { - "code": "340311", - "value": "淮上区", - "label": "淮上区" - }, - { - "code": "340321", - "value": "怀远县", - "label": "怀远县" - }, - { - "code": "340322", - "value": "五河县", - "label": "五河县" - }, - { - "code": "340323", - "value": "固镇县", - "label": "固镇县" - } - ] - }, - { - "code": "340400", - "value": "淮南市", - "label": "淮南市", - "children": [ - { - "code": "340402", - "value": "大通区", - "label": "大通区" - }, - { - "code": "340403", - "value": "田家庵区", - "label": "田家庵区" - }, - { - "code": "340404", - "value": "谢家集区", - "label": "谢家集区" - }, - { - "code": "340405", - "value": "八公山区", - "label": "八公山区" - }, - { - "code": "340406", - "value": "潘集区", - "label": "潘集区" - }, - { - "code": "340421", - "value": "凤台县", - "label": "凤台县" - }, - { - "code": "340422", - "value": "寿县", - "label": "寿县" - } - ] - }, - { - "code": "340500", - "value": "马鞍山市", - "label": "马鞍山市", - "children": [ - { - "code": "340503", - "value": "花山区", - "label": "花山区" - }, - { - "code": "340504", - "value": "雨山区", - "label": "雨山区" - }, - { - "code": "340506", - "value": "博望区", - "label": "博望区" - }, - { - "code": "340521", - "value": "当涂县", - "label": "当涂县" - }, - { - "code": "340522", - "value": "含山县", - "label": "含山县" - }, - { - "code": "340523", - "value": "和县", - "label": "和县" - } - ] - }, - { - "code": "340600", - "value": "淮北市", - "label": "淮北市", - "children": [ - { - "code": "340602", - "value": "杜集区", - "label": "杜集区" - }, - { - "code": "340603", - "value": "相山区", - "label": "相山区" - }, - { - "code": "340604", - "value": "烈山区", - "label": "烈山区" - }, - { - "code": "340621", - "value": "濉溪县", - "label": "濉溪县" - } - ] - }, - { - "code": "340700", - "value": "铜陵市", - "label": "铜陵市", - "children": [ - { - "code": "340705", - "value": "铜官区", - "label": "铜官区" - }, - { - "code": "340706", - "value": "义安区", - "label": "义安区" - }, - { - "code": "340711", - "value": "郊区", - "label": "郊区" - }, - { - "code": "340722", - "value": "枞阳县", - "label": "枞阳县" - } - ] - }, - { - "code": "340800", - "value": "安庆市", - "label": "安庆市", - "children": [ - { - "code": "340802", - "value": "迎江区", - "label": "迎江区" - }, - { - "code": "340803", - "value": "大观区", - "label": "大观区" - }, - { - "code": "340811", - "value": "宜秀区", - "label": "宜秀区" - }, - { - "code": "340822", - "value": "怀宁县", - "label": "怀宁县" - }, - { - "code": "340825", - "value": "太湖县", - "label": "太湖县" - }, - { - "code": "340826", - "value": "宿松县", - "label": "宿松县" - }, - { - "code": "340827", - "value": "望江县", - "label": "望江县" - }, - { - "code": "340828", - "value": "岳西县", - "label": "岳西县" - }, - { - "code": "340881", - "value": "桐城市", - "label": "桐城市" - }, - { - "code": "340882", - "value": "潜山市", - "label": "潜山市" - } - ] - }, - { - "code": "341000", - "value": "黄山市", - "label": "黄山市", - "children": [ - { - "code": "341002", - "value": "屯溪区", - "label": "屯溪区" - }, - { - "code": "341003", - "value": "黄山区", - "label": "黄山区" - }, - { - "code": "341004", - "value": "徽州区", - "label": "徽州区" - }, - { - "code": "341021", - "value": "歙县", - "label": "歙县" - }, - { - "code": "341022", - "value": "休宁县", - "label": "休宁县" - }, - { - "code": "341023", - "value": "黟县", - "label": "黟县" - }, - { - "code": "341024", - "value": "祁门县", - "label": "祁门县" - } - ] - }, - { - "code": "341100", - "value": "滁州市", - "label": "滁州市", - "children": [ - { - "code": "341102", - "value": "琅琊区", - "label": "琅琊区" - }, - { - "code": "341103", - "value": "南谯区", - "label": "南谯区" - }, - { - "code": "341122", - "value": "来安县", - "label": "来安县" - }, - { - "code": "341124", - "value": "全椒县", - "label": "全椒县" - }, - { - "code": "341125", - "value": "定远县", - "label": "定远县" - }, - { - "code": "341126", - "value": "凤阳县", - "label": "凤阳县" - }, - { - "code": "341181", - "value": "天长市", - "label": "天长市" - }, - { - "code": "341182", - "value": "明光市", - "label": "明光市" - } - ] - }, - { - "code": "341200", - "value": "阜阳市", - "label": "阜阳市", - "children": [ - { - "code": "341202", - "value": "颍州区", - "label": "颍州区" - }, - { - "code": "341203", - "value": "颍东区", - "label": "颍东区" - }, - { - "code": "341204", - "value": "颍泉区", - "label": "颍泉区" - }, - { - "code": "341221", - "value": "临泉县", - "label": "临泉县" - }, - { - "code": "341222", - "value": "太和县", - "label": "太和县" - }, - { - "code": "341225", - "value": "阜南县", - "label": "阜南县" - }, - { - "code": "341226", - "value": "颍上县", - "label": "颍上县" - }, - { - "code": "341282", - "value": "界首市", - "label": "界首市" - } - ] - }, - { - "code": "341300", - "value": "宿州市", - "label": "宿州市", - "children": [ - { - "code": "341302", - "value": "埇桥区", - "label": "埇桥区" - }, - { - "code": "341321", - "value": "砀山县", - "label": "砀山县" - }, - { - "code": "341322", - "value": "萧县", - "label": "萧县" - }, - { - "code": "341323", - "value": "灵璧县", - "label": "灵璧县" - }, - { - "code": "341324", - "value": "泗县", - "label": "泗县" - } - ] - }, - { - "code": "341500", - "value": "六安市", - "label": "六安市", - "children": [ - { - "code": "341502", - "value": "金安区", - "label": "金安区" - }, - { - "code": "341503", - "value": "裕安区", - "label": "裕安区" - }, - { - "code": "341504", - "value": "叶集区", - "label": "叶集区" - }, - { - "code": "341522", - "value": "霍邱县", - "label": "霍邱县" - }, - { - "code": "341523", - "value": "舒城县", - "label": "舒城县" - }, - { - "code": "341524", - "value": "金寨县", - "label": "金寨县" - }, - { - "code": "341525", - "value": "霍山县", - "label": "霍山县" - } - ] - }, - { - "code": "341600", - "value": "亳州市", - "label": "亳州市", - "children": [ - { - "code": "341602", - "value": "谯城区", - "label": "谯城区" - }, - { - "code": "341621", - "value": "涡阳县", - "label": "涡阳县" - }, - { - "code": "341622", - "value": "蒙城县", - "label": "蒙城县" - }, - { - "code": "341623", - "value": "利辛县", - "label": "利辛县" - } - ] - }, - { - "code": "341700", - "value": "池州市", - "label": "池州市", - "children": [ - { - "code": "341702", - "value": "贵池区", - "label": "贵池区" - }, - { - "code": "341721", - "value": "东至县", - "label": "东至县" - }, - { - "code": "341722", - "value": "石台县", - "label": "石台县" - }, - { - "code": "341723", - "value": "青阳县", - "label": "青阳县" - } - ] - }, - { - "code": "341800", - "value": "宣城市", - "label": "宣城市", - "children": [ - { - "code": "341802", - "value": "宣州区", - "label": "宣州区" - }, - { - "code": "341821", - "value": "郎溪县", - "label": "郎溪县" - }, - { - "code": "341823", - "value": "泾县", - "label": "泾县" - }, - { - "code": "341824", - "value": "绩溪县", - "label": "绩溪县" - }, - { - "code": "341825", - "value": "旌德县", - "label": "旌德县" - }, - { - "code": "341881", - "value": "宁国市", - "label": "宁国市" - }, - { - "code": "341882", - "value": "广德市", - "label": "广德市" - } - ] - } - ] - }, - { - "code": "350000", - "value": "福建省", - "label": "福建省", - "children": [ - { - "code": "350100", - "value": "福州市", - "label": "福州市", - "children": [ - { - "code": "350102", - "value": "鼓楼区", - "label": "鼓楼区" - }, - { - "code": "350103", - "value": "台江区", - "label": "台江区" - }, - { - "code": "350104", - "value": "仓山区", - "label": "仓山区" - }, - { - "code": "350105", - "value": "马尾区", - "label": "马尾区" - }, - { - "code": "350111", - "value": "晋安区", - "label": "晋安区" - }, - { - "code": "350112", - "value": "长乐区", - "label": "长乐区" - }, - { - "code": "350121", - "value": "闽侯县", - "label": "闽侯县" - }, - { - "code": "350122", - "value": "连江县", - "label": "连江县" - }, - { - "code": "350123", - "value": "罗源县", - "label": "罗源县" - }, - { - "code": "350124", - "value": "闽清县", - "label": "闽清县" - }, - { - "code": "350125", - "value": "永泰县", - "label": "永泰县" - }, - { - "code": "350128", - "value": "平潭县", - "label": "平潭县" - }, - { - "code": "350181", - "value": "福清市", - "label": "福清市" - } - ] - }, - { - "code": "350200", - "value": "厦门市", - "label": "厦门市", - "children": [ - { - "code": "350203", - "value": "思明区", - "label": "思明区" - }, - { - "code": "350205", - "value": "海沧区", - "label": "海沧区" - }, - { - "code": "350206", - "value": "湖里区", - "label": "湖里区" - }, - { - "code": "350211", - "value": "集美区", - "label": "集美区" - }, - { - "code": "350212", - "value": "同安区", - "label": "同安区" - }, - { - "code": "350213", - "value": "翔安区", - "label": "翔安区" - } - ] - }, - { - "code": "350300", - "value": "莆田市", - "label": "莆田市", - "children": [ - { - "code": "350302", - "value": "城厢区", - "label": "城厢区" - }, - { - "code": "350303", - "value": "涵江区", - "label": "涵江区" - }, - { - "code": "350304", - "value": "荔城区", - "label": "荔城区" - }, - { - "code": "350305", - "value": "秀屿区", - "label": "秀屿区" - }, - { - "code": "350322", - "value": "仙游县", - "label": "仙游县" - } - ] - }, - { - "code": "350400", - "value": "三明市", - "label": "三明市", - "children": [ - { - "code": "350402", - "value": "梅列区", - "label": "梅列区" - }, - { - "code": "350403", - "value": "三元区", - "label": "三元区" - }, - { - "code": "350421", - "value": "明溪县", - "label": "明溪县" - }, - { - "code": "350423", - "value": "清流县", - "label": "清流县" - }, - { - "code": "350424", - "value": "宁化县", - "label": "宁化县" - }, - { - "code": "350425", - "value": "大田县", - "label": "大田县" - }, - { - "code": "350426", - "value": "尤溪县", - "label": "尤溪县" - }, - { - "code": "350427", - "value": "沙县", - "label": "沙县" - }, - { - "code": "350428", - "value": "将乐县", - "label": "将乐县" - }, - { - "code": "350429", - "value": "泰宁县", - "label": "泰宁县" - }, - { - "code": "350430", - "value": "建宁县", - "label": "建宁县" - }, - { - "code": "350481", - "value": "永安市", - "label": "永安市" - } - ] - }, - { - "code": "350500", - "value": "泉州市", - "label": "泉州市", - "children": [ - { - "code": "350502", - "value": "鲤城区", - "label": "鲤城区" - }, - { - "code": "350503", - "value": "丰泽区", - "label": "丰泽区" - }, - { - "code": "350504", - "value": "洛江区", - "label": "洛江区" - }, - { - "code": "350505", - "value": "泉港区", - "label": "泉港区" - }, - { - "code": "350521", - "value": "惠安县", - "label": "惠安县" - }, - { - "code": "350524", - "value": "安溪县", - "label": "安溪县" - }, - { - "code": "350525", - "value": "永春县", - "label": "永春县" - }, - { - "code": "350526", - "value": "德化县", - "label": "德化县" - }, - { - "code": "350527", - "value": "金门县", - "label": "金门县" - }, - { - "code": "350581", - "value": "石狮市", - "label": "石狮市" - }, - { - "code": "350582", - "value": "晋江市", - "label": "晋江市" - }, - { - "code": "350583", - "value": "南安市", - "label": "南安市" - } - ] - }, - { - "code": "350600", - "value": "漳州市", - "label": "漳州市", - "children": [ - { - "code": "350602", - "value": "芗城区", - "label": "芗城区" - }, - { - "code": "350603", - "value": "龙文区", - "label": "龙文区" - }, - { - "code": "350622", - "value": "云霄县", - "label": "云霄县" - }, - { - "code": "350623", - "value": "漳浦县", - "label": "漳浦县" - }, - { - "code": "350624", - "value": "诏安县", - "label": "诏安县" - }, - { - "code": "350625", - "value": "长泰县", - "label": "长泰县" - }, - { - "code": "350626", - "value": "东山县", - "label": "东山县" - }, - { - "code": "350627", - "value": "南靖县", - "label": "南靖县" - }, - { - "code": "350628", - "value": "平和县", - "label": "平和县" - }, - { - "code": "350629", - "value": "华安县", - "label": "华安县" - }, - { - "code": "350681", - "value": "龙海市", - "label": "龙海市" - } - ] - }, - { - "code": "350700", - "value": "南平市", - "label": "南平市", - "children": [ - { - "code": "350702", - "value": "延平区", - "label": "延平区" - }, - { - "code": "350703", - "value": "建阳区", - "label": "建阳区" - }, - { - "code": "350721", - "value": "顺昌县", - "label": "顺昌县" - }, - { - "code": "350722", - "value": "浦城县", - "label": "浦城县" - }, - { - "code": "350723", - "value": "光泽县", - "label": "光泽县" - }, - { - "code": "350724", - "value": "松溪县", - "label": "松溪县" - }, - { - "code": "350725", - "value": "政和县", - "label": "政和县" - }, - { - "code": "350781", - "value": "邵武市", - "label": "邵武市" - }, - { - "code": "350782", - "value": "武夷山市", - "label": "武夷山市" - }, - { - "code": "350783", - "value": "建瓯市", - "label": "建瓯市" - } - ] - }, - { - "code": "350800", - "value": "龙岩市", - "label": "龙岩市", - "children": [ - { - "code": "350802", - "value": "新罗区", - "label": "新罗区" - }, - { - "code": "350803", - "value": "永定区", - "label": "永定区" - }, - { - "code": "350821", - "value": "长汀县", - "label": "长汀县" - }, - { - "code": "350823", - "value": "上杭县", - "label": "上杭县" - }, - { - "code": "350824", - "value": "武平县", - "label": "武平县" - }, - { - "code": "350825", - "value": "连城县", - "label": "连城县" - }, - { - "code": "350881", - "value": "漳平市", - "label": "漳平市" - } - ] - }, - { - "code": "350900", - "value": "宁德市", - "label": "宁德市", - "children": [ - { - "code": "350902", - "value": "蕉城区", - "label": "蕉城区" - }, - { - "code": "350921", - "value": "霞浦县", - "label": "霞浦县" - }, - { - "code": "350922", - "value": "古田县", - "label": "古田县" - }, - { - "code": "350923", - "value": "屏南县", - "label": "屏南县" - }, - { - "code": "350924", - "value": "寿宁县", - "label": "寿宁县" - }, - { - "code": "350925", - "value": "周宁县", - "label": "周宁县" - }, - { - "code": "350926", - "value": "柘荣县", - "label": "柘荣县" - }, - { - "code": "350981", - "value": "福安市", - "label": "福安市" - }, - { - "code": "350982", - "value": "福鼎市", - "label": "福鼎市" - } - ] - } - ] - }, - { - "code": "360000", - "value": "江西省", - "label": "江西省", - "children": [ - { - "code": "360100", - "value": "南昌市", - "label": "南昌市", - "children": [ - { - "code": "360102", - "value": "东湖区", - "label": "东湖区" - }, - { - "code": "360103", - "value": "西湖区", - "label": "西湖区" - }, - { - "code": "360104", - "value": "青云谱区", - "label": "青云谱区" - }, - { - "code": "360111", - "value": "青山湖区", - "label": "青山湖区" - }, - { - "code": "360112", - "value": "新建区", - "label": "新建区" - }, - { - "code": "360113", - "value": "红谷滩区", - "label": "红谷滩区" - }, - { - "code": "360121", - "value": "南昌县", - "label": "南昌县" - }, - { - "code": "360123", - "value": "安义县", - "label": "安义县" - }, - { - "code": "360124", - "value": "进贤县", - "label": "进贤县" - } - ] - }, - { - "code": "360200", - "value": "景德镇市", - "label": "景德镇市", - "children": [ - { - "code": "360202", - "value": "昌江区", - "label": "昌江区" - }, - { - "code": "360203", - "value": "珠山区", - "label": "珠山区" - }, - { - "code": "360222", - "value": "浮梁县", - "label": "浮梁县" - }, - { - "code": "360281", - "value": "乐平市", - "label": "乐平市" - } - ] - }, - { - "code": "360300", - "value": "萍乡市", - "label": "萍乡市", - "children": [ - { - "code": "360302", - "value": "安源区", - "label": "安源区" - }, - { - "code": "360313", - "value": "湘东区", - "label": "湘东区" - }, - { - "code": "360321", - "value": "莲花县", - "label": "莲花县" - }, - { - "code": "360322", - "value": "上栗县", - "label": "上栗县" - }, - { - "code": "360323", - "value": "芦溪县", - "label": "芦溪县" - } - ] - }, - { - "code": "360400", - "value": "九江市", - "label": "九江市", - "children": [ - { - "code": "360402", - "value": "濂溪区", - "label": "濂溪区" - }, - { - "code": "360403", - "value": "浔阳区", - "label": "浔阳区" - }, - { - "code": "360404", - "value": "柴桑区", - "label": "柴桑区" - }, - { - "code": "360423", - "value": "武宁县", - "label": "武宁县" - }, - { - "code": "360424", - "value": "修水县", - "label": "修水县" - }, - { - "code": "360425", - "value": "永修县", - "label": "永修县" - }, - { - "code": "360426", - "value": "德安县", - "label": "德安县" - }, - { - "code": "360428", - "value": "都昌县", - "label": "都昌县" - }, - { - "code": "360429", - "value": "湖口县", - "label": "湖口县" - }, - { - "code": "360430", - "value": "彭泽县", - "label": "彭泽县" - }, - { - "code": "360481", - "value": "瑞昌市", - "label": "瑞昌市" - }, - { - "code": "360482", - "value": "共青城市", - "label": "共青城市" - }, - { - "code": "360483", - "value": "庐山市", - "label": "庐山市" - } - ] - }, - { - "code": "360500", - "value": "新余市", - "label": "新余市", - "children": [ - { - "code": "360502", - "value": "渝水区", - "label": "渝水区" - }, - { - "code": "360521", - "value": "分宜县", - "label": "分宜县" - } - ] - }, - { - "code": "360600", - "value": "鹰潭市", - "label": "鹰潭市", - "children": [ - { - "code": "360602", - "value": "月湖区", - "label": "月湖区" - }, - { - "code": "360603", - "value": "余江区", - "label": "余江区" - }, - { - "code": "360681", - "value": "贵溪市", - "label": "贵溪市" - } - ] - }, - { - "code": "360700", - "value": "赣州市", - "label": "赣州市", - "children": [ - { - "code": "360702", - "value": "章贡区", - "label": "章贡区" - }, - { - "code": "360703", - "value": "南康区", - "label": "南康区" - }, - { - "code": "360704", - "value": "赣县区", - "label": "赣县区" - }, - { - "code": "360722", - "value": "信丰县", - "label": "信丰县" - }, - { - "code": "360723", - "value": "大余县", - "label": "大余县" - }, - { - "code": "360724", - "value": "上犹县", - "label": "上犹县" - }, - { - "code": "360725", - "value": "崇义县", - "label": "崇义县" - }, - { - "code": "360726", - "value": "安远县", - "label": "安远县" - }, - { - "code": "360728", - "value": "定南县", - "label": "定南县" - }, - { - "code": "360729", - "value": "全南县", - "label": "全南县" - }, - { - "code": "360730", - "value": "宁都县", - "label": "宁都县" - }, - { - "code": "360731", - "value": "于都县", - "label": "于都县" - }, - { - "code": "360732", - "value": "兴国县", - "label": "兴国县" - }, - { - "code": "360733", - "value": "会昌县", - "label": "会昌县" - }, - { - "code": "360734", - "value": "寻乌县", - "label": "寻乌县" - }, - { - "code": "360735", - "value": "石城县", - "label": "石城县" - }, - { - "code": "360781", - "value": "瑞金市", - "label": "瑞金市" - }, - { - "code": "360783", - "value": "龙南市", - "label": "龙南市" - } - ] - }, - { - "code": "360800", - "value": "吉安市", - "label": "吉安市", - "children": [ - { - "code": "360802", - "value": "吉州区", - "label": "吉州区" - }, - { - "code": "360803", - "value": "青原区", - "label": "青原区" - }, - { - "code": "360821", - "value": "吉安县", - "label": "吉安县" - }, - { - "code": "360822", - "value": "吉水县", - "label": "吉水县" - }, - { - "code": "360823", - "value": "峡江县", - "label": "峡江县" - }, - { - "code": "360824", - "value": "新干县", - "label": "新干县" - }, - { - "code": "360825", - "value": "永丰县", - "label": "永丰县" - }, - { - "code": "360826", - "value": "泰和县", - "label": "泰和县" - }, - { - "code": "360827", - "value": "遂川县", - "label": "遂川县" - }, - { - "code": "360828", - "value": "万安县", - "label": "万安县" - }, - { - "code": "360829", - "value": "安福县", - "label": "安福县" - }, - { - "code": "360830", - "value": "永新县", - "label": "永新县" - }, - { - "code": "360881", - "value": "井冈山市", - "label": "井冈山市" - } - ] - }, - { - "code": "360900", - "value": "宜春市", - "label": "宜春市", - "children": [ - { - "code": "360902", - "value": "袁州区", - "label": "袁州区" - }, - { - "code": "360921", - "value": "奉新县", - "label": "奉新县" - }, - { - "code": "360922", - "value": "万载县", - "label": "万载县" - }, - { - "code": "360923", - "value": "上高县", - "label": "上高县" - }, - { - "code": "360924", - "value": "宜丰县", - "label": "宜丰县" - }, - { - "code": "360925", - "value": "靖安县", - "label": "靖安县" - }, - { - "code": "360926", - "value": "铜鼓县", - "label": "铜鼓县" - }, - { - "code": "360981", - "value": "丰城市", - "label": "丰城市" - }, - { - "code": "360982", - "value": "樟树市", - "label": "樟树市" - }, - { - "code": "360983", - "value": "高安市", - "label": "高安市" - } - ] - }, - { - "code": "361000", - "value": "抚州市", - "label": "抚州市", - "children": [ - { - "code": "361002", - "value": "临川区", - "label": "临川区" - }, - { - "code": "361003", - "value": "东乡区", - "label": "东乡区" - }, - { - "code": "361021", - "value": "南城县", - "label": "南城县" - }, - { - "code": "361022", - "value": "黎川县", - "label": "黎川县" - }, - { - "code": "361023", - "value": "南丰县", - "label": "南丰县" - }, - { - "code": "361024", - "value": "崇仁县", - "label": "崇仁县" - }, - { - "code": "361025", - "value": "乐安县", - "label": "乐安县" - }, - { - "code": "361026", - "value": "宜黄县", - "label": "宜黄县" - }, - { - "code": "361027", - "value": "金溪县", - "label": "金溪县" - }, - { - "code": "361028", - "value": "资溪县", - "label": "资溪县" - }, - { - "code": "361030", - "value": "广昌县", - "label": "广昌县" - } - ] - }, - { - "code": "361100", - "value": "上饶市", - "label": "上饶市", - "children": [ - { - "code": "361102", - "value": "信州区", - "label": "信州区" - }, - { - "code": "361103", - "value": "广丰区", - "label": "广丰区" - }, - { - "code": "361104", - "value": "广信区", - "label": "广信区" - }, - { - "code": "361123", - "value": "玉山县", - "label": "玉山县" - }, - { - "code": "361124", - "value": "铅山县", - "label": "铅山县" - }, - { - "code": "361125", - "value": "横峰县", - "label": "横峰县" - }, - { - "code": "361126", - "value": "弋阳县", - "label": "弋阳县" - }, - { - "code": "361127", - "value": "余干县", - "label": "余干县" - }, - { - "code": "361128", - "value": "鄱阳县", - "label": "鄱阳县" - }, - { - "code": "361129", - "value": "万年县", - "label": "万年县" - }, - { - "code": "361130", - "value": "婺源县", - "label": "婺源县" - }, - { - "code": "361181", - "value": "德兴市", - "label": "德兴市" - } - ] - } - ] - }, - { - "code": "370000", - "value": "山东省", - "label": "山东省", - "children": [ - { - "code": "370100", - "value": "济南市", - "label": "济南市", - "children": [ - { - "code": "370102", - "value": "历下区", - "label": "历下区" - }, - { - "code": "370103", - "value": "市中区", - "label": "市中区" - }, - { - "code": "370104", - "value": "槐荫区", - "label": "槐荫区" - }, - { - "code": "370105", - "value": "天桥区", - "label": "天桥区" - }, - { - "code": "370112", - "value": "历城区", - "label": "历城区" - }, - { - "code": "370113", - "value": "长清区", - "label": "长清区" - }, - { - "code": "370114", - "value": "章丘区", - "label": "章丘区" - }, - { - "code": "370115", - "value": "济阳区", - "label": "济阳区" - }, - { - "code": "370116", - "value": "莱芜区", - "label": "莱芜区" - }, - { - "code": "370117", - "value": "钢城区", - "label": "钢城区" - }, - { - "code": "370124", - "value": "平阴县", - "label": "平阴县" - }, - { - "code": "370126", - "value": "商河县", - "label": "商河县" - } - ] - }, - { - "code": "370200", - "value": "青岛市", - "label": "青岛市", - "children": [ - { - "code": "370202", - "value": "市南区", - "label": "市南区" - }, - { - "code": "370203", - "value": "市北区", - "label": "市北区" - }, - { - "code": "370211", - "value": "黄岛区", - "label": "黄岛区" - }, - { - "code": "370212", - "value": "崂山区", - "label": "崂山区" - }, - { - "code": "370213", - "value": "李沧区", - "label": "李沧区" - }, - { - "code": "370214", - "value": "城阳区", - "label": "城阳区" - }, - { - "code": "370215", - "value": "即墨区", - "label": "即墨区" - }, - { - "code": "370281", - "value": "胶州市", - "label": "胶州市" - }, - { - "code": "370283", - "value": "平度市", - "label": "平度市" - }, - { - "code": "370285", - "value": "莱西市", - "label": "莱西市" - } - ] - }, - { - "code": "370300", - "value": "淄博市", - "label": "淄博市", - "children": [ - { - "code": "370302", - "value": "淄川区", - "label": "淄川区" - }, - { - "code": "370303", - "value": "张店区", - "label": "张店区" - }, - { - "code": "370304", - "value": "博山区", - "label": "博山区" - }, - { - "code": "370305", - "value": "临淄区", - "label": "临淄区" - }, - { - "code": "370306", - "value": "周村区", - "label": "周村区" - }, - { - "code": "370321", - "value": "桓台县", - "label": "桓台县" - }, - { - "code": "370322", - "value": "高青县", - "label": "高青县" - }, - { - "code": "370323", - "value": "沂源县", - "label": "沂源县" - } - ] - }, - { - "code": "370400", - "value": "枣庄市", - "label": "枣庄市", - "children": [ - { - "code": "370402", - "value": "市中区", - "label": "市中区" - }, - { - "code": "370403", - "value": "薛城区", - "label": "薛城区" - }, - { - "code": "370404", - "value": "峄城区", - "label": "峄城区" - }, - { - "code": "370405", - "value": "台儿庄区", - "label": "台儿庄区" - }, - { - "code": "370406", - "value": "山亭区", - "label": "山亭区" - }, - { - "code": "370481", - "value": "滕州市", - "label": "滕州市" - } - ] - }, - { - "code": "370500", - "value": "东营市", - "label": "东营市", - "children": [ - { - "code": "370502", - "value": "东营区", - "label": "东营区" - }, - { - "code": "370503", - "value": "河口区", - "label": "河口区" - }, - { - "code": "370505", - "value": "垦利区", - "label": "垦利区" - }, - { - "code": "370522", - "value": "利津县", - "label": "利津县" - }, - { - "code": "370523", - "value": "广饶县", - "label": "广饶县" - } - ] - }, - { - "code": "370600", - "value": "烟台市", - "label": "烟台市", - "children": [ - { - "code": "370602", - "value": "芝罘区", - "label": "芝罘区" - }, - { - "code": "370611", - "value": "福山区", - "label": "福山区" - }, - { - "code": "370612", - "value": "牟平区", - "label": "牟平区" - }, - { - "code": "370613", - "value": "莱山区", - "label": "莱山区" - }, - { - "code": "370614", - "value": "蓬莱区", - "label": "蓬莱区" - }, - { - "code": "370681", - "value": "龙口市", - "label": "龙口市" - }, - { - "code": "370682", - "value": "莱阳市", - "label": "莱阳市" - }, - { - "code": "370683", - "value": "莱州市", - "label": "莱州市" - }, - { - "code": "370685", - "value": "招远市", - "label": "招远市" - }, - { - "code": "370686", - "value": "栖霞市", - "label": "栖霞市" - }, - { - "code": "370687", - "value": "海阳市", - "label": "海阳市" - } - ] - }, - { - "code": "370700", - "value": "潍坊市", - "label": "潍坊市", - "children": [ - { - "code": "370702", - "value": "潍城区", - "label": "潍城区" - }, - { - "code": "370703", - "value": "寒亭区", - "label": "寒亭区" - }, - { - "code": "370704", - "value": "坊子区", - "label": "坊子区" - }, - { - "code": "370705", - "value": "奎文区", - "label": "奎文区" - }, - { - "code": "370724", - "value": "临朐县", - "label": "临朐县" - }, - { - "code": "370725", - "value": "昌乐县", - "label": "昌乐县" - }, - { - "code": "370781", - "value": "青州市", - "label": "青州市" - }, - { - "code": "370782", - "value": "诸城市", - "label": "诸城市" - }, - { - "code": "370783", - "value": "寿光市", - "label": "寿光市" - }, - { - "code": "370784", - "value": "安丘市", - "label": "安丘市" - }, - { - "code": "370785", - "value": "高密市", - "label": "高密市" - }, - { - "code": "370786", - "value": "昌邑市", - "label": "昌邑市" - } - ] - }, - { - "code": "370800", - "value": "济宁市", - "label": "济宁市", - "children": [ - { - "code": "370811", - "value": "任城区", - "label": "任城区" - }, - { - "code": "370812", - "value": "兖州区", - "label": "兖州区" - }, - { - "code": "370826", - "value": "微山县", - "label": "微山县" - }, - { - "code": "370827", - "value": "鱼台县", - "label": "鱼台县" - }, - { - "code": "370828", - "value": "金乡县", - "label": "金乡县" - }, - { - "code": "370829", - "value": "嘉祥县", - "label": "嘉祥县" - }, - { - "code": "370830", - "value": "汶上县", - "label": "汶上县" - }, - { - "code": "370831", - "value": "泗水县", - "label": "泗水县" - }, - { - "code": "370832", - "value": "梁山县", - "label": "梁山县" - }, - { - "code": "370881", - "value": "曲阜市", - "label": "曲阜市" - }, - { - "code": "370883", - "value": "邹城市", - "label": "邹城市" - } - ] - }, - { - "code": "370900", - "value": "泰安市", - "label": "泰安市", - "children": [ - { - "code": "370902", - "value": "泰山区", - "label": "泰山区" - }, - { - "code": "370911", - "value": "岱岳区", - "label": "岱岳区" - }, - { - "code": "370921", - "value": "宁阳县", - "label": "宁阳县" - }, - { - "code": "370923", - "value": "东平县", - "label": "东平县" - }, - { - "code": "370982", - "value": "新泰市", - "label": "新泰市" - }, - { - "code": "370983", - "value": "肥城市", - "label": "肥城市" - } - ] - }, - { - "code": "371000", - "value": "威海市", - "label": "威海市", - "children": [ - { - "code": "371002", - "value": "环翠区", - "label": "环翠区" - }, - { - "code": "371003", - "value": "文登区", - "label": "文登区" - }, - { - "code": "371082", - "value": "荣成市", - "label": "荣成市" - }, - { - "code": "371083", - "value": "乳山市", - "label": "乳山市" - } - ] - }, - { - "code": "371100", - "value": "日照市", - "label": "日照市", - "children": [ - { - "code": "371102", - "value": "东港区", - "label": "东港区" - }, - { - "code": "371103", - "value": "岚山区", - "label": "岚山区" - }, - { - "code": "371121", - "value": "五莲县", - "label": "五莲县" - }, - { - "code": "371122", - "value": "莒县", - "label": "莒县" - } - ] - }, - { - "code": "371300", - "value": "临沂市", - "label": "临沂市", - "children": [ - { - "code": "371302", - "value": "兰山区", - "label": "兰山区" - }, - { - "code": "371311", - "value": "罗庄区", - "label": "罗庄区" - }, - { - "code": "371312", - "value": "河东区", - "label": "河东区" - }, - { - "code": "371321", - "value": "沂南县", - "label": "沂南县" - }, - { - "code": "371322", - "value": "郯城县", - "label": "郯城县" - }, - { - "code": "371323", - "value": "沂水县", - "label": "沂水县" - }, - { - "code": "371324", - "value": "兰陵县", - "label": "兰陵县" - }, - { - "code": "371325", - "value": "费县", - "label": "费县" - }, - { - "code": "371326", - "value": "平邑县", - "label": "平邑县" - }, - { - "code": "371327", - "value": "莒南县", - "label": "莒南县" - }, - { - "code": "371328", - "value": "蒙阴县", - "label": "蒙阴县" - }, - { - "code": "371329", - "value": "临沭县", - "label": "临沭县" - } - ] - }, - { - "code": "371400", - "value": "德州市", - "label": "德州市", - "children": [ - { - "code": "371402", - "value": "德城区", - "label": "德城区" - }, - { - "code": "371403", - "value": "陵城区", - "label": "陵城区" - }, - { - "code": "371422", - "value": "宁津县", - "label": "宁津县" - }, - { - "code": "371423", - "value": "庆云县", - "label": "庆云县" - }, - { - "code": "371424", - "value": "临邑县", - "label": "临邑县" - }, - { - "code": "371425", - "value": "齐河县", - "label": "齐河县" - }, - { - "code": "371426", - "value": "平原县", - "label": "平原县" - }, - { - "code": "371427", - "value": "夏津县", - "label": "夏津县" - }, - { - "code": "371428", - "value": "武城县", - "label": "武城县" - }, - { - "code": "371481", - "value": "乐陵市", - "label": "乐陵市" - }, - { - "code": "371482", - "value": "禹城市", - "label": "禹城市" - } - ] - }, - { - "code": "371500", - "value": "聊城市", - "label": "聊城市", - "children": [ - { - "code": "371502", - "value": "东昌府区", - "label": "东昌府区" - }, - { - "code": "371503", - "value": "茌平区", - "label": "茌平区" - }, - { - "code": "371521", - "value": "阳谷县", - "label": "阳谷县" - }, - { - "code": "371522", - "value": "莘县", - "label": "莘县" - }, - { - "code": "371524", - "value": "东阿县", - "label": "东阿县" - }, - { - "code": "371525", - "value": "冠县", - "label": "冠县" - }, - { - "code": "371526", - "value": "高唐县", - "label": "高唐县" - }, - { - "code": "371581", - "value": "临清市", - "label": "临清市" - } - ] - }, - { - "code": "371600", - "value": "滨州市", - "label": "滨州市", - "children": [ - { - "code": "371602", - "value": "滨城区", - "label": "滨城区" - }, - { - "code": "371603", - "value": "沾化区", - "label": "沾化区" - }, - { - "code": "371621", - "value": "惠民县", - "label": "惠民县" - }, - { - "code": "371622", - "value": "阳信县", - "label": "阳信县" - }, - { - "code": "371623", - "value": "无棣县", - "label": "无棣县" - }, - { - "code": "371625", - "value": "博兴县", - "label": "博兴县" - }, - { - "code": "371681", - "value": "邹平市", - "label": "邹平市" - } - ] - }, - { - "code": "371700", - "value": "菏泽市", - "label": "菏泽市", - "children": [ - { - "code": "371702", - "value": "牡丹区", - "label": "牡丹区" - }, - { - "code": "371703", - "value": "定陶区", - "label": "定陶区" - }, - { - "code": "371721", - "value": "曹县", - "label": "曹县" - }, - { - "code": "371722", - "value": "单县", - "label": "单县" - }, - { - "code": "371723", - "value": "成武县", - "label": "成武县" - }, - { - "code": "371724", - "value": "巨野县", - "label": "巨野县" - }, - { - "code": "371725", - "value": "郓城县", - "label": "郓城县" - }, - { - "code": "371726", - "value": "鄄城县", - "label": "鄄城县" - }, - { - "code": "371728", - "value": "东明县", - "label": "东明县" - } - ] - } - ] - }, - { - "code": "410000", - "value": "河南省", - "label": "河南省", - "children": [ - { - "code": "410100", - "value": "郑州市", - "label": "郑州市", - "children": [ - { - "code": "410102", - "value": "中原区", - "label": "中原区" - }, - { - "code": "410103", - "value": "二七区", - "label": "二七区" - }, - { - "code": "410104", - "value": "管城回族区", - "label": "管城回族区" - }, - { - "code": "410105", - "value": "金水区", - "label": "金水区" - }, - { - "code": "410106", - "value": "上街区", - "label": "上街区" - }, - { - "code": "410108", - "value": "惠济区", - "label": "惠济区" - }, - { - "code": "410122", - "value": "中牟县", - "label": "中牟县" - }, - { - "code": "410181", - "value": "巩义市", - "label": "巩义市" - }, - { - "code": "410182", - "value": "荥阳市", - "label": "荥阳市" - }, - { - "code": "410183", - "value": "新密市", - "label": "新密市" - }, - { - "code": "410184", - "value": "新郑市", - "label": "新郑市" - }, - { - "code": "410185", - "value": "登封市", - "label": "登封市" - } - ] - }, - { - "code": "410200", - "value": "开封市", - "label": "开封市", - "children": [ - { - "code": "410202", - "value": "龙亭区", - "label": "龙亭区" - }, - { - "code": "410203", - "value": "顺河回族区", - "label": "顺河回族区" - }, - { - "code": "410204", - "value": "鼓楼区", - "label": "鼓楼区" - }, - { - "code": "410205", - "value": "禹王台区", - "label": "禹王台区" - }, - { - "code": "410212", - "value": "祥符区", - "label": "祥符区" - }, - { - "code": "410221", - "value": "杞县", - "label": "杞县" - }, - { - "code": "410222", - "value": "通许县", - "label": "通许县" - }, - { - "code": "410223", - "value": "尉氏县", - "label": "尉氏县" - }, - { - "code": "410225", - "value": "兰考县", - "label": "兰考县" - } - ] - }, - { - "code": "410300", - "value": "洛阳市", - "label": "洛阳市", - "children": [ - { - "code": "410302", - "value": "老城区", - "label": "老城区" - }, - { - "code": "410303", - "value": "西工区", - "label": "西工区" - }, - { - "code": "410304", - "value": "瀍河回族区", - "label": "瀍河回族区" - }, - { - "code": "410305", - "value": "涧西区", - "label": "涧西区" - }, - { - "code": "410306", - "value": "吉利区", - "label": "吉利区" - }, - { - "code": "410311", - "value": "洛龙区", - "label": "洛龙区" - }, - { - "code": "410322", - "value": "孟津县", - "label": "孟津县" - }, - { - "code": "410323", - "value": "新安县", - "label": "新安县" - }, - { - "code": "410324", - "value": "栾川县", - "label": "栾川县" - }, - { - "code": "410325", - "value": "嵩县", - "label": "嵩县" - }, - { - "code": "410326", - "value": "汝阳县", - "label": "汝阳县" - }, - { - "code": "410327", - "value": "宜阳县", - "label": "宜阳县" - }, - { - "code": "410328", - "value": "洛宁县", - "label": "洛宁县" - }, - { - "code": "410329", - "value": "伊川县", - "label": "伊川县" - }, - { - "code": "410381", - "value": "偃师市", - "label": "偃师市" - } - ] - }, - { - "code": "410400", - "value": "平顶山市", - "label": "平顶山市", - "children": [ - { - "code": "410402", - "value": "新华区", - "label": "新华区" - }, - { - "code": "410403", - "value": "卫东区", - "label": "卫东区" - }, - { - "code": "410404", - "value": "石龙区", - "label": "石龙区" - }, - { - "code": "410411", - "value": "湛河区", - "label": "湛河区" - }, - { - "code": "410421", - "value": "宝丰县", - "label": "宝丰县" - }, - { - "code": "410422", - "value": "叶县", - "label": "叶县" - }, - { - "code": "410423", - "value": "鲁山县", - "label": "鲁山县" - }, - { - "code": "410425", - "value": "郏县", - "label": "郏县" - }, - { - "code": "410481", - "value": "舞钢市", - "label": "舞钢市" - }, - { - "code": "410482", - "value": "汝州市", - "label": "汝州市" - } - ] - }, - { - "code": "410500", - "value": "安阳市", - "label": "安阳市", - "children": [ - { - "code": "410502", - "value": "文峰区", - "label": "文峰区" - }, - { - "code": "410503", - "value": "北关区", - "label": "北关区" - }, - { - "code": "410505", - "value": "殷都区", - "label": "殷都区" - }, - { - "code": "410506", - "value": "龙安区", - "label": "龙安区" - }, - { - "code": "410522", - "value": "安阳县", - "label": "安阳县" - }, - { - "code": "410523", - "value": "汤阴县", - "label": "汤阴县" - }, - { - "code": "410526", - "value": "滑县", - "label": "滑县" - }, - { - "code": "410527", - "value": "内黄县", - "label": "内黄县" - }, - { - "code": "410581", - "value": "林州市", - "label": "林州市" - } - ] - }, - { - "code": "410600", - "value": "鹤壁市", - "label": "鹤壁市", - "children": [ - { - "code": "410602", - "value": "鹤山区", - "label": "鹤山区" - }, - { - "code": "410603", - "value": "山城区", - "label": "山城区" - }, - { - "code": "410611", - "value": "淇滨区", - "label": "淇滨区" - }, - { - "code": "410621", - "value": "浚县", - "label": "浚县" - }, - { - "code": "410622", - "value": "淇县", - "label": "淇县" - } - ] - }, - { - "code": "410700", - "value": "新乡市", - "label": "新乡市", - "children": [ - { - "code": "410702", - "value": "红旗区", - "label": "红旗区" - }, - { - "code": "410703", - "value": "卫滨区", - "label": "卫滨区" - }, - { - "code": "410704", - "value": "凤泉区", - "label": "凤泉区" - }, - { - "code": "410711", - "value": "牧野区", - "label": "牧野区" - }, - { - "code": "410721", - "value": "新乡县", - "label": "新乡县" - }, - { - "code": "410724", - "value": "获嘉县", - "label": "获嘉县" - }, - { - "code": "410725", - "value": "原阳县", - "label": "原阳县" - }, - { - "code": "410726", - "value": "延津县", - "label": "延津县" - }, - { - "code": "410727", - "value": "封丘县", - "label": "封丘县" - }, - { - "code": "410781", - "value": "卫辉市", - "label": "卫辉市" - }, - { - "code": "410782", - "value": "辉县市", - "label": "辉县市" - }, - { - "code": "410783", - "value": "长垣市", - "label": "长垣市" - } - ] - }, - { - "code": "410800", - "value": "焦作市", - "label": "焦作市", - "children": [ - { - "code": "410802", - "value": "解放区", - "label": "解放区" - }, - { - "code": "410803", - "value": "中站区", - "label": "中站区" - }, - { - "code": "410804", - "value": "马村区", - "label": "马村区" - }, - { - "code": "410811", - "value": "山阳区", - "label": "山阳区" - }, - { - "code": "410821", - "value": "修武县", - "label": "修武县" - }, - { - "code": "410822", - "value": "博爱县", - "label": "博爱县" - }, - { - "code": "410823", - "value": "武陟县", - "label": "武陟县" - }, - { - "code": "410825", - "value": "温县", - "label": "温县" - }, - { - "code": "410882", - "value": "沁阳市", - "label": "沁阳市" - }, - { - "code": "410883", - "value": "孟州市", - "label": "孟州市" - } - ] - }, - { - "code": "410900", - "value": "濮阳市", - "label": "濮阳市", - "children": [ - { - "code": "410902", - "value": "华龙区", - "label": "华龙区" - }, - { - "code": "410922", - "value": "清丰县", - "label": "清丰县" - }, - { - "code": "410923", - "value": "南乐县", - "label": "南乐县" - }, - { - "code": "410926", - "value": "范县", - "label": "范县" - }, - { - "code": "410927", - "value": "台前县", - "label": "台前县" - }, - { - "code": "410928", - "value": "濮阳县", - "label": "濮阳县" - } - ] - }, - { - "code": "411000", - "value": "许昌市", - "label": "许昌市", - "children": [ - { - "code": "411002", - "value": "魏都区", - "label": "魏都区" - }, - { - "code": "411003", - "value": "建安区", - "label": "建安区" - }, - { - "code": "411024", - "value": "鄢陵县", - "label": "鄢陵县" - }, - { - "code": "411025", - "value": "襄城县", - "label": "襄城县" - }, - { - "code": "411081", - "value": "禹州市", - "label": "禹州市" - }, - { - "code": "411082", - "value": "长葛市", - "label": "长葛市" - } - ] - }, - { - "code": "411100", - "value": "漯河市", - "label": "漯河市", - "children": [ - { - "code": "411102", - "value": "源汇区", - "label": "源汇区" - }, - { - "code": "411103", - "value": "郾城区", - "label": "郾城区" - }, - { - "code": "411104", - "value": "召陵区", - "label": "召陵区" - }, - { - "code": "411121", - "value": "舞阳县", - "label": "舞阳县" - }, - { - "code": "411122", - "value": "临颍县", - "label": "临颍县" - } - ] - }, - { - "code": "411200", - "value": "三门峡市", - "label": "三门峡市", - "children": [ - { - "code": "411202", - "value": "湖滨区", - "label": "湖滨区" - }, - { - "code": "411203", - "value": "陕州区", - "label": "陕州区" - }, - { - "code": "411221", - "value": "渑池县", - "label": "渑池县" - }, - { - "code": "411224", - "value": "卢氏县", - "label": "卢氏县" - }, - { - "code": "411281", - "value": "义马市", - "label": "义马市" - }, - { - "code": "411282", - "value": "灵宝市", - "label": "灵宝市" - } - ] - }, - { - "code": "411300", - "value": "南阳市", - "label": "南阳市", - "children": [ - { - "code": "411302", - "value": "宛城区", - "label": "宛城区" - }, - { - "code": "411303", - "value": "卧龙区", - "label": "卧龙区" - }, - { - "code": "411321", - "value": "南召县", - "label": "南召县" - }, - { - "code": "411322", - "value": "方城县", - "label": "方城县" - }, - { - "code": "411323", - "value": "西峡县", - "label": "西峡县" - }, - { - "code": "411324", - "value": "镇平县", - "label": "镇平县" - }, - { - "code": "411325", - "value": "内乡县", - "label": "内乡县" - }, - { - "code": "411326", - "value": "淅川县", - "label": "淅川县" - }, - { - "code": "411327", - "value": "社旗县", - "label": "社旗县" - }, - { - "code": "411328", - "value": "唐河县", - "label": "唐河县" - }, - { - "code": "411329", - "value": "新野县", - "label": "新野县" - }, - { - "code": "411330", - "value": "桐柏县", - "label": "桐柏县" - }, - { - "code": "411381", - "value": "邓州市", - "label": "邓州市" - } - ] - }, - { - "code": "411400", - "value": "商丘市", - "label": "商丘市", - "children": [ - { - "code": "411402", - "value": "梁园区", - "label": "梁园区" - }, - { - "code": "411403", - "value": "睢阳区", - "label": "睢阳区" - }, - { - "code": "411421", - "value": "民权县", - "label": "民权县" - }, - { - "code": "411422", - "value": "睢县", - "label": "睢县" - }, - { - "code": "411423", - "value": "宁陵县", - "label": "宁陵县" - }, - { - "code": "411424", - "value": "柘城县", - "label": "柘城县" - }, - { - "code": "411425", - "value": "虞城县", - "label": "虞城县" - }, - { - "code": "411426", - "value": "夏邑县", - "label": "夏邑县" - }, - { - "code": "411481", - "value": "永城市", - "label": "永城市" - } - ] - }, - { - "code": "411500", - "value": "信阳市", - "label": "信阳市", - "children": [ - { - "code": "411502", - "value": "浉河区", - "label": "浉河区" - }, - { - "code": "411503", - "value": "平桥区", - "label": "平桥区" - }, - { - "code": "411521", - "value": "罗山县", - "label": "罗山县" - }, - { - "code": "411522", - "value": "光山县", - "label": "光山县" - }, - { - "code": "411523", - "value": "新县", - "label": "新县" - }, - { - "code": "411524", - "value": "商城县", - "label": "商城县" - }, - { - "code": "411525", - "value": "固始县", - "label": "固始县" - }, - { - "code": "411526", - "value": "潢川县", - "label": "潢川县" - }, - { - "code": "411527", - "value": "淮滨县", - "label": "淮滨县" - }, - { - "code": "411528", - "value": "息县", - "label": "息县" - } - ] - }, - { - "code": "411600", - "value": "周口市", - "label": "周口市", - "children": [ - { - "code": "411602", - "value": "川汇区", - "label": "川汇区" - }, - { - "code": "411603", - "value": "淮阳区", - "label": "淮阳区" - }, - { - "code": "411621", - "value": "扶沟县", - "label": "扶沟县" - }, - { - "code": "411622", - "value": "西华县", - "label": "西华县" - }, - { - "code": "411623", - "value": "商水县", - "label": "商水县" - }, - { - "code": "411624", - "value": "沈丘县", - "label": "沈丘县" - }, - { - "code": "411625", - "value": "郸城县", - "label": "郸城县" - }, - { - "code": "411627", - "value": "太康县", - "label": "太康县" - }, - { - "code": "411628", - "value": "鹿邑县", - "label": "鹿邑县" - }, - { - "code": "411681", - "value": "项城市", - "label": "项城市" - } - ] - }, - { - "code": "411700", - "value": "驻马店市", - "label": "驻马店市", - "children": [ - { - "code": "411702", - "value": "驿城区", - "label": "驿城区" - }, - { - "code": "411721", - "value": "西平县", - "label": "西平县" - }, - { - "code": "411722", - "value": "上蔡县", - "label": "上蔡县" - }, - { - "code": "411723", - "value": "平舆县", - "label": "平舆县" - }, - { - "code": "411724", - "value": "正阳县", - "label": "正阳县" - }, - { - "code": "411725", - "value": "确山县", - "label": "确山县" - }, - { - "code": "411726", - "value": "泌阳县", - "label": "泌阳县" - }, - { - "code": "411727", - "value": "汝南县", - "label": "汝南县" - }, - { - "code": "411728", - "value": "遂平县", - "label": "遂平县" - }, - { - "code": "411729", - "value": "新蔡县", - "label": "新蔡县" - } - ] - } - ] - }, - { - "code": "420000", - "value": "湖北省", - "label": "湖北省", - "children": [ - { - "code": "420100", - "value": "武汉市", - "label": "武汉市", - "children": [ - { - "code": "420102", - "value": "江岸区", - "label": "江岸区" - }, - { - "code": "420103", - "value": "江汉区", - "label": "江汉区" - }, - { - "code": "420104", - "value": "硚口区", - "label": "硚口区" - }, - { - "code": "420105", - "value": "汉阳区", - "label": "汉阳区" - }, - { - "code": "420106", - "value": "武昌区", - "label": "武昌区" - }, - { - "code": "420107", - "value": "青山区", - "label": "青山区" - }, - { - "code": "420111", - "value": "洪山区", - "label": "洪山区" - }, - { - "code": "420112", - "value": "东西湖区", - "label": "东西湖区" - }, - { - "code": "420113", - "value": "汉南区", - "label": "汉南区" - }, - { - "code": "420114", - "value": "蔡甸区", - "label": "蔡甸区" - }, - { - "code": "420115", - "value": "江夏区", - "label": "江夏区" - }, - { - "code": "420116", - "value": "黄陂区", - "label": "黄陂区" - }, - { - "code": "420117", - "value": "新洲区", - "label": "新洲区" - } - ] - }, - { - "code": "420200", - "value": "黄石市", - "label": "黄石市", - "children": [ - { - "code": "420202", - "value": "黄石港区", - "label": "黄石港区" - }, - { - "code": "420203", - "value": "西塞山区", - "label": "西塞山区" - }, - { - "code": "420204", - "value": "下陆区", - "label": "下陆区" - }, - { - "code": "420205", - "value": "铁山区", - "label": "铁山区" - }, - { - "code": "420222", - "value": "阳新县", - "label": "阳新县" - }, - { - "code": "420281", - "value": "大冶市", - "label": "大冶市" - } - ] - }, - { - "code": "420300", - "value": "十堰市", - "label": "十堰市", - "children": [ - { - "code": "420302", - "value": "茅箭区", - "label": "茅箭区" - }, - { - "code": "420303", - "value": "张湾区", - "label": "张湾区" - }, - { - "code": "420304", - "value": "郧阳区", - "label": "郧阳区" - }, - { - "code": "420322", - "value": "郧西县", - "label": "郧西县" - }, - { - "code": "420323", - "value": "竹山县", - "label": "竹山县" - }, - { - "code": "420324", - "value": "竹溪县", - "label": "竹溪县" - }, - { - "code": "420325", - "value": "房县", - "label": "房县" - }, - { - "code": "420381", - "value": "丹江口市", - "label": "丹江口市" - } - ] - }, - { - "code": "420500", - "value": "宜昌市", - "label": "宜昌市", - "children": [ - { - "code": "420502", - "value": "西陵区", - "label": "西陵区" - }, - { - "code": "420503", - "value": "伍家岗区", - "label": "伍家岗区" - }, - { - "code": "420504", - "value": "点军区", - "label": "点军区" - }, - { - "code": "420505", - "value": "猇亭区", - "label": "猇亭区" - }, - { - "code": "420506", - "value": "夷陵区", - "label": "夷陵区" - }, - { - "code": "420525", - "value": "远安县", - "label": "远安县" - }, - { - "code": "420526", - "value": "兴山县", - "label": "兴山县" - }, - { - "code": "420527", - "value": "秭归县", - "label": "秭归县" - }, - { - "code": "420528", - "value": "长阳土家族自治县", - "label": "长阳土家族自治县" - }, - { - "code": "420529", - "value": "五峰土家族自治县", - "label": "五峰土家族自治县" - }, - { - "code": "420581", - "value": "宜都市", - "label": "宜都市" - }, - { - "code": "420582", - "value": "当阳市", - "label": "当阳市" - }, - { - "code": "420583", - "value": "枝江市", - "label": "枝江市" - } - ] - }, - { - "code": "420600", - "value": "襄阳市", - "label": "襄阳市", - "children": [ - { - "code": "420602", - "value": "襄城区", - "label": "襄城区" - }, - { - "code": "420606", - "value": "樊城区", - "label": "樊城区" - }, - { - "code": "420607", - "value": "襄州区", - "label": "襄州区" - }, - { - "code": "420624", - "value": "南漳县", - "label": "南漳县" - }, - { - "code": "420625", - "value": "谷城县", - "label": "谷城县" - }, - { - "code": "420626", - "value": "保康县", - "label": "保康县" - }, - { - "code": "420682", - "value": "老河口市", - "label": "老河口市" - }, - { - "code": "420683", - "value": "枣阳市", - "label": "枣阳市" - }, - { - "code": "420684", - "value": "宜城市", - "label": "宜城市" - } - ] - }, - { - "code": "420700", - "value": "鄂州市", - "label": "鄂州市", - "children": [ - { - "code": "420702", - "value": "梁子湖区", - "label": "梁子湖区" - }, - { - "code": "420703", - "value": "华容区", - "label": "华容区" - }, - { - "code": "420704", - "value": "鄂城区", - "label": "鄂城区" - } - ] - }, - { - "code": "420800", - "value": "荆门市", - "label": "荆门市", - "children": [ - { - "code": "420802", - "value": "东宝区", - "label": "东宝区" - }, - { - "code": "420804", - "value": "掇刀区", - "label": "掇刀区" - }, - { - "code": "420822", - "value": "沙洋县", - "label": "沙洋县" - }, - { - "code": "420881", - "value": "钟祥市", - "label": "钟祥市" - }, - { - "code": "420882", - "value": "京山市", - "label": "京山市" - } - ] - }, - { - "code": "420900", - "value": "孝感市", - "label": "孝感市", - "children": [ - { - "code": "420902", - "value": "孝南区", - "label": "孝南区" - }, - { - "code": "420921", - "value": "孝昌县", - "label": "孝昌县" - }, - { - "code": "420922", - "value": "大悟县", - "label": "大悟县" - }, - { - "code": "420923", - "value": "云梦县", - "label": "云梦县" - }, - { - "code": "420981", - "value": "应城市", - "label": "应城市" - }, - { - "code": "420982", - "value": "安陆市", - "label": "安陆市" - }, - { - "code": "420984", - "value": "汉川市", - "label": "汉川市" - } - ] - }, - { - "code": "421000", - "value": "荆州市", - "label": "荆州市", - "children": [ - { - "code": "421002", - "value": "沙市区", - "label": "沙市区" - }, - { - "code": "421003", - "value": "荆州区", - "label": "荆州区" - }, - { - "code": "421022", - "value": "公安县", - "label": "公安县" - }, - { - "code": "421023", - "value": "监利县", - "label": "监利县" - }, - { - "code": "421024", - "value": "江陵县", - "label": "江陵县" - }, - { - "code": "421081", - "value": "石首市", - "label": "石首市" - }, - { - "code": "421083", - "value": "洪湖市", - "label": "洪湖市" - }, - { - "code": "421087", - "value": "松滋市", - "label": "松滋市" - } - ] - }, - { - "code": "421100", - "value": "黄冈市", - "label": "黄冈市", - "children": [ - { - "code": "421102", - "value": "黄州区", - "label": "黄州区" - }, - { - "code": "421121", - "value": "团风县", - "label": "团风县" - }, - { - "code": "421122", - "value": "红安县", - "label": "红安县" - }, - { - "code": "421123", - "value": "罗田县", - "label": "罗田县" - }, - { - "code": "421124", - "value": "英山县", - "label": "英山县" - }, - { - "code": "421125", - "value": "浠水县", - "label": "浠水县" - }, - { - "code": "421126", - "value": "蕲春县", - "label": "蕲春县" - }, - { - "code": "421127", - "value": "黄梅县", - "label": "黄梅县" - }, - { - "code": "421181", - "value": "麻城市", - "label": "麻城市" - }, - { - "code": "421182", - "value": "武穴市", - "label": "武穴市" - } - ] - }, - { - "code": "421200", - "value": "咸宁市", - "label": "咸宁市", - "children": [ - { - "code": "421202", - "value": "咸安区", - "label": "咸安区" - }, - { - "code": "421221", - "value": "嘉鱼县", - "label": "嘉鱼县" - }, - { - "code": "421222", - "value": "通城县", - "label": "通城县" - }, - { - "code": "421223", - "value": "崇阳县", - "label": "崇阳县" - }, - { - "code": "421224", - "value": "通山县", - "label": "通山县" - }, - { - "code": "421281", - "value": "赤壁市", - "label": "赤壁市" - } - ] - }, - { - "code": "421300", - "value": "随州市", - "label": "随州市", - "children": [ - { - "code": "421303", - "value": "曾都区", - "label": "曾都区" - }, - { - "code": "421321", - "value": "随县", - "label": "随县" - }, - { - "code": "421381", - "value": "广水市", - "label": "广水市" - } - ] - }, - { - "code": "422800", - "value": "恩施土家族苗族自治州", - "label": "恩施土家族苗族自治州", - "children": [ - { - "code": "422801", - "value": "恩施市", - "label": "恩施市" - }, - { - "code": "422802", - "value": "利川市", - "label": "利川市" - }, - { - "code": "422822", - "value": "建始县", - "label": "建始县" - }, - { - "code": "422823", - "value": "巴东县", - "label": "巴东县" - }, - { - "code": "422825", - "value": "宣恩县", - "label": "宣恩县" - }, - { - "code": "422826", - "value": "咸丰县", - "label": "咸丰县" - }, - { - "code": "422827", - "value": "来凤县", - "label": "来凤县" - }, - { - "code": "422828", - "value": "鹤峰县", - "label": "鹤峰县" - } - ] - } - ] - }, - { - "code": "430000", - "value": "湖南省", - "label": "湖南省", - "children": [ - { - "code": "430100", - "value": "长沙市", - "label": "长沙市", - "children": [ - { - "code": "430102", - "value": "芙蓉区", - "label": "芙蓉区" - }, - { - "code": "430103", - "value": "天心区", - "label": "天心区" - }, - { - "code": "430104", - "value": "岳麓区", - "label": "岳麓区" - }, - { - "code": "430105", - "value": "开福区", - "label": "开福区" - }, - { - "code": "430111", - "value": "雨花区", - "label": "雨花区" - }, - { - "code": "430112", - "value": "望城区", - "label": "望城区" - }, - { - "code": "430121", - "value": "长沙县", - "label": "长沙县" - }, - { - "code": "430181", - "value": "浏阳市", - "label": "浏阳市" - }, - { - "code": "430182", - "value": "宁乡市", - "label": "宁乡市" - } - ] - }, - { - "code": "430200", - "value": "株洲市", - "label": "株洲市", - "children": [ - { - "code": "430202", - "value": "荷塘区", - "label": "荷塘区" - }, - { - "code": "430203", - "value": "芦淞区", - "label": "芦淞区" - }, - { - "code": "430204", - "value": "石峰区", - "label": "石峰区" - }, - { - "code": "430211", - "value": "天元区", - "label": "天元区" - }, - { - "code": "430212", - "value": "渌口区", - "label": "渌口区" - }, - { - "code": "430223", - "value": "攸县", - "label": "攸县" - }, - { - "code": "430224", - "value": "茶陵县", - "label": "茶陵县" - }, - { - "code": "430225", - "value": "炎陵县", - "label": "炎陵县" - }, - { - "code": "430281", - "value": "醴陵市", - "label": "醴陵市" - } - ] - }, - { - "code": "430300", - "value": "湘潭市", - "label": "湘潭市", - "children": [ - { - "code": "430302", - "value": "雨湖区", - "label": "雨湖区" - }, - { - "code": "430304", - "value": "岳塘区", - "label": "岳塘区" - }, - { - "code": "430321", - "value": "湘潭县", - "label": "湘潭县" - }, - { - "code": "430381", - "value": "湘乡市", - "label": "湘乡市" - }, - { - "code": "430382", - "value": "韶山市", - "label": "韶山市" - } - ] - }, - { - "code": "430400", - "value": "衡阳市", - "label": "衡阳市", - "children": [ - { - "code": "430405", - "value": "珠晖区", - "label": "珠晖区" - }, - { - "code": "430406", - "value": "雁峰区", - "label": "雁峰区" - }, - { - "code": "430407", - "value": "石鼓区", - "label": "石鼓区" - }, - { - "code": "430408", - "value": "蒸湘区", - "label": "蒸湘区" - }, - { - "code": "430412", - "value": "南岳区", - "label": "南岳区" - }, - { - "code": "430421", - "value": "衡阳县", - "label": "衡阳县" - }, - { - "code": "430422", - "value": "衡南县", - "label": "衡南县" - }, - { - "code": "430423", - "value": "衡山县", - "label": "衡山县" - }, - { - "code": "430424", - "value": "衡东县", - "label": "衡东县" - }, - { - "code": "430426", - "value": "祁东县", - "label": "祁东县" - }, - { - "code": "430481", - "value": "耒阳市", - "label": "耒阳市" - }, - { - "code": "430482", - "value": "常宁市", - "label": "常宁市" - } - ] - }, - { - "code": "430500", - "value": "邵阳市", - "label": "邵阳市", - "children": [ - { - "code": "430502", - "value": "双清区", - "label": "双清区" - }, - { - "code": "430503", - "value": "大祥区", - "label": "大祥区" - }, - { - "code": "430511", - "value": "北塔区", - "label": "北塔区" - }, - { - "code": "430522", - "value": "新邵县", - "label": "新邵县" - }, - { - "code": "430523", - "value": "邵阳县", - "label": "邵阳县" - }, - { - "code": "430524", - "value": "隆回县", - "label": "隆回县" - }, - { - "code": "430525", - "value": "洞口县", - "label": "洞口县" - }, - { - "code": "430527", - "value": "绥宁县", - "label": "绥宁县" - }, - { - "code": "430528", - "value": "新宁县", - "label": "新宁县" - }, - { - "code": "430529", - "value": "城步苗族自治县", - "label": "城步苗族自治县" - }, - { - "code": "430581", - "value": "武冈市", - "label": "武冈市" - }, - { - "code": "430582", - "value": "邵东市", - "label": "邵东市" - } - ] - }, - { - "code": "430600", - "value": "岳阳市", - "label": "岳阳市", - "children": [ - { - "code": "430602", - "value": "岳阳楼区", - "label": "岳阳楼区" - }, - { - "code": "430603", - "value": "云溪区", - "label": "云溪区" - }, - { - "code": "430611", - "value": "君山区", - "label": "君山区" - }, - { - "code": "430621", - "value": "岳阳县", - "label": "岳阳县" - }, - { - "code": "430623", - "value": "华容县", - "label": "华容县" - }, - { - "code": "430624", - "value": "湘阴县", - "label": "湘阴县" - }, - { - "code": "430626", - "value": "平江县", - "label": "平江县" - }, - { - "code": "430681", - "value": "汨罗市", - "label": "汨罗市" - }, - { - "code": "430682", - "value": "临湘市", - "label": "临湘市" - } - ] - }, - { - "code": "430700", - "value": "常德市", - "label": "常德市", - "children": [ - { - "code": "430702", - "value": "武陵区", - "label": "武陵区" - }, - { - "code": "430703", - "value": "鼎城区", - "label": "鼎城区" - }, - { - "code": "430721", - "value": "安乡县", - "label": "安乡县" - }, - { - "code": "430722", - "value": "汉寿县", - "label": "汉寿县" - }, - { - "code": "430723", - "value": "澧县", - "label": "澧县" - }, - { - "code": "430724", - "value": "临澧县", - "label": "临澧县" - }, - { - "code": "430725", - "value": "桃源县", - "label": "桃源县" - }, - { - "code": "430726", - "value": "石门县", - "label": "石门县" - }, - { - "code": "430781", - "value": "津市市", - "label": "津市市" - } - ] - }, - { - "code": "430800", - "value": "张家界市", - "label": "张家界市", - "children": [ - { - "code": "430802", - "value": "永定区", - "label": "永定区" - }, - { - "code": "430811", - "value": "武陵源区", - "label": "武陵源区" - }, - { - "code": "430821", - "value": "慈利县", - "label": "慈利县" - }, - { - "code": "430822", - "value": "桑植县", - "label": "桑植县" - } - ] - }, - { - "code": "430900", - "value": "益阳市", - "label": "益阳市", - "children": [ - { - "code": "430902", - "value": "资阳区", - "label": "资阳区" - }, - { - "code": "430903", - "value": "赫山区", - "label": "赫山区" - }, - { - "code": "430921", - "value": "南县", - "label": "南县" - }, - { - "code": "430922", - "value": "桃江县", - "label": "桃江县" - }, - { - "code": "430923", - "value": "安化县", - "label": "安化县" - }, - { - "code": "430981", - "value": "沅江市", - "label": "沅江市" - } - ] - }, - { - "code": "431000", - "value": "郴州市", - "label": "郴州市", - "children": [ - { - "code": "431002", - "value": "北湖区", - "label": "北湖区" - }, - { - "code": "431003", - "value": "苏仙区", - "label": "苏仙区" - }, - { - "code": "431021", - "value": "桂阳县", - "label": "桂阳县" - }, - { - "code": "431022", - "value": "宜章县", - "label": "宜章县" - }, - { - "code": "431023", - "value": "永兴县", - "label": "永兴县" - }, - { - "code": "431024", - "value": "嘉禾县", - "label": "嘉禾县" - }, - { - "code": "431025", - "value": "临武县", - "label": "临武县" - }, - { - "code": "431026", - "value": "汝城县", - "label": "汝城县" - }, - { - "code": "431027", - "value": "桂东县", - "label": "桂东县" - }, - { - "code": "431028", - "value": "安仁县", - "label": "安仁县" - }, - { - "code": "431081", - "value": "资兴市", - "label": "资兴市" - } - ] - }, - { - "code": "431100", - "value": "永州市", - "label": "永州市", - "children": [ - { - "code": "431102", - "value": "零陵区", - "label": "零陵区" - }, - { - "code": "431103", - "value": "冷水滩区", - "label": "冷水滩区" - }, - { - "code": "431121", - "value": "祁阳县", - "label": "祁阳县" - }, - { - "code": "431122", - "value": "东安县", - "label": "东安县" - }, - { - "code": "431123", - "value": "双牌县", - "label": "双牌县" - }, - { - "code": "431124", - "value": "道县", - "label": "道县" - }, - { - "code": "431125", - "value": "江永县", - "label": "江永县" - }, - { - "code": "431126", - "value": "宁远县", - "label": "宁远县" - }, - { - "code": "431127", - "value": "蓝山县", - "label": "蓝山县" - }, - { - "code": "431128", - "value": "新田县", - "label": "新田县" - }, - { - "code": "431129", - "value": "江华瑶族自治县", - "label": "江华瑶族自治县" - } - ] - }, - { - "code": "431200", - "value": "怀化市", - "label": "怀化市", - "children": [ - { - "code": "431202", - "value": "鹤城区", - "label": "鹤城区" - }, - { - "code": "431221", - "value": "中方县", - "label": "中方县" - }, - { - "code": "431222", - "value": "沅陵县", - "label": "沅陵县" - }, - { - "code": "431223", - "value": "辰溪县", - "label": "辰溪县" - }, - { - "code": "431224", - "value": "溆浦县", - "label": "溆浦县" - }, - { - "code": "431225", - "value": "会同县", - "label": "会同县" - }, - { - "code": "431226", - "value": "麻阳苗族自治县", - "label": "麻阳苗族自治县" - }, - { - "code": "431227", - "value": "新晃侗族自治县", - "label": "新晃侗族自治县" - }, - { - "code": "431228", - "value": "芷江侗族自治县", - "label": "芷江侗族自治县" - }, - { - "code": "431229", - "value": "靖州苗族侗族自治县", - "label": "靖州苗族侗族自治县" - }, - { - "code": "431230", - "value": "通道侗族自治县", - "label": "通道侗族自治县" - }, - { - "code": "431281", - "value": "洪江市", - "label": "洪江市" - } - ] - }, - { - "code": "431300", - "value": "娄底市", - "label": "娄底市", - "children": [ - { - "code": "431302", - "value": "娄星区", - "label": "娄星区" - }, - { - "code": "431321", - "value": "双峰县", - "label": "双峰县" - }, - { - "code": "431322", - "value": "新化县", - "label": "新化县" - }, - { - "code": "431381", - "value": "冷水江市", - "label": "冷水江市" - }, - { - "code": "431382", - "value": "涟源市", - "label": "涟源市" - } - ] - }, - { - "code": "433100", - "value": "湘西土家族苗族自治州", - "label": "湘西土家族苗族自治州", - "children": [ - { - "code": "433101", - "value": "吉首市", - "label": "吉首市" - }, - { - "code": "433122", - "value": "泸溪县", - "label": "泸溪县" - }, - { - "code": "433123", - "value": "凤凰县", - "label": "凤凰县" - }, - { - "code": "433124", - "value": "花垣县", - "label": "花垣县" - }, - { - "code": "433125", - "value": "保靖县", - "label": "保靖县" - }, - { - "code": "433126", - "value": "古丈县", - "label": "古丈县" - }, - { - "code": "433127", - "value": "永顺县", - "label": "永顺县" - }, - { - "code": "433130", - "value": "龙山县", - "label": "龙山县" - } - ] - } - ] - }, - { - "code": "440000", - "value": "广东省", - "label": "广东省", - "children": [ - { - "code": "440100", - "value": "广州市", - "label": "广州市", - "children": [ - { - "code": "440103", - "value": "荔湾区", - "label": "荔湾区" - }, - { - "code": "440104", - "value": "越秀区", - "label": "越秀区" - }, - { - "code": "440105", - "value": "海珠区", - "label": "海珠区" - }, - { - "code": "440106", - "value": "天河区", - "label": "天河区" - }, - { - "code": "440111", - "value": "白云区", - "label": "白云区" - }, - { - "code": "440112", - "value": "黄埔区", - "label": "黄埔区" - }, - { - "code": "440113", - "value": "番禺区", - "label": "番禺区" - }, - { - "code": "440114", - "value": "花都区", - "label": "花都区" - }, - { - "code": "440115", - "value": "南沙区", - "label": "南沙区" - }, - { - "code": "440117", - "value": "从化区", - "label": "从化区" - }, - { - "code": "440118", - "value": "增城区", - "label": "增城区" - } - ] - }, - { - "code": "440200", - "value": "韶关市", - "label": "韶关市", - "children": [ - { - "code": "440203", - "value": "武江区", - "label": "武江区" - }, - { - "code": "440204", - "value": "浈江区", - "label": "浈江区" - }, - { - "code": "440205", - "value": "曲江区", - "label": "曲江区" - }, - { - "code": "440222", - "value": "始兴县", - "label": "始兴县" - }, - { - "code": "440224", - "value": "仁化县", - "label": "仁化县" - }, - { - "code": "440229", - "value": "翁源县", - "label": "翁源县" - }, - { - "code": "440232", - "value": "乳源瑶族自治县", - "label": "乳源瑶族自治县" - }, - { - "code": "440233", - "value": "新丰县", - "label": "新丰县" - }, - { - "code": "440281", - "value": "乐昌市", - "label": "乐昌市" - }, - { - "code": "440282", - "value": "南雄市", - "label": "南雄市" - } - ] - }, - { - "code": "440300", - "value": "深圳市", - "label": "深圳市", - "children": [ - { - "code": "440303", - "value": "罗湖区", - "label": "罗湖区" - }, - { - "code": "440304", - "value": "福田区", - "label": "福田区" - }, - { - "code": "440305", - "value": "南山区", - "label": "南山区" - }, - { - "code": "440306", - "value": "宝安区", - "label": "宝安区" - }, - { - "code": "440307", - "value": "龙岗区", - "label": "龙岗区" - }, - { - "code": "440308", - "value": "盐田区", - "label": "盐田区" - }, - { - "code": "440309", - "value": "龙华区", - "label": "龙华区" - }, - { - "code": "440310", - "value": "坪山区", - "label": "坪山区" - }, - { - "code": "440311", - "value": "光明区", - "label": "光明区" - } - ] - }, - { - "code": "440400", - "value": "珠海市", - "label": "珠海市", - "children": [ - { - "code": "440402", - "value": "香洲区", - "label": "香洲区" - }, - { - "code": "440403", - "value": "斗门区", - "label": "斗门区" - }, - { - "code": "440404", - "value": "金湾区", - "label": "金湾区" - } - ] - }, - { - "code": "440500", - "value": "汕头市", - "label": "汕头市", - "children": [ - { - "code": "440507", - "value": "龙湖区", - "label": "龙湖区" - }, - { - "code": "440511", - "value": "金平区", - "label": "金平区" - }, - { - "code": "440512", - "value": "濠江区", - "label": "濠江区" - }, - { - "code": "440513", - "value": "潮阳区", - "label": "潮阳区" - }, - { - "code": "440514", - "value": "潮南区", - "label": "潮南区" - }, - { - "code": "440515", - "value": "澄海区", - "label": "澄海区" - }, - { - "code": "440523", - "value": "南澳县", - "label": "南澳县" - } - ] - }, - { - "code": "440600", - "value": "佛山市", - "label": "佛山市", - "children": [ - { - "code": "440604", - "value": "禅城区", - "label": "禅城区" - }, - { - "code": "440605", - "value": "南海区", - "label": "南海区" - }, - { - "code": "440606", - "value": "顺德区", - "label": "顺德区" - }, - { - "code": "440607", - "value": "三水区", - "label": "三水区" - }, - { - "code": "440608", - "value": "高明区", - "label": "高明区" - } - ] - }, - { - "code": "440700", - "value": "江门市", - "label": "江门市", - "children": [ - { - "code": "440703", - "value": "蓬江区", - "label": "蓬江区" - }, - { - "code": "440704", - "value": "江海区", - "label": "江海区" - }, - { - "code": "440705", - "value": "新会区", - "label": "新会区" - }, - { - "code": "440781", - "value": "台山市", - "label": "台山市" - }, - { - "code": "440783", - "value": "开平市", - "label": "开平市" - }, - { - "code": "440784", - "value": "鹤山市", - "label": "鹤山市" - }, - { - "code": "440785", - "value": "恩平市", - "label": "恩平市" - } - ] - }, - { - "code": "440800", - "value": "湛江市", - "label": "湛江市", - "children": [ - { - "code": "440802", - "value": "赤坎区", - "label": "赤坎区" - }, - { - "code": "440803", - "value": "霞山区", - "label": "霞山区" - }, - { - "code": "440804", - "value": "坡头区", - "label": "坡头区" - }, - { - "code": "440811", - "value": "麻章区", - "label": "麻章区" - }, - { - "code": "440823", - "value": "遂溪县", - "label": "遂溪县" - }, - { - "code": "440825", - "value": "徐闻县", - "label": "徐闻县" - }, - { - "code": "440881", - "value": "廉江市", - "label": "廉江市" - }, - { - "code": "440882", - "value": "雷州市", - "label": "雷州市" - }, - { - "code": "440883", - "value": "吴川市", - "label": "吴川市" - } - ] - }, - { - "code": "440900", - "value": "茂名市", - "label": "茂名市", - "children": [ - { - "code": "440902", - "value": "茂南区", - "label": "茂南区" - }, - { - "code": "440904", - "value": "电白区", - "label": "电白区" - }, - { - "code": "440981", - "value": "高州市", - "label": "高州市" - }, - { - "code": "440982", - "value": "化州市", - "label": "化州市" - }, - { - "code": "440983", - "value": "信宜市", - "label": "信宜市" - } - ] - }, - { - "code": "441200", - "value": "肇庆市", - "label": "肇庆市", - "children": [ - { - "code": "441202", - "value": "端州区", - "label": "端州区" - }, - { - "code": "441203", - "value": "鼎湖区", - "label": "鼎湖区" - }, - { - "code": "441204", - "value": "高要区", - "label": "高要区" - }, - { - "code": "441223", - "value": "广宁县", - "label": "广宁县" - }, - { - "code": "441224", - "value": "怀集县", - "label": "怀集县" - }, - { - "code": "441225", - "value": "封开县", - "label": "封开县" - }, - { - "code": "441226", - "value": "德庆县", - "label": "德庆县" - }, - { - "code": "441284", - "value": "四会市", - "label": "四会市" - } - ] - }, - { - "code": "441300", - "value": "惠州市", - "label": "惠州市", - "children": [ - { - "code": "441302", - "value": "惠城区", - "label": "惠城区" - }, - { - "code": "441303", - "value": "惠阳区", - "label": "惠阳区" - }, - { - "code": "441322", - "value": "博罗县", - "label": "博罗县" - }, - { - "code": "441323", - "value": "惠东县", - "label": "惠东县" - }, - { - "code": "441324", - "value": "龙门县", - "label": "龙门县" - } - ] - }, - { - "code": "441400", - "value": "梅州市", - "label": "梅州市", - "children": [ - { - "code": "441402", - "value": "梅江区", - "label": "梅江区" - }, - { - "code": "441403", - "value": "梅县区", - "label": "梅县区" - }, - { - "code": "441422", - "value": "大埔县", - "label": "大埔县" - }, - { - "code": "441423", - "value": "丰顺县", - "label": "丰顺县" - }, - { - "code": "441424", - "value": "五华县", - "label": "五华县" - }, - { - "code": "441426", - "value": "平远县", - "label": "平远县" - }, - { - "code": "441427", - "value": "蕉岭县", - "label": "蕉岭县" - }, - { - "code": "441481", - "value": "兴宁市", - "label": "兴宁市" - } - ] - }, - { - "code": "441500", - "value": "汕尾市", - "label": "汕尾市", - "children": [ - { - "code": "441502", - "value": "城区", - "label": "城区" - }, - { - "code": "441521", - "value": "海丰县", - "label": "海丰县" - }, - { - "code": "441523", - "value": "陆河县", - "label": "陆河县" - }, - { - "code": "441581", - "value": "陆丰市", - "label": "陆丰市" - } - ] - }, - { - "code": "441600", - "value": "河源市", - "label": "河源市", - "children": [ - { - "code": "441602", - "value": "源城区", - "label": "源城区" - }, - { - "code": "441621", - "value": "紫金县", - "label": "紫金县" - }, - { - "code": "441622", - "value": "龙川县", - "label": "龙川县" - }, - { - "code": "441623", - "value": "连平县", - "label": "连平县" - }, - { - "code": "441624", - "value": "和平县", - "label": "和平县" - }, - { - "code": "441625", - "value": "东源县", - "label": "东源县" - } - ] - }, - { - "code": "441700", - "value": "阳江市", - "label": "阳江市", - "children": [ - { - "code": "441702", - "value": "江城区", - "label": "江城区" - }, - { - "code": "441704", - "value": "阳东区", - "label": "阳东区" - }, - { - "code": "441721", - "value": "阳西县", - "label": "阳西县" - }, - { - "code": "441781", - "value": "阳春市", - "label": "阳春市" - } - ] - }, - { - "code": "441800", - "value": "清远市", - "label": "清远市", - "children": [ - { - "code": "441802", - "value": "清城区", - "label": "清城区" - }, - { - "code": "441803", - "value": "清新区", - "label": "清新区" - }, - { - "code": "441821", - "value": "佛冈县", - "label": "佛冈县" - }, - { - "code": "441823", - "value": "阳山县", - "label": "阳山县" - }, - { - "code": "441825", - "value": "连山壮族瑶族自治县", - "label": "连山壮族瑶族自治县" - }, - { - "code": "441826", - "value": "连南瑶族自治县", - "label": "连南瑶族自治县" - }, - { - "code": "441881", - "value": "英德市", - "label": "英德市" - }, - { - "code": "441882", - "value": "连州市", - "label": "连州市" - } - ] - }, - { - "code": "441900", - "value": "东莞市", - "label": "东莞市", - "children": [] - }, - { - "code": "442000", - "value": "中山市", - "label": "中山市", - "children": [] - }, - { - "code": "445100", - "value": "潮州市", - "label": "潮州市", - "children": [ - { - "code": "445102", - "value": "湘桥区", - "label": "湘桥区" - }, - { - "code": "445103", - "value": "潮安区", - "label": "潮安区" - }, - { - "code": "445122", - "value": "饶平县", - "label": "饶平县" - } - ] - }, - { - "code": "445200", - "value": "揭阳市", - "label": "揭阳市", - "children": [ - { - "code": "445202", - "value": "榕城区", - "label": "榕城区" - }, - { - "code": "445203", - "value": "揭东区", - "label": "揭东区" - }, - { - "code": "445222", - "value": "揭西县", - "label": "揭西县" - }, - { - "code": "445224", - "value": "惠来县", - "label": "惠来县" - }, - { - "code": "445281", - "value": "普宁市", - "label": "普宁市" - } - ] - }, - { - "code": "445300", - "value": "云浮市", - "label": "云浮市", - "children": [ - { - "code": "445302", - "value": "云城区", - "label": "云城区" - }, - { - "code": "445303", - "value": "云安区", - "label": "云安区" - }, - { - "code": "445321", - "value": "新兴县", - "label": "新兴县" - }, - { - "code": "445322", - "value": "郁南县", - "label": "郁南县" - }, - { - "code": "445381", - "value": "罗定市", - "label": "罗定市" - } - ] - } - ] - }, - { - "code": "450000", - "value": "广西壮族自治区", - "label": "广西壮族自治区", - "children": [ - { - "code": "450100", - "value": "南宁市", - "label": "南宁市", - "children": [ - { - "code": "450102", - "value": "兴宁区", - "label": "兴宁区" - }, - { - "code": "450103", - "value": "青秀区", - "label": "青秀区" - }, - { - "code": "450105", - "value": "江南区", - "label": "江南区" - }, - { - "code": "450107", - "value": "西乡塘区", - "label": "西乡塘区" - }, - { - "code": "450108", - "value": "良庆区", - "label": "良庆区" - }, - { - "code": "450109", - "value": "邕宁区", - "label": "邕宁区" - }, - { - "code": "450110", - "value": "武鸣区", - "label": "武鸣区" - }, - { - "code": "450123", - "value": "隆安县", - "label": "隆安县" - }, - { - "code": "450124", - "value": "马山县", - "label": "马山县" - }, - { - "code": "450125", - "value": "上林县", - "label": "上林县" - }, - { - "code": "450126", - "value": "宾阳县", - "label": "宾阳县" - }, - { - "code": "450127", - "value": "横县", - "label": "横县" - } - ] - }, - { - "code": "450200", - "value": "柳州市", - "label": "柳州市", - "children": [ - { - "code": "450202", - "value": "城中区", - "label": "城中区" - }, - { - "code": "450203", - "value": "鱼峰区", - "label": "鱼峰区" - }, - { - "code": "450204", - "value": "柳南区", - "label": "柳南区" - }, - { - "code": "450205", - "value": "柳北区", - "label": "柳北区" - }, - { - "code": "450206", - "value": "柳江区", - "label": "柳江区" - }, - { - "code": "450222", - "value": "柳城县", - "label": "柳城县" - }, - { - "code": "450223", - "value": "鹿寨县", - "label": "鹿寨县" - }, - { - "code": "450224", - "value": "融安县", - "label": "融安县" - }, - { - "code": "450225", - "value": "融水苗族自治县", - "label": "融水苗族自治县" - }, - { - "code": "450226", - "value": "三江侗族自治县", - "label": "三江侗族自治县" - } - ] - }, - { - "code": "450300", - "value": "桂林市", - "label": "桂林市", - "children": [ - { - "code": "450302", - "value": "秀峰区", - "label": "秀峰区" - }, - { - "code": "450303", - "value": "叠彩区", - "label": "叠彩区" - }, - { - "code": "450304", - "value": "象山区", - "label": "象山区" - }, - { - "code": "450305", - "value": "七星区", - "label": "七星区" - }, - { - "code": "450311", - "value": "雁山区", - "label": "雁山区" - }, - { - "code": "450312", - "value": "临桂区", - "label": "临桂区" - }, - { - "code": "450321", - "value": "阳朔县", - "label": "阳朔县" - }, - { - "code": "450323", - "value": "灵川县", - "label": "灵川县" - }, - { - "code": "450324", - "value": "全州县", - "label": "全州县" - }, - { - "code": "450325", - "value": "兴安县", - "label": "兴安县" - }, - { - "code": "450326", - "value": "永福县", - "label": "永福县" - }, - { - "code": "450327", - "value": "灌阳县", - "label": "灌阳县" - }, - { - "code": "450328", - "value": "龙胜各族自治县", - "label": "龙胜各族自治县" - }, - { - "code": "450329", - "value": "资源县", - "label": "资源县" - }, - { - "code": "450330", - "value": "平乐县", - "label": "平乐县" - }, - { - "code": "450381", - "value": "荔浦市", - "label": "荔浦市" - }, - { - "code": "450332", - "value": "恭城瑶族自治县", - "label": "恭城瑶族自治县" - } - ] - }, - { - "code": "450400", - "value": "梧州市", - "label": "梧州市", - "children": [ - { - "code": "450403", - "value": "万秀区", - "label": "万秀区" - }, - { - "code": "450405", - "value": "长洲区", - "label": "长洲区" - }, - { - "code": "450406", - "value": "龙圩区", - "label": "龙圩区" - }, - { - "code": "450421", - "value": "苍梧县", - "label": "苍梧县" - }, - { - "code": "450422", - "value": "藤县", - "label": "藤县" - }, - { - "code": "450423", - "value": "蒙山县", - "label": "蒙山县" - }, - { - "code": "450481", - "value": "岑溪市", - "label": "岑溪市" - } - ] - }, - { - "code": "450500", - "value": "北海市", - "label": "北海市", - "children": [ - { - "code": "450502", - "value": "海城区", - "label": "海城区" - }, - { - "code": "450503", - "value": "银海区", - "label": "银海区" - }, - { - "code": "450512", - "value": "铁山港区", - "label": "铁山港区" - }, - { - "code": "450521", - "value": "合浦县", - "label": "合浦县" - } - ] - }, - { - "code": "450600", - "value": "防城港市", - "label": "防城港市", - "children": [ - { - "code": "450602", - "value": "港口区", - "label": "港口区" - }, - { - "code": "450603", - "value": "防城区", - "label": "防城区" - }, - { - "code": "450621", - "value": "上思县", - "label": "上思县" - }, - { - "code": "450681", - "value": "东兴市", - "label": "东兴市" - } - ] - }, - { - "code": "450700", - "value": "钦州市", - "label": "钦州市", - "children": [ - { - "code": "450702", - "value": "钦南区", - "label": "钦南区" - }, - { - "code": "450703", - "value": "钦北区", - "label": "钦北区" - }, - { - "code": "450721", - "value": "灵山县", - "label": "灵山县" - }, - { - "code": "450722", - "value": "浦北县", - "label": "浦北县" - } - ] - }, - { - "code": "450800", - "value": "贵港市", - "label": "贵港市", - "children": [ - { - "code": "450802", - "value": "港北区", - "label": "港北区" - }, - { - "code": "450803", - "value": "港南区", - "label": "港南区" - }, - { - "code": "450804", - "value": "覃塘区", - "label": "覃塘区" - }, - { - "code": "450821", - "value": "平南县", - "label": "平南县" - }, - { - "code": "450881", - "value": "桂平市", - "label": "桂平市" - } - ] - }, - { - "code": "450900", - "value": "玉林市", - "label": "玉林市", - "children": [ - { - "code": "450902", - "value": "玉州区", - "label": "玉州区" - }, - { - "code": "450903", - "value": "福绵区", - "label": "福绵区" - }, - { - "code": "450921", - "value": "容县", - "label": "容县" - }, - { - "code": "450922", - "value": "陆川县", - "label": "陆川县" - }, - { - "code": "450923", - "value": "博白县", - "label": "博白县" - }, - { - "code": "450924", - "value": "兴业县", - "label": "兴业县" - }, - { - "code": "450981", - "value": "北流市", - "label": "北流市" - } - ] - }, - { - "code": "451000", - "value": "百色市", - "label": "百色市", - "children": [ - { - "code": "451002", - "value": "右江区", - "label": "右江区" - }, - { - "code": "451003", - "value": "田阳区", - "label": "田阳区" - }, - { - "code": "451022", - "value": "田东县", - "label": "田东县" - }, - { - "code": "451024", - "value": "德保县", - "label": "德保县" - }, - { - "code": "451026", - "value": "那坡县", - "label": "那坡县" - }, - { - "code": "451027", - "value": "凌云县", - "label": "凌云县" - }, - { - "code": "451028", - "value": "乐业县", - "label": "乐业县" - }, - { - "code": "451029", - "value": "田林县", - "label": "田林县" - }, - { - "code": "451030", - "value": "西林县", - "label": "西林县" - }, - { - "code": "451031", - "value": "隆林各族自治县", - "label": "隆林各族自治县" - }, - { - "code": "451081", - "value": "靖西市", - "label": "靖西市" - }, - { - "code": "451082", - "value": "平果市", - "label": "平果市" - } - ] - }, - { - "code": "451100", - "value": "贺州市", - "label": "贺州市", - "children": [ - { - "code": "451102", - "value": "八步区", - "label": "八步区" - }, - { - "code": "451103", - "value": "平桂区", - "label": "平桂区" - }, - { - "code": "451121", - "value": "昭平县", - "label": "昭平县" - }, - { - "code": "451122", - "value": "钟山县", - "label": "钟山县" - }, - { - "code": "451123", - "value": "富川瑶族自治县", - "label": "富川瑶族自治县" - } - ] - }, - { - "code": "451200", - "value": "河池市", - "label": "河池市", - "children": [ - { - "code": "451202", - "value": "金城江区", - "label": "金城江区" - }, - { - "code": "451203", - "value": "宜州区", - "label": "宜州区" - }, - { - "code": "451221", - "value": "南丹县", - "label": "南丹县" - }, - { - "code": "451222", - "value": "天峨县", - "label": "天峨县" - }, - { - "code": "451223", - "value": "凤山县", - "label": "凤山县" - }, - { - "code": "451224", - "value": "东兰县", - "label": "东兰县" - }, - { - "code": "451225", - "value": "罗城仫佬族自治县", - "label": "罗城仫佬族自治县" - }, - { - "code": "451226", - "value": "环江毛南族自治县", - "label": "环江毛南族自治县" - }, - { - "code": "451227", - "value": "巴马瑶族自治县", - "label": "巴马瑶族自治县" - }, - { - "code": "451228", - "value": "都安瑶族自治县", - "label": "都安瑶族自治县" - }, - { - "code": "451229", - "value": "大化瑶族自治县", - "label": "大化瑶族自治县" - } - ] - }, - { - "code": "451300", - "value": "来宾市", - "label": "来宾市", - "children": [ - { - "code": "451302", - "value": "兴宾区", - "label": "兴宾区" - }, - { - "code": "451321", - "value": "忻城县", - "label": "忻城县" - }, - { - "code": "451322", - "value": "象州县", - "label": "象州县" - }, - { - "code": "451323", - "value": "武宣县", - "label": "武宣县" - }, - { - "code": "451324", - "value": "金秀瑶族自治县", - "label": "金秀瑶族自治县" - }, - { - "code": "451381", - "value": "合山市", - "label": "合山市" - } - ] - }, - { - "code": "451400", - "value": "崇左市", - "label": "崇左市", - "children": [ - { - "code": "451402", - "value": "江州区", - "label": "江州区" - }, - { - "code": "451421", - "value": "扶绥县", - "label": "扶绥县" - }, - { - "code": "451422", - "value": "宁明县", - "label": "宁明县" - }, - { - "code": "451423", - "value": "龙州县", - "label": "龙州县" - }, - { - "code": "451424", - "value": "大新县", - "label": "大新县" - }, - { - "code": "451425", - "value": "天等县", - "label": "天等县" - }, - { - "code": "451481", - "value": "凭祥市", - "label": "凭祥市" - } - ] - } - ] - }, - { - "code": "460000", - "value": "海南省", - "label": "海南省", - "children": [ - { - "code": "460100", - "value": "海口市", - "label": "海口市", - "children": [ - { - "code": "460105", - "value": "秀英区", - "label": "秀英区" - }, - { - "code": "460106", - "value": "龙华区", - "label": "龙华区" - }, - { - "code": "460107", - "value": "琼山区", - "label": "琼山区" - }, - { - "code": "460108", - "value": "美兰区", - "label": "美兰区" - } - ] - }, - { - "code": "460200", - "value": "三亚市", - "label": "三亚市", - "children": [ - { - "code": "460202", - "value": "海棠区", - "label": "海棠区" - }, - { - "code": "460203", - "value": "吉阳区", - "label": "吉阳区" - }, - { - "code": "460204", - "value": "天涯区", - "label": "天涯区" - }, - { - "code": "460205", - "value": "崖州区", - "label": "崖州区" - } - ] - }, - { - "code": "460300", - "value": "三沙市", - "label": "三沙市", - "children": [] - }, - { - "code": "460400", - "value": "儋州市", - "label": "儋州市", - "children": [] - } - ] - }, - { - "code": "500000", - "label": "重庆市", - "value": "重庆市", - "children": [ - { - "code": "500100", - "label": "重庆市", - "value": "重庆市", - "children": [ - { "code": "500101", "label": "渝中区", "value": "渝中区" }, - { "code": "500102", "label": "江北区", "value": "江北区" }, - { "code": "500103", "label": "南岸区", "value": "南岸区" }, - { "code": "500104", "label": "北碚区", "value": "北碚区" }, - { "code": "500105", "label": "渝北区", "value": "渝北区" }, - { "code": "500106", "label": "巴南区", "value": "巴南区" }, - { "code": "500107", "label": "合川区", "value": "合川区" }, - { "code": "500108", "label": "永川区", "value": "永川区" }, - { "code": "500109", "label": "江津区", "value": "江津区" }, - { "code": "500110", "label": "沙坪坝区", "value": "沙坪坝区" }, - { "code": "500111", "label": "九龙坡区", "value": "九龙坡区" }, - { "code": "500112", "label": "大渡口区", "value": "大渡口区" }, - { "code": "500113", "label": "铜梁区", "value": "铜梁区" }, - { "code": "500114", "label": "潼南区", "value": "潼南区" }, - { "code": "500115", "label": "荣昌区", "value": "荣昌区" }, - { "code": "500116", "label": "梁平区", "value": "梁平区" }, - { "code": "500117", "label": "武隆区", "value": "武隆区" }, - { "code": "500118", "label": "丰都县", "value": "丰都县" }, - { "code": "500119", "label": "忠县", "value": "忠县" }, - { "code": "500120", "label": "开县", "value": "开县" }, - { "code": "500121", "label": "云阳县", "value": "云阳县" }, - { "code": "500122", "label": "奉节县", "value": "奉节县" }, - { "code": "500123", "label": "巫山县", "value": "巫山县" }, - { "code": "500124", "label": "巫溪县", "value": "巫溪县" }, - { "code": "500125", "label": "石柱土家族自治县", "value": "石柱土家族自治县" }, - { "code": "500126", "label": "秀山土家族苗族自治县", "value": "秀山土家族苗族自治县" }, - { "code": "500127", "label": "酉阳土家族苗族自治县", "value": "酉阳土家族苗族自治县" }, - { "code": "500128", "label": "彭水苗族土家族自治县", "value": "彭水苗族土家族自治县" } - ] - } - ] - }, - { - "code": "510000", - "value": "四川省", - "label": "四川省", - "children": [ - { - "code": "510100", - "value": "成都市", - "label": "成都市", - "children": [ - { - "code": "510104", - "value": "锦江区", - "label": "锦江区" - }, - { - "code": "510105", - "value": "青羊区", - "label": "青羊区" - }, - { - "code": "510106", - "value": "金牛区", - "label": "金牛区" - }, - { - "code": "510107", - "value": "武侯区", - "label": "武侯区" - }, - { - "code": "510108", - "value": "成华区", - "label": "成华区" - }, - { - "code": "510112", - "value": "龙泉驿区", - "label": "龙泉驿区" - }, - { - "code": "510113", - "value": "青白江区", - "label": "青白江区" - }, - { - "code": "510114", - "value": "新都区", - "label": "新都区" - }, - { - "code": "510115", - "value": "温江区", - "label": "温江区" - }, - { - "code": "510116", - "value": "双流区", - "label": "双流区" - }, - { - "code": "510117", - "value": "郫都区", - "label": "郫都区" - }, - { - "code": "510118", - "value": "新津区", - "label": "新津区" - }, - { - "code": "510121", - "value": "金堂县", - "label": "金堂县" - }, - { - "code": "510129", - "value": "大邑县", - "label": "大邑县" - }, - { - "code": "510131", - "value": "蒲江县", - "label": "蒲江县" - }, - { - "code": "510181", - "value": "都江堰市", - "label": "都江堰市" - }, - { - "code": "510182", - "value": "彭州市", - "label": "彭州市" - }, - { - "code": "510183", - "value": "邛崃市", - "label": "邛崃市" - }, - { - "code": "510184", - "value": "崇州市", - "label": "崇州市" - }, - { - "code": "510185", - "value": "简阳市", - "label": "简阳市" - } - ] - }, - { - "code": "510300", - "value": "自贡市", - "label": "自贡市", - "children": [ - { - "code": "510302", - "value": "自流井区", - "label": "自流井区" - }, - { - "code": "510303", - "value": "贡井区", - "label": "贡井区" - }, - { - "code": "510304", - "value": "大安区", - "label": "大安区" - }, - { - "code": "510311", - "value": "沿滩区", - "label": "沿滩区" - }, - { - "code": "510321", - "value": "荣县", - "label": "荣县" - }, - { - "code": "510322", - "value": "富顺县", - "label": "富顺县" - } - ] - }, - { - "code": "510400", - "value": "攀枝花市", - "label": "攀枝花市", - "children": [ - { - "code": "510402", - "value": "东区", - "label": "东区" - }, - { - "code": "510403", - "value": "西区", - "label": "西区" - }, - { - "code": "510411", - "value": "仁和区", - "label": "仁和区" - }, - { - "code": "510421", - "value": "米易县", - "label": "米易县" - }, - { - "code": "510422", - "value": "盐边县", - "label": "盐边县" - } - ] - }, - { - "code": "510500", - "value": "泸州市", - "label": "泸州市", - "children": [ - { - "code": "510502", - "value": "江阳区", - "label": "江阳区" - }, - { - "code": "510503", - "value": "纳溪区", - "label": "纳溪区" - }, - { - "code": "510504", - "value": "龙马潭区", - "label": "龙马潭区" - }, - { - "code": "510521", - "value": "泸县", - "label": "泸县" - }, - { - "code": "510522", - "value": "合江县", - "label": "合江县" - }, - { - "code": "510524", - "value": "叙永县", - "label": "叙永县" - }, - { - "code": "510525", - "value": "古蔺县", - "label": "古蔺县" - } - ] - }, - { - "code": "510600", - "value": "德阳市", - "label": "德阳市", - "children": [ - { - "code": "510603", - "value": "旌阳区", - "label": "旌阳区" - }, - { - "code": "510604", - "value": "罗江区", - "label": "罗江区" - }, - { - "code": "510623", - "value": "中江县", - "label": "中江县" - }, - { - "code": "510681", - "value": "广汉市", - "label": "广汉市" - }, - { - "code": "510682", - "value": "什邡市", - "label": "什邡市" - }, - { - "code": "510683", - "value": "绵竹市", - "label": "绵竹市" - } - ] - }, - { - "code": "510700", - "value": "绵阳市", - "label": "绵阳市", - "children": [ - { - "code": "510703", - "value": "涪城区", - "label": "涪城区" - }, - { - "code": "510704", - "value": "游仙区", - "label": "游仙区" - }, - { - "code": "510705", - "value": "安州区", - "label": "安州区" - }, - { - "code": "510722", - "value": "三台县", - "label": "三台县" - }, - { - "code": "510723", - "value": "盐亭县", - "label": "盐亭县" - }, - { - "code": "510725", - "value": "梓潼县", - "label": "梓潼县" - }, - { - "code": "510726", - "value": "北川羌族自治县", - "label": "北川羌族自治县" - }, - { - "code": "510727", - "value": "平武县", - "label": "平武县" - }, - { - "code": "510781", - "value": "江油市", - "label": "江油市" - } - ] - }, - { - "code": "510800", - "value": "广元市", - "label": "广元市", - "children": [ - { - "code": "510802", - "value": "利州区", - "label": "利州区" - }, - { - "code": "510811", - "value": "昭化区", - "label": "昭化区" - }, - { - "code": "510812", - "value": "朝天区", - "label": "朝天区" - }, - { - "code": "510821", - "value": "旺苍县", - "label": "旺苍县" - }, - { - "code": "510822", - "value": "青川县", - "label": "青川县" - }, - { - "code": "510823", - "value": "剑阁县", - "label": "剑阁县" - }, - { - "code": "510824", - "value": "苍溪县", - "label": "苍溪县" - } - ] - }, - { - "code": "510900", - "value": "遂宁市", - "label": "遂宁市", - "children": [ - { - "code": "510903", - "value": "船山区", - "label": "船山区" - }, - { - "code": "510904", - "value": "安居区", - "label": "安居区" - }, - { - "code": "510921", - "value": "蓬溪县", - "label": "蓬溪县" - }, - { - "code": "510923", - "value": "大英县", - "label": "大英县" - }, - { - "code": "510981", - "value": "射洪市", - "label": "射洪市" - } - ] - }, - { - "code": "511000", - "value": "内江市", - "label": "内江市", - "children": [ - { - "code": "511002", - "value": "市中区", - "label": "市中区" - }, - { - "code": "511011", - "value": "东兴区", - "label": "东兴区" - }, - { - "code": "511024", - "value": "威远县", - "label": "威远县" - }, - { - "code": "511025", - "value": "资中县", - "label": "资中县" - }, - { - "code": "511083", - "value": "隆昌市", - "label": "隆昌市" - } - ] - }, - { - "code": "511100", - "value": "乐山市", - "label": "乐山市", - "children": [ - { - "code": "511102", - "value": "市中区", - "label": "市中区" - }, - { - "code": "511111", - "value": "沙湾区", - "label": "沙湾区" - }, - { - "code": "511112", - "value": "五通桥区", - "label": "五通桥区" - }, - { - "code": "511113", - "value": "金口河区", - "label": "金口河区" - }, - { - "code": "511123", - "value": "犍为县", - "label": "犍为县" - }, - { - "code": "511124", - "value": "井研县", - "label": "井研县" - }, - { - "code": "511126", - "value": "夹江县", - "label": "夹江县" - }, - { - "code": "511129", - "value": "沐川县", - "label": "沐川县" - }, - { - "code": "511132", - "value": "峨边彝族自治县", - "label": "峨边彝族自治县" - }, - { - "code": "511133", - "value": "马边彝族自治县", - "label": "马边彝族自治县" - }, - { - "code": "511181", - "value": "峨眉山市", - "label": "峨眉山市" - } - ] - }, - { - "code": "511300", - "value": "南充市", - "label": "南充市", - "children": [ - { - "code": "511302", - "value": "顺庆区", - "label": "顺庆区" - }, - { - "code": "511303", - "value": "高坪区", - "label": "高坪区" - }, - { - "code": "511304", - "value": "嘉陵区", - "label": "嘉陵区" - }, - { - "code": "511321", - "value": "南部县", - "label": "南部县" - }, - { - "code": "511322", - "value": "营山县", - "label": "营山县" - }, - { - "code": "511323", - "value": "蓬安县", - "label": "蓬安县" - }, - { - "code": "511324", - "value": "仪陇县", - "label": "仪陇县" - }, - { - "code": "511325", - "value": "西充县", - "label": "西充县" - }, - { - "code": "511381", - "value": "阆中市", - "label": "阆中市" - } - ] - }, - { - "code": "511400", - "value": "眉山市", - "label": "眉山市", - "children": [ - { - "code": "511402", - "value": "东坡区", - "label": "东坡区" - }, - { - "code": "511403", - "value": "彭山区", - "label": "彭山区" - }, - { - "code": "511421", - "value": "仁寿县", - "label": "仁寿县" - }, - { - "code": "511423", - "value": "洪雅县", - "label": "洪雅县" - }, - { - "code": "511424", - "value": "丹棱县", - "label": "丹棱县" - }, - { - "code": "511425", - "value": "青神县", - "label": "青神县" - } - ] - }, - { - "code": "511500", - "value": "宜宾市", - "label": "宜宾市", - "children": [ - { - "code": "511502", - "value": "翠屏区", - "label": "翠屏区" - }, - { - "code": "511503", - "value": "南溪区", - "label": "南溪区" - }, - { - "code": "511504", - "value": "叙州区", - "label": "叙州区" - }, - { - "code": "511523", - "value": "江安县", - "label": "江安县" - }, - { - "code": "511524", - "value": "长宁县", - "label": "长宁县" - }, - { - "code": "511525", - "value": "高县", - "label": "高县" - }, - { - "code": "511526", - "value": "珙县", - "label": "珙县" - }, - { - "code": "511527", - "value": "筠连县", - "label": "筠连县" - }, - { - "code": "511528", - "value": "兴文县", - "label": "兴文县" - }, - { - "code": "511529", - "value": "屏山县", - "label": "屏山县" - } - ] - }, - { - "code": "511600", - "value": "广安市", - "label": "广安市", - "children": [ - { - "code": "511602", - "value": "广安区", - "label": "广安区" - }, - { - "code": "511603", - "value": "前锋区", - "label": "前锋区" - }, - { - "code": "511621", - "value": "岳池县", - "label": "岳池县" - }, - { - "code": "511622", - "value": "武胜县", - "label": "武胜县" - }, - { - "code": "511623", - "value": "邻水县", - "label": "邻水县" - }, - { - "code": "511681", - "value": "华蓥市", - "label": "华蓥市" - } - ] - }, - { - "code": "511700", - "value": "达州市", - "label": "达州市", - "children": [ - { - "code": "511702", - "value": "通川区", - "label": "通川区" - }, - { - "code": "511703", - "value": "达川区", - "label": "达川区" - }, - { - "code": "511722", - "value": "宣汉县", - "label": "宣汉县" - }, - { - "code": "511723", - "value": "开江县", - "label": "开江县" - }, - { - "code": "511724", - "value": "大竹县", - "label": "大竹县" - }, - { - "code": "511725", - "value": "渠县", - "label": "渠县" - }, - { - "code": "511781", - "value": "万源市", - "label": "万源市" - } - ] - }, - { - "code": "511800", - "value": "雅安市", - "label": "雅安市", - "children": [ - { - "code": "511802", - "value": "雨城区", - "label": "雨城区" - }, - { - "code": "511803", - "value": "名山区", - "label": "名山区" - }, - { - "code": "511822", - "value": "荥经县", - "label": "荥经县" - }, - { - "code": "511823", - "value": "汉源县", - "label": "汉源县" - }, - { - "code": "511824", - "value": "石棉县", - "label": "石棉县" - }, - { - "code": "511825", - "value": "天全县", - "label": "天全县" - }, - { - "code": "511826", - "value": "芦山县", - "label": "芦山县" - }, - { - "code": "511827", - "value": "宝兴县", - "label": "宝兴县" - } - ] - }, - { - "code": "511900", - "value": "巴中市", - "label": "巴中市", - "children": [ - { - "code": "511902", - "value": "巴州区", - "label": "巴州区" - }, - { - "code": "511903", - "value": "恩阳区", - "label": "恩阳区" - }, - { - "code": "511921", - "value": "通江县", - "label": "通江县" - }, - { - "code": "511922", - "value": "南江县", - "label": "南江县" - }, - { - "code": "511923", - "value": "平昌县", - "label": "平昌县" - } - ] - }, - { - "code": "512000", - "value": "资阳市", - "label": "资阳市", - "children": [ - { - "code": "512002", - "value": "雁江区", - "label": "雁江区" - }, - { - "code": "512021", - "value": "安岳县", - "label": "安岳县" - }, - { - "code": "512022", - "value": "乐至县", - "label": "乐至县" - } - ] - }, - { - "code": "513200", - "value": "阿坝藏族羌族自治州", - "label": "阿坝藏族羌族自治州", - "children": [ - { - "code": "513201", - "value": "马尔康市", - "label": "马尔康市" - }, - { - "code": "513221", - "value": "汶川县", - "label": "汶川县" - }, - { - "code": "513222", - "value": "理县", - "label": "理县" - }, - { - "code": "513223", - "value": "茂县", - "label": "茂县" - }, - { - "code": "513224", - "value": "松潘县", - "label": "松潘县" - }, - { - "code": "513225", - "value": "九寨沟县", - "label": "九寨沟县" - }, - { - "code": "513226", - "value": "金川县", - "label": "金川县" - }, - { - "code": "513227", - "value": "小金县", - "label": "小金县" - }, - { - "code": "513228", - "value": "黑水县", - "label": "黑水县" - }, - { - "code": "513230", - "value": "壤塘县", - "label": "壤塘县" - }, - { - "code": "513231", - "value": "阿坝县", - "label": "阿坝县" - }, - { - "code": "513232", - "value": "若尔盖县", - "label": "若尔盖县" - }, - { - "code": "513233", - "value": "红原县", - "label": "红原县" - } - ] - }, - { - "code": "513300", - "value": "甘孜藏族自治州", - "label": "甘孜藏族自治州", - "children": [ - { - "code": "513301", - "value": "康定市", - "label": "康定市" - }, - { - "code": "513322", - "value": "泸定县", - "label": "泸定县" - }, - { - "code": "513323", - "value": "丹巴县", - "label": "丹巴县" - }, - { - "code": "513324", - "value": "九龙县", - "label": "九龙县" - }, - { - "code": "513325", - "value": "雅江县", - "label": "雅江县" - }, - { - "code": "513326", - "value": "道孚县", - "label": "道孚县" - }, - { - "code": "513327", - "value": "炉霍县", - "label": "炉霍县" - }, - { - "code": "513328", - "value": "甘孜县", - "label": "甘孜县" - }, - { - "code": "513329", - "value": "新龙县", - "label": "新龙县" - }, - { - "code": "513330", - "value": "德格县", - "label": "德格县" - }, - { - "code": "513331", - "value": "白玉县", - "label": "白玉县" - }, - { - "code": "513332", - "value": "石渠县", - "label": "石渠县" - }, - { - "code": "513333", - "value": "色达县", - "label": "色达县" - }, - { - "code": "513334", - "value": "理塘县", - "label": "理塘县" - }, - { - "code": "513335", - "value": "巴塘县", - "label": "巴塘县" - }, - { - "code": "513336", - "value": "乡城县", - "label": "乡城县" - }, - { - "code": "513337", - "value": "稻城县", - "label": "稻城县" - }, - { - "code": "513338", - "value": "得荣县", - "label": "得荣县" - } - ] - }, - { - "code": "513400", - "value": "凉山彝族自治州", - "label": "凉山彝族自治州", - "children": [ - { - "code": "513401", - "value": "西昌市", - "label": "西昌市" - }, - { - "code": "513422", - "value": "木里藏族自治县", - "label": "木里藏族自治县" - }, - { - "code": "513423", - "value": "盐源县", - "label": "盐源县" - }, - { - "code": "513424", - "value": "德昌县", - "label": "德昌县" - }, - { - "code": "513425", - "value": "会理县", - "label": "会理县" - }, - { - "code": "513426", - "value": "会东县", - "label": "会东县" - }, - { - "code": "513427", - "value": "宁南县", - "label": "宁南县" - }, - { - "code": "513428", - "value": "普格县", - "label": "普格县" - }, - { - "code": "513429", - "value": "布拖县", - "label": "布拖县" - }, - { - "code": "513430", - "value": "金阳县", - "label": "金阳县" - }, - { - "code": "513431", - "value": "昭觉县", - "label": "昭觉县" - }, - { - "code": "513432", - "value": "喜德县", - "label": "喜德县" - }, - { - "code": "513433", - "value": "冕宁县", - "label": "冕宁县" - }, - { - "code": "513434", - "value": "越西县", - "label": "越西县" - }, - { - "code": "513435", - "value": "甘洛县", - "label": "甘洛县" - }, - { - "code": "513436", - "value": "美姑县", - "label": "美姑县" - }, - { - "code": "513437", - "value": "雷波县", - "label": "雷波县" - } - ] - } - ] - }, - { - "code": "520000", - "value": "贵州省", - "label": "贵州省", - "children": [ - { - "code": "520100", - "value": "贵阳市", - "label": "贵阳市", - "children": [ - { - "code": "520102", - "value": "南明区", - "label": "南明区" - }, - { - "code": "520103", - "value": "云岩区", - "label": "云岩区" - }, - { - "code": "520111", - "value": "花溪区", - "label": "花溪区" - }, - { - "code": "520112", - "value": "乌当区", - "label": "乌当区" - }, - { - "code": "520113", - "value": "白云区", - "label": "白云区" - }, - { - "code": "520115", - "value": "观山湖区", - "label": "观山湖区" - }, - { - "code": "520121", - "value": "开阳县", - "label": "开阳县" - }, - { - "code": "520122", - "value": "息烽县", - "label": "息烽县" - }, - { - "code": "520123", - "value": "修文县", - "label": "修文县" - }, - { - "code": "520181", - "value": "清镇市", - "label": "清镇市" - } - ] - }, - { - "code": "520200", - "value": "六盘水市", - "label": "六盘水市", - "children": [ - { - "code": "520201", - "value": "钟山区", - "label": "钟山区" - }, - { - "code": "520203", - "value": "六枝特区", - "label": "六枝特区" - }, - { - "code": "520221", - "value": "水城县", - "label": "水城县" - }, - { - "code": "520281", - "value": "盘州市", - "label": "盘州市" - } - ] - }, - { - "code": "520300", - "value": "遵义市", - "label": "遵义市", - "children": [ - { - "code": "520302", - "value": "红花岗区", - "label": "红花岗区" - }, - { - "code": "520303", - "value": "汇川区", - "label": "汇川区" - }, - { - "code": "520304", - "value": "播州区", - "label": "播州区" - }, - { - "code": "520322", - "value": "桐梓县", - "label": "桐梓县" - }, - { - "code": "520323", - "value": "绥阳县", - "label": "绥阳县" - }, - { - "code": "520324", - "value": "正安县", - "label": "正安县" - }, - { - "code": "520325", - "value": "道真仡佬族苗族自治县", - "label": "道真仡佬族苗族自治县" - }, - { - "code": "520326", - "value": "务川仡佬族苗族自治县", - "label": "务川仡佬族苗族自治县" - }, - { - "code": "520327", - "value": "凤冈县", - "label": "凤冈县" - }, - { - "code": "520328", - "value": "湄潭县", - "label": "湄潭县" - }, - { - "code": "520329", - "value": "余庆县", - "label": "余庆县" - }, - { - "code": "520330", - "value": "习水县", - "label": "习水县" - }, - { - "code": "520381", - "value": "赤水市", - "label": "赤水市" - }, - { - "code": "520382", - "value": "仁怀市", - "label": "仁怀市" - } - ] - }, - { - "code": "520400", - "value": "安顺市", - "label": "安顺市", - "children": [ - { - "code": "520402", - "value": "西秀区", - "label": "西秀区" - }, - { - "code": "520403", - "value": "平坝区", - "label": "平坝区" - }, - { - "code": "520422", - "value": "普定县", - "label": "普定县" - }, - { - "code": "520423", - "value": "镇宁布依族苗族自治县", - "label": "镇宁布依族苗族自治县" - }, - { - "code": "520424", - "value": "关岭布依族苗族自治县", - "label": "关岭布依族苗族自治县" - }, - { - "code": "520425", - "value": "紫云苗族布依族自治县", - "label": "紫云苗族布依族自治县" - } - ] - }, - { - "code": "520500", - "value": "毕节市", - "label": "毕节市", - "children": [ - { - "code": "520502", - "value": "七星关区", - "label": "七星关区" - }, - { - "code": "520521", - "value": "大方县", - "label": "大方县" - }, - { - "code": "520522", - "value": "黔西县", - "label": "黔西县" - }, - { - "code": "520523", - "value": "金沙县", - "label": "金沙县" - }, - { - "code": "520524", - "value": "织金县", - "label": "织金县" - }, - { - "code": "520525", - "value": "纳雍县", - "label": "纳雍县" - }, - { - "code": "520526", - "value": "威宁彝族回族苗族自治县", - "label": "威宁彝族回族苗族自治县" - }, - { - "code": "520527", - "value": "赫章县", - "label": "赫章县" - } - ] - }, - { - "code": "520600", - "value": "铜仁市", - "label": "铜仁市", - "children": [ - { - "code": "520602", - "value": "碧江区", - "label": "碧江区" - }, - { - "code": "520603", - "value": "万山区", - "label": "万山区" - }, - { - "code": "520621", - "value": "江口县", - "label": "江口县" - }, - { - "code": "520622", - "value": "玉屏侗族自治县", - "label": "玉屏侗族自治县" - }, - { - "code": "520623", - "value": "石阡县", - "label": "石阡县" - }, - { - "code": "520624", - "value": "思南县", - "label": "思南县" - }, - { - "code": "520625", - "value": "印江土家族苗族自治县", - "label": "印江土家族苗族自治县" - }, - { - "code": "520626", - "value": "德江县", - "label": "德江县" - }, - { - "code": "520627", - "value": "沿河土家族自治县", - "label": "沿河土家族自治县" - }, - { - "code": "520628", - "value": "松桃苗族自治县", - "label": "松桃苗族自治县" - } - ] - }, - { - "code": "522300", - "value": "黔西南布依族苗族自治州", - "label": "黔西南布依族苗族自治州", - "children": [ - { - "code": "522301", - "value": "兴义市", - "label": "兴义市" - }, - { - "code": "522302", - "value": "兴仁市", - "label": "兴仁市" - }, - { - "code": "522323", - "value": "普安县", - "label": "普安县" - }, - { - "code": "522324", - "value": "晴隆县", - "label": "晴隆县" - }, - { - "code": "522325", - "value": "贞丰县", - "label": "贞丰县" - }, - { - "code": "522326", - "value": "望谟县", - "label": "望谟县" - }, - { - "code": "522327", - "value": "册亨县", - "label": "册亨县" - }, - { - "code": "522328", - "value": "安龙县", - "label": "安龙县" - } - ] - }, - { - "code": "522600", - "value": "黔东南苗族侗族自治州", - "label": "黔东南苗族侗族自治州", - "children": [ - { - "code": "522601", - "value": "凯里市", - "label": "凯里市" - }, - { - "code": "522622", - "value": "黄平县", - "label": "黄平县" - }, - { - "code": "522623", - "value": "施秉县", - "label": "施秉县" - }, - { - "code": "522624", - "value": "三穗县", - "label": "三穗县" - }, - { - "code": "522625", - "value": "镇远县", - "label": "镇远县" - }, - { - "code": "522626", - "value": "岑巩县", - "label": "岑巩县" - }, - { - "code": "522627", - "value": "天柱县", - "label": "天柱县" - }, - { - "code": "522628", - "value": "锦屏县", - "label": "锦屏县" - }, - { - "code": "522629", - "value": "剑河县", - "label": "剑河县" - }, - { - "code": "522630", - "value": "台江县", - "label": "台江县" - }, - { - "code": "522631", - "value": "黎平县", - "label": "黎平县" - }, - { - "code": "522632", - "value": "榕江县", - "label": "榕江县" - }, - { - "code": "522633", - "value": "从江县", - "label": "从江县" - }, - { - "code": "522634", - "value": "雷山县", - "label": "雷山县" - }, - { - "code": "522635", - "value": "麻江县", - "label": "麻江县" - }, - { - "code": "522636", - "value": "丹寨县", - "label": "丹寨县" - } - ] - }, - { - "code": "522700", - "value": "黔南布依族苗族自治州", - "label": "黔南布依族苗族自治州", - "children": [ - { - "code": "522701", - "value": "都匀市", - "label": "都匀市" - }, - { - "code": "522702", - "value": "福泉市", - "label": "福泉市" - }, - { - "code": "522722", - "value": "荔波县", - "label": "荔波县" - }, - { - "code": "522723", - "value": "贵定县", - "label": "贵定县" - }, - { - "code": "522725", - "value": "瓮安县", - "label": "瓮安县" - }, - { - "code": "522726", - "value": "独山县", - "label": "独山县" - }, - { - "code": "522727", - "value": "平塘县", - "label": "平塘县" - }, - { - "code": "522728", - "value": "罗甸县", - "label": "罗甸县" - }, - { - "code": "522729", - "value": "长顺县", - "label": "长顺县" - }, - { - "code": "522730", - "value": "龙里县", - "label": "龙里县" - }, - { - "code": "522731", - "value": "惠水县", - "label": "惠水县" - }, - { - "code": "522732", - "value": "三都水族自治县", - "label": "三都水族自治县" - } - ] - } - ] - }, - { - "code": "530000", - "value": "云南省", - "label": "云南省", - "children": [ - { - "code": "530100", - "value": "昆明市", - "label": "昆明市", - "children": [ - { - "code": "530102", - "value": "五华区", - "label": "五华区" - }, - { - "code": "530103", - "value": "盘龙区", - "label": "盘龙区" - }, - { - "code": "530111", - "value": "官渡区", - "label": "官渡区" - }, - { - "code": "530112", - "value": "西山区", - "label": "西山区" - }, - { - "code": "530113", - "value": "东川区", - "label": "东川区" - }, - { - "code": "530114", - "value": "呈贡区", - "label": "呈贡区" - }, - { - "code": "530115", - "value": "晋宁区", - "label": "晋宁区" - }, - { - "code": "530124", - "value": "富民县", - "label": "富民县" - }, - { - "code": "530125", - "value": "宜良县", - "label": "宜良县" - }, - { - "code": "530126", - "value": "石林彝族自治县", - "label": "石林彝族自治县" - }, - { - "code": "530127", - "value": "嵩明县", - "label": "嵩明县" - }, - { - "code": "530128", - "value": "禄劝彝族苗族自治县", - "label": "禄劝彝族苗族自治县" - }, - { - "code": "530129", - "value": "寻甸回族彝族自治县", - "label": "寻甸回族彝族自治县" - }, - { - "code": "530181", - "value": "安宁市", - "label": "安宁市" - } - ] - }, - { - "code": "530300", - "value": "曲靖市", - "label": "曲靖市", - "children": [ - { - "code": "530302", - "value": "麒麟区", - "label": "麒麟区" - }, - { - "code": "530303", - "value": "沾益区", - "label": "沾益区" - }, - { - "code": "530304", - "value": "马龙区", - "label": "马龙区" - }, - { - "code": "530322", - "value": "陆良县", - "label": "陆良县" - }, - { - "code": "530323", - "value": "师宗县", - "label": "师宗县" - }, - { - "code": "530324", - "value": "罗平县", - "label": "罗平县" - }, - { - "code": "530325", - "value": "富源县", - "label": "富源县" - }, - { - "code": "530326", - "value": "会泽县", - "label": "会泽县" - }, - { - "code": "530381", - "value": "宣威市", - "label": "宣威市" - } - ] - }, - { - "code": "530400", - "value": "玉溪市", - "label": "玉溪市", - "children": [ - { - "code": "530402", - "value": "红塔区", - "label": "红塔区" - }, - { - "code": "530403", - "value": "江川区", - "label": "江川区" - }, - { - "code": "530423", - "value": "通海县", - "label": "通海县" - }, - { - "code": "530424", - "value": "华宁县", - "label": "华宁县" - }, - { - "code": "530425", - "value": "易门县", - "label": "易门县" - }, - { - "code": "530426", - "value": "峨山彝族自治县", - "label": "峨山彝族自治县" - }, - { - "code": "530427", - "value": "新平彝族傣族自治县", - "label": "新平彝族傣族自治县" - }, - { - "code": "530428", - "value": "元江哈尼族彝族傣族自治县", - "label": "元江哈尼族彝族傣族自治县" - }, - { - "code": "530481", - "value": "澄江市", - "label": "澄江市" - } - ] - }, - { - "code": "530500", - "value": "保山市", - "label": "保山市", - "children": [ - { - "code": "530502", - "value": "隆阳区", - "label": "隆阳区" - }, - { - "code": "530521", - "value": "施甸县", - "label": "施甸县" - }, - { - "code": "530523", - "value": "龙陵县", - "label": "龙陵县" - }, - { - "code": "530524", - "value": "昌宁县", - "label": "昌宁县" - }, - { - "code": "530581", - "value": "腾冲市", - "label": "腾冲市" - } - ] - }, - { - "code": "530600", - "value": "昭通市", - "label": "昭通市", - "children": [ - { - "code": "530602", - "value": "昭阳区", - "label": "昭阳区" - }, - { - "code": "530621", - "value": "鲁甸县", - "label": "鲁甸县" - }, - { - "code": "530622", - "value": "巧家县", - "label": "巧家县" - }, - { - "code": "530623", - "value": "盐津县", - "label": "盐津县" - }, - { - "code": "530624", - "value": "大关县", - "label": "大关县" - }, - { - "code": "530625", - "value": "永善县", - "label": "永善县" - }, - { - "code": "530626", - "value": "绥江县", - "label": "绥江县" - }, - { - "code": "530627", - "value": "镇雄县", - "label": "镇雄县" - }, - { - "code": "530628", - "value": "彝良县", - "label": "彝良县" - }, - { - "code": "530629", - "value": "威信县", - "label": "威信县" - }, - { - "code": "530681", - "value": "水富市", - "label": "水富市" - } - ] - }, - { - "code": "530700", - "value": "丽江市", - "label": "丽江市", - "children": [ - { - "code": "530702", - "value": "古城区", - "label": "古城区" - }, - { - "code": "530721", - "value": "玉龙纳西族自治县", - "label": "玉龙纳西族自治县" - }, - { - "code": "530722", - "value": "永胜县", - "label": "永胜县" - }, - { - "code": "530723", - "value": "华坪县", - "label": "华坪县" - }, - { - "code": "530724", - "value": "宁蒗彝族自治县", - "label": "宁蒗彝族自治县" - } - ] - }, - { - "code": "530800", - "value": "普洱市", - "label": "普洱市", - "children": [ - { - "code": "530802", - "value": "思茅区", - "label": "思茅区" - }, - { - "code": "530821", - "value": "宁洱哈尼族彝族自治县", - "label": "宁洱哈尼族彝族自治县" - }, - { - "code": "530822", - "value": "墨江哈尼族自治县", - "label": "墨江哈尼族自治县" - }, - { - "code": "530823", - "value": "景东彝族自治县", - "label": "景东彝族自治县" - }, - { - "code": "530824", - "value": "景谷傣族彝族自治县", - "label": "景谷傣族彝族自治县" - }, - { - "code": "530825", - "value": "镇沅彝族哈尼族拉祜族自治县", - "label": "镇沅彝族哈尼族拉祜族自治县" - }, - { - "code": "530826", - "value": "江城哈尼族彝族自治县", - "label": "江城哈尼族彝族自治县" - }, - { - "code": "530827", - "value": "孟连傣族拉祜族佤族自治县", - "label": "孟连傣族拉祜族佤族自治县" - }, - { - "code": "530828", - "value": "澜沧拉祜族自治县", - "label": "澜沧拉祜族自治县" - }, - { - "code": "530829", - "value": "西盟佤族自治县", - "label": "西盟佤族自治县" - } - ] - }, - { - "code": "530900", - "value": "临沧市", - "label": "临沧市", - "children": [ - { - "code": "530902", - "value": "临翔区", - "label": "临翔区" - }, - { - "code": "530921", - "value": "凤庆县", - "label": "凤庆县" - }, - { - "code": "530922", - "value": "云县", - "label": "云县" - }, - { - "code": "530923", - "value": "永德县", - "label": "永德县" - }, - { - "code": "530924", - "value": "镇康县", - "label": "镇康县" - }, - { - "code": "530925", - "value": "双江拉祜族佤族布朗族傣族自治县", - "label": "双江拉祜族佤族布朗族傣族自治县" - }, - { - "code": "530926", - "value": "耿马傣族佤族自治县", - "label": "耿马傣族佤族自治县" - }, - { - "code": "530927", - "value": "沧源佤族自治县", - "label": "沧源佤族自治县" - } - ] - }, - { - "code": "532300", - "value": "楚雄彝族自治州", - "label": "楚雄彝族自治州", - "children": [ - { - "code": "532301", - "value": "楚雄市", - "label": "楚雄市" - }, - { - "code": "532322", - "value": "双柏县", - "label": "双柏县" - }, - { - "code": "532323", - "value": "牟定县", - "label": "牟定县" - }, - { - "code": "532324", - "value": "南华县", - "label": "南华县" - }, - { - "code": "532325", - "value": "姚安县", - "label": "姚安县" - }, - { - "code": "532326", - "value": "大姚县", - "label": "大姚县" - }, - { - "code": "532327", - "value": "永仁县", - "label": "永仁县" - }, - { - "code": "532328", - "value": "元谋县", - "label": "元谋县" - }, - { - "code": "532329", - "value": "武定县", - "label": "武定县" - }, - { - "code": "532331", - "value": "禄丰县", - "label": "禄丰县" - } - ] - }, - { - "code": "532500", - "value": "红河哈尼族彝族自治州", - "label": "红河哈尼族彝族自治州", - "children": [ - { - "code": "532501", - "value": "个旧市", - "label": "个旧市" - }, - { - "code": "532502", - "value": "开远市", - "label": "开远市" - }, - { - "code": "532503", - "value": "蒙自市", - "label": "蒙自市" - }, - { - "code": "532504", - "value": "弥勒市", - "label": "弥勒市" - }, - { - "code": "532523", - "value": "屏边苗族自治县", - "label": "屏边苗族自治县" - }, - { - "code": "532524", - "value": "建水县", - "label": "建水县" - }, - { - "code": "532525", - "value": "石屏县", - "label": "石屏县" - }, - { - "code": "532527", - "value": "泸西县", - "label": "泸西县" - }, - { - "code": "532528", - "value": "元阳县", - "label": "元阳县" - }, - { - "code": "532529", - "value": "红河县", - "label": "红河县" - }, - { - "code": "532530", - "value": "金平苗族瑶族傣族自治县", - "label": "金平苗族瑶族傣族自治县" - }, - { - "code": "532531", - "value": "绿春县", - "label": "绿春县" - }, - { - "code": "532532", - "value": "河口瑶族自治县", - "label": "河口瑶族自治县" - } - ] - }, - { - "code": "532600", - "value": "文山壮族苗族自治州", - "label": "文山壮族苗族自治州", - "children": [ - { - "code": "532601", - "value": "文山市", - "label": "文山市" - }, - { - "code": "532622", - "value": "砚山县", - "label": "砚山县" - }, - { - "code": "532623", - "value": "西畴县", - "label": "西畴县" - }, - { - "code": "532624", - "value": "麻栗坡县", - "label": "麻栗坡县" - }, - { - "code": "532625", - "value": "马关县", - "label": "马关县" - }, - { - "code": "532626", - "value": "丘北县", - "label": "丘北县" - }, - { - "code": "532627", - "value": "广南县", - "label": "广南县" - }, - { - "code": "532628", - "value": "富宁县", - "label": "富宁县" - } - ] - }, - { - "code": "532800", - "value": "西双版纳傣族自治州", - "label": "西双版纳傣族自治州", - "children": [ - { - "code": "532801", - "value": "景洪市", - "label": "景洪市" - }, - { - "code": "532822", - "value": "勐海县", - "label": "勐海县" - }, - { - "code": "532823", - "value": "勐腊县", - "label": "勐腊县" - } - ] - }, - { - "code": "532900", - "value": "大理白族自治州", - "label": "大理白族自治州", - "children": [ - { - "code": "532901", - "value": "大理市", - "label": "大理市" - }, - { - "code": "532922", - "value": "漾濞彝族自治县", - "label": "漾濞彝族自治县" - }, - { - "code": "532923", - "value": "祥云县", - "label": "祥云县" - }, - { - "code": "532924", - "value": "宾川县", - "label": "宾川县" - }, - { - "code": "532925", - "value": "弥渡县", - "label": "弥渡县" - }, - { - "code": "532926", - "value": "南涧彝族自治县", - "label": "南涧彝族自治县" - }, - { - "code": "532927", - "value": "巍山彝族回族自治县", - "label": "巍山彝族回族自治县" - }, - { - "code": "532928", - "value": "永平县", - "label": "永平县" - }, - { - "code": "532929", - "value": "云龙县", - "label": "云龙县" - }, - { - "code": "532930", - "value": "洱源县", - "label": "洱源县" - }, - { - "code": "532931", - "value": "剑川县", - "label": "剑川县" - }, - { - "code": "532932", - "value": "鹤庆县", - "label": "鹤庆县" - } - ] - }, - { - "code": "533100", - "value": "德宏傣族景颇族自治州", - "label": "德宏傣族景颇族自治州", - "children": [ - { - "code": "533102", - "value": "瑞丽市", - "label": "瑞丽市" - }, - { - "code": "533103", - "value": "芒市", - "label": "芒市" - }, - { - "code": "533122", - "value": "梁河县", - "label": "梁河县" - }, - { - "code": "533123", - "value": "盈江县", - "label": "盈江县" - }, - { - "code": "533124", - "value": "陇川县", - "label": "陇川县" - } - ] - }, - { - "code": "533300", - "value": "怒江傈僳族自治州", - "label": "怒江傈僳族自治州", - "children": [ - { - "code": "533301", - "value": "泸水市", - "label": "泸水市" - }, - { - "code": "533323", - "value": "福贡县", - "label": "福贡县" - }, - { - "code": "533324", - "value": "贡山独龙族怒族自治县", - "label": "贡山独龙族怒族自治县" - }, - { - "code": "533325", - "value": "兰坪白族普米族自治县", - "label": "兰坪白族普米族自治县" - } - ] - }, - { - "code": "533400", - "value": "迪庆藏族自治州", - "label": "迪庆藏族自治州", - "children": [ - { - "code": "533401", - "value": "香格里拉市", - "label": "香格里拉市" - }, - { - "code": "533422", - "value": "德钦县", - "label": "德钦县" - }, - { - "code": "533423", - "value": "维西傈僳族自治县", - "label": "维西傈僳族自治县" - } - ] - } - ] - }, - { - "code": "540000", - "value": "西藏自治区", - "label": "西藏自治区", - "children": [ - { - "code": "540100", - "value": "拉萨市", - "label": "拉萨市", - "children": [ - { - "code": "540102", - "value": "城关区", - "label": "城关区" - }, - { - "code": "540103", - "value": "堆龙德庆区", - "label": "堆龙德庆区" - }, - { - "code": "540104", - "value": "达孜区", - "label": "达孜区" - }, - { - "code": "540121", - "value": "林周县", - "label": "林周县" - }, - { - "code": "540122", - "value": "当雄县", - "label": "当雄县" - }, - { - "code": "540123", - "value": "尼木县", - "label": "尼木县" - }, - { - "code": "540124", - "value": "曲水县", - "label": "曲水县" - }, - { - "code": "540127", - "value": "墨竹工卡县", - "label": "墨竹工卡县" - } - ] - }, - { - "code": "540200", - "value": "日喀则市", - "label": "日喀则市", - "children": [ - { - "code": "540202", - "value": "桑珠孜区", - "label": "桑珠孜区" - }, - { - "code": "540221", - "value": "南木林县", - "label": "南木林县" - }, - { - "code": "540222", - "value": "江孜县", - "label": "江孜县" - }, - { - "code": "540223", - "value": "定日县", - "label": "定日县" - }, - { - "code": "540224", - "value": "萨迦县", - "label": "萨迦县" - }, - { - "code": "540225", - "value": "拉孜县", - "label": "拉孜县" - }, - { - "code": "540226", - "value": "昂仁县", - "label": "昂仁县" - }, - { - "code": "540227", - "value": "谢通门县", - "label": "谢通门县" - }, - { - "code": "540228", - "value": "白朗县", - "label": "白朗县" - }, - { - "code": "540229", - "value": "仁布县", - "label": "仁布县" - }, - { - "code": "540230", - "value": "康马县", - "label": "康马县" - }, - { - "code": "540231", - "value": "定结县", - "label": "定结县" - }, - { - "code": "540232", - "value": "仲巴县", - "label": "仲巴县" - }, - { - "code": "540233", - "value": "亚东县", - "label": "亚东县" - }, - { - "code": "540234", - "value": "吉隆县", - "label": "吉隆县" - }, - { - "code": "540235", - "value": "聂拉木县", - "label": "聂拉木县" - }, - { - "code": "540236", - "value": "萨嘎县", - "label": "萨嘎县" - }, - { - "code": "540237", - "value": "岗巴县", - "label": "岗巴县" - } - ] - }, - { - "code": "540300", - "value": "昌都市", - "label": "昌都市", - "children": [ - { - "code": "540302", - "value": "卡若区", - "label": "卡若区" - }, - { - "code": "540321", - "value": "江达县", - "label": "江达县" - }, - { - "code": "540322", - "value": "贡觉县", - "label": "贡觉县" - }, - { - "code": "540323", - "value": "类乌齐县", - "label": "类乌齐县" - }, - { - "code": "540324", - "value": "丁青县", - "label": "丁青县" - }, - { - "code": "540325", - "value": "察雅县", - "label": "察雅县" - }, - { - "code": "540326", - "value": "八宿县", - "label": "八宿县" - }, - { - "code": "540327", - "value": "左贡县", - "label": "左贡县" - }, - { - "code": "540328", - "value": "芒康县", - "label": "芒康县" - }, - { - "code": "540329", - "value": "洛隆县", - "label": "洛隆县" - }, - { - "code": "540330", - "value": "边坝县", - "label": "边坝县" - } - ] - }, - { - "code": "540400", - "value": "林芝市", - "label": "林芝市", - "children": [ - { - "code": "540402", - "value": "巴宜区", - "label": "巴宜区" - }, - { - "code": "540421", - "value": "工布江达县", - "label": "工布江达县" - }, - { - "code": "540422", - "value": "米林县", - "label": "米林县" - }, - { - "code": "540423", - "value": "墨脱县", - "label": "墨脱县" - }, - { - "code": "540424", - "value": "波密县", - "label": "波密县" - }, - { - "code": "540425", - "value": "察隅县", - "label": "察隅县" - }, - { - "code": "540426", - "value": "朗县", - "label": "朗县" - } - ] - }, - { - "code": "540500", - "value": "山南市", - "label": "山南市", - "children": [ - { - "code": "540502", - "value": "乃东区", - "label": "乃东区" - }, - { - "code": "540521", - "value": "扎囊县", - "label": "扎囊县" - }, - { - "code": "540522", - "value": "贡嘎县", - "label": "贡嘎县" - }, - { - "code": "540523", - "value": "桑日县", - "label": "桑日县" - }, - { - "code": "540524", - "value": "琼结县", - "label": "琼结县" - }, - { - "code": "540525", - "value": "曲松县", - "label": "曲松县" - }, - { - "code": "540526", - "value": "措美县", - "label": "措美县" - }, - { - "code": "540527", - "value": "洛扎县", - "label": "洛扎县" - }, - { - "code": "540528", - "value": "加查县", - "label": "加查县" - }, - { - "code": "540529", - "value": "隆子县", - "label": "隆子县" - }, - { - "code": "540530", - "value": "错那县", - "label": "错那县" - }, - { - "code": "540531", - "value": "浪卡子县", - "label": "浪卡子县" - } - ] - }, - { - "code": "540600", - "value": "那曲市", - "label": "那曲市", - "children": [ - { - "code": "540602", - "value": "色尼区", - "label": "色尼区" - }, - { - "code": "540621", - "value": "嘉黎县", - "label": "嘉黎县" - }, - { - "code": "540622", - "value": "比如县", - "label": "比如县" - }, - { - "code": "540623", - "value": "聂荣县", - "label": "聂荣县" - }, - { - "code": "540624", - "value": "安多县", - "label": "安多县" - }, - { - "code": "540625", - "value": "申扎县", - "label": "申扎县" - }, - { - "code": "540626", - "value": "索县", - "label": "索县" - }, - { - "code": "540627", - "value": "班戈县", - "label": "班戈县" - }, - { - "code": "540628", - "value": "巴青县", - "label": "巴青县" - }, - { - "code": "540629", - "value": "尼玛县", - "label": "尼玛县" - }, - { - "code": "540630", - "value": "双湖县", - "label": "双湖县" - } - ] - }, - { - "code": "542500", - "value": "阿里地区", - "label": "阿里地区", - "children": [ - { - "code": "542521", - "value": "普兰县", - "label": "普兰县" - }, - { - "code": "542522", - "value": "札达县", - "label": "札达县" - }, - { - "code": "542523", - "value": "噶尔县", - "label": "噶尔县" - }, - { - "code": "542524", - "value": "日土县", - "label": "日土县" - }, - { - "code": "542525", - "value": "革吉县", - "label": "革吉县" - }, - { - "code": "542526", - "value": "改则县", - "label": "改则县" - }, - { - "code": "542527", - "value": "措勤县", - "label": "措勤县" - } - ] - } - ] - }, - { - "code": "610000", - "value": "陕西省", - "label": "陕西省", - "children": [ - { - "code": "610100", - "value": "西安市", - "label": "西安市", - "children": [ - { - "code": "610102", - "value": "新城区", - "label": "新城区" - }, - { - "code": "610103", - "value": "碑林区", - "label": "碑林区" - }, - { - "code": "610104", - "value": "莲湖区", - "label": "莲湖区" - }, - { - "code": "610111", - "value": "灞桥区", - "label": "灞桥区" - }, - { - "code": "610112", - "value": "未央区", - "label": "未央区" - }, - { - "code": "610113", - "value": "雁塔区", - "label": "雁塔区" - }, - { - "code": "610114", - "value": "阎良区", - "label": "阎良区" - }, - { - "code": "610115", - "value": "临潼区", - "label": "临潼区" - }, - { - "code": "610116", - "value": "长安区", - "label": "长安区" - }, - { - "code": "610117", - "value": "高陵区", - "label": "高陵区" - }, - { - "code": "610118", - "value": "鄠邑区", - "label": "鄠邑区" - }, - { - "code": "610122", - "value": "蓝田县", - "label": "蓝田县" - }, - { - "code": "610124", - "value": "周至县", - "label": "周至县" - } - ] - }, - { - "code": "610200", - "value": "铜川市", - "label": "铜川市", - "children": [ - { - "code": "610202", - "value": "王益区", - "label": "王益区" - }, - { - "code": "610203", - "value": "印台区", - "label": "印台区" - }, - { - "code": "610204", - "value": "耀州区", - "label": "耀州区" - }, - { - "code": "610222", - "value": "宜君县", - "label": "宜君县" - } - ] - }, - { - "code": "610300", - "value": "宝鸡市", - "label": "宝鸡市", - "children": [ - { - "code": "610302", - "value": "渭滨区", - "label": "渭滨区" - }, - { - "code": "610303", - "value": "金台区", - "label": "金台区" - }, - { - "code": "610304", - "value": "陈仓区", - "label": "陈仓区" - }, - { - "code": "610322", - "value": "凤翔县", - "label": "凤翔县" - }, - { - "code": "610323", - "value": "岐山县", - "label": "岐山县" - }, - { - "code": "610324", - "value": "扶风县", - "label": "扶风县" - }, - { - "code": "610326", - "value": "眉县", - "label": "眉县" - }, - { - "code": "610327", - "value": "陇县", - "label": "陇县" - }, - { - "code": "610328", - "value": "千阳县", - "label": "千阳县" - }, - { - "code": "610329", - "value": "麟游县", - "label": "麟游县" - }, - { - "code": "610330", - "value": "凤县", - "label": "凤县" - }, - { - "code": "610331", - "value": "太白县", - "label": "太白县" - } - ] - }, - { - "code": "610400", - "value": "咸阳市", - "label": "咸阳市", - "children": [ - { - "code": "610402", - "value": "秦都区", - "label": "秦都区" - }, - { - "code": "610403", - "value": "杨陵区", - "label": "杨陵区" - }, - { - "code": "610404", - "value": "渭城区", - "label": "渭城区" - }, - { - "code": "610422", - "value": "三原县", - "label": "三原县" - }, - { - "code": "610423", - "value": "泾阳县", - "label": "泾阳县" - }, - { - "code": "610424", - "value": "乾县", - "label": "乾县" - }, - { - "code": "610425", - "value": "礼泉县", - "label": "礼泉县" - }, - { - "code": "610426", - "value": "永寿县", - "label": "永寿县" - }, - { - "code": "610428", - "value": "长武县", - "label": "长武县" - }, - { - "code": "610429", - "value": "旬邑县", - "label": "旬邑县" - }, - { - "code": "610430", - "value": "淳化县", - "label": "淳化县" - }, - { - "code": "610431", - "value": "武功县", - "label": "武功县" - }, - { - "code": "610481", - "value": "兴平市", - "label": "兴平市" - }, - { - "code": "610482", - "value": "彬州市", - "label": "彬州市" - } - ] - }, - { - "code": "610500", - "value": "渭南市", - "label": "渭南市", - "children": [ - { - "code": "610502", - "value": "临渭区", - "label": "临渭区" - }, - { - "code": "610503", - "value": "华州区", - "label": "华州区" - }, - { - "code": "610522", - "value": "潼关县", - "label": "潼关县" - }, - { - "code": "610523", - "value": "大荔县", - "label": "大荔县" - }, - { - "code": "610524", - "value": "合阳县", - "label": "合阳县" - }, - { - "code": "610525", - "value": "澄城县", - "label": "澄城县" - }, - { - "code": "610526", - "value": "蒲城县", - "label": "蒲城县" - }, - { - "code": "610527", - "value": "白水县", - "label": "白水县" - }, - { - "code": "610528", - "value": "富平县", - "label": "富平县" - }, - { - "code": "610581", - "value": "韩城市", - "label": "韩城市" - }, - { - "code": "610582", - "value": "华阴市", - "label": "华阴市" - } - ] - }, - { - "code": "610600", - "value": "延安市", - "label": "延安市", - "children": [ - { - "code": "610602", - "value": "宝塔区", - "label": "宝塔区" - }, - { - "code": "610603", - "value": "安塞区", - "label": "安塞区" - }, - { - "code": "610621", - "value": "延长县", - "label": "延长县" - }, - { - "code": "610622", - "value": "延川县", - "label": "延川县" - }, - { - "code": "610625", - "value": "志丹县", - "label": "志丹县" - }, - { - "code": "610626", - "value": "吴起县", - "label": "吴起县" - }, - { - "code": "610627", - "value": "甘泉县", - "label": "甘泉县" - }, - { - "code": "610628", - "value": "富县", - "label": "富县" - }, - { - "code": "610629", - "value": "洛川县", - "label": "洛川县" - }, - { - "code": "610630", - "value": "宜川县", - "label": "宜川县" - }, - { - "code": "610631", - "value": "黄龙县", - "label": "黄龙县" - }, - { - "code": "610632", - "value": "黄陵县", - "label": "黄陵县" - }, - { - "code": "610681", - "value": "子长市", - "label": "子长市" - } - ] - }, - { - "code": "610700", - "value": "汉中市", - "label": "汉中市", - "children": [ - { - "code": "610702", - "value": "汉台区", - "label": "汉台区" - }, - { - "code": "610703", - "value": "南郑区", - "label": "南郑区" - }, - { - "code": "610722", - "value": "城固县", - "label": "城固县" - }, - { - "code": "610723", - "value": "洋县", - "label": "洋县" - }, - { - "code": "610724", - "value": "西乡县", - "label": "西乡县" - }, - { - "code": "610725", - "value": "勉县", - "label": "勉县" - }, - { - "code": "610726", - "value": "宁强县", - "label": "宁强县" - }, - { - "code": "610727", - "value": "略阳县", - "label": "略阳县" - }, - { - "code": "610728", - "value": "镇巴县", - "label": "镇巴县" - }, - { - "code": "610729", - "value": "留坝县", - "label": "留坝县" - }, - { - "code": "610730", - "value": "佛坪县", - "label": "佛坪县" - } - ] - }, - { - "code": "610800", - "value": "榆林市", - "label": "榆林市", - "children": [ - { - "code": "610802", - "value": "榆阳区", - "label": "榆阳区" - }, - { - "code": "610803", - "value": "横山区", - "label": "横山区" - }, - { - "code": "610822", - "value": "府谷县", - "label": "府谷县" - }, - { - "code": "610824", - "value": "靖边县", - "label": "靖边县" - }, - { - "code": "610825", - "value": "定边县", - "label": "定边县" - }, - { - "code": "610826", - "value": "绥德县", - "label": "绥德县" - }, - { - "code": "610827", - "value": "米脂县", - "label": "米脂县" - }, - { - "code": "610828", - "value": "佳县", - "label": "佳县" - }, - { - "code": "610829", - "value": "吴堡县", - "label": "吴堡县" - }, - { - "code": "610830", - "value": "清涧县", - "label": "清涧县" - }, - { - "code": "610831", - "value": "子洲县", - "label": "子洲县" - }, - { - "code": "610881", - "value": "神木市", - "label": "神木市" - } - ] - }, - { - "code": "610900", - "value": "安康市", - "label": "安康市", - "children": [ - { - "code": "610902", - "value": "汉滨区", - "label": "汉滨区" - }, - { - "code": "610921", - "value": "汉阴县", - "label": "汉阴县" - }, - { - "code": "610922", - "value": "石泉县", - "label": "石泉县" - }, - { - "code": "610923", - "value": "宁陕县", - "label": "宁陕县" - }, - { - "code": "610924", - "value": "紫阳县", - "label": "紫阳县" - }, - { - "code": "610925", - "value": "岚皋县", - "label": "岚皋县" - }, - { - "code": "610926", - "value": "平利县", - "label": "平利县" - }, - { - "code": "610927", - "value": "镇坪县", - "label": "镇坪县" - }, - { - "code": "610928", - "value": "旬阳县", - "label": "旬阳县" - }, - { - "code": "610929", - "value": "白河县", - "label": "白河县" - } - ] - }, - { - "code": "611000", - "value": "商洛市", - "label": "商洛市", - "children": [ - { - "code": "611002", - "value": "商州区", - "label": "商州区" - }, - { - "code": "611021", - "value": "洛南县", - "label": "洛南县" - }, - { - "code": "611022", - "value": "丹凤县", - "label": "丹凤县" - }, - { - "code": "611023", - "value": "商南县", - "label": "商南县" - }, - { - "code": "611024", - "value": "山阳县", - "label": "山阳县" - }, - { - "code": "611025", - "value": "镇安县", - "label": "镇安县" - }, - { - "code": "611026", - "value": "柞水县", - "label": "柞水县" - } - ] - } - ] - }, - { - "code": "620000", - "value": "甘肃省", - "label": "甘肃省", - "children": [ - { - "code": "620100", - "value": "兰州市", - "label": "兰州市", - "children": [ - { - "code": "620102", - "value": "城关区", - "label": "城关区" - }, - { - "code": "620103", - "value": "七里河区", - "label": "七里河区" - }, - { - "code": "620104", - "value": "西固区", - "label": "西固区" - }, - { - "code": "620105", - "value": "安宁区", - "label": "安宁区" - }, - { - "code": "620111", - "value": "红古区", - "label": "红古区" - }, - { - "code": "620121", - "value": "永登县", - "label": "永登县" - }, - { - "code": "620122", - "value": "皋兰县", - "label": "皋兰县" - }, - { - "code": "620123", - "value": "榆中县", - "label": "榆中县" - } - ] - }, - { - "code": "620200", - "value": "嘉峪关市", - "label": "嘉峪关市", - "children": [] - }, - { - "code": "620300", - "value": "金昌市", - "label": "金昌市", - "children": [ - { - "code": "620302", - "value": "金川区", - "label": "金川区" - }, - { - "code": "620321", - "value": "永昌县", - "label": "永昌县" - } - ] - }, - { - "code": "620400", - "value": "白银市", - "label": "白银市", - "children": [ - { - "code": "620402", - "value": "白银区", - "label": "白银区" - }, - { - "code": "620403", - "value": "平川区", - "label": "平川区" - }, - { - "code": "620421", - "value": "靖远县", - "label": "靖远县" - }, - { - "code": "620422", - "value": "会宁县", - "label": "会宁县" - }, - { - "code": "620423", - "value": "景泰县", - "label": "景泰县" - } - ] - }, - { - "code": "620500", - "value": "天水市", - "label": "天水市", - "children": [ - { - "code": "620502", - "value": "秦州区", - "label": "秦州区" - }, - { - "code": "620503", - "value": "麦积区", - "label": "麦积区" - }, - { - "code": "620521", - "value": "清水县", - "label": "清水县" - }, - { - "code": "620522", - "value": "秦安县", - "label": "秦安县" - }, - { - "code": "620523", - "value": "甘谷县", - "label": "甘谷县" - }, - { - "code": "620524", - "value": "武山县", - "label": "武山县" - }, - { - "code": "620525", - "value": "张家川回族自治县", - "label": "张家川回族自治县" - } - ] - }, - { - "code": "620600", - "value": "武威市", - "label": "武威市", - "children": [ - { - "code": "620602", - "value": "凉州区", - "label": "凉州区" - }, - { - "code": "620621", - "value": "民勤县", - "label": "民勤县" - }, - { - "code": "620622", - "value": "古浪县", - "label": "古浪县" - }, - { - "code": "620623", - "value": "天祝藏族自治县", - "label": "天祝藏族自治县" - } - ] - }, - { - "code": "620700", - "value": "张掖市", - "label": "张掖市", - "children": [ - { - "code": "620702", - "value": "甘州区", - "label": "甘州区" - }, - { - "code": "620721", - "value": "肃南裕固族自治县", - "label": "肃南裕固族自治县" - }, - { - "code": "620722", - "value": "民乐县", - "label": "民乐县" - }, - { - "code": "620723", - "value": "临泽县", - "label": "临泽县" - }, - { - "code": "620724", - "value": "高台县", - "label": "高台县" - }, - { - "code": "620725", - "value": "山丹县", - "label": "山丹县" - } - ] - }, - { - "code": "620800", - "value": "平凉市", - "label": "平凉市", - "children": [ - { - "code": "620802", - "value": "崆峒区", - "label": "崆峒区" - }, - { - "code": "620821", - "value": "泾川县", - "label": "泾川县" - }, - { - "code": "620822", - "value": "灵台县", - "label": "灵台县" - }, - { - "code": "620823", - "value": "崇信县", - "label": "崇信县" - }, - { - "code": "620825", - "value": "庄浪县", - "label": "庄浪县" - }, - { - "code": "620826", - "value": "静宁县", - "label": "静宁县" - }, - { - "code": "620881", - "value": "华亭市", - "label": "华亭市" - } - ] - }, - { - "code": "620900", - "value": "酒泉市", - "label": "酒泉市", - "children": [ - { - "code": "620902", - "value": "肃州区", - "label": "肃州区" - }, - { - "code": "620921", - "value": "金塔县", - "label": "金塔县" - }, - { - "code": "620922", - "value": "瓜州县", - "label": "瓜州县" - }, - { - "code": "620923", - "value": "肃北蒙古族自治县", - "label": "肃北蒙古族自治县" - }, - { - "code": "620924", - "value": "阿克塞哈萨克族自治县", - "label": "阿克塞哈萨克族自治县" - }, - { - "code": "620981", - "value": "玉门市", - "label": "玉门市" - }, - { - "code": "620982", - "value": "敦煌市", - "label": "敦煌市" - } - ] - }, - { - "code": "621000", - "value": "庆阳市", - "label": "庆阳市", - "children": [ - { - "code": "621002", - "value": "西峰区", - "label": "西峰区" - }, - { - "code": "621021", - "value": "庆城县", - "label": "庆城县" - }, - { - "code": "621022", - "value": "环县", - "label": "环县" - }, - { - "code": "621023", - "value": "华池县", - "label": "华池县" - }, - { - "code": "621024", - "value": "合水县", - "label": "合水县" - }, - { - "code": "621025", - "value": "正宁县", - "label": "正宁县" - }, - { - "code": "621026", - "value": "宁县", - "label": "宁县" - }, - { - "code": "621027", - "value": "镇原县", - "label": "镇原县" - } - ] - }, - { - "code": "621100", - "value": "定西市", - "label": "定西市", - "children": [ - { - "code": "621102", - "value": "安定区", - "label": "安定区" - }, - { - "code": "621121", - "value": "通渭县", - "label": "通渭县" - }, - { - "code": "621122", - "value": "陇西县", - "label": "陇西县" - }, - { - "code": "621123", - "value": "渭源县", - "label": "渭源县" - }, - { - "code": "621124", - "value": "临洮县", - "label": "临洮县" - }, - { - "code": "621125", - "value": "漳县", - "label": "漳县" - }, - { - "code": "621126", - "value": "岷县", - "label": "岷县" - } - ] - }, - { - "code": "621200", - "value": "陇南市", - "label": "陇南市", - "children": [ - { - "code": "621202", - "value": "武都区", - "label": "武都区" - }, - { - "code": "621221", - "value": "成县", - "label": "成县" - }, - { - "code": "621222", - "value": "文县", - "label": "文县" - }, - { - "code": "621223", - "value": "宕昌县", - "label": "宕昌县" - }, - { - "code": "621224", - "value": "康县", - "label": "康县" - }, - { - "code": "621225", - "value": "西和县", - "label": "西和县" - }, - { - "code": "621226", - "value": "礼县", - "label": "礼县" - }, - { - "code": "621227", - "value": "徽县", - "label": "徽县" - }, - { - "code": "621228", - "value": "两当县", - "label": "两当县" - } - ] - }, - { - "code": "622900", - "value": "临夏回族自治州", - "label": "临夏回族自治州", - "children": [ - { - "code": "622901", - "value": "临夏市", - "label": "临夏市" - }, - { - "code": "622921", - "value": "临夏县", - "label": "临夏县" - }, - { - "code": "622922", - "value": "康乐县", - "label": "康乐县" - }, - { - "code": "622923", - "value": "永靖县", - "label": "永靖县" - }, - { - "code": "622924", - "value": "广河县", - "label": "广河县" - }, - { - "code": "622925", - "value": "和政县", - "label": "和政县" - }, - { - "code": "622926", - "value": "东乡族自治县", - "label": "东乡族自治县" - }, - { - "code": "622927", - "value": "积石山保安族东乡族撒拉族自治县", - "label": "积石山保安族东乡族撒拉族自治县" - } - ] - }, - { - "code": "623000", - "value": "甘南藏族自治州", - "label": "甘南藏族自治州", - "children": [ - { - "code": "623001", - "value": "合作市", - "label": "合作市" - }, - { - "code": "623021", - "value": "临潭县", - "label": "临潭县" - }, - { - "code": "623022", - "value": "卓尼县", - "label": "卓尼县" - }, - { - "code": "623023", - "value": "舟曲县", - "label": "舟曲县" - }, - { - "code": "623024", - "value": "迭部县", - "label": "迭部县" - }, - { - "code": "623025", - "value": "玛曲县", - "label": "玛曲县" - }, - { - "code": "623026", - "value": "碌曲县", - "label": "碌曲县" - }, - { - "code": "623027", - "value": "夏河县", - "label": "夏河县" - } - ] - } - ] - }, - { - "code": "630000", - "value": "青海省", - "label": "青海省", - "children": [ - { - "code": "630100", - "value": "西宁市", - "label": "西宁市", - "children": [ - { - "code": "630102", - "value": "城东区", - "label": "城东区" - }, - { - "code": "630103", - "value": "城中区", - "label": "城中区" - }, - { - "code": "630104", - "value": "城西区", - "label": "城西区" - }, - { - "code": "630105", - "value": "城北区", - "label": "城北区" - }, - { - "code": "630106", - "value": "湟中区", - "label": "湟中区" - }, - { - "code": "630121", - "value": "大通回族土族自治县", - "label": "大通回族土族自治县" - }, - { - "code": "630123", - "value": "湟源县", - "label": "湟源县" - } - ] - }, - { - "code": "630200", - "value": "海东市", - "label": "海东市", - "children": [ - { - "code": "630202", - "value": "乐都区", - "label": "乐都区" - }, - { - "code": "630203", - "value": "平安区", - "label": "平安区" - }, - { - "code": "630222", - "value": "民和回族土族自治县", - "label": "民和回族土族自治县" - }, - { - "code": "630223", - "value": "互助土族自治县", - "label": "互助土族自治县" - }, - { - "code": "630224", - "value": "化隆回族自治县", - "label": "化隆回族自治县" - }, - { - "code": "630225", - "value": "循化撒拉族自治县", - "label": "循化撒拉族自治县" - } - ] - }, - { - "code": "632200", - "value": "海北藏族自治州", - "label": "海北藏族自治州", - "children": [ - { - "code": "632221", - "value": "门源回族自治县", - "label": "门源回族自治县" - }, - { - "code": "632222", - "value": "祁连县", - "label": "祁连县" - }, - { - "code": "632223", - "value": "海晏县", - "label": "海晏县" - }, - { - "code": "632224", - "value": "刚察县", - "label": "刚察县" - } - ] - }, - { - "code": "632300", - "value": "黄南藏族自治州", - "label": "黄南藏族自治州", - "children": [ - { - "code": "632301", - "value": "同仁市", - "label": "同仁市" - }, - { - "code": "632322", - "value": "尖扎县", - "label": "尖扎县" - }, - { - "code": "632323", - "value": "泽库县", - "label": "泽库县" - }, - { - "code": "632324", - "value": "河南蒙古族自治县", - "label": "河南蒙古族自治县" - } - ] - }, - { - "code": "632500", - "value": "海南藏族自治州", - "label": "海南藏族自治州", - "children": [ - { - "code": "632521", - "value": "共和县", - "label": "共和县" - }, - { - "code": "632522", - "value": "同德县", - "label": "同德县" - }, - { - "code": "632523", - "value": "贵德县", - "label": "贵德县" - }, - { - "code": "632524", - "value": "兴海县", - "label": "兴海县" - }, - { - "code": "632525", - "value": "贵南县", - "label": "贵南县" - } - ] - }, - { - "code": "632600", - "value": "果洛藏族自治州", - "label": "果洛藏族自治州", - "children": [ - { - "code": "632621", - "value": "玛沁县", - "label": "玛沁县" - }, - { - "code": "632622", - "value": "班玛县", - "label": "班玛县" - }, - { - "code": "632623", - "value": "甘德县", - "label": "甘德县" - }, - { - "code": "632624", - "value": "达日县", - "label": "达日县" - }, - { - "code": "632625", - "value": "久治县", - "label": "久治县" - }, - { - "code": "632626", - "value": "玛多县", - "label": "玛多县" - } - ] - }, - { - "code": "632700", - "value": "玉树藏族自治州", - "label": "玉树藏族自治州", - "children": [ - { - "code": "632701", - "value": "玉树市", - "label": "玉树市" - }, - { - "code": "632722", - "value": "杂多县", - "label": "杂多县" - }, - { - "code": "632723", - "value": "称多县", - "label": "称多县" - }, - { - "code": "632724", - "value": "治多县", - "label": "治多县" - }, - { - "code": "632725", - "value": "囊谦县", - "label": "囊谦县" - }, - { - "code": "632726", - "value": "曲麻莱县", - "label": "曲麻莱县" - } - ] - }, - { - "code": "632800", - "value": "海西蒙古族藏族自治州", - "label": "海西蒙古族藏族自治州", - "children": [ - { - "code": "632801", - "value": "格尔木市", - "label": "格尔木市" - }, - { - "code": "632802", - "value": "德令哈市", - "label": "德令哈市" - }, - { - "code": "632803", - "value": "茫崖市", - "label": "茫崖市" - }, - { - "code": "632821", - "value": "乌兰县", - "label": "乌兰县" - }, - { - "code": "632822", - "value": "都兰县", - "label": "都兰县" - }, - { - "code": "632823", - "value": "天峻县", - "label": "天峻县" - } - ] - } - ] - }, - { - "code": "640000", - "value": "宁夏回族自治区", - "label": "宁夏回族自治区", - "children": [ - { - "code": "640100", - "value": "银川市", - "label": "银川市", - "children": [ - { - "code": "640104", - "value": "兴庆区", - "label": "兴庆区" - }, - { - "code": "640105", - "value": "西夏区", - "label": "西夏区" - }, - { - "code": "640106", - "value": "金凤区", - "label": "金凤区" - }, - { - "code": "640121", - "value": "永宁县", - "label": "永宁县" - }, - { - "code": "640122", - "value": "贺兰县", - "label": "贺兰县" - }, - { - "code": "640181", - "value": "灵武市", - "label": "灵武市" - } - ] - }, - { - "code": "640200", - "value": "石嘴山市", - "label": "石嘴山市", - "children": [ - { - "code": "640202", - "value": "大武口区", - "label": "大武口区" - }, - { - "code": "640205", - "value": "惠农区", - "label": "惠农区" - }, - { - "code": "640221", - "value": "平罗县", - "label": "平罗县" - } - ] - }, - { - "code": "640300", - "value": "吴忠市", - "label": "吴忠市", - "children": [ - { - "code": "640302", - "value": "利通区", - "label": "利通区" - }, - { - "code": "640303", - "value": "红寺堡区", - "label": "红寺堡区" - }, - { - "code": "640323", - "value": "盐池县", - "label": "盐池县" - }, - { - "code": "640324", - "value": "同心县", - "label": "同心县" - }, - { - "code": "640381", - "value": "青铜峡市", - "label": "青铜峡市" - } - ] - }, - { - "code": "640400", - "value": "固原市", - "label": "固原市", - "children": [ - { - "code": "640402", - "value": "原州区", - "label": "原州区" - }, - { - "code": "640422", - "value": "西吉县", - "label": "西吉县" - }, - { - "code": "640423", - "value": "隆德县", - "label": "隆德县" - }, - { - "code": "640424", - "value": "泾源县", - "label": "泾源县" - }, - { - "code": "640425", - "value": "彭阳县", - "label": "彭阳县" - } - ] - }, - { - "code": "640500", - "value": "中卫市", - "label": "中卫市", - "children": [ - { - "code": "640502", - "value": "沙坡头区", - "label": "沙坡头区" - }, - { - "code": "640521", - "value": "中宁县", - "label": "中宁县" - }, - { - "code": "640522", - "value": "海原县", - "label": "海原县" - } - ] - } - ] - }, - { - "code": "650000", - "value": "新疆维吾尔自治区", - "label": "新疆维吾尔自治区", - "children": [ - { - "code": "650100", - "value": "乌鲁木齐市", - "label": "乌鲁木齐市", - "children": [ - { - "code": "650102", - "value": "天山区", - "label": "天山区" - }, - { - "code": "650103", - "value": "沙依巴克区", - "label": "沙依巴克区" - }, - { - "code": "650104", - "value": "新市区", - "label": "新市区" - }, - { - "code": "650105", - "value": "水磨沟区", - "label": "水磨沟区" - }, - { - "code": "650106", - "value": "头屯河区", - "label": "头屯河区" - }, - { - "code": "650107", - "value": "达坂城区", - "label": "达坂城区" - }, - { - "code": "650109", - "value": "米东区", - "label": "米东区" - }, - { - "code": "650121", - "value": "乌鲁木齐县", - "label": "乌鲁木齐县" - } - ] - }, - { - "code": "650200", - "value": "克拉玛依市", - "label": "克拉玛依市", - "children": [ - { - "code": "650202", - "value": "独山子区", - "label": "独山子区" - }, - { - "code": "650203", - "value": "克拉玛依区", - "label": "克拉玛依区" - }, - { - "code": "650204", - "value": "白碱滩区", - "label": "白碱滩区" - }, - { - "code": "650205", - "value": "乌尔禾区", - "label": "乌尔禾区" - } - ] - }, - { - "code": "650400", - "value": "吐鲁番市", - "label": "吐鲁番市", - "children": [ - { - "code": "650402", - "value": "高昌区", - "label": "高昌区" - }, - { - "code": "650421", - "value": "鄯善县", - "label": "鄯善县" - }, - { - "code": "650422", - "value": "托克逊县", - "label": "托克逊县" - } - ] - }, - { - "code": "650500", - "value": "哈密市", - "label": "哈密市", - "children": [ - { - "code": "650502", - "value": "伊州区", - "label": "伊州区" - }, - { - "code": "650521", - "value": "巴里坤哈萨克自治县", - "label": "巴里坤哈萨克自治县" - }, - { - "code": "650522", - "value": "伊吾县", - "label": "伊吾县" - } - ] - }, - { - "code": "652300", - "value": "昌吉回族自治州", - "label": "昌吉回族自治州", - "children": [ - { - "code": "652301", - "value": "昌吉市", - "label": "昌吉市" - }, - { - "code": "652302", - "value": "阜康市", - "label": "阜康市" - }, - { - "code": "652323", - "value": "呼图壁县", - "label": "呼图壁县" - }, - { - "code": "652324", - "value": "玛纳斯县", - "label": "玛纳斯县" - }, - { - "code": "652325", - "value": "奇台县", - "label": "奇台县" - }, - { - "code": "652327", - "value": "吉木萨尔县", - "label": "吉木萨尔县" - }, - { - "code": "652328", - "value": "木垒哈萨克自治县", - "label": "木垒哈萨克自治县" - } - ] - }, - { - "code": "652700", - "value": "博尔塔拉蒙古自治州", - "label": "博尔塔拉蒙古自治州", - "children": [ - { - "code": "652701", - "value": "博乐市", - "label": "博乐市" - }, - { - "code": "652702", - "value": "阿拉山口市", - "label": "阿拉山口市" - }, - { - "code": "652722", - "value": "精河县", - "label": "精河县" - }, - { - "code": "652723", - "value": "温泉县", - "label": "温泉县" - } - ] - }, - { - "code": "652800", - "value": "巴音郭楞蒙古自治州", - "label": "巴音郭楞蒙古自治州", - "children": [ - { - "code": "652801", - "value": "库尔勒市", - "label": "库尔勒市" - }, - { - "code": "652822", - "value": "轮台县", - "label": "轮台县" - }, - { - "code": "652823", - "value": "尉犁县", - "label": "尉犁县" - }, - { - "code": "652824", - "value": "若羌县", - "label": "若羌县" - }, - { - "code": "652825", - "value": "且末县", - "label": "且末县" - }, - { - "code": "652826", - "value": "焉耆回族自治县", - "label": "焉耆回族自治县" - }, - { - "code": "652827", - "value": "和静县", - "label": "和静县" - }, - { - "code": "652828", - "value": "和硕县", - "label": "和硕县" - }, - { - "code": "652829", - "value": "博湖县", - "label": "博湖县" - } - ] - }, - { - "code": "652900", - "value": "阿克苏地区", - "label": "阿克苏地区", - "children": [ - { - "code": "652901", - "value": "阿克苏市", - "label": "阿克苏市" - }, - { - "code": "652902", - "value": "库车市", - "label": "库车市" - }, - { - "code": "652922", - "value": "温宿县", - "label": "温宿县" - }, - { - "code": "652924", - "value": "沙雅县", - "label": "沙雅县" - }, - { - "code": "652925", - "value": "新和县", - "label": "新和县" - }, - { - "code": "652926", - "value": "拜城县", - "label": "拜城县" - }, - { - "code": "652927", - "value": "乌什县", - "label": "乌什县" - }, - { - "code": "652928", - "value": "阿瓦提县", - "label": "阿瓦提县" - }, - { - "code": "652929", - "value": "柯坪县", - "label": "柯坪县" - } - ] - }, - { - "code": "653000", - "value": "克孜勒苏柯尔克孜自治州", - "label": "克孜勒苏柯尔克孜自治州", - "children": [ - { - "code": "653001", - "value": "阿图什市", - "label": "阿图什市" - }, - { - "code": "653022", - "value": "阿克陶县", - "label": "阿克陶县" - }, - { - "code": "653023", - "value": "阿合奇县", - "label": "阿合奇县" - }, - { - "code": "653024", - "value": "乌恰县", - "label": "乌恰县" - } - ] - }, - { - "code": "653100", - "value": "喀什地区", - "label": "喀什地区", - "children": [ - { - "code": "653101", - "value": "喀什市", - "label": "喀什市" - }, - { - "code": "653121", - "value": "疏附县", - "label": "疏附县" - }, - { - "code": "653122", - "value": "疏勒县", - "label": "疏勒县" - }, - { - "code": "653123", - "value": "英吉沙县", - "label": "英吉沙县" - }, - { - "code": "653124", - "value": "泽普县", - "label": "泽普县" - }, - { - "code": "653125", - "value": "莎车县", - "label": "莎车县" - }, - { - "code": "653126", - "value": "叶城县", - "label": "叶城县" - }, - { - "code": "653127", - "value": "麦盖提县", - "label": "麦盖提县" - }, - { - "code": "653128", - "value": "岳普湖县", - "label": "岳普湖县" - }, - { - "code": "653129", - "value": "伽师县", - "label": "伽师县" - }, - { - "code": "653130", - "value": "巴楚县", - "label": "巴楚县" - }, - { - "code": "653131", - "value": "塔什库尔干塔吉克自治县", - "label": "塔什库尔干塔吉克自治县" - } - ] - }, - { - "code": "653200", - "value": "和田地区", - "label": "和田地区", - "children": [ - { - "code": "653201", - "value": "和田市", - "label": "和田市" - }, - { - "code": "653221", - "value": "和田县", - "label": "和田县" - }, - { - "code": "653222", - "value": "墨玉县", - "label": "墨玉县" - }, - { - "code": "653223", - "value": "皮山县", - "label": "皮山县" - }, - { - "code": "653224", - "value": "洛浦县", - "label": "洛浦县" - }, - { - "code": "653225", - "value": "策勒县", - "label": "策勒县" - }, - { - "code": "653226", - "value": "于田县", - "label": "于田县" - }, - { - "code": "653227", - "value": "民丰县", - "label": "民丰县" - } - ] - }, - { - "code": "654000", - "value": "伊犁哈萨克自治州", - "label": "伊犁哈萨克自治州", - "children": [ - { - "code": "654002", - "value": "伊宁市", - "label": "伊宁市" - }, - { - "code": "654003", - "value": "奎屯市", - "label": "奎屯市" - }, - { - "code": "654004", - "value": "霍尔果斯市", - "label": "霍尔果斯市" - }, - { - "code": "654021", - "value": "伊宁县", - "label": "伊宁县" - }, - { - "code": "654022", - "value": "察布查尔锡伯自治县", - "label": "察布查尔锡伯自治县" - }, - { - "code": "654023", - "value": "霍城县", - "label": "霍城县" - }, - { - "code": "654024", - "value": "巩留县", - "label": "巩留县" - }, - { - "code": "654025", - "value": "新源县", - "label": "新源县" - }, - { - "code": "654026", - "value": "昭苏县", - "label": "昭苏县" - }, - { - "code": "654027", - "value": "特克斯县", - "label": "特克斯县" - }, - { - "code": "654028", - "value": "尼勒克县", - "label": "尼勒克县" - } - ] - }, - { - "code": "654200", - "value": "塔城地区", - "label": "塔城地区", - "children": [ - { - "code": "654201", - "value": "塔城市", - "label": "塔城市" - }, - { - "code": "654202", - "value": "乌苏市", - "label": "乌苏市" - }, - { - "code": "654221", - "value": "额敏县", - "label": "额敏县" - }, - { - "code": "654223", - "value": "沙湾县", - "label": "沙湾县" - }, - { - "code": "654224", - "value": "托里县", - "label": "托里县" - }, - { - "code": "654225", - "value": "裕民县", - "label": "裕民县" - }, - { - "code": "654226", - "value": "和布克赛尔蒙古自治县", - "label": "和布克赛尔蒙古自治县" - } - ] - }, - { - "code": "654300", - "value": "阿勒泰地区", - "label": "阿勒泰地区", - "children": [ - { - "code": "654301", - "value": "阿勒泰市", - "label": "阿勒泰市" - }, - { - "code": "654321", - "value": "布尔津县", - "label": "布尔津县" - }, - { - "code": "654322", - "value": "富蕴县", - "label": "富蕴县" - }, - { - "code": "654323", - "value": "福海县", - "label": "福海县" - }, - { - "code": "654324", - "value": "哈巴河县", - "label": "哈巴河县" - }, - { - "code": "654325", - "value": "青河县", - "label": "青河县" - }, - { - "code": "654326", - "value": "吉木乃县", - "label": "吉木乃县" - } - ] - } - ] - }, - { - "code": "710000", - "value": "台湾省", - "label": "台湾省", - "children": [] - }, - { - "code": "810000", - "value": "香港特别行政区", - "label": "香港特别行政区", - "children": [] - }, - { - "code": "820000", - "value": "澳门特别行政区", - "label": "澳门特别行政区", - "children": [] - } -] - -export default cityOptions - - diff --git a/src/src/utils/color.js b/src/src/utils/color.js deleted file mode 100644 index 595a39b..0000000 --- a/src/src/utils/color.js +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -/* eslint-disable eqeqeq */ -export default { - // 加深 - darken(color, level) { - const rgbc = this.hexToRgb(color) - for (let i = 0; i < 3; i++) rgbc[i] = Math.floor(rgbc[i] * (1 - level)) - return this.rgbToHex(rgbc[0], rgbc[1], rgbc[2]) - }, - // 变淡 - lighten(color, level) { - const rgbc = this.hexToRgb(color) - for (let i = 0; i < 3; i++) rgbc[i] = Math.floor((255 - rgbc[i]) * level + rgbc[i]) - return this.rgbToHex(rgbc[0], rgbc[1], rgbc[2]) - }, - // rgb颜色转hex颜色 - rgbToHex(rgb) { - const bg = rgb.match(/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/) - // 返回空字符串 - if (!bg) { - return '' - } - return '#' + toHex(bg[1]) + toHex(bg[2]) + toHex(bg[3]) - }, - // hex颜色转rgb颜色 - hexToRgb(hex) { - // 去除开头 # - if (hex.startsWith('#')) { - hex = hex.substring(1) - } - // 如果当前传入的是 3 位小数值,直接转换为 6 位进行处理 - if (hex.length === 3) { - hex = [hex[0], hex[0], hex[1], hex[1], hex[2], hex[2]].join('') - } - if (hex.length !== 6) { - throw new Error('invalid hex:' + hex) - } - const r = parseInt(hex.slice(0, 2), 16) - const g = parseInt(hex.slice(2, 4), 16) - const b = parseInt(hex.slice(4, 6), 16) - if ([r, g, b].some((x) => Number.isNaN(x))) { - throw new Error('invalid hex:' + hex) - } - return [r, g, b] - }, - // 透明度 - alpha(color, alpha = 1) { - let hex = color.length > 7 ? color.rgbToHex(color) : color - const { r, g, b } = color.hexToRgb(hex) - return `rgba(${r}, ${g}, ${b}, ${alpha})` - } -} - -// 转Hex -const toHex = (x) => ('0' + parseInt(x).toString(16)).slice(-2) diff --git a/src/src/utils/device.js b/src/src/utils/device.js deleted file mode 100644 index 64d30fc..0000000 --- a/src/src/utils/device.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import enquireJs from 'enquire.js' - -export const DEVICE_TYPE = { - DESKTOP: 'desktop', - TABLET: 'tablet', - MOBILE: 'mobile' -} - -export const deviceEnquire = function (callback) { - const matchDesktop = { - match: () => { - callback && callback(DEVICE_TYPE.DESKTOP) - } - } - - const matchTablet = { - match: () => { - callback && callback(DEVICE_TYPE.TABLET) - } - } - - const matchMobile = { - match: () => { - callback && callback(DEVICE_TYPE.MOBILE) - } - } - - // screen and (max-width: 1087.99px) - enquireJs - .register('screen and (max-width: 576px)', matchMobile) - .register('screen and (min-width: 576px) and (max-width: 1199px)', matchTablet) - .register('screen and (min-width: 1200px)', matchDesktop) -} diff --git a/src/src/utils/downloadUtil.js b/src/src/utils/downloadUtil.js deleted file mode 100644 index ba4ab92..0000000 --- a/src/src/utils/downloadUtil.js +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import { message } from 'ant-design-vue' - -export default { - // 对下载的流进行处理,直接从浏览器下载下来 - resultDownload(res) { - if (res.data.type === 'application/json') { - // 错误以及无权限 - const reader = new FileReader(res.data) - reader.readAsText(res.data) - reader.onload = () => { - const result = JSON.parse(reader.result) - message.error(result.msg) - } - } else { - const blob = new Blob([res.data], { type: 'application/octet-stream;charset=UTF-8' }) - const contentDisposition = res.headers['content-disposition'] - const patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*') - const $link = document.createElement('a') - $link.href = URL.createObjectURL(blob) - $link.download = decodeURIComponent(patt.exec(contentDisposition)[1]) - $link.click() - document.body.appendChild($link) - document.body.removeChild($link) // 下载完成移除元素 - window.URL.revokeObjectURL($link.href) // 释放掉blob对象 - } - } -} diff --git a/src/src/utils/enum.js b/src/src/utils/enum.js deleted file mode 100644 index eec36b2..0000000 --- a/src/src/utils/enum.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -export const ThemeModeEnum = { - LIGHT: 'light', - DARK: 'dark', - REAL_DARK: 'realDark' -} diff --git a/src/src/utils/errorHandler.js b/src/src/utils/errorHandler.js deleted file mode 100644 index c11ffc6..0000000 --- a/src/src/utils/errorHandler.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -export default (error) => { - console.log(error) - // 过滤HTTP请求错误 - if (error.code) { - return false - } - const errorMap = { - InternalError: 'Javascript引擎内部错误', - ReferenceError: '未找到对象', - TypeError: '使用了错误的类型或对象', - RangeError: '使用内置对象时,参数超范围', - SyntaxError: '语法错误', - EvalError: '错误的使用了Eval', - URIError: 'URI错误' - } - const errorName = errorMap[error.name] || '未知错误' - nextTick(() => { - console.error(errorName) - }) -} diff --git a/src/src/utils/formRules.js b/src/src/utils/formRules.js deleted file mode 100644 index 778b6a2..0000000 --- a/src/src/utils/formRules.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -export const required = (message, trigger = ['blur', 'change']) => ({ - required: true, - message, - trigger -}) - -// 常用正则规则大全:https://any86.github.io/any-rule/ - -export const rules = { - phone: { - pattern: /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/, - message: '请填写符合要求的11位手机号', - trigger: 'blur' - }, - email: { - pattern: /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/, - message: '请填写正确的邮箱号', - trigger: 'blur' - }, - idCard: { - pattern: - /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0[1-9]|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/, - message: '请填写符合要求的身份证号', - trigger: 'blur' - }, - lettersNum: { - pattern: /^[A-Za-z0-9]+$/, - message: '填写内容须是字母或数字组成', - trigger: 'blur' - }, - number: { - pattern: /^\d{1,}$/, - message: '填写内容必须是纯数字', - trigger: 'blur' - }, - price: { - pattern: /(?:^[1-9]([0-9]+)?(?:\.[0-9]{1,2})?$)|(?:^(?:0)$)|(?:^[0-9]\.[0-9](?:[0-9])?$)/, - message: '只支持正数金额', - trigger: 'blur' - } -} diff --git a/src/src/utils/loading.js b/src/src/utils/loading.js deleted file mode 100644 index 35ce380..0000000 --- a/src/src/utils/loading.js +++ /dev/null @@ -1,38 +0,0 @@ -import { nextTick } from 'vue' - -/** - * 页面全局 Loading - * @method start 创建 loading - * @method done 移除 loading - */ -export const NextLoading = { - // 创建 loading - start: () => { - const el = document.querySelector('.admin-ui') - if (el) return - const bodys = document.body - const div = document.createElement('div') - div.setAttribute('class', 'admin-ui') - const htmls = ` -
- -
-
Snowy
-
` - div.innerHTML = htmls - bodys.insertBefore(div, bodys.childNodes[0]) - window.nextLoading = true - }, - // 移除 loading - done: (time = 0) => { - nextTick(() => { - setTimeout(() => { - window.nextLoading = false - const el = document.querySelector('.admin-ui') - el?.parentNode?.removeChild(el) - }, time) - }) - } -} diff --git a/src/src/utils/objects.js b/src/src/utils/objects.js deleted file mode 100644 index ec8cfef..0000000 --- a/src/src/utils/objects.js +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import pinyin from 'js-pinyin' - -// 中文转拼音 传入仅首字母 -Object.defineProperty(String.prototype, 'toPinyin', { - writable: false, - enumerable: false, - configurable: true, - value: function (first) { - let str = this - if (first) { - return pinyin.getCamelChars(str).replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g, '') - } - return pinyin.getFullChars(str).replace(/\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g, '') - } -}) - -// 字符检索 传入检索值 -Object.defineProperty(String.prototype, 'filter', { - writable: false, - enumerable: false, - configurable: true, - value: function (input) { - let str = this - let en = str.toLowerCase().includes(input.toLowerCase()) - let zhFull = str.toPinyin().toLowerCase().includes(input.toLowerCase()) - let zhFirst = str.toPinyin(true).toLowerCase().includes(input.toLowerCase()) - return en || zhFull || zhFirst - } -}) diff --git a/src/src/utils/permission/index.js b/src/src/utils/permission/index.js deleted file mode 100644 index 0d8b5ae..0000000 --- a/src/src/utils/permission/index.js +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import tool from '@/utils/tool' - -/** - * 权限判断是否能看到这个按钮,同时后端也做了校验,前端只是显示与不显示 - * @param {string, array} data 按钮的权限点,可以是单个字符串,也可以是数组 - * @param {string} rule or代表或,and代表与 - * 使用方法: - * 例如 buttonCodeList 的数据为: ['button1', 'button2', 'button3'] - * 想要判断 button1 的权限,可以写成:hasPerm('button1') - * 想要判断 button1 或 button2 的权限,可以写成:hasPerm(['button1', 'button2' ]) - * 想要判断 button1 与 button2 的权限,可以写成:hasPerm(['button1', 'button2' ], 'and') - */ -export function hasPerm(data, rule = 'or') { - if (!data) { - return false - } - const userInfo = tool.data.get('USER_INFO') - if (!userInfo) { - return false - } - const { buttonCodeList } = userInfo - if (!buttonCodeList) { - return false - } - if (Array.isArray(data)) { - const fn = rule === 'or' ? 'some' : 'every' - return data[fn]((item) => buttonCodeList.includes(item)) - } - return buttonCodeList.includes(data) -} diff --git a/src/src/utils/request.js b/src/src/utils/request.js deleted file mode 100644 index 1c799dd..0000000 --- a/src/src/utils/request.js +++ /dev/null @@ -1,185 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -// 统一的请求发送 -import axios from 'axios' -import qs from 'qs' -import { Modal, message, notification } from 'ant-design-vue' -import sysConfig from '@/config/index' -import tool from '@/utils/tool' - -// 以下这些code需要重新登录 -const reloadCodes = [401, 1011007, 1011008] -const errorCodeMap = { - 400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。', - 401: '用户没有权限(令牌、用户名、密码错误)。', - 403: '用户得到授权,但是访问是被禁止的。', - 404: '发出的请求针对的是不存在的记录,服务器没有进行操作。', - 406: '请求的格式不可得。', - 410: '请求的资源被永久删除,且不会再得到的。', - 422: '当创建一个对象时,发生一个验证错误。', - 500: '服务器发生错误,请检查服务器。', - 502: '网关错误。', - 503: '服务不可用,服务器暂时过载或维护。', - 504: '网关超时。' -} -// 定义一个重新登录弹出窗的变量 -const loginBack = ref(false) -// 创建 axios 实例 -const service = axios.create({ - baseURL: '/api', // api base_url - timeout: sysConfig.TIMEOUT // 请求超时时间 -}) - -// HTTP request 拦截器 -service.interceptors.request.use( - (config) => { - const token = tool.data.get('TOKEN') - if (token) { - config.headers[sysConfig.TOKEN_NAME] = sysConfig.TOKEN_PREFIX + token - } - if (!sysConfig.REQUEST_CACHE && config.method === 'get') { - config.params = config.params || {} - config.params._ = new Date().getTime() - } - Object.assign(config.headers, sysConfig.HEADERS) - return config - }, - (error) => { - return Promise.reject(error) - } -) - -// 保持重新登录Modal的唯一性 -const error = () => { - loginBack.value = true - Modal.error({ - title: '提示:', - okText: '重新登录', - content: '登录已失效, 请重新登录', - onOk: () => { - loginBack.value = false - tool.data.remove('TOKEN') - tool.data.remove('USER_INFO') - tool.data.remove('MENU') - tool.data.remove('PERMISSIONS') - window.location.reload() - } - }) -} - -// HTTP response 拦截器 -service.interceptors.response.use( - (response) => { - // 配置了blob,不处理直接返回文件流 - if (response.config.responseType === 'blob') { - if (response.status === 200) { - return response - } else { - message.warning('文件下载失败或此文件不存在') - return - } - } - const data = response.data - const code = data.code - if (reloadCodes.includes(code)) { - if (!loginBack.value) { - error() - } - return - } - if (code !== 200) { - const customErrorMessage = response.config.customErrorMessage - message.error(customErrorMessage || data.msg) - return Promise.reject(data) - // 自定义错误提示,覆盖后端返回的message - // 使用示例: - // export function customerList (data) { - // return request('list', data, 'get', { - // customErrorMessage: '自定义错误消息提示' - // }); - // } - } else { - // 统一成功提示 - const responseUrls = response.config.url.split('/') - const apiNameArray = [ - 'add', - 'edit', - 'delete', - 'update', - 'grant', - 'reset', - 'stop', - 'pass', - 'disable', - 'enable', - 'revoke', - 'suspend', - 'active', - 'turn', - 'adjust', - 'reject', - 'saveDraft' - ] - apiNameArray.forEach((apiName) => { - if (responseUrls[responseUrls.length - 1] === apiName) { - message.success(data.msg) - } - }) - } - return Promise.resolve(data.data) - }, - (error) => { - if (error) { - const status = 503 - const description = errorCodeMap[status] - notification.error({ - message: '请求错误', - description - }) - return Promise.reject(status) - } - } -) - -// 适配器, 用于适配不同的请求方式 -export const baseRequest = (url, value = {}, method = 'post', options = {}) => { - url = sysConfig.API_URL + url - if (method === 'post') { - return service.post(url, value, options) - } else if (method === 'get') { - return service.get(url, { params: value, ...options }) - } else if (method === 'formdata') { - // form-data表单提交的方式 - return service.post(url, qs.stringify(value), { - headers: { - 'Content-Type': 'multipart/form-data' - }, - ...options - }) - } else { - // 其他请求方式,例如:put、delete - return service({ - method: method, - url: url, - data: value, - ...options - }) - } -} - -// 模块内的请求, 会自动加上模块的前缀 -export const moduleRequest = - (moduleUrl) => - (url, ...arg) => { - return baseRequest(moduleUrl + url, ...arg) - } - -export default service diff --git a/src/src/utils/routerUtil.js b/src/src/utils/routerUtil.js deleted file mode 100644 index 24905a1..0000000 --- a/src/src/utils/routerUtil.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import userRoutes from '@/config/route' - -// 获取第一个界面 -const getIndexMenu = (menu) => { - if (menu[0] && menu[0].children) { - let indexMenu = menu[0].children[0] - // 如果第一个菜单为目录,接着往下找 - if (indexMenu.meta.type === 'catalog') { - indexMenu = traverseChild(menu) - } - return indexMenu - } else { - return userRoutes.menu[0] - } -} -// 遍历进行判断,其中处理了被隐藏的 -const traverseChild = (menu) => { - if (menu[0] && menu[0].children !== undefined) { - if (menu[0].children.length > 0) { - if (menu[0].children[0] && menu[0].children[0].meta.hidden && menu[0].children[0].meta.hidden === true) { - return menu[0] - } else { - return traverseChild(menu[0].children) - } - } - } else { - return menu[0] - } -} - -export default { - getIndexMenu -} diff --git a/src/src/utils/smCrypto.js b/src/src/utils/smCrypto.js deleted file mode 100644 index 7f7bab0..0000000 --- a/src/src/utils/smCrypto.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -/** - * 加解密的工具类 - * 使用:https://github.com/JuneAndGreen/sm-crypto - * - * @author yubaoshan - */ -import smCrypto from 'sm-crypto' - -const sm2 = smCrypto.sm2 -const cipherMode = 1 // 1 - C1C3C2,0 - C1C2C3,默认为1 -const publicKey = - '04298364ec840088475eae92a591e01284d1abefcda348b47eb324bb521bb03b0b2a5bc393f6b71dabb8f15c99a0050818b56b23f31743b93df9cf8948f15ddb54' - -/** - * 国密加解密工具类 - */ -export default { - // SM2加密 - doSm2Encrypt(msgString) { - return sm2.doEncrypt(msgString, publicKey, cipherMode) - }, - // SM2数组加密 - doSm2ArrayEncrypt(msgString) { - return sm2.doEncrypt(msgString, publicKey, cipherMode) - } -} diff --git a/src/src/utils/template.js b/src/src/utils/template.js deleted file mode 100644 index bba3316..0000000 --- a/src/src/utils/template.js +++ /dev/null @@ -1,326 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -/* ! - * template.js v0.7.1 (https://github.com/yanhaijing/template.js) - * API https://github.com/yanhaijing/template.js/blob/master/doc/api.md - * Copyright 2015 yanhaijing. All Rights Reserved - * Licensed under MIT (https://github.com/yanhaijing/template.js/blob/master/MIT-LICENSE.txt) - */ -/* eslint-disable */ -;(function(root, factory) { - var template = factory(root); - if (typeof define === 'function' && define.amd) { - // AMD - define('template', function() { - return template; - }); - } else if (typeof exports === 'object') { - // Node.js - module.exports = template; - } else { - // Browser globals - var _template = root.template; - - template.noConflict = function() { - if (root.template === template) { - root.template = _template; - } - - return template; - }; - root.template = template; - } -}(this, function(root) { - 'use strict'; - var o = { - sTag: '<%',//开始标签 - eTag: '%>',//结束标签 - compress: false,//是否压缩html - escape: true, //默认输出是否进行HTML转义 - error: function (e) {}//错误回调 - }; - var functionMap = {}; //内部函数对象 - //修饰器前缀 - var modifierMap = { - '': function (param) {return nothing(param)}, - 'h': function (param) {return encodeHTML(param)}, - 'u': function (param) {return encodeURI(param)} - }; - - var toString = {}.toString; - var slice = [].slice; - function type(x) { - if(x === null){ - return 'null'; - } - - var t= typeof x; - - if(t !== 'object'){ - return t; - } - - var c = toString.call(x).slice(8, -1).toLowerCase(); - if(c !== 'object'){ - return c; - } - - if(x.constructor==Object){ - return c; - } - - return 'unknown'; - } - - function isObject(obj) { - return type(obj) === 'object'; - } - function isFunction(fn) { - return type(fn) === 'function'; - } - function isString(str) { - return type(str) === 'string'; - } - function extend() { - var target = arguments[0] || {}; - var arrs = slice.call(arguments, 1); - var len = arrs.length; - - for (var i = 0; i < len; i++) { - var arr = arrs[i]; - for (var name in arr) { - target[name] = arr[name]; - } - - } - return target; - } - function clone() { - var args = slice.call(arguments); - return extend.apply(null, [{}].concat(args)); - } - function nothing(param) { - return param; - } - function encodeHTML(source) { - return String(source) - .replace(/&/g,'&') - .replace(//g,'>') - .replace(/\\/g,'\') - .replace(/"/g,'"') - .replace(/'/g,'''); - } - function compress(html) { - return html.replace(/\s+/g, ' ').replace(//g, ''); - } - function consoleAdapter(cmd, msg) { - typeof console !== 'undefined' && console[cmd] && console[cmd](msg); - } - function handelError(e) { - var message = 'template.js error\n\n'; - - for (var key in e) { - message += '<' + key + '>\n' + e[key] + '\n\n'; - } - message += '\n' + e.message + '\n\n'; - consoleAdapter('error', message); - - o.error(e); - function error() { - return 'template.js error'; - } - error.toString = function () { - return '__code__ = "template.js error"'; - } - return error; - } - function parse(tpl, opt) { - var code = ''; - var sTag = opt.sTag; - var eTag = opt.eTag; - var escape = opt.escape; - function parsehtml(line) { - // 单双引号转义,换行符替换为空格 - line = line.replace(/('|")/g, '\\$1'); - var lineList = line.split('\n'); - var code = ''; - for (var i = 0; i < lineList.length; i++) { - code += ';__code__ += ("' + lineList[i] + (i === lineList.length - 1 ? '")\n' : '\\n")\n'); - } - return code; - } - function parsejs(line) { - //var reg = /^(:?)(.*?)=(.*)$/; - var reg = /^(?:=|(:.*?)=)(.*)$/ - var html; - var arr; - var modifier; - - // = := :*= - // :h=123 [':h=123', 'h', '123'] - if (arr = reg.exec(line)) { - html = arr[2]; // 输出 - if (Boolean(arr[1])) { - // :开头 - modifier = arr[1].slice(1); - } else { - // = 开头 - modifier = escape ? 'h' : ''; - } - - return ';__code__ += __modifierMap__["' + modifier + '"](typeof (' + html + ') !== "undefined" ? (' + html + ') : "")\n'; - } - - //原生js - return ';' + line + '\n'; - } - - var tokens = tpl.split(sTag); - - for (var i = 0, len = tokens.length; i < len; i++) { - var token = tokens[i].split(eTag); - - if (token.length === 1) { - code += parsehtml(token[0]); - } else { - code += parsejs(token[0], true); - if (token[1]) { - code += parsehtml(token[1]); - } - } - } - return code; - } - function compiler(tpl, opt) { - var mainCode = parse(tpl, opt); - - var headerCode = '\n' + - ' var html = (function (__data__, __modifierMap__) {\n' + - ' var __str__ = "", __code__ = "";\n' + - ' for(var key in __data__) {\n' + - ' __str__+=("var " + key + "=__data__[\'" + key + "\'];");\n' + - ' }\n' + - ' eval(__str__);\n\n'; - - var footerCode = '\n' + - ' ;return __code__;\n' + - ' }(__data__, __modifierMap__));\n' + - ' return html;\n'; - - var code = headerCode + mainCode + footerCode; - code = code.replace(/[\r]/g, ' '); // ie 7 8 会报错,不知道为什么 - try { - var Render = new Function('__data__', '__modifierMap__', code); - Render.toString = function () { - return mainCode; - } - return Render; - } catch(e) { - e.temp = 'function anonymous(__data__, __modifierMap__) {' + code + '}'; - throw e; - } - } - function compile(tpl, opt) { - opt = clone(o, opt); - - try { - var Render = compiler(tpl, opt); - } catch(e) { - e.name = 'CompileError'; - e.tpl = tpl; - e.render = e.temp; - delete e.temp; - return handelError(e); - } - - function render(data) { - data = clone(functionMap, data); - try { - var html = Render(data, modifierMap); - html = opt.compress ? compress(html) : html; - return html; - } catch(e) { - e.name = 'RenderError'; - e.tpl = tpl; - e.render = Render.toString(); - return handelError(e)(); - } - } - - render.toString = function () { - return Render.toString(); - }; - return render; - } - function template(tpl, data) { - if (typeof tpl !== 'string') { - return ''; - } - - var fn = compile(tpl); - if (!isObject(data)) { - return fn; - } - - return fn(data); - } - - template.config = function (option) { - if (isObject(option)) { - o = extend(o, option); - } - return clone(o); - }; - - template.registerFunction = function(name, fn) { - if (!isString(name)) { - return clone(functionMap); - } - if (!isFunction(fn)) { - return functionMap[name]; - } - - return functionMap[name] = fn; - } - template.unregisterFunction = function (name) { - if (!isString(name)) { - return false; - } - delete functionMap[name]; - return true; - } - - template.registerModifier = function(name, fn) { - if (!isString(name)) { - return clone(modifierMap); - } - if (!isFunction(fn)) { - return modifierMap[name]; - } - - return modifierMap[name] = fn; - } - template.unregisterModifier = function (name) { - if (!isString(name)) { - return false; - } - delete modifierMap[name]; - return true; - } - - template.__encodeHTML = encodeHTML; - template.__compress = compress; - template.__handelError = handelError; - template.__compile = compile; - template.version = '0.7.1'; - return template; -})); diff --git a/src/src/utils/themeUtil.js b/src/src/utils/themeUtil.js deleted file mode 100644 index 1c6b3d9..0000000 --- a/src/src/utils/themeUtil.js +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import { generate } from '@ant-design/colors' -import tool from '../utils/tool' -import config from '../config' -import { themeEnum } from '@/layout/enum/themeEnum' - -const changeColor = (newPrimaryColor, theme, darkClass = 'snowy-theme-dark') => { - return new Promise((resolve) => { - const themeEleId = 'snowy-theme-var' - const themeEle = document.querySelector(`#${themeEleId}`) - if (themeEle && themeEle.parentNode) { - themeEle.parentNode.removeChild(themeEle) - } - const isRealDark = theme === themeEnum.REAL_DARK - if (newPrimaryColor) { - const colors = generate(newPrimaryColor, isRealDark ? { theme: 'dark' } : {}) - const rootClass = isRealDark ? `.${darkClass}` : ':root' - const styleElement = document.createElement('style') - styleElement.id = themeEleId - styleElement.setAttribute('type', 'text/css') - styleElement.innerHTML = `${rootClass}{${colors - .map((c, i) => { - return `--primary-${i + 1}:${c};` - }) - .concat([`--primary-color:${newPrimaryColor};`]) - .join('')}}` - document.head.appendChild(styleElement) - } else { - document.body.removeAttribute('snowy-theme') - } - if (isRealDark) { - document.body.classList.add(darkClass) - } else { - document.body.classList.remove(darkClass) - } - resolve() - }) -} - -const loadLocalTheme = (localSetting) => { - if (localSetting) { - let { theme, themeColor } = localSetting - themeColor = themeColor || config.COLOR - theme = theme || config.THEME - changeColor(themeColor, theme) - } -} - -/** - * 获取本地保存的配置 - * @param loadTheme {boolean} 是否加载配置中的主题 - * @returns {Object} - */ -const getLocalSetting = (loadTheme) => { - let localSetting = {} - try { - const theme = tool.data.get('SNOWY_THEME') - const themeColor = tool.data.get('SNOWY_THEME_COLOR') - localSetting = { - theme, - themeColor - } - } catch (e) { - console.error(e) - } - if (loadTheme) { - loadLocalTheme(localSetting) - } - return localSetting -} - -export { loadLocalTheme, getLocalSetting, changeColor } diff --git a/src/src/utils/tool.js b/src/src/utils/tool.js deleted file mode 100644 index 6703aa1..0000000 --- a/src/src/utils/tool.js +++ /dev/null @@ -1,169 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -/** - * @Descripttion: 工具集 - * @version: 1.1 - * @LastEditors: yubaoshan - * @LastEditTime: 2022年4月19日10:58:41 - */ -const tool = {} - -// localStorage -tool.data = { - set(table, settings) { - const _set = JSON.stringify(settings) - const SNOWYSTRING = table.slice(0, 6) === 'SNOWY_' && table !== 'SNOWY_SYS_BASE_CONFIG' - if (SNOWYSTRING) { - let localSetting = JSON.parse(localStorage.getItem('SNOWY_SETTING')) || {} - let newSetting = {} - newSetting[table] = _set - return localStorage.setItem('SNOWY_SETTING', JSON.stringify(Object.assign(localSetting, newSetting))) - } else return localStorage.setItem(table, _set) - }, - get(table) { - const SNOWYSTRING = table.slice(0, 6) === 'SNOWY_' && table !== 'SNOWY_SYS_BASE_CONFIG' - const SNOWY_SETTING = JSON.parse(localStorage.getItem('SNOWY_SETTING')) || {} - let data = SNOWYSTRING ? SNOWY_SETTING[table] : localStorage.getItem(table) - try { - data = JSON.parse(data) - } catch (err) { - return null - } - return data - }, - remove(table) { - return localStorage.removeItem(table) - }, - - clear() { - return localStorage.clear() - } -} - -// sessionStorage -tool.session = { - set(table, settings) { - const _set = JSON.stringify(settings) - return sessionStorage.setItem(table, _set) - }, - get(table) { - let data = sessionStorage.getItem(table) - try { - data = JSON.parse(data) - } catch (err) { - return null - } - return data - }, - remove(table) { - return sessionStorage.removeItem(table) - }, - clear() { - return sessionStorage.clear() - } -} - -// 千分符 -tool.groupSeparator = (num) => { - num = `${num}` - if (!num.includes('.')) num += '.' - - return num - .replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => { - return `${$1},` - }) - .replace(/\.$/, '') -} - -// 获取所有字典数组 -tool.dictDataAll = () => { - return tool.data.get('DICT_TYPE_TREE_DATA') -} - -// 字典翻译方法,界面插槽使用方法 {{ $TOOL.dictType('sex', record.sex) }} -tool.dictTypeData = (dictValue, value) => { - const dictTypeTree = tool.dictDataAll() - if (!dictTypeTree) { - return '需重新登录' - } - const tree = dictTypeTree.find((item) => item.dictValue === dictValue) - if (!tree) { - return '无此字典' - } - const children = tree.children - const dict = children.find((item) => item.dictValue === value) - return dict ? dict.dictLabel : '无此字典项' -} - -// 获取某个code下字典的列表,多用于字典下拉框 -tool.dictTypeList = (dictValue) => { - const dictTypeTree = tool.dictDataAll() - if (!dictTypeTree) { - return [] - } - const tree = dictTypeTree.find((item) => item.dictValue === dictValue) - if (tree && tree.children) { - return tree.children - } - return [] -} - -// 获取某个code下字典的列表,基于dictTypeList 改进,保留老的,逐步替换 -tool.dictList = (dictValue) => { - const dictTypeTree = tool.dictDataAll() - if (!dictTypeTree) { - return [] - } - const tree = dictTypeTree.find((item) => item.dictValue === dictValue) - if (tree) { - return tree.children.map((item) => { - return { - value: item['dictValue'], - label: item['name'] - } - }) - } - return [] -} - -// 树形翻译 需要指定最顶级的 parentValue 和当级的value -tool.translateTree = (parentValue, value) => { - const tree = tool.dictDataAll().find((item) => item.dictValue === parentValue) - const targetNode = findNodeByValue(tree, value) - return targetNode ? targetNode.dictLabel : '' -} -const findNodeByValue = (node, value) => { - if (node.dictValue === value) { - return node - } - if (node.children) { - for (let i = 0; i < node.children.length; i++) { - const result = findNodeByValue(node.children[i], value) - if (result) { - return result - } - } - } - return null -} - -// 生成UUID -tool.snowyUuid = () => { - let uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { - let r = (Math.random() * 16) | 0, - v = c === 'x' ? r : (r & 0x3) | 0x8 - return v.toString(16) - }) - // 首字符转换成字母 - return 'xn' + uuid.slice(2) -} - -export default tool diff --git a/src/src/utils/useTabs.js b/src/src/utils/useTabs.js deleted file mode 100644 index 5b8a926..0000000 --- a/src/src/utils/useTabs.js +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import { nextTick } from 'vue' -import NProgress from 'nprogress' -import 'nprogress/nprogress.css' -import router from '@/router' -import { iframeStore, keepAliveStore, viewTagsStore } from '@/store' -export default { - // 刷新标签 - refresh() { - NProgress.start() - const keepAlive = keepAliveStore() - const route = router.currentRoute.value - keepAlive.removeKeepLive(route.name) - keepAlive.setRouteShow(false) - nextTick(() => { - keepAlive.pushKeepLive(route.name) - keepAlive.setRouteShow(true) - NProgress.done() - }) - }, - // 关闭标签 - close(tag) { - const route = tag || router.currentRoute.value - const store = viewTagsStore() - store.removeViewTags(route) - iframeStore().removeIframeList(route) - keepAliveStore().removeKeepLive(route.name) - const tagList = store.viewTags - const latestView = tagList.slice(-1)[0] - if (latestView) { - router.push(latestView) - } else { - router.push('/') - } - }, - // 关闭标签后处理 - closeNext(next) { - const route = router.currentRoute.value - const store = viewTagsStore() - store.removeViewTags(route) - iframeStore().removeIframeList(route) - keepAliveStore().removeKeepLive(route.name) - if (next) { - const tagList = store.viewTags - next(tagList) - } - }, - // 关闭其他 - closeOther() { - const route = router.currentRoute.value - const store = viewTagsStore() - const tagList = [...store.viewTags] - tagList.forEach((tag) => { - // eslint-disable-next-line prettier/prettier - if ((tag.meta && tag.meta.affix) || route.fullPath == tag.fullPath) { - return true - } else { - this.close(tag) - } - }) - }, - // 设置标题 - setTitle(title) { - viewTagsStore().updateViewTagsTitle(title) - } -} diff --git a/src/src/utils/watermark.js b/src/src/utils/watermark.js deleted file mode 100644 index a17e9b2..0000000 --- a/src/src/utils/watermark.js +++ /dev/null @@ -1,91 +0,0 @@ -/** - * Copyright [2022] [https://www.xiaonuo.vip] - * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: - * 1.请不要删除和修改根目录下的LICENSE文件。 - * 2.请不要删除和修改Snowy源码头部的版权声明。 - * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。 - * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip - * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。 - * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip - */ -import tool from '@/utils/tool' -export const watermark = { - set: function (text1, text2) { - const canvas = document.createElement('canvas') - canvas.width = 150 - canvas.height = 120 - canvas.style.display = 'none' - const shuiyin = canvas.getContext('2d') - // 控制文字的旋转角度和上下位置 - shuiyin.rotate((-20 * Math.PI) / 180) - shuiyin.translate(-50, 20) - //文字颜色 - shuiyin.fillStyle = '#f5f5f5' - //文字样式 - shuiyin.font = '100 16px Microsoft JhengHei ' - shuiyin.fillText(text1, canvas.width / 3, canvas.height / 2) - shuiyin.fillText(text2, canvas.width / 3, canvas.height / 2 + 20) - /* 新建一个用于填充canvas水印的标签,之所以没有直接在body上添加, - 是因为z-index对个别内容影响,才考虑的不用body */ - const watermark = document.createElement('div') - const styleStr = ` - position:fixed; - top:0; - left:0; - width:100vw; - height:100vh; - z-index:99999; - pointer-events:none; - background-repeat:repeat; - mix-blend-mode: multiply; - background-image:url('${canvas.toDataURL('image/png')}')` - watermark.setAttribute('style', styleStr) - watermark.classList.add('watermark') - document.body.appendChild(watermark) - - //此方法是防止用户通过控制台修改样式去除水印效果 - /* MutationObserver 是一个可以监听DOM结构变化的接口。 */ - const observer = new MutationObserver(() => { - // 此处根据用户登录状态,判断是否终止监听,避免用户退出后登录页面仍然有水印 - if (!tool.data.get('TOKEN')) { - this.close() - observer.disconnect() - } - const wmInstance = document.body.querySelector('.watermark') - if (!wmInstance || wmInstance.getAttribute('style') !== styleStr) { - //如果标签在,只修改了属性,重新赋值属性 - if (wmInstance) { - // 避免一直触发 - // observer.disconnect(); - wmInstance.setAttribute('style', styleStr) - } else { - /* 此处根据用户登录状态,判断是否终止监听,避免用户退出后登录页面仍然有水印 */ - if (tool.data.get('TOKEN')) { - //标签被移除,重新添加标签 - document.body.appendChild(watermark) - } else { - observer.disconnect() - } - } - } - }) - observer.observe(document.body, { - attributes: true, - subtree: true, - childList: true - }) - }, - close: function () { - /* 关闭页面的水印,即要移除水印标签 */ - let watermark = document.body.querySelector('.watermark') - if (watermark) { - document.body.removeChild(watermark) - } - } -} -// 使用方法 -// import { watermark } from '@/utils/watermark' -// 添加水印 -// watermark.set('Snowy','xiaonuo.vip') -// 移除水印,传 null 移除水印 -// watermark.close() diff --git a/src/src/views/auth/findPwd/emailFindForm.vue b/src/src/views/auth/findPwd/emailFindForm.vue deleted file mode 100644 index bae2a2f..0000000 --- a/src/src/views/auth/findPwd/emailFindForm.vue +++ /dev/null @@ -1,193 +0,0 @@ - - - diff --git a/src/src/views/auth/findPwd/index.vue b/src/src/views/auth/findPwd/index.vue deleted file mode 100644 index fbbe641..0000000 --- a/src/src/views/auth/findPwd/index.vue +++ /dev/null @@ -1,261 +0,0 @@ - - - - - diff --git a/src/src/views/auth/findPwd/phoneFindForm.vue b/src/src/views/auth/findPwd/phoneFindForm.vue deleted file mode 100644 index 1d8322f..0000000 --- a/src/src/views/auth/findPwd/phoneFindForm.vue +++ /dev/null @@ -1,194 +0,0 @@ - - - diff --git a/src/src/views/auth/login/callback.vue b/src/src/views/auth/login/callback.vue deleted file mode 100644 index fe27485..0000000 --- a/src/src/views/auth/login/callback.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - - - diff --git a/src/src/views/auth/login/login.less b/src/src/views/auth/login/login.less deleted file mode 100644 index c5df23b..0000000 --- a/src/src/views/auth/login/login.less +++ /dev/null @@ -1,200 +0,0 @@ -.login-icon-gray { - color: rgba(0, 0, 0, 0.25); -} -.login-validCode-img { - border: 1px solid var(--border-color-split); - cursor: pointer; - width: 100%; - height: 40px; -} -.login-wrapper{ - width: 100vw; - height:100vh; - overflow: hidden; - background-color: #fff; - display: flex; -} -.login_background { - width: 50%; - height: 100%; - overflow: hidden; - background-size: cover; - background-position: center; - background-image: url('@/assets/images/login_home.jpg'); - position: relative; -} -.login_background_front { - width: 450px; - height: 450px; - margin-left: 100px; - margin-top: 15%; - overflow: hidden; - /*position: relative;*/ - background-size: cover; - background-position: center; - background-image: url(/img/login_background_front.png); - animation-name: myfirst; - animation-duration: 5s; - animation-timing-function: linear; - animation-delay: 1s; - animation-iteration-count: infinite; - animation-direction: alternate; - animation-play-state: running; -} -@keyframes myfirst { - 0% { - left: 0px; - top: 0px; - } - 50% { - left: 50px; - top: 0px; - } - 100% { - left: 0px; - top: 0px; - } -} -@-webkit-keyframes myfirst /* Safari and Chrome */ { - 0% { - left: 0px; - top: 0px; - } - 50% { - left: 50px; - top: 0px; - } - 100% { - left: 0px; - top: 0px; - } -} -.login_adv__title h2 { - font-size: 40px; -} -.login_adv__title h4 { - font-size: 18px; - margin-top: 10px; - font-weight: normal; -} -.login_adv__title p { - font-size: 14px; - margin-top: 10px; - line-height: 1.8; - color: rgba(255, 255, 255, 0.6); -} -.login_adv__title div { - margin-top: 10px; - display: flex; - align-items: center; -} -.login_adv__title div span { - margin-right: 15px; -} -.login_adv__title div i { - font-size: 40px; -} -.login_adv__title div i.add { - font-size: 20px; - color: rgba(255, 255, 255, 0.6); -} -/*background-image:linear-gradient(transparent, #000);*/ -.login_main { - width: 50%; - height: 100%; - display: flex; - justify-content: center; -} -.login-form { - width: 450px; - position: absolute; - top:21.8% -} -.login-header { - margin-bottom: 20px; -} -.login-header h2 { - font-size: 24px; - font-weight: bold; - margin-top: 10px; -} -.login_config { - position: absolute; - top: 20px; - right: 20px; -} -.logo_background{ - position: absolute; - left: 0; - top: 56px; - height: 60px; - padding-left: 56px; - width: 100%; - //background: linear-gradient(120deg, rgb(255 255 255 / 90%), rgba(255, 255, 255, 0)); - display: flex; - align-items: center; -} -.logo_background a{ - text-decoration: none; - cursor: pointer; - display: flex; - align-items: center; -} -.logo_background a.no-link, -.logo_background a.no-link label{ - cursor: default; -} -.logo_background img{ - height:40px; - margin-right: 10px; -} -.logo_background a label{ - font-size:24px; - color:#fff; - cursor: pointer; -} -.login_background .version{ - width: 100%; - font-size: 14px; - color:#fff; - font-weight: 300; - padding: 0 56px; - box-sizing: border-box; - position: absolute; - bottom:12px; -} -.login_background .version p{ - line-height: 22px; - text-align: center; - margin-bottom:6px; -} -@media (max-width: 1200px) { - .login-form { - width: 340px; - } -} -@media (max-width: 1000px) { - .login_main { - width: 100%; - position: absolute; - left:0; - right:0; - } - .login_background_front { - display: none; - } - .login-form { - width: 100%; - padding: 20px 40px; - top:15% - } - .logo_background{ - padding-left:40px; - } - .login_background .version{ - padding:0 20px; - } - .login_background .version p:first-child{ - display: none; - } -} diff --git a/src/src/views/auth/login/login.vue b/src/src/views/auth/login/login.vue deleted file mode 100644 index db3aced..0000000 --- a/src/src/views/auth/login/login.vue +++ /dev/null @@ -1,267 +0,0 @@ - - - diff --git a/src/src/views/auth/login/phoneLoginForm.vue b/src/src/views/auth/login/phoneLoginForm.vue deleted file mode 100644 index 6ca4876..0000000 --- a/src/src/views/auth/login/phoneLoginForm.vue +++ /dev/null @@ -1,167 +0,0 @@ - - - diff --git a/src/src/views/auth/login/threeLogin.vue b/src/src/views/auth/login/threeLogin.vue deleted file mode 100644 index c3ab83a..0000000 --- a/src/src/views/auth/login/threeLogin.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/src/src/views/auth/login/util.js b/src/src/views/auth/login/util.js deleted file mode 100644 index 18d382b..0000000 --- a/src/src/views/auth/login/util.js +++ /dev/null @@ -1,49 +0,0 @@ -import userCenterApi from '@/api/sys/userCenterApi' -import dictApi from '@/api/dev/dictApi' -import router from '@/router' -import tool from '@/utils/tool' -import { message } from 'ant-design-vue' -import routerUtil from '@/utils/routerUtil' -import { useMenuStore } from '@/store/menu' -import { userStore } from '@/store/user' - -export const afterLogin = async (loginToken) => { - const menuStore = useMenuStore() - tool.data.set('TOKEN', loginToken) - // 初始化用户信息 - await userStore().initUserInfo() - - // 获取用户的菜单 - const menu = await userCenterApi.userLoginMenu() - let indexMenu = routerUtil.getIndexMenu(menu).path - await menuStore.fetchMenu() - // 重置系统默认应用 - tool.data.set('SNOWY_MENU_MODULE_ID', menu[0].id) - message.success('登录成功') - if (tool.data.get('LAST_VIEWS_PATH')) { - // 如果有缓存,将其登录跳转到最后访问的路由 - indexMenu = tool.data.get('LAST_VIEWS_PATH') - } - // 如果存在退出后换新账号登录,进行重新匹配,匹配无果则默认首页 - if (menu) { - let routerTag = 0 - menu.forEach((item) => { - if (item.children) { - if (JSON.stringify(item.children).indexOf(indexMenu) > -1) { - routerTag++ - } - } - }) - if (routerTag === 0) { - // 取首页 - indexMenu = routerUtil.getIndexMenu(menu).path - } - } - dictApi.dictTree().then((data) => { - // 设置字典到store中 - tool.data.set('DICT_TYPE_TREE_DATA', data) - }) - await router.replace({ - path: indexMenu - }) -} diff --git a/src/src/views/auth/monitor/analyse.vue b/src/src/views/auth/monitor/analyse.vue deleted file mode 100644 index 9ca7ab1..0000000 --- a/src/src/views/auth/monitor/analyse.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - - - diff --git a/src/src/views/auth/monitor/bTab.vue b/src/src/views/auth/monitor/bTab.vue deleted file mode 100644 index a907ffd..0000000 --- a/src/src/views/auth/monitor/bTab.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - - - diff --git a/src/src/views/auth/monitor/cTab.vue b/src/src/views/auth/monitor/cTab.vue deleted file mode 100644 index ab762d8..0000000 --- a/src/src/views/auth/monitor/cTab.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - - - diff --git a/src/src/views/auth/monitor/index.vue b/src/src/views/auth/monitor/index.vue deleted file mode 100644 index 34830e1..0000000 --- a/src/src/views/auth/monitor/index.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/src/src/views/auth/monitor/tokenInfoList.vue b/src/src/views/auth/monitor/tokenInfoList.vue deleted file mode 100644 index 6bba9e0..0000000 --- a/src/src/views/auth/monitor/tokenInfoList.vue +++ /dev/null @@ -1,183 +0,0 @@ - - - diff --git a/src/src/views/auth/third/index.vue b/src/src/views/auth/third/index.vue deleted file mode 100644 index 6e724ab..0000000 --- a/src/src/views/auth/third/index.vue +++ /dev/null @@ -1,102 +0,0 @@ - - - diff --git a/src/src/views/biz/dict/form.vue b/src/src/views/biz/dict/form.vue deleted file mode 100644 index 4acfd42..0000000 --- a/src/src/views/biz/dict/form.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - diff --git a/src/src/views/biz/dict/index.vue b/src/src/views/biz/dict/index.vue deleted file mode 100644 index ab1e8e7..0000000 --- a/src/src/views/biz/dict/index.vue +++ /dev/null @@ -1,193 +0,0 @@ - - - - - diff --git a/src/src/views/biz/extendedField/detail/form.vue b/src/src/views/biz/extendedField/detail/form.vue deleted file mode 100644 index 2eeda0f..0000000 --- a/src/src/views/biz/extendedField/detail/form.vue +++ /dev/null @@ -1,174 +0,0 @@ - - - diff --git a/src/src/views/biz/extendedField/index.vue b/src/src/views/biz/extendedField/index.vue deleted file mode 100644 index 2319da1..0000000 --- a/src/src/views/biz/extendedField/index.vue +++ /dev/null @@ -1,167 +0,0 @@ - - - diff --git a/src/src/views/biz/index/index.vue b/src/src/views/biz/index/index.vue deleted file mode 100644 index 9fd6bdf..0000000 --- a/src/src/views/biz/index/index.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/src/src/views/biz/notice/detail.vue b/src/src/views/biz/notice/detail.vue deleted file mode 100644 index c239f1b..0000000 --- a/src/src/views/biz/notice/detail.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - diff --git a/src/src/views/biz/notice/form.vue b/src/src/views/biz/notice/form.vue deleted file mode 100644 index fd76a69..0000000 --- a/src/src/views/biz/notice/form.vue +++ /dev/null @@ -1,148 +0,0 @@ - - - diff --git a/src/src/views/biz/notice/index.vue b/src/src/views/biz/notice/index.vue deleted file mode 100644 index e26eb8f..0000000 --- a/src/src/views/biz/notice/index.vue +++ /dev/null @@ -1,250 +0,0 @@ - - - diff --git a/src/src/views/biz/org/form.vue b/src/src/views/biz/org/form.vue deleted file mode 100644 index 537e5be..0000000 --- a/src/src/views/biz/org/form.vue +++ /dev/null @@ -1,151 +0,0 @@ - - - diff --git a/src/src/views/biz/org/index.vue b/src/src/views/biz/org/index.vue deleted file mode 100644 index 0b3afd3..0000000 --- a/src/src/views/biz/org/index.vue +++ /dev/null @@ -1,219 +0,0 @@ - - - - - diff --git a/src/src/views/biz/position/form.vue b/src/src/views/biz/position/form.vue deleted file mode 100644 index 90c870b..0000000 --- a/src/src/views/biz/position/form.vue +++ /dev/null @@ -1,118 +0,0 @@ - - - diff --git a/src/src/views/biz/position/index.vue b/src/src/views/biz/position/index.vue deleted file mode 100644 index 26bdb13..0000000 --- a/src/src/views/biz/position/index.vue +++ /dev/null @@ -1,216 +0,0 @@ - - - - - diff --git a/src/src/views/biz/searchTags/form.vue b/src/src/views/biz/searchTags/form.vue deleted file mode 100644 index acd4437..0000000 --- a/src/src/views/biz/searchTags/form.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - diff --git a/src/src/views/biz/searchTags/index.vue b/src/src/views/biz/searchTags/index.vue deleted file mode 100644 index 227b93f..0000000 --- a/src/src/views/biz/searchTags/index.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - diff --git a/src/src/views/biz/user/form.vue b/src/src/views/biz/user/form.vue deleted file mode 100644 index fc6587a..0000000 --- a/src/src/views/biz/user/form.vue +++ /dev/null @@ -1,568 +0,0 @@ - - - - - diff --git a/src/src/views/biz/user/index.vue b/src/src/views/biz/user/index.vue deleted file mode 100644 index 522efd7..0000000 --- a/src/src/views/biz/user/index.vue +++ /dev/null @@ -1,425 +0,0 @@ - - - - diff --git a/src/src/views/dev/config/emailConfig/aliyunEmailForm.vue b/src/src/views/dev/config/emailConfig/aliyunEmailForm.vue deleted file mode 100644 index 7f42718..0000000 --- a/src/src/views/dev/config/emailConfig/aliyunEmailForm.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - diff --git a/src/src/views/dev/config/emailConfig/index.vue b/src/src/views/dev/config/emailConfig/index.vue deleted file mode 100644 index 4225739..0000000 --- a/src/src/views/dev/config/emailConfig/index.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/src/src/views/dev/config/emailConfig/localEmailForm.vue b/src/src/views/dev/config/emailConfig/localEmailForm.vue deleted file mode 100644 index 896842b..0000000 --- a/src/src/views/dev/config/emailConfig/localEmailForm.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - diff --git a/src/src/views/dev/config/emailConfig/tencentEmailForm.vue b/src/src/views/dev/config/emailConfig/tencentEmailForm.vue deleted file mode 100644 index e69f7f9..0000000 --- a/src/src/views/dev/config/emailConfig/tencentEmailForm.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - diff --git a/src/src/views/dev/config/fileConfig/aliyunFileForm.vue b/src/src/views/dev/config/fileConfig/aliyunFileForm.vue deleted file mode 100644 index dc6ae29..0000000 --- a/src/src/views/dev/config/fileConfig/aliyunFileForm.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - diff --git a/src/src/views/dev/config/fileConfig/index.vue b/src/src/views/dev/config/fileConfig/index.vue deleted file mode 100644 index ad3674a..0000000 --- a/src/src/views/dev/config/fileConfig/index.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/src/src/views/dev/config/fileConfig/localFileForm.vue b/src/src/views/dev/config/fileConfig/localFileForm.vue deleted file mode 100644 index 06f3557..0000000 --- a/src/src/views/dev/config/fileConfig/localFileForm.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - diff --git a/src/src/views/dev/config/fileConfig/minioFileForm.vue b/src/src/views/dev/config/fileConfig/minioFileForm.vue deleted file mode 100644 index ead4129..0000000 --- a/src/src/views/dev/config/fileConfig/minioFileForm.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - diff --git a/src/src/views/dev/config/fileConfig/tencentFileForm.vue b/src/src/views/dev/config/fileConfig/tencentFileForm.vue deleted file mode 100644 index 87d30b3..0000000 --- a/src/src/views/dev/config/fileConfig/tencentFileForm.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - diff --git a/src/src/views/dev/config/index.vue b/src/src/views/dev/config/index.vue deleted file mode 100644 index 011eddb..0000000 --- a/src/src/views/dev/config/index.vue +++ /dev/null @@ -1,74 +0,0 @@ - - - diff --git a/src/src/views/dev/config/otherConfig/form.vue b/src/src/views/dev/config/otherConfig/form.vue deleted file mode 100644 index 8d5eb4d..0000000 --- a/src/src/views/dev/config/otherConfig/form.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - diff --git a/src/src/views/dev/config/otherConfig/index.vue b/src/src/views/dev/config/otherConfig/index.vue deleted file mode 100644 index 600095a..0000000 --- a/src/src/views/dev/config/otherConfig/index.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - diff --git a/src/src/views/dev/config/smsConfig/aliyunSmsForm.vue b/src/src/views/dev/config/smsConfig/aliyunSmsForm.vue deleted file mode 100644 index cea4ff2..0000000 --- a/src/src/views/dev/config/smsConfig/aliyunSmsForm.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - diff --git a/src/src/views/dev/config/smsConfig/index.vue b/src/src/views/dev/config/smsConfig/index.vue deleted file mode 100644 index 9b20f83..0000000 --- a/src/src/views/dev/config/smsConfig/index.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/src/src/views/dev/config/smsConfig/tencentSmsForm.vue b/src/src/views/dev/config/smsConfig/tencentSmsForm.vue deleted file mode 100644 index 333e6dd..0000000 --- a/src/src/views/dev/config/smsConfig/tencentSmsForm.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - diff --git a/src/src/views/dev/config/smsConfig/xiaonuoSmsForm.vue b/src/src/views/dev/config/smsConfig/xiaonuoSmsForm.vue deleted file mode 100644 index 247f83b..0000000 --- a/src/src/views/dev/config/smsConfig/xiaonuoSmsForm.vue +++ /dev/null @@ -1,108 +0,0 @@ - - - diff --git a/src/src/views/dev/config/sysConfig.vue b/src/src/views/dev/config/sysConfig.vue deleted file mode 100644 index c92481c..0000000 --- a/src/src/views/dev/config/sysConfig.vue +++ /dev/null @@ -1,229 +0,0 @@ - - - diff --git a/src/src/views/dev/config/thirdConfig/giteeThirdForm.vue b/src/src/views/dev/config/thirdConfig/giteeThirdForm.vue deleted file mode 100644 index 9c7b619..0000000 --- a/src/src/views/dev/config/thirdConfig/giteeThirdForm.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - diff --git a/src/src/views/dev/config/thirdConfig/index.vue b/src/src/views/dev/config/thirdConfig/index.vue deleted file mode 100644 index bf0d7b8..0000000 --- a/src/src/views/dev/config/thirdConfig/index.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/src/src/views/dev/config/thirdConfig/wechatThirdForm.vue b/src/src/views/dev/config/thirdConfig/wechatThirdForm.vue deleted file mode 100644 index 33ce2a3..0000000 --- a/src/src/views/dev/config/thirdConfig/wechatThirdForm.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - diff --git a/src/src/views/dev/dict/category/bizIndex.vue b/src/src/views/dev/dict/category/bizIndex.vue deleted file mode 100644 index 43eaaef..0000000 --- a/src/src/views/dev/dict/category/bizIndex.vue +++ /dev/null @@ -1,200 +0,0 @@ - - - - - diff --git a/src/src/views/dev/dict/category/form.vue b/src/src/views/dev/dict/category/form.vue deleted file mode 100644 index ff117f0..0000000 --- a/src/src/views/dev/dict/category/form.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - diff --git a/src/src/views/dev/dict/category/frmIndex.vue b/src/src/views/dev/dict/category/frmIndex.vue deleted file mode 100644 index cbfa999..0000000 --- a/src/src/views/dev/dict/category/frmIndex.vue +++ /dev/null @@ -1,184 +0,0 @@ - - - - - diff --git a/src/src/views/dev/dict/index.vue b/src/src/views/dev/dict/index.vue deleted file mode 100644 index a126cd8..0000000 --- a/src/src/views/dev/dict/index.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/src/src/views/dev/email/detail.vue b/src/src/views/dev/email/detail.vue deleted file mode 100644 index 5eb083e..0000000 --- a/src/src/views/dev/email/detail.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - diff --git a/src/src/views/dev/email/form.vue b/src/src/views/dev/email/form.vue deleted file mode 100644 index 2954061..0000000 --- a/src/src/views/dev/email/form.vue +++ /dev/null @@ -1,72 +0,0 @@ - - - diff --git a/src/src/views/dev/email/index.vue b/src/src/views/dev/email/index.vue deleted file mode 100644 index 72eca9b..0000000 --- a/src/src/views/dev/email/index.vue +++ /dev/null @@ -1,182 +0,0 @@ - - - - - diff --git a/src/src/views/dev/email/send/aliyunEmailSend.vue b/src/src/views/dev/email/send/aliyunEmailSend.vue deleted file mode 100644 index 82c8e1b..0000000 --- a/src/src/views/dev/email/send/aliyunEmailSend.vue +++ /dev/null @@ -1,125 +0,0 @@ - - - diff --git a/src/src/views/dev/email/send/localEmailSend.vue b/src/src/views/dev/email/send/localEmailSend.vue deleted file mode 100644 index 13f0a26..0000000 --- a/src/src/views/dev/email/send/localEmailSend.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - diff --git a/src/src/views/dev/email/send/tencentEmailSend.vue b/src/src/views/dev/email/send/tencentEmailSend.vue deleted file mode 100644 index 6caabc5..0000000 --- a/src/src/views/dev/email/send/tencentEmailSend.vue +++ /dev/null @@ -1,125 +0,0 @@ - - - diff --git a/src/src/views/dev/file/detail.vue b/src/src/views/dev/file/detail.vue deleted file mode 100644 index 79dac58..0000000 --- a/src/src/views/dev/file/detail.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - diff --git a/src/src/views/dev/file/index.vue b/src/src/views/dev/file/index.vue deleted file mode 100644 index 665b913..0000000 --- a/src/src/views/dev/file/index.vue +++ /dev/null @@ -1,259 +0,0 @@ - - - - - diff --git a/src/src/views/dev/file/preview.vue b/src/src/views/dev/file/preview.vue deleted file mode 100644 index 7db4a1d..0000000 --- a/src/src/views/dev/file/preview.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/src/src/views/dev/file/uploadForm.vue b/src/src/views/dev/file/uploadForm.vue deleted file mode 100644 index 2cfb615..0000000 --- a/src/src/views/dev/file/uploadForm.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - diff --git a/src/src/views/dev/job/form.vue b/src/src/views/dev/job/form.vue deleted file mode 100644 index fc42c4f..0000000 --- a/src/src/views/dev/job/form.vue +++ /dev/null @@ -1,117 +0,0 @@ - - - diff --git a/src/src/views/dev/job/index.vue b/src/src/views/dev/job/index.vue deleted file mode 100644 index 809f265..0000000 --- a/src/src/views/dev/job/index.vue +++ /dev/null @@ -1,216 +0,0 @@ - - - diff --git a/src/src/views/dev/log/oplog/columnChart.vue b/src/src/views/dev/log/oplog/columnChart.vue deleted file mode 100644 index b93e717..0000000 --- a/src/src/views/dev/log/oplog/columnChart.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - diff --git a/src/src/views/dev/log/oplog/detail.vue b/src/src/views/dev/log/oplog/detail.vue deleted file mode 100644 index 50d2c4d..0000000 --- a/src/src/views/dev/log/oplog/detail.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - diff --git a/src/src/views/dev/log/oplog/index.vue b/src/src/views/dev/log/oplog/index.vue deleted file mode 100644 index b7c1bd1..0000000 --- a/src/src/views/dev/log/oplog/index.vue +++ /dev/null @@ -1,155 +0,0 @@ - - - diff --git a/src/src/views/dev/log/oplog/pieChart.vue b/src/src/views/dev/log/oplog/pieChart.vue deleted file mode 100644 index def0089..0000000 --- a/src/src/views/dev/log/oplog/pieChart.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - - diff --git a/src/src/views/dev/log/vislog/detail.vue b/src/src/views/dev/log/vislog/detail.vue deleted file mode 100644 index 5fbb130..0000000 --- a/src/src/views/dev/log/vislog/detail.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/src/src/views/dev/log/vislog/index.vue b/src/src/views/dev/log/vislog/index.vue deleted file mode 100644 index 33bc370..0000000 --- a/src/src/views/dev/log/vislog/index.vue +++ /dev/null @@ -1,141 +0,0 @@ - - - diff --git a/src/src/views/dev/log/vislog/lineChart.vue b/src/src/views/dev/log/vislog/lineChart.vue deleted file mode 100644 index db1cfc1..0000000 --- a/src/src/views/dev/log/vislog/lineChart.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - - diff --git a/src/src/views/dev/log/vislog/pieChart.vue b/src/src/views/dev/log/vislog/pieChart.vue deleted file mode 100644 index a9c9938..0000000 --- a/src/src/views/dev/log/vislog/pieChart.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - - diff --git a/src/src/views/dev/message/detail.vue b/src/src/views/dev/message/detail.vue deleted file mode 100644 index e08d98f..0000000 --- a/src/src/views/dev/message/detail.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - diff --git a/src/src/views/dev/message/form.vue b/src/src/views/dev/message/form.vue deleted file mode 100644 index 1811b99..0000000 --- a/src/src/views/dev/message/form.vue +++ /dev/null @@ -1,101 +0,0 @@ - - - diff --git a/src/src/views/dev/message/index.vue b/src/src/views/dev/message/index.vue deleted file mode 100644 index d13c33e..0000000 --- a/src/src/views/dev/message/index.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - - diff --git a/src/src/views/dev/monitor/index.vue b/src/src/views/dev/monitor/index.vue deleted file mode 100644 index 967296a..0000000 --- a/src/src/views/dev/monitor/index.vue +++ /dev/null @@ -1,217 +0,0 @@ - - - - - diff --git a/src/src/views/dev/slideshow/form.vue b/src/src/views/dev/slideshow/form.vue deleted file mode 100644 index be23587..0000000 --- a/src/src/views/dev/slideshow/form.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - diff --git a/src/src/views/dev/slideshow/index.vue b/src/src/views/dev/slideshow/index.vue deleted file mode 100644 index f6c3d48..0000000 --- a/src/src/views/dev/slideshow/index.vue +++ /dev/null @@ -1,233 +0,0 @@ - - - diff --git a/src/src/views/dev/slideshow/subForm.vue b/src/src/views/dev/slideshow/subForm.vue deleted file mode 100644 index a3bfe3e..0000000 --- a/src/src/views/dev/slideshow/subForm.vue +++ /dev/null @@ -1,162 +0,0 @@ - - - - diff --git a/src/src/views/dev/sms/detail.vue b/src/src/views/dev/sms/detail.vue deleted file mode 100644 index 8282597..0000000 --- a/src/src/views/dev/sms/detail.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - diff --git a/src/src/views/dev/sms/form.vue b/src/src/views/dev/sms/form.vue deleted file mode 100644 index 8f65487..0000000 --- a/src/src/views/dev/sms/form.vue +++ /dev/null @@ -1,72 +0,0 @@ - - - diff --git a/src/src/views/dev/sms/index.vue b/src/src/views/dev/sms/index.vue deleted file mode 100644 index 8dea5f7..0000000 --- a/src/src/views/dev/sms/index.vue +++ /dev/null @@ -1,174 +0,0 @@ - - - - - diff --git a/src/src/views/dev/sms/send/aliyunSmsSend.vue b/src/src/views/dev/sms/send/aliyunSmsSend.vue deleted file mode 100644 index 886fe88..0000000 --- a/src/src/views/dev/sms/send/aliyunSmsSend.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - diff --git a/src/src/views/dev/sms/send/tencentSmsSend.vue b/src/src/views/dev/sms/send/tencentSmsSend.vue deleted file mode 100644 index daec4b5..0000000 --- a/src/src/views/dev/sms/send/tencentSmsSend.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - diff --git a/src/src/views/dev/sms/send/xiaonuoSmsSend.vue b/src/src/views/dev/sms/send/xiaonuoSmsSend.vue deleted file mode 100644 index 4a6b139..0000000 --- a/src/src/views/dev/sms/send/xiaonuoSmsSend.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/eCBingZhuangTu.vue b/src/src/views/exm/chart/eCBingZhuangTu.vue deleted file mode 100644 index 6fd9aa1..0000000 --- a/src/src/views/exm/chart/eCBingZhuangTu.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/eCHengTiaoTu.vue b/src/src/views/exm/chart/eCHengTiaoTu.vue deleted file mode 100644 index b0fdccd..0000000 --- a/src/src/views/exm/chart/eCHengTiaoTu.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/eCKXianTu.vue b/src/src/views/exm/chart/eCKXianTu.vue deleted file mode 100644 index 0fa96d3..0000000 --- a/src/src/views/exm/chart/eCKXianTu.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - diff --git a/src/src/views/exm/chart/eCLouDouTu.vue b/src/src/views/exm/chart/eCLouDouTu.vue deleted file mode 100644 index 30031fc..0000000 --- a/src/src/views/exm/chart/eCLouDouTu.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/eCSanDianTu.vue b/src/src/views/exm/chart/eCSanDianTu.vue deleted file mode 100644 index 12ea54a..0000000 --- a/src/src/views/exm/chart/eCSanDianTu.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/eCShuXingTu.vue b/src/src/views/exm/chart/eCShuXingTu.vue deleted file mode 100644 index da765af..0000000 --- a/src/src/views/exm/chart/eCShuXingTu.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/eCXianXingTu.vue b/src/src/views/exm/chart/eCXianXingTu.vue deleted file mode 100644 index 600cb83..0000000 --- a/src/src/views/exm/chart/eCXianXingTu.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/eCYiBiaoTu.vue b/src/src/views/exm/chart/eCYiBiaoTu.vue deleted file mode 100644 index 832e560..0000000 --- a/src/src/views/exm/chart/eCYiBiaoTu.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/eCZheZhuTu.vue b/src/src/views/exm/chart/eCZheZhuTu.vue deleted file mode 100644 index 085ea55..0000000 --- a/src/src/views/exm/chart/eCZheZhuTu.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/eCZhuZhuangTu.vue b/src/src/views/exm/chart/eCZhuZhuangTu.vue deleted file mode 100644 index df9e49d..0000000 --- a/src/src/views/exm/chart/eCZhuZhuangTu.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/g2BingZhuangTu.vue b/src/src/views/exm/chart/g2BingZhuangTu.vue deleted file mode 100644 index 37c7200..0000000 --- a/src/src/views/exm/chart/g2BingZhuangTu.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/g2CiYunTu.vue b/src/src/views/exm/chart/g2CiYunTu.vue deleted file mode 100644 index f4b7f6b..0000000 --- a/src/src/views/exm/chart/g2CiYunTu.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/g2JinDuTu.vue b/src/src/views/exm/chart/g2JinDuTu.vue deleted file mode 100644 index 554ad63..0000000 --- a/src/src/views/exm/chart/g2JinDuTu.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/g2LouDouTu.vue b/src/src/views/exm/chart/g2LouDouTu.vue deleted file mode 100644 index 6e2dfac..0000000 --- a/src/src/views/exm/chart/g2LouDouTu.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/g2MianJiTu.vue b/src/src/views/exm/chart/g2MianJiTu.vue deleted file mode 100644 index f652d79..0000000 --- a/src/src/views/exm/chart/g2MianJiTu.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/g2SanDianTu.vue b/src/src/views/exm/chart/g2SanDianTu.vue deleted file mode 100644 index 88a03a1..0000000 --- a/src/src/views/exm/chart/g2SanDianTu.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/g2TiaoXingTu.vue b/src/src/views/exm/chart/g2TiaoXingTu.vue deleted file mode 100644 index 4065f0e..0000000 --- a/src/src/views/exm/chart/g2TiaoXingTu.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/g2ZheXianTu.vue b/src/src/views/exm/chart/g2ZheXianTu.vue deleted file mode 100644 index c72ec83..0000000 --- a/src/src/views/exm/chart/g2ZheXianTu.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/g2ZhuZhuangTu.vue b/src/src/views/exm/chart/g2ZhuZhuangTu.vue deleted file mode 100644 index cc5cb5c..0000000 --- a/src/src/views/exm/chart/g2ZhuZhuangTu.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/src/src/views/exm/chart/g2ZiDanTu.vue b/src/src/views/exm/chart/g2ZiDanTu.vue deleted file mode 100644 index d3e7a47..0000000 --- a/src/src/views/exm/chart/g2ZiDanTu.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/src/src/views/exm/editor/index.vue b/src/src/views/exm/editor/index.vue deleted file mode 100644 index 4ec42ca..0000000 --- a/src/src/views/exm/editor/index.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/src/src/views/exm/iconSelect/index.vue b/src/src/views/exm/iconSelect/index.vue deleted file mode 100644 index b602a78..0000000 --- a/src/src/views/exm/iconSelect/index.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - - - diff --git a/src/src/views/exm/map/baiduMap.vue b/src/src/views/exm/map/baiduMap.vue deleted file mode 100644 index 957e8a1..0000000 --- a/src/src/views/exm/map/baiduMap.vue +++ /dev/null @@ -1,124 +0,0 @@ - - - diff --git a/src/src/views/exm/map/gaodeMap.vue b/src/src/views/exm/map/gaodeMap.vue deleted file mode 100644 index 66aca85..0000000 --- a/src/src/views/exm/map/gaodeMap.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - diff --git a/src/src/views/exm/nestRoutor/index.vue b/src/src/views/exm/nestRoutor/index.vue deleted file mode 100644 index 61da89e..0000000 --- a/src/src/views/exm/nestRoutor/index.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/src/src/views/gen/basic.vue b/src/src/views/gen/basic.vue deleted file mode 100644 index a8a86c5..0000000 --- a/src/src/views/gen/basic.vue +++ /dev/null @@ -1,466 +0,0 @@ - - - - diff --git a/src/src/views/gen/config.vue b/src/src/views/gen/config.vue deleted file mode 100644 index 4bb4210..0000000 --- a/src/src/views/gen/config.vue +++ /dev/null @@ -1,455 +0,0 @@ - - - - diff --git a/src/src/views/gen/index.vue b/src/src/views/gen/index.vue deleted file mode 100644 index 1fd4d0e..0000000 --- a/src/src/views/gen/index.vue +++ /dev/null @@ -1,197 +0,0 @@ - - - diff --git a/src/src/views/gen/preview.vue b/src/src/views/gen/preview.vue deleted file mode 100644 index a4085cc..0000000 --- a/src/src/views/gen/preview.vue +++ /dev/null @@ -1,103 +0,0 @@ - - - - diff --git a/src/src/views/gen/steps.vue b/src/src/views/gen/steps.vue deleted file mode 100644 index 59e8d6c..0000000 --- a/src/src/views/gen/steps.vue +++ /dev/null @@ -1,163 +0,0 @@ - - - diff --git a/src/src/views/index/index.vue b/src/src/views/index/index.vue deleted file mode 100644 index 3eb9bca..0000000 --- a/src/src/views/index/index.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/src/src/views/mobile/resource/button/form.vue b/src/src/views/mobile/resource/button/form.vue deleted file mode 100644 index 281b2b0..0000000 --- a/src/src/views/mobile/resource/button/form.vue +++ /dev/null @@ -1,77 +0,0 @@ - - - diff --git a/src/src/views/mobile/resource/button/index.vue b/src/src/views/mobile/resource/button/index.vue deleted file mode 100644 index 6278433..0000000 --- a/src/src/views/mobile/resource/button/index.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - diff --git a/src/src/views/mobile/resource/menu/changeModuleForm.vue b/src/src/views/mobile/resource/menu/changeModuleForm.vue deleted file mode 100644 index 7e5e106..0000000 --- a/src/src/views/mobile/resource/menu/changeModuleForm.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - diff --git a/src/src/views/mobile/resource/menu/form.vue b/src/src/views/mobile/resource/menu/form.vue deleted file mode 100644 index 76aa3d9..0000000 --- a/src/src/views/mobile/resource/menu/form.vue +++ /dev/null @@ -1,248 +0,0 @@ - - - diff --git a/src/src/views/mobile/resource/menu/index.vue b/src/src/views/mobile/resource/menu/index.vue deleted file mode 100644 index bbf5644..0000000 --- a/src/src/views/mobile/resource/menu/index.vue +++ /dev/null @@ -1,212 +0,0 @@ - - - diff --git a/src/src/views/mobile/resource/module/form.vue b/src/src/views/mobile/resource/module/form.vue deleted file mode 100644 index 0f4629a..0000000 --- a/src/src/views/mobile/resource/module/form.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - diff --git a/src/src/views/mobile/resource/module/index.vue b/src/src/views/mobile/resource/module/index.vue deleted file mode 100644 index c1c713c..0000000 --- a/src/src/views/mobile/resource/module/index.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - diff --git a/src/src/views/other/index.vue b/src/src/views/other/index.vue deleted file mode 100644 index c65f310..0000000 --- a/src/src/views/other/index.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/brand/columns/brandColumns.js b/src/src/views/productionBusiness/basicData/brand/columns/brandColumns.js deleted file mode 100644 index 2f5b3fa..0000000 --- a/src/src/views/productionBusiness/basicData/brand/columns/brandColumns.js +++ /dev/null @@ -1,18 +0,0 @@ -export const brandColumns = [ - { - title: '编码', - dataIndex: 'number' - }, - { - title: '名称', - dataIndex: 'name' - }, - { - title: '可用状态', - dataIndex: 'enabledState' - }, - { - title: '创建时间', - dataIndex: 'createTime' - } -] diff --git a/src/src/views/productionBusiness/basicData/brand/detail/index.vue b/src/src/views/productionBusiness/basicData/brand/detail/index.vue deleted file mode 100644 index d88ab1f..0000000 --- a/src/src/views/productionBusiness/basicData/brand/detail/index.vue +++ /dev/null @@ -1,110 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/brand/formFields/detailFields.js b/src/src/views/productionBusiness/basicData/brand/formFields/detailFields.js deleted file mode 100644 index 730bc41..0000000 --- a/src/src/views/productionBusiness/basicData/brand/formFields/detailFields.js +++ /dev/null @@ -1,88 +0,0 @@ -import { required } from '@/utils/formRules' -import tool from '@/utils/tool' - -export const formRules = { - name: [required('请输入名称')], - type: [required('请输入类型')], - appid: [required('请输入AppID')], - secret: [required('请输入AppSecret')] -} - -export const brandFormItems = reactive([ - { - label: '名称:', - name: 'name', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入名称', - allowClear: true - } - }, - { - label: '编码:', - name: 'number', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入编码', - allowClear: true - } - }, - { - label: '简称:', - name: 'shortName', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入简称', - allowClear: true - } - }, - { - label: '所属企业:', - name: 'company', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入所属企业', - allowClear: true - } - }, - { - label: '公众号:', - name: 'officialAccountId', - type: 'a-select', - span: 6, - attrs: { - placeholder: '请输入公众号', - options: [], - fieldNames: { - children: 'children', - label: 'name', - value: 'id' - } - } - }, - { - label: '启用状态:', - name: 'enabledState', - type: 'a-select', - span: 6, - attrs: { - placeholder: '请选择启用状态', - options: tool.dictList('COMMON_STATUS') - }, - defaultValue: 'ENABLE' - }, - { - label: '备注:', - name: 'remarks', - type: 'a-textarea', - span: 24, - attrs: { - placeholder: '请输入备注', - allowClear: true - } - } -]) diff --git a/src/src/views/productionBusiness/basicData/brand/formFields/searchFields.js b/src/src/views/productionBusiness/basicData/brand/formFields/searchFields.js deleted file mode 100644 index 7602096..0000000 --- a/src/src/views/productionBusiness/basicData/brand/formFields/searchFields.js +++ /dev/null @@ -1,12 +0,0 @@ -import tool from '@/utils/tool' - -export const searchFields = [ - { name: 'name', label: '名称', component: 'a-input', props: { placeholder: '请输入名称' } }, - { - name: 'enabledState', - label: '可用状态', - component: 'a-select', - props: { placeholder: '请选择状态', options: tool.dictList('COMMON_STATUS') } - }, - { name: 'number', label: '编码', component: 'a-input', props: { placeholder: '请输入编码' } } -] diff --git a/src/src/views/productionBusiness/basicData/brand/index.vue b/src/src/views/productionBusiness/basicData/brand/index.vue deleted file mode 100644 index c1782bd..0000000 --- a/src/src/views/productionBusiness/basicData/brand/index.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/client/detail/CustomerCategoryForm.vue b/src/src/views/productionBusiness/basicData/client/detail/CustomerCategoryForm.vue deleted file mode 100644 index 9c2ac47..0000000 --- a/src/src/views/productionBusiness/basicData/client/detail/CustomerCategoryForm.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/client/detail/index.vue b/src/src/views/productionBusiness/basicData/client/detail/index.vue deleted file mode 100644 index 1a0741c..0000000 --- a/src/src/views/productionBusiness/basicData/client/detail/index.vue +++ /dev/null @@ -1,334 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/client/formFields/detailFields.js b/src/src/views/productionBusiness/basicData/client/formFields/detailFields.js deleted file mode 100644 index 87cd527..0000000 --- a/src/src/views/productionBusiness/basicData/client/formFields/detailFields.js +++ /dev/null @@ -1,215 +0,0 @@ -import { required } from '@/utils/formRules' -import tool from '@/utils/tool' - -export const formRules = { - name: [required('请输入名称')], - type: [required('请输入类型')], - appid: [required('请输入AppID')], - secret: [required('请输入AppSecret')] -} - -export const clientFormItems = reactive([ - { - label: '编码:', - name: 'number', - type: 'a-input', - span: 8, - attrs: { - placeholder: '请选择类型', - options: tool.dictList('OFFICIAL_ACCOUNT_TYPE') - } - }, - { - label: '名称:', - name: 'name', - type: 'a-input', - span: 8, - rules: [required('请输入名称')], - attrs: { - placeholder: '请输入名称', - allowClear: true - } - }, - { - label: '简称:', - name: 'shortName', - type: 'a-input', - span: 8, - attrs: { - placeholder: '请输入名称', - allowClear: true - } - }, - { - label: '可用状态:', - name: 'enabledState', - type: 'a-select', - span: 8, - attrs: { - placeholder: '请选择可用状态', - options: tool.dictList('COMMON_STATUS') - }, - defaultValue: 'ENABLE' - }, - { - label: '品牌:', - name: 'brandId', - type: 'a-select', - span: 8, - // rules: [required('请选择品牌')], - attrs: { - placeholder: '请选择品牌', - options: tool.dictList('COMMON_STATUS'), - fieldNames: { - label: 'name', - value: 'id' - } - } - }, - { - label: '客户分类:', - name: 'categoryId', - type: 'a-tree-select', - span: 8, - rules: [required('请选择客户分类')], - attrs: { - placeholder: '请选择客户分类', - allowClear: true, - fieldNames: { - children: 'children', - label: 'name', - value: 'id' - } - } - }, - { - label: '省:', - name: 'province', - span: 8, - rules: [required('请选择省')], - isUseSlot: true, - slotName: 'provinceSlot', - attrs: { - placeholder: '请选择省' - } - }, - { - label: '市:', - name: 'city', - span: 8, - rules: [required('请选择市')], - isUseSlot: true, - slotName: 'citySlot' - }, - { - label: '区:', - name: 'county', - isUseSlot: true, - slotName: 'countySlot', - span: 8, - rules: [required('请选择区')] - }, - { - name: 'address', - type: 'a-textarea', - span: 24, - attrs: { - placeholder: '请输入详细地址', - allowClear: true, - fieldNames: { - children: 'children', - label: 'name', - value: 'id' - } - } - }, - { - label: '备注:', - name: 'remarks', - type: 'a-textarea', - span: 24, - attrs: { - placeholder: '请输入备注', - allowClear: true - } - } -]) - -export const baseFormItems = [ - { - label: '联系人:', - name: 'contacts', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请选择类型' - } - }, - { - label: '手机:', - name: 'phone', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请选择类型' - } - }, - { - label: '固话:', - name: 'tel', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请选择类型' - } - }, - { - label: '传真:', - name: 'fax', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请选择类型' - } - }, - { - label: '电子邮箱:', - name: 'email', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入备注', - allowClear: true - } - }, - { - label: 'QQ:', - name: 'qq', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入备注', - allowClear: true - } - }, - { - label: '微信:', - name: 'wechat', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入备注', - allowClear: true - } - }, - { - label: '联系地址:', - name: 'contactAddress', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入备注', - allowClear: true - } - } -] diff --git a/src/src/views/productionBusiness/basicData/client/formFields/drawerForm.js b/src/src/views/productionBusiness/basicData/client/formFields/drawerForm.js deleted file mode 100644 index e781b9b..0000000 --- a/src/src/views/productionBusiness/basicData/client/formFields/drawerForm.js +++ /dev/null @@ -1,44 +0,0 @@ -import { required } from '@/utils/formRules' - -export const drawerForm = reactive([ - { - label: '编码:', - name: 'number', - type: 'a-input-number', - span: 12, - attrs: { - placeholder: '请输入编码', - allowClear: true - } - }, - { - label: '名称:', - name: 'name', - type: 'a-input', - span: 12, - attrs: { - placeholder: '请输入名称', - allowClear: true - } - }, - { - label: '上级客户:', - name: 'parentId', - type: 'a-tree-select', - span: 12, - attrs: { - placeholder: '请选择上级客户', - treeData: [], - fieldNames: { - children: 'children', - label: 'name', - value: 'id' - } - } - } -]) - -export const formRules = { - name: [required('请输入名称')], - parentId: [required('请选择上级')] -} diff --git a/src/src/views/productionBusiness/basicData/client/formFields/searchFields.js b/src/src/views/productionBusiness/basicData/client/formFields/searchFields.js deleted file mode 100644 index 7602096..0000000 --- a/src/src/views/productionBusiness/basicData/client/formFields/searchFields.js +++ /dev/null @@ -1,12 +0,0 @@ -import tool from '@/utils/tool' - -export const searchFields = [ - { name: 'name', label: '名称', component: 'a-input', props: { placeholder: '请输入名称' } }, - { - name: 'enabledState', - label: '可用状态', - component: 'a-select', - props: { placeholder: '请选择状态', options: tool.dictList('COMMON_STATUS') } - }, - { name: 'number', label: '编码', component: 'a-input', props: { placeholder: '请输入编码' } } -] diff --git a/src/src/views/productionBusiness/basicData/client/index.vue b/src/src/views/productionBusiness/basicData/client/index.vue deleted file mode 100644 index 90608c6..0000000 --- a/src/src/views/productionBusiness/basicData/client/index.vue +++ /dev/null @@ -1,201 +0,0 @@ - - - - - diff --git a/src/src/views/productionBusiness/basicData/employee/detail/index.vue b/src/src/views/productionBusiness/basicData/employee/detail/index.vue deleted file mode 100644 index a9be07b..0000000 --- a/src/src/views/productionBusiness/basicData/employee/detail/index.vue +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/src/views/productionBusiness/basicData/employee/index.vue b/src/src/views/productionBusiness/basicData/employee/index.vue deleted file mode 100644 index d3044ac..0000000 --- a/src/src/views/productionBusiness/basicData/employee/index.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/materiel/column/materiel-column.js b/src/src/views/productionBusiness/basicData/materiel/column/materiel-column.js deleted file mode 100644 index a4b56f3..0000000 --- a/src/src/views/productionBusiness/basicData/materiel/column/materiel-column.js +++ /dev/null @@ -1,92 +0,0 @@ -export const materielColumn = [ - { - title: '编码', - dataIndex: 'number', - sorter: true, - sortDirections: ['descend', 'ascend'], - align: 'center', - resizable: true, - width: 150, - ellipsis: true - }, - { - title: '名称', - dataIndex: 'name', - align: 'center', - resizable: true, - width: 150, - ellipsis: true - }, - { - title: '可用状态', - dataIndex: 'enabledState', - align: 'center', - resizable: true, - width: 150, - ellipsis: true - }, - { - title: '规格型号', - dataIndex: 'specification', - align: 'center', - resizable: true, - width: 150, - ellipsis: true - }, - { - title: '分类', - dataIndex: 'categoryName', - align: 'center', - resizable: true, - width: 150 - }, - { - title: '品牌', - dataIndex: 'brandName', - align: 'center', - resizable: true, - width: 150, - ellipsis: true - }, - { - title: '保质期', - dataIndex: 'shelfLifeUnit', - align: 'center', - resizable: true, - width: 150, - ellipsis: true - }, - { - title: '基本单位', - dataIndex: 'baseUnitName', - align: 'center', - resizable: true, - width: 150, - ellipsis: true - }, - { - title: '生产单位', - dataIndex: 'produceUnitName', - align: 'center', - resizable: true, - width: 150, - ellipsis: true - }, - { - title: '采购单位', - dataIndex: 'purchaseUnitName', - align: 'center', - resizable: true, - width: 150 - }, - { - title: '创建时间', - dataIndex: 'createTime', - sorter: true, - sortDirections: ['descend', 'ascend'], - align: 'center', - resizable: true, - width: 150, - ellipsis: true - } -] diff --git a/src/src/views/productionBusiness/basicData/materiel/detail/index.vue b/src/src/views/productionBusiness/basicData/materiel/detail/index.vue deleted file mode 100644 index b2a6b86..0000000 --- a/src/src/views/productionBusiness/basicData/materiel/detail/index.vue +++ /dev/null @@ -1,488 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/materiel/detail/materialCategoryForm.vue b/src/src/views/productionBusiness/basicData/materiel/detail/materialCategoryForm.vue deleted file mode 100644 index a9ef191..0000000 --- a/src/src/views/productionBusiness/basicData/materiel/detail/materialCategoryForm.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/materiel/formFields/detailFields.js b/src/src/views/productionBusiness/basicData/materiel/formFields/detailFields.js deleted file mode 100644 index d2444d6..0000000 --- a/src/src/views/productionBusiness/basicData/materiel/formFields/detailFields.js +++ /dev/null @@ -1,359 +0,0 @@ -import { required } from '@/utils/formRules' -import tool from '@/utils/tool' - -export const formRules = { - name: [required('请输入名称')], - type: [required('请输入类型')], - appid: [required('请输入AppID')], - secret: [required('请输入AppSecret')] -} - -export const materialFormItems = [ - { - label: '编码:', - name: 'number', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入编码' - } - }, - { - label: '名称:', - name: 'name', - type: 'a-input', - span: 6, - rules: [required('请输入名称')], - attrs: { - placeholder: '请输入名称', - allowClear: true - } - }, - { - label: '简称:', - name: 'shortName', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入简称', - allowClear: true - } - }, - { - label: '别名:', - name: 'alias', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入别名', - allowClear: true - } - }, - { - label: '规格型号:', - name: 'specification', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入规格型号', - allowClear: true - } - }, - { - label: '包装比例:', - name: 'packageProportion', - type: 'a-input', - span: 6, - rules: [required('请输入包装比例')], - attrs: { - placeholder: '请输入包装比例', - allowClear: true, - disabled: true - } - }, - { - label: '助记码:', - name: 'mnemonicCode', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入助记码', - allowClear: true - } - }, - { - label: '可用状态:', - name: 'enabledState', - type: 'a-select', - span: 6, - attrs: { - placeholder: '请选择可用状态', - options: tool.dictList('COMMON_STATUS') - }, - defaultValue: 'ENABLE' - } -] - -export const baseFormItems = reactive([ - { - label: '物料类型:', - name: 'categoryId', - type: 'a-tree-select', - span: 6, - rules: [required('请选择物料类型')], - attrs: { - placeholder: '请选择物料类型', - treeData: [], - fieldNames: { - label: 'name', - value: 'id' - } - } - }, - { - label: '品牌:', - name: 'brandId', - type: 'a-select', - span: 6, - attrs: { - placeholder: '请选择品牌', - options: [], - fieldNames: { - label: 'name', - value: 'id' - } - } - }, - { - label: '最高库存:', - name: 'maxInventory', - type: 'a-input-number', - span: 6, - attrs: { - placeholder: '请输入最高库存' - } - }, - { - label: '最低库存:', - name: 'minInventory', - type: 'a-input-number', - span: 6, - attrs: { - placeholder: '请输入最高库存' - } - }, - { - label: '保质期:', - name: 'shelfLife', - type: 'a-input-number', - span: 6, - rules: [required('请选择保质期')], - attrs: { - placeholder: '请输入保质期', - allowClear: true - } - }, - { - label: '统一零售价:', - name: 'retailPrice', - type: 'a-input-number', - span: 6, - attrs: { - placeholder: '请输入统一零售价', - allowClear: true - } - }, - { - label: '商品条形码:', - name: 'barcode', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入商品条形码', - allowClear: true - } - }, - { - label: '保质期单位:', - name: 'shelfLifeUnit', - type: 'a-select', - span: 6, - rules: [required('请选择保质期单位')], - attrs: { - placeholder: '请选择保质期单位', - options: tool.dictList('DATE_UNIT') - } - }, - { - label: '最大包装数量:', - name: 'maxPackageQuantity', - type: 'a-input-number', - span: 6, - rules: [required('请输入最大包装数量')], - attrs: { - placeholder: '请输入最大包装数量', - allowClear: true - } - }, - { - label: '批次管理:', - name: 'batchManage', - type: 'a-select', - span: 6, - attrs: { - placeholder: '请选择批次管理', - options: tool.dictList('COMMON_STATUS') - } - }, - { - label: '备注:', - name: 'remarks', - type: 'a-textarea', - span: 24, - attrs: { - placeholder: '请输入备注', - allowClear: true - } - } -]) - -export const unitFormItems = reactive([ - { - label: '单位组:', - name: 'unitGroupId', - type: 'a-select', - span: 6, - rules: [required('请选择单位组')], - attrs: { - placeholder: '请选择类型', - options: [], - fieldNames: { - label: 'name', - value: 'id' - } - } - }, - { - label: '基本单位:', - name: 'baseUnitId', - type: 'a-select', - span: 6, - attrs: { - placeholder: '请选择类型', - options: [], - disabled: true, - fieldNames: { - label: 'name', - value: 'id' - } - } - }, - { - label: '采购单位:', - name: 'purchaseUnitId', - type: 'a-select', - span: 6, - rules: [required('请选择采购单位')], - attrs: { - placeholder: '请选择类型', - options: [], - fieldNames: { - label: 'name', - value: 'id' - } - } - }, - { - label: '分销单位:', - name: 'distrUnitId', - type: 'a-select', - span: 6, - rules: [required('请选择分销单位')], - attrs: { - placeholder: '请输入备注', - options: [], - fieldNames: { - label: 'name', - value: 'id' - } - } - }, - { - label: '生产单位:', - name: 'produceUnitId', - type: 'a-select', - span: 6, - rules: [required('请选择生产单位')], - attrs: { - placeholder: '请输入备注', - options: [], - fieldNames: { - label: 'name', - value: 'id' - } - } - }, - { - label: '销售单位:', - name: 'saleUnitId', - type: 'a-select', - span: 6, - rules: [required('请选择销售单位')], - attrs: { - placeholder: '请输入备注', - options: [], - fieldNames: { - label: 'name', - value: 'id' - } - } - }, - { - label: '库存单位:', - name: 'storeUnitId', - type: 'a-select', - rules: [required('请选择库存单位')], - span: 6, - attrs: { - placeholder: '请输入备注', - options: [], - fieldNames: { - label: 'name', - value: 'id' - } - } - } -]) - -export const priceFormItems = [ - { - label: '生产价格:', - name: 'producePrice', - type: 'a-input', - span: 6, - rules: [required('请输入生产价格')], - attrs: { - placeholder: '请输入生产价格' - } - }, - { - label: '采购价格:', - name: 'purchasePrice', - type: 'a-input-number', - span: 6, - rules: [required('请输入采购价格')], - attrs: { - placeholder: '请输入生产价格' - } - }, - { - label: '统一零售价:', - name: 'retailPrice', - type: 'a-input-number', - span: 6, - rules: [required('请输入统一零售价')], - attrs: { - placeholder: '请输入生产价格' - } - } -] diff --git a/src/src/views/productionBusiness/basicData/materiel/formFields/drawerForm.js b/src/src/views/productionBusiness/basicData/materiel/formFields/drawerForm.js deleted file mode 100644 index 9b30395..0000000 --- a/src/src/views/productionBusiness/basicData/materiel/formFields/drawerForm.js +++ /dev/null @@ -1,45 +0,0 @@ -import tool from '@/utils/tool' -import { required } from '@/utils/formRules' - -export const drawerForm = reactive([ - { - label: '编码:', - name: 'number', - type: 'a-input-number', - span: 12, - attrs: { - placeholder: '请输入编码', - allowClear: true - } - }, - { - label: '名称:', - name: 'name', - type: 'a-input', - span: 12, - attrs: { - placeholder: '请输入名称', - allowClear: true - } - }, - { - label: '上级物料:', - name: 'parentId', - type: 'a-tree-select', - span: 12, - attrs: { - placeholder: '请选择上级物料', - treeData: [], - fieldNames: { - children: 'children', - label: 'name', - value: 'id' - } - } - } -]) - -export const formRules = { - name: [required('请输入名称')], - parentId: [required('请选择上级物料')] -} diff --git a/src/src/views/productionBusiness/basicData/materiel/formFields/searchFields.js b/src/src/views/productionBusiness/basicData/materiel/formFields/searchFields.js deleted file mode 100644 index 7602096..0000000 --- a/src/src/views/productionBusiness/basicData/materiel/formFields/searchFields.js +++ /dev/null @@ -1,12 +0,0 @@ -import tool from '@/utils/tool' - -export const searchFields = [ - { name: 'name', label: '名称', component: 'a-input', props: { placeholder: '请输入名称' } }, - { - name: 'enabledState', - label: '可用状态', - component: 'a-select', - props: { placeholder: '请选择状态', options: tool.dictList('COMMON_STATUS') } - }, - { name: 'number', label: '编码', component: 'a-input', props: { placeholder: '请输入编码' } } -] diff --git a/src/src/views/productionBusiness/basicData/materiel/index.vue b/src/src/views/productionBusiness/basicData/materiel/index.vue deleted file mode 100644 index f74850c..0000000 --- a/src/src/views/productionBusiness/basicData/materiel/index.vue +++ /dev/null @@ -1,185 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/publicAccount/columns/publicAccountColumn.js b/src/src/views/productionBusiness/basicData/publicAccount/columns/publicAccountColumn.js deleted file mode 100644 index 66a13e8..0000000 --- a/src/src/views/productionBusiness/basicData/publicAccount/columns/publicAccountColumn.js +++ /dev/null @@ -1,38 +0,0 @@ -export const publicAccountColumn = [ - { - title: '类型', - dataIndex: 'type', - align: 'center', - resizable: true, - width: 300, - ellipsis: true, - sorter: true, - sortDirections: ['descend', 'ascend'] - }, - { - title: '名称', - dataIndex: 'name', - align: 'center', - resizable: true, - width: 300, - ellipsis: true - }, - { - title: '可用状态', - dataIndex: 'enabledState', - align: 'center', - resizable: true, - width: 100, - ellipsis: true - }, - { - title: '创建时间', - dataIndex: 'createTime', - sorter: true, - sortDirections: ['descend', 'ascend'], - align: 'center', - resizable: true, - width: 300, - ellipsis: true - } -] diff --git a/src/src/views/productionBusiness/basicData/publicAccount/detail/index.vue b/src/src/views/productionBusiness/basicData/publicAccount/detail/index.vue deleted file mode 100644 index a0f2225..0000000 --- a/src/src/views/productionBusiness/basicData/publicAccount/detail/index.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/publicAccount/formFields/detailFields.js b/src/src/views/productionBusiness/basicData/publicAccount/formFields/detailFields.js deleted file mode 100644 index e502707..0000000 --- a/src/src/views/productionBusiness/basicData/publicAccount/formFields/detailFields.js +++ /dev/null @@ -1,102 +0,0 @@ -import { required } from '@/utils/formRules' -import tool from '@/utils/tool' - -export const formRules = { - name: [required('请输入名称')], - type: [required('请输入类型')], - appid: [required('请输入AppID')], - secret: [required('请输入AppSecret')] -} - -export const officialAccountFormItems = [ - { - label: '类型:', - name: 'type', - type: 'a-select', - span: 8, - attrs: { - placeholder: '请选择类型', - options: tool.dictList('OFFICIAL_ACCOUNT_TYPE') - } - }, - { - label: '名称:', - name: 'name', - type: 'a-input', - span: 8, - rules: [required('请输入名称')], - attrs: { - placeholder: '请输入名称', - allowClear: true - } - }, - { - label: '可用状态:', - name: 'enabledState', - type: 'a-select', - span: 8, - attrs: { - placeholder: '请选择可用状态', - options: tool.dictList('COMMON_STATUS') - }, - defaultValue: 'ENABLE' - }, - { - label: '备注:', - name: 'remarks', - type: 'a-textarea', - span: 24, - attrs: { - placeholder: '请输入备注', - allowClear: true - } - } -] - -export const basicInfoFormItems = [ - { - label: 'AppID:', - name: 'appid', - type: 'a-input', - attrs: { - placeholder: '请输入AppID', - allowClear: true - } - }, - { - label: 'AppSecret:', - name: 'secret', - type: 'a-input', - attrs: { - placeholder: '请输入AppSecret', - allowClear: true - } - }, - { - label: '字符串编码格式:', - name: 'encodingFormat', - type: 'a-input', - attrs: { - placeholder: '请输入字符串编码格式', - allowClear: true - } - }, - { - label: '校验码:', - name: 'token', - type: 'a-input', - attrs: { - placeholder: '请输入校验码', - allowClear: true - } - }, - { - label: '签名方式:', - name: 'aesKey', - type: 'a-input', - attrs: { - placeholder: '请输入签名方式', - allowClear: true - } - } -] diff --git a/src/src/views/productionBusiness/basicData/publicAccount/formFields/searchFields.js b/src/src/views/productionBusiness/basicData/publicAccount/formFields/searchFields.js deleted file mode 100644 index 7602096..0000000 --- a/src/src/views/productionBusiness/basicData/publicAccount/formFields/searchFields.js +++ /dev/null @@ -1,12 +0,0 @@ -import tool from '@/utils/tool' - -export const searchFields = [ - { name: 'name', label: '名称', component: 'a-input', props: { placeholder: '请输入名称' } }, - { - name: 'enabledState', - label: '可用状态', - component: 'a-select', - props: { placeholder: '请选择状态', options: tool.dictList('COMMON_STATUS') } - }, - { name: 'number', label: '编码', component: 'a-input', props: { placeholder: '请输入编码' } } -] diff --git a/src/src/views/productionBusiness/basicData/stash/columns/brandColumns.js b/src/src/views/productionBusiness/basicData/stash/columns/brandColumns.js deleted file mode 100644 index 19b8cb9..0000000 --- a/src/src/views/productionBusiness/basicData/stash/columns/brandColumns.js +++ /dev/null @@ -1,46 +0,0 @@ -export const stashColumn = [ - { - title: '编码', - dataIndex: 'number', - sorter: true, - sortDirections: ['descend', 'ascend'], - align: 'center', - resizable: true, - width: 200, - ellipsis: true - }, - { - title: '名称', - dataIndex: 'name', - align: 'center', - resizable: true, - width: 200, - ellipsis: true - }, - { - title: '可用状态', - dataIndex: 'enabledState', - align: 'center', - resizable: true, - width: 100, - ellipsis: true - }, - { - title: '仓库条码', - dataIndex: 'barcode', - align: 'center', - resizable: true, - width: 200, - ellipsis: true - }, - { - title: '创建时间', - dataIndex: 'createTime', - sorter: true, - sortDirections: ['descend', 'ascend'], - align: 'center', - resizable: true, - width: 150, - ellipsis: true - } -] diff --git a/src/src/views/productionBusiness/basicData/stash/detail/index.vue b/src/src/views/productionBusiness/basicData/stash/detail/index.vue deleted file mode 100644 index 0747931..0000000 --- a/src/src/views/productionBusiness/basicData/stash/detail/index.vue +++ /dev/null @@ -1,150 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/stash/formFields/detailFields.js b/src/src/views/productionBusiness/basicData/stash/formFields/detailFields.js deleted file mode 100644 index 57fd96b..0000000 --- a/src/src/views/productionBusiness/basicData/stash/formFields/detailFields.js +++ /dev/null @@ -1,133 +0,0 @@ -import { required } from '@/utils/formRules' -import tool from '@/utils/tool' - -export const officialAccountFormItems = reactive([ - { - label: '编码:', - name: 'number', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请选择编码' - } - }, - { - label: '名称:', - name: 'name', - type: 'a-input', - span: 6, - rules: [required('请输入名称')], - attrs: { - placeholder: '请输入名称', - allowClear: true - } - }, - { - label: '仓库条码:', - name: 'barcode', - type: 'a-input', - span: 6, - rules: [required('请输入仓库条码')], - attrs: { - placeholder: '请输入仓库条码', - allowClear: true - } - }, - { - label: '可用状态:', - name: 'enabledState', - type: 'a-select', - span: 6, - attrs: { - placeholder: '请选择可用状态', - options: tool.dictList('COMMON_STATUS') - }, - defaultValue: 'ENABLE' - }, - { - label: '库存管理方式:', - name: 'manageMode', - type: 'a-select', - span: 6, - rules: [required('请选择库存管理方式')], - attrs: { - placeholder: '请选择库存管理方式', - options: tool.dictList('STORE_MANAGE_MODE') - }, - defaultValue: '' - }, - { - label: '上游仓库:', - name: 'parentId', - type: 'a-tree-select', - span: 6, - attrs: { - placeholder: '请选择上游仓库', - treeData: [], - fieldNames: { - children: 'children', - label: 'name', - value: 'id' - } - }, - defaultValue: '' - }, - { - label: '备注:', - name: 'remarks', - type: 'a-textarea', - span: 24, - attrs: { - placeholder: '请输入备注', - allowClear: true - } - } -]) - -export const baseFormItems = [ - { - label: '管理员:', - name: 'manageUserName', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请选择管理员', - readonly: true - } - }, - { - label: '手机:', - name: 'phone', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入手机' - } - }, - { - label: '固话:', - name: 'tel', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请选择固话' - } - }, - { - label: '地址:', - name: 'address', - type: 'a-textarea', - span: 24, - attrs: { - placeholder: '请输入地址', - allowClear: true - } - } -] - -export const formRules = { - name: [required('请输入名称')], - type: [required('请输入类型')], - appid: [required('请输入AppID')], - secret: [required('请输入AppSecret')] -} diff --git a/src/src/views/productionBusiness/basicData/stash/formFields/searchFields.js b/src/src/views/productionBusiness/basicData/stash/formFields/searchFields.js deleted file mode 100644 index 7602096..0000000 --- a/src/src/views/productionBusiness/basicData/stash/formFields/searchFields.js +++ /dev/null @@ -1,12 +0,0 @@ -import tool from '@/utils/tool' - -export const searchFields = [ - { name: 'name', label: '名称', component: 'a-input', props: { placeholder: '请输入名称' } }, - { - name: 'enabledState', - label: '可用状态', - component: 'a-select', - props: { placeholder: '请选择状态', options: tool.dictList('COMMON_STATUS') } - }, - { name: 'number', label: '编码', component: 'a-input', props: { placeholder: '请输入编码' } } -] diff --git a/src/src/views/productionBusiness/basicData/stash/index.vue b/src/src/views/productionBusiness/basicData/stash/index.vue deleted file mode 100644 index 8d8930a..0000000 --- a/src/src/views/productionBusiness/basicData/stash/index.vue +++ /dev/null @@ -1,162 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/tissue/column/tissueColumn.js b/src/src/views/productionBusiness/basicData/tissue/column/tissueColumn.js deleted file mode 100644 index 603898e..0000000 --- a/src/src/views/productionBusiness/basicData/tissue/column/tissueColumn.js +++ /dev/null @@ -1,45 +0,0 @@ -export const tissueColumn = [ - { - title: '编码', - dataIndex: 'number', - sorter: true, - sortDirections: ['descend', 'ascend'], - align: 'center', - resizable: true, - width: 300, - ellipsis: true - }, - { - title: '类型', - dataIndex: 'type', - align: 'center', - resizable: true, - width: 100 - }, - { - title: '名称', - dataIndex: 'name', - align: 'center', - resizable: true, - width: 300, - ellipsis: true - }, - { - title: '可用状态', - dataIndex: 'enabledState', - align: 'center', - resizable: true, - width: 100, - ellipsis: true - }, - { - title: '创建时间', - dataIndex: 'createTime', - sorter: true, - sortDirections: ['descend', 'ascend'], - align: 'center', - resizable: true, - width: 300, - ellipsis: true - } -] diff --git a/src/src/views/productionBusiness/basicData/tissue/detail/TissueForm.vue b/src/src/views/productionBusiness/basicData/tissue/detail/TissueForm.vue deleted file mode 100644 index 275a52d..0000000 --- a/src/src/views/productionBusiness/basicData/tissue/detail/TissueForm.vue +++ /dev/null @@ -1,208 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/tissue/detail/index.vue b/src/src/views/productionBusiness/basicData/tissue/detail/index.vue deleted file mode 100644 index c88dfcb..0000000 --- a/src/src/views/productionBusiness/basicData/tissue/detail/index.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/src/src/views/productionBusiness/basicData/tissue/formFields/searchFields.js b/src/src/views/productionBusiness/basicData/tissue/formFields/searchFields.js deleted file mode 100644 index 7602096..0000000 --- a/src/src/views/productionBusiness/basicData/tissue/formFields/searchFields.js +++ /dev/null @@ -1,12 +0,0 @@ -import tool from '@/utils/tool' - -export const searchFields = [ - { name: 'name', label: '名称', component: 'a-input', props: { placeholder: '请输入名称' } }, - { - name: 'enabledState', - label: '可用状态', - component: 'a-select', - props: { placeholder: '请选择状态', options: tool.dictList('COMMON_STATUS') } - }, - { name: 'number', label: '编码', component: 'a-input', props: { placeholder: '请输入编码' } } -] diff --git a/src/src/views/productionBusiness/basicData/tissue/index.vue b/src/src/views/productionBusiness/basicData/tissue/index.vue deleted file mode 100644 index b7742a8..0000000 --- a/src/src/views/productionBusiness/basicData/tissue/index.vue +++ /dev/null @@ -1,163 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/unit/columns/unitColumns.js b/src/src/views/productionBusiness/basicData/unit/columns/unitColumns.js deleted file mode 100644 index 993f154..0000000 --- a/src/src/views/productionBusiness/basicData/unit/columns/unitColumns.js +++ /dev/null @@ -1,69 +0,0 @@ -export const unitColumns = [ - { - title: '编码', - dataIndex: 'number', - width: 200, - resizable: true, - align: 'center', - sorter: true, - sortDirections: ['descend', 'ascend'], - ellipsis: true - }, - { - title: '名称', - dataIndex: 'name', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '单位组', - dataIndex: 'unitGroupName', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '可用状态', - dataIndex: 'enabledState', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '换算率', - dataIndex: 'rate', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '是否基本单位', - dataIndex: 'isBase', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - } -] - -export const unitGroupColumns = [ - { - title: '名称', - dataIndex: 'name', - width: 100, - resizable: true, - align: 'center' - }, - { - title: '状态', - dataIndex: 'enabledState', - width: 80, - resizable: true, - align: 'center' - } -] diff --git a/src/src/views/productionBusiness/basicData/unit/detail/UnitGroupForm.vue b/src/src/views/productionBusiness/basicData/unit/detail/UnitGroupForm.vue deleted file mode 100644 index f8e6e99..0000000 --- a/src/src/views/productionBusiness/basicData/unit/detail/UnitGroupForm.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/unit/detail/index.vue b/src/src/views/productionBusiness/basicData/unit/detail/index.vue deleted file mode 100644 index f1876a1..0000000 --- a/src/src/views/productionBusiness/basicData/unit/detail/index.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/basicData/unit/formFields/detailFields.js b/src/src/views/productionBusiness/basicData/unit/formFields/detailFields.js deleted file mode 100644 index 3a7b96f..0000000 --- a/src/src/views/productionBusiness/basicData/unit/formFields/detailFields.js +++ /dev/null @@ -1,91 +0,0 @@ -import { required } from '@/utils/formRules' -import tool from '@/utils/tool' - -export const unitFormItems = reactive([ - { - label: '名称:', - name: 'name', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入名称', - allowClear: true - } - }, - { - label: '编码:', - name: 'number', - type: 'a-input-number', - span: 6, - attrs: { - placeholder: '请输入编码', - allowClear: true - } - }, - { - label: '单位组:', - name: 'unitGroupId', - type: 'a-select', - span: 6, - attrs: { - placeholder: '请选择可用状态', - options: [], - fieldNames: { - label: 'name', - value: 'id' - } - }, - defaultValue: '' - }, - { - label: '换算率:', - name: 'rate', - type: 'a-input-number', - span: 6, - attrs: { - placeholder: '请输入换算率', - allowClear: true, - min: 1, - precision: 0 - } - }, - { - label: '是否基本单位:', - name: 'isBase', - type: 'a-select', - span: 6, - attrs: { - placeholder: '请选择是否基本单位', - options: tool.dictList('YES_NO') - }, - defaultValue: 'NO' - }, - { - label: '可用状态:', - name: 'enabledState', - type: 'a-select', - span: 6, - attrs: { - placeholder: '请选择可用状态', - options: tool.dictList('COMMON_STATUS') - }, - defaultValue: 'ENABLE' - }, - { - label: '备注:', - name: 'remarks', - type: 'a-textarea', - span: 24, - attrs: { - placeholder: '请输入备注', - allowClear: true - } - } -]) - -export const formRules = { - unitGroupId: [required('请选择单位')], - name: [required('请输入名称')], - rate: [required('请输入换算率')], - isBase: [required('请选择是否基本单位')] -} diff --git a/src/src/views/productionBusiness/basicData/unit/formFields/drawerForm.js b/src/src/views/productionBusiness/basicData/unit/formFields/drawerForm.js deleted file mode 100644 index bb9e993..0000000 --- a/src/src/views/productionBusiness/basicData/unit/formFields/drawerForm.js +++ /dev/null @@ -1,41 +0,0 @@ -import tool from '@/utils/tool' -import { required } from '@/utils/formRules' - -export const drawerForm = reactive([ - { - label: '编码:', - name: 'number', - type: 'a-input-number', - span: 12, - attrs: { - placeholder: '请输入编码', - allowClear: true - } - }, - { - label: '名称:', - name: 'name', - type: 'a-input', - span: 12, - attrs: { - placeholder: '请输入名称', - allowClear: true - } - }, - { - label: '可用状态:', - name: 'enabledState', - type: 'a-select', - span: 12, - attrs: { - placeholder: '请选择可用状态', - options: tool.dictList('COMMON_STATUS') - }, - defaultValue: 'ENABLE' - } -]) - -export const formRules = { - name: [required('请输入名称')], - enabledState: [required('请输入状态')] -} diff --git a/src/src/views/productionBusiness/basicData/unit/formFields/searchFields.js b/src/src/views/productionBusiness/basicData/unit/formFields/searchFields.js deleted file mode 100644 index 1988d2e..0000000 --- a/src/src/views/productionBusiness/basicData/unit/formFields/searchFields.js +++ /dev/null @@ -1,20 +0,0 @@ -import tool from '@/utils/tool' - -export const searchFields = [ - { name: 'name', label: '名称', component: 'a-input', props: { placeholder: '请输入名称' } }, - { - name: 'enabledState', - label: '可用状态', - component: 'a-select', - props: { placeholder: '请选择状态', options: tool.dictList('COMMON_STATUS') } - }, - { name: 'number', label: '编码', component: 'a-input', props: { placeholder: '请输入编码' } }, - { - name: 'isBase', - label: '是否基本单位', - component: 'a-select', - props: { placeholder: '请选择是否基本单位', options: tool.dictList('YES_NO') }, - visible: false, - isShowVisible: true - } -] diff --git a/src/src/views/productionBusiness/basicData/unit/index.vue b/src/src/views/productionBusiness/basicData/unit/index.vue deleted file mode 100644 index 5560210..0000000 --- a/src/src/views/productionBusiness/basicData/unit/index.vue +++ /dev/null @@ -1,237 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/employee/personnel/detail/index.vue b/src/src/views/productionBusiness/employee/personnel/detail/index.vue deleted file mode 100644 index 44390c4..0000000 --- a/src/src/views/productionBusiness/employee/personnel/detail/index.vue +++ /dev/null @@ -1,229 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/employee/personnel/detail/personnelCategoryForm.vue b/src/src/views/productionBusiness/employee/personnel/detail/personnelCategoryForm.vue deleted file mode 100644 index 99b23b9..0000000 --- a/src/src/views/productionBusiness/employee/personnel/detail/personnelCategoryForm.vue +++ /dev/null @@ -1,125 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/employee/personnel/index.vue b/src/src/views/productionBusiness/employee/personnel/index.vue deleted file mode 100644 index 353942f..0000000 --- a/src/src/views/productionBusiness/employee/personnel/index.vue +++ /dev/null @@ -1,273 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/employee/personnelReport/detail/addPersonnelItem.vue b/src/src/views/productionBusiness/employee/personnelReport/detail/addPersonnelItem.vue deleted file mode 100644 index 3add409..0000000 --- a/src/src/views/productionBusiness/employee/personnelReport/detail/addPersonnelItem.vue +++ /dev/null @@ -1,145 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/employee/personnelReport/detail/index.vue b/src/src/views/productionBusiness/employee/personnelReport/detail/index.vue deleted file mode 100644 index 4de147a..0000000 --- a/src/src/views/productionBusiness/employee/personnelReport/detail/index.vue +++ /dev/null @@ -1,529 +0,0 @@ - - - - - diff --git a/src/src/views/productionBusiness/employee/personnelReport/detail/personnelForm.vue b/src/src/views/productionBusiness/employee/personnelReport/detail/personnelForm.vue deleted file mode 100644 index f901437..0000000 --- a/src/src/views/productionBusiness/employee/personnelReport/detail/personnelForm.vue +++ /dev/null @@ -1,145 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/employee/personnelReport/index.vue b/src/src/views/productionBusiness/employee/personnelReport/index.vue deleted file mode 100644 index 65cd2b9..0000000 --- a/src/src/views/productionBusiness/employee/personnelReport/index.vue +++ /dev/null @@ -1,219 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/productionCenter/report/columns/detailColumns.js b/src/src/views/productionBusiness/productionCenter/report/columns/detailColumns.js deleted file mode 100644 index eabdb34..0000000 --- a/src/src/views/productionBusiness/productionCenter/report/columns/detailColumns.js +++ /dev/null @@ -1,121 +0,0 @@ -export const detailColumns = [ - { - title: '产品名称', - dataIndex: 'productName', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '产品编码', - dataIndex: 'productNumber', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '规格型号', - dataIndex: 'specification', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '完工数量', - dataIndex: 'amount', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '入库数量', - dataIndex: 'amount', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '基本完工数量', - dataIndex: 'basicAmount', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '基本入库数量', - dataIndex: 'basicAmount', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '单位', - dataIndex: 'unitName', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '基本单位', - dataIndex: 'baseUnitName', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '包装规格', - dataIndex: 'packageProportion', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '包装数量', - dataIndex: 'name', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '采集失败数', - dataIndex: 'name', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '采集成功率', - dataIndex: 'name', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '生产率', - dataIndex: 'name', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '操作', - dataIndex: 'action', - align: 'center', - width: 150, - fixed: 'right' - } -] diff --git a/src/src/views/productionBusiness/productionCenter/report/columns/reportColumns.js b/src/src/views/productionBusiness/productionCenter/report/columns/reportColumns.js deleted file mode 100644 index 13fe601..0000000 --- a/src/src/views/productionBusiness/productionCenter/report/columns/reportColumns.js +++ /dev/null @@ -1,69 +0,0 @@ -export const reportColumns = [ - { - title: '编码', - dataIndex: 'number', - width: 200, - resizable: true, - align: 'center', - sorter: true, - sortDirections: ['descend', 'ascend'], - ellipsis: true - }, - { - title: '名称', - dataIndex: 'name', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '单位组', - dataIndex: 'unitGroupName', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '可用状态', - dataIndex: 'enabledState', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '换算率', - dataIndex: 'rate', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - }, - { - title: '是否基本单位', - dataIndex: 'isBase', - width: 200, - resizable: true, - align: 'center', - ellipsis: true - } -] - -export const unitGroupColumns = [ - { - title: '名称', - dataIndex: 'name', - width: 100, - resizable: true, - align: 'center' - }, - { - title: '状态', - dataIndex: 'enabledState', - width: 80, - resizable: true, - align: 'center' - } -] diff --git a/src/src/views/productionBusiness/productionCenter/report/detail/index.vue b/src/src/views/productionBusiness/productionCenter/report/detail/index.vue deleted file mode 100644 index c0a320e..0000000 --- a/src/src/views/productionBusiness/productionCenter/report/detail/index.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/productionCenter/report/formFields/detailFields.js b/src/src/views/productionBusiness/productionCenter/report/formFields/detailFields.js deleted file mode 100644 index f6ad8d1..0000000 --- a/src/src/views/productionBusiness/productionCenter/report/formFields/detailFields.js +++ /dev/null @@ -1,75 +0,0 @@ -import { required } from '@/utils/formRules' -import tool from '@/utils/tool' - -export const unitFormItems = reactive([ - { - label: '单号:', - name: 'billNumber', - type: 'a-input-number', - span: 6, - attrs: { - placeholder: '请输入编码', - allowClear: true - } - }, - { - label: '业务日期:', - name: 'businessDate', - type: 'a-input', - span: 6, - attrs: { - placeholder: '请输入名称', - allowClear: true - } - }, - { - label: '状态:', - name: 'state', - type: 'a-select', - span: 6, - attrs: { - placeholder: '请选择可用状态', - options: [], - fieldNames: { - label: 'name', - value: 'id' - } - }, - defaultValue: '' - }, - { - label: '类型:', - name: 'produceType', - type: 'a-input-number', - span: 6, - attrs: { - placeholder: '请输入换算率', - allowClear: true, - min: 1, - precision: 0 - } - }, - { - label: '生产线:', - name: 'productionLineName', - type: 'a-select', - span: 6, - attrs: { - placeholder: '请选择是否基本单位', - options: tool.dictList('YES_NO') - }, - defaultValue: 'NO' - }, - { - label: '备注:', - name: 'remarks', - type: 'a-textarea', - span: 24, - attrs: { - placeholder: '请输入备注', - allowClear: true - } - } -]) - -export const formRules = {} diff --git a/src/src/views/productionBusiness/productionCenter/report/formFields/searchFields.js b/src/src/views/productionBusiness/productionCenter/report/formFields/searchFields.js deleted file mode 100644 index 1988d2e..0000000 --- a/src/src/views/productionBusiness/productionCenter/report/formFields/searchFields.js +++ /dev/null @@ -1,20 +0,0 @@ -import tool from '@/utils/tool' - -export const searchFields = [ - { name: 'name', label: '名称', component: 'a-input', props: { placeholder: '请输入名称' } }, - { - name: 'enabledState', - label: '可用状态', - component: 'a-select', - props: { placeholder: '请选择状态', options: tool.dictList('COMMON_STATUS') } - }, - { name: 'number', label: '编码', component: 'a-input', props: { placeholder: '请输入编码' } }, - { - name: 'isBase', - label: '是否基本单位', - component: 'a-select', - props: { placeholder: '请选择是否基本单位', options: tool.dictList('YES_NO') }, - visible: false, - isShowVisible: true - } -] diff --git a/src/src/views/productionBusiness/productionCenter/report/index.vue b/src/src/views/productionBusiness/productionCenter/report/index.vue deleted file mode 100644 index 83919f9..0000000 --- a/src/src/views/productionBusiness/productionCenter/report/index.vue +++ /dev/null @@ -1,125 +0,0 @@ - - - - - diff --git a/src/src/views/productionBusiness/productionCenter/task/detail/index.vue b/src/src/views/productionBusiness/productionCenter/task/detail/index.vue deleted file mode 100644 index 9233ed0..0000000 --- a/src/src/views/productionBusiness/productionCenter/task/detail/index.vue +++ /dev/null @@ -1,177 +0,0 @@ - - - diff --git a/src/src/views/productionBusiness/productionCenter/task/formItems/index.js b/src/src/views/productionBusiness/productionCenter/task/formItems/index.js deleted file mode 100644 index ff6c942..0000000 --- a/src/src/views/productionBusiness/productionCenter/task/formItems/index.js +++ /dev/null @@ -1,112 +0,0 @@ -import tool from '@/utils/tool' -import { required } from '@/utils/formRules' - -export const basicInfoFormItems = [ - { - label: '单据号:', - name: 'billNumber', - type: 'a-input', - attrs: { - placeholder: '请输入单号', - allowClear: true - } - }, - { - label: '计划开工日期:', - name: 'producePlanDate', - type: 'a-date-picker', - attrs: { - placeholder: '请输入计划开工日期', - allowClear: true, - valueFormat: 'YYYY-MM-DD HH:mm:ss' - } - }, - { - label: '生产类型:', - name: 'produceType', - type: 'a-select', - attrs: { - placeholder: '请输入生产类型', - allowClear: true, - options: tool.dictList('PRODUCE_TYPE') - } - }, - { - label: '产品(物料):', - name: 'productName', - type: 'a-input', - isUseSlot: true, - slotName: 'productNameSlot', - attrs: { - placeholder: '请输入物料' - } - }, - { - label: '批次:', - name: 'batchNumber', - type: 'a-input', - attrs: { - placeholder: '请输入批次', - allowClear: true - } - }, - { - label: '计划生产数量:', - name: 'producePlanAmount', - type: 'a-input-number', - attrs: { - placeholder: '请输入计划生产数量', - allowClear: true - } - }, - { - label: '生产单位:', // 采购单位 - name: 'produceUnitName', - isUseSlot: true, - slotName: 'produceUnitNameSlot', - attrs: { - placeholder: '请选择生产单位', - allowClear: true, - fieldNames: { - children: 'children', - label: 'name', - value: 'id' - } - } - }, - { - label: '基本单位:', - name: 'baseUnitName', - isUseSlot: true, - slotName: 'baseUnitNameSlot', - attrs: { - placeholder: '请选择基本单位', - allowClear: true, - fieldNames: { - children: 'children', - label: 'name', - value: 'id' - } - } - }, - { - label: '生产线:', - name: 'productionLineName', - isUseSlot: true, - slotName: 'productionLineNameSlot', - attrs: { - placeholder: '请选择生产线', - allowClear: true - } - }, - { - label: '备注:', - name: 'remarks', - type: 'a-textarea', - span: 24, - attrs: { - placeholder: '请输入备注', - allowClear: true - } - } -] diff --git a/src/src/views/productionBusiness/productionCenter/task/index.vue b/src/src/views/productionBusiness/productionCenter/task/index.vue deleted file mode 100644 index d3dff85..0000000 --- a/src/src/views/productionBusiness/productionCenter/task/index.vue +++ /dev/null @@ -1,278 +0,0 @@ - - - diff --git a/src/src/views/sys/org/form.vue b/src/src/views/sys/org/form.vue deleted file mode 100644 index c98fe29..0000000 --- a/src/src/views/sys/org/form.vue +++ /dev/null @@ -1,151 +0,0 @@ - - - diff --git a/src/src/views/sys/org/index.vue b/src/src/views/sys/org/index.vue deleted file mode 100644 index 247dc57..0000000 --- a/src/src/views/sys/org/index.vue +++ /dev/null @@ -1,201 +0,0 @@ - - - - - diff --git a/src/src/views/sys/position/form.vue b/src/src/views/sys/position/form.vue deleted file mode 100644 index 3014661..0000000 --- a/src/src/views/sys/position/form.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - diff --git a/src/src/views/sys/position/index.vue b/src/src/views/sys/position/index.vue deleted file mode 100644 index 42d00a8..0000000 --- a/src/src/views/sys/position/index.vue +++ /dev/null @@ -1,200 +0,0 @@ - - - - - diff --git a/src/src/views/sys/resource/button/form.vue b/src/src/views/sys/resource/button/form.vue deleted file mode 100644 index e002f99..0000000 --- a/src/src/views/sys/resource/button/form.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - diff --git a/src/src/views/sys/resource/button/index.vue b/src/src/views/sys/resource/button/index.vue deleted file mode 100644 index 125c8e8..0000000 --- a/src/src/views/sys/resource/button/index.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - diff --git a/src/src/views/sys/resource/field/form.vue b/src/src/views/sys/resource/field/form.vue deleted file mode 100644 index c4a3996..0000000 --- a/src/src/views/sys/resource/field/form.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - diff --git a/src/src/views/sys/resource/field/index.vue b/src/src/views/sys/resource/field/index.vue deleted file mode 100644 index 2f8d56b..0000000 --- a/src/src/views/sys/resource/field/index.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - diff --git a/src/src/views/sys/resource/menu/changeModuleForm.vue b/src/src/views/sys/resource/menu/changeModuleForm.vue deleted file mode 100644 index cd36024..0000000 --- a/src/src/views/sys/resource/menu/changeModuleForm.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/src/src/views/sys/resource/menu/form.vue b/src/src/views/sys/resource/menu/form.vue deleted file mode 100644 index 9fea126..0000000 --- a/src/src/views/sys/resource/menu/form.vue +++ /dev/null @@ -1,265 +0,0 @@ - - - diff --git a/src/src/views/sys/resource/menu/index.vue b/src/src/views/sys/resource/menu/index.vue deleted file mode 100644 index 165c09c..0000000 --- a/src/src/views/sys/resource/menu/index.vue +++ /dev/null @@ -1,266 +0,0 @@ - - - diff --git a/src/src/views/sys/resource/module/form.vue b/src/src/views/sys/resource/module/form.vue deleted file mode 100644 index d2e5683..0000000 --- a/src/src/views/sys/resource/module/form.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - diff --git a/src/src/views/sys/resource/module/index.vue b/src/src/views/sys/resource/module/index.vue deleted file mode 100644 index 2942354..0000000 --- a/src/src/views/sys/resource/module/index.vue +++ /dev/null @@ -1,134 +0,0 @@ - - - diff --git a/src/src/views/sys/role/form.vue b/src/src/views/sys/role/form.vue deleted file mode 100644 index f9d38d4..0000000 --- a/src/src/views/sys/role/form.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - diff --git a/src/src/views/sys/role/grantMobileResourceForm.vue b/src/src/views/sys/role/grantMobileResourceForm.vue deleted file mode 100644 index e035394..0000000 --- a/src/src/views/sys/role/grantMobileResourceForm.vue +++ /dev/null @@ -1,305 +0,0 @@ - - - - - diff --git a/src/src/views/sys/role/grantPermissionForm.vue b/src/src/views/sys/role/grantPermissionForm.vue deleted file mode 100644 index 29c124e..0000000 --- a/src/src/views/sys/role/grantPermissionForm.vue +++ /dev/null @@ -1,414 +0,0 @@ - - - - - diff --git a/src/src/views/sys/role/grantResourceForm.vue b/src/src/views/sys/role/grantResourceForm.vue deleted file mode 100644 index c82b3ea..0000000 --- a/src/src/views/sys/role/grantResourceForm.vue +++ /dev/null @@ -1,310 +0,0 @@ - - - - - diff --git a/src/src/views/sys/role/index.vue b/src/src/views/sys/role/index.vue deleted file mode 100644 index ede65e1..0000000 --- a/src/src/views/sys/role/index.vue +++ /dev/null @@ -1,302 +0,0 @@ - - - - - diff --git a/src/src/views/sys/role/scopeDefineOrg.vue b/src/src/views/sys/role/scopeDefineOrg.vue deleted file mode 100644 index 44bb0bc..0000000 --- a/src/src/views/sys/role/scopeDefineOrg.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - - - diff --git a/src/src/views/sys/user/form.vue b/src/src/views/sys/user/form.vue deleted file mode 100644 index 5b39c58..0000000 --- a/src/src/views/sys/user/form.vue +++ /dev/null @@ -1,567 +0,0 @@ - - - - - diff --git a/src/src/views/sys/user/grantPermissionForm.vue b/src/src/views/sys/user/grantPermissionForm.vue deleted file mode 100644 index fcac339..0000000 --- a/src/src/views/sys/user/grantPermissionForm.vue +++ /dev/null @@ -1,415 +0,0 @@ - - - - - diff --git a/src/src/views/sys/user/grantResourceForm.vue b/src/src/views/sys/user/grantResourceForm.vue deleted file mode 100644 index b6b3361..0000000 --- a/src/src/views/sys/user/grantResourceForm.vue +++ /dev/null @@ -1,312 +0,0 @@ - - - - - diff --git a/src/src/views/sys/user/impExp.vue b/src/src/views/sys/user/impExp.vue deleted file mode 100644 index 2042724..0000000 --- a/src/src/views/sys/user/impExp.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - - diff --git a/src/src/views/sys/user/index.vue b/src/src/views/sys/user/index.vue deleted file mode 100644 index 976e230..0000000 --- a/src/src/views/sys/user/index.vue +++ /dev/null @@ -1,422 +0,0 @@ - - - - - diff --git a/src/src/views/sys/user/scopeDefineOrg.vue b/src/src/views/sys/user/scopeDefineOrg.vue deleted file mode 100644 index e9ddae3..0000000 --- a/src/src/views/sys/user/scopeDefineOrg.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - - - diff --git a/src/src/views/sys/user/userCenter.vue b/src/src/views/sys/user/userCenter.vue deleted file mode 100644 index f47806a..0000000 --- a/src/src/views/sys/user/userCenter.vue +++ /dev/null @@ -1,267 +0,0 @@ - - - - - diff --git a/src/src/views/sys/user/userTab/accountBasic.vue b/src/src/views/sys/user/userTab/accountBasic.vue deleted file mode 100644 index d9209e5..0000000 --- a/src/src/views/sys/user/userTab/accountBasic.vue +++ /dev/null @@ -1,84 +0,0 @@ - - - diff --git a/src/src/views/sys/user/userTab/accountBind.vue b/src/src/views/sys/user/userTab/accountBind.vue deleted file mode 100644 index 53155f1..0000000 --- a/src/src/views/sys/user/userTab/accountBind.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - - diff --git a/src/src/views/sys/user/userTab/bindForm/updatePassword.vue b/src/src/views/sys/user/userTab/bindForm/updatePassword.vue deleted file mode 100644 index a16a294..0000000 --- a/src/src/views/sys/user/userTab/bindForm/updatePassword.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - diff --git a/src/src/views/sys/user/userTab/organizationChart.vue b/src/src/views/sys/user/userTab/organizationChart.vue deleted file mode 100644 index ee7fe0d..0000000 --- a/src/src/views/sys/user/userTab/organizationChart.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - - - diff --git a/src/src/views/sys/user/userTab/shortcutSetting.vue b/src/src/views/sys/user/userTab/shortcutSetting.vue deleted file mode 100644 index ac8632c..0000000 --- a/src/src/views/sys/user/userTab/shortcutSetting.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - diff --git a/src/src/views/sys/user/userTab/userMessage.vue b/src/src/views/sys/user/userTab/userMessage.vue deleted file mode 100644 index bf5e293..0000000 --- a/src/src/views/sys/user/userTab/userMessage.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - - - diff --git a/src/src/views/sys/user/userTab/userMessage/detail.vue b/src/src/views/sys/user/userTab/userMessage/detail.vue deleted file mode 100644 index add81db..0000000 --- a/src/src/views/sys/user/userTab/userMessage/detail.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/src/store/sysBaseConfig.js b/src/store/sysBaseConfig.js index 33fb235..9ab3fdb 100644 --- a/src/store/sysBaseConfig.js +++ b/src/store/sysBaseConfig.js @@ -14,13 +14,15 @@ import { message } from 'ant-design-vue' const formData = ref({ SNOWY_SYS_LOGO: '', SNOWY_SYS_BACK_IMAGE: '', - SNOWY_SYS_NAME: '', - SNOWY_SYS_VERSION: '', - SNOWY_SYS_COPYRIGHT: '', - SNOWY_SYS_COPYRIGHT_URL: '', + SNOWY_SYS_NAME: '博溯星数智工厂', + SNOWY_SYS_VERSION: 'V0.0.1', + SNOWY_SYS_COPYRIGHT: 'Copyright © 2024 博溯星(广州)数字科技有限公司. 保留版权所有:粤ICP备2024274790号-1', + SNOWY_SYS_COPYRIGHT_URL: 'https://beian.miit.gov.cn/#/Integrated/index', SNOWY_SYS_DEFAULT_FILE_ENGINE: 'LOCAL', SNOWY_SYS_DEFAULT_CAPTCHA_OPEN: false, - SNOWY_SYS_DEFAULT_PASSWORD: '' + SNOWY_SYS_DEFAULT_PASSWORD: '', + SNOWY_SYS_DEFAULT_DESCRRIPTION: + '博溯星(广州)数字科技有限公司·是一家基于丰富的数字化信息系统技术研发及工程实践经验的追溯数字化解决方案提供商,依靠自主研发的物联网数字技术,博溯星为农产品、快消品、工业品等行业客户提供“区块链+一物一码”数字化解决方案,通过采集真实、追溯可验证的商品唯一码数据,打通供应链、连接终端,触达消费者,帮助企业构建全产业链数字化体系。' }) const param = { diff --git a/src/views/productionBusiness/basicData/materiel/detail/index.vue b/src/views/productionBusiness/basicData/materiel/detail/index.vue index 5051f51..7f0ac49 100644 --- a/src/views/productionBusiness/basicData/materiel/detail/index.vue +++ b/src/views/productionBusiness/basicData/materiel/detail/index.vue @@ -186,6 +186,8 @@ unitFormItems[0].attrs.onChange = handleChangeUnitGroup fetchData(route.query.type).then(async (res) => { + console.log(res, 'res') + console.log(formData, 'formData') if (res) { productFormData.value.promoteEnabledState = res.promoteEnabledState productFormData.value.promoteUrl = res.promoteUrl @@ -272,7 +274,7 @@ } }) - if(!value) return false + if (!value) return false unitApi .sysUnitList({ groupId: value @@ -483,7 +485,7 @@ } const { formData, formRefs, inform, extendFormData, onSubmit, handleBack, fetchData, getExtendField } = - useFormHandler([...materialFormItems, ...baseFormItems, ...unitFormItems], { + useFormHandler([...materialFormItems, ...baseFormItems,...priceFormItems, ...unitFormItems], { submitForm: materialApi.materialSubmitForm, getDetail: materialApi.materialDetail }) diff --git a/src/views/productionBusiness/basicData/materiel/formFields/detailFields.js b/src/views/productionBusiness/basicData/materiel/formFields/detailFields.js index c3d22c5..c16bc72 100644 --- a/src/views/productionBusiness/basicData/materiel/formFields/detailFields.js +++ b/src/views/productionBusiness/basicData/materiel/formFields/detailFields.js @@ -153,16 +153,16 @@ export const baseFormItems = reactive([ allowClear: true } }, - { - label: '统一零售价:', - name: 'retailPrice', - type: 'a-input-number', - span: 6, - attrs: { - placeholder: '请输入统一零售价', - allowClear: true - } - }, + // { + // label: '统一零售价:', + // name: 'retailPrice', + // type: 'a-input-number', + // span: 6, + // attrs: { + // placeholder: '请输入统一零售价', + // allowClear: true + // } + // }, { label: '商品条形码:', name: 'barcode', diff --git a/src/views/productionBusiness/basicData/tissue/index.vue b/src/views/productionBusiness/basicData/tissue/index.vue index a13f83d..deea1fe 100644 --- a/src/views/productionBusiness/basicData/tissue/index.vue +++ b/src/views/productionBusiness/basicData/tissue/index.vue @@ -45,15 +45,11 @@ >