From 1ab2112eb60dec474bb7cabed88ed2f236ca7093 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=BA=E5=AD=90=E7=83=A8?= <1686821393@qq.com> Date: Sat, 12 Feb 2022 22:39:33 +0800 Subject: [PATCH] first commit --- java/cloud/.gitignore | 6 - java/cloud/api/pom.xml | 20 - .../java/cn/toesbieya/jxc/api/FileApi.java | 15 - .../java/cn/toesbieya/jxc/api/RecordApi.java | 19 - .../java/cn/toesbieya/jxc/api/StockApi.java | 18 - .../jxc/api/system/DepartmentApi.java | 14 - .../toesbieya/jxc/api/system/ResourceApi.java | 14 - .../cn/toesbieya/jxc/api/system/RoleApi.java | 7 - java/cloud/common/pom.xml | 45 - .../common/config/FastJsonConfigFactory.java | 19 - .../jxc/common/config/RedisConfig.java | 34 - .../jxc/common/constant/DocConstant.java | 12 - .../jxc/common/constant/SessionConstant.java | 18 - .../jxc/common/constant/SocketConstant.java | 23 - .../jxc/common/enumeration/DataScopeEnum.java | 15 - .../common/enumeration/GeneralStatusEnum.java | 15 - .../common/enumeration/ResourceTypeEnum.java | 15 - .../common/exception/JsonResultException.java | 7 - .../jxc/common/model/entity/BizDoc.java | 19 - .../common/model/entity/BizDocHistory.java | 25 - .../jxc/common/model/entity/BizDocSub.java | 16 - .../model/entity/BizPurchaseInbound.java | 12 - .../model/entity/BizPurchaseInboundSub.java | 12 - .../common/model/entity/BizPurchaseOrder.java | 20 - .../model/entity/BizPurchaseOrderSub.java | 15 - .../jxc/common/model/entity/BizSellOrder.java | 19 - .../common/model/entity/BizSellOrderSub.java | 15 - .../common/model/entity/BizSellOutbound.java | 13 - .../model/entity/BizSellOutboundSub.java | 12 - .../jxc/common/model/entity/BizStock.java | 25 - .../jxc/common/model/entity/Msg.java | 26 - .../jxc/common/model/entity/MsgState.java | 14 - .../common/model/entity/RecAttachment.java | 23 - .../common/model/entity/RecLoginHistory.java | 23 - .../common/model/entity/RecUserAction.java | 25 - .../common/model/entity/StatFinishOrder.java | 14 - .../common/model/entity/StatProfitGoods.java | 13 - .../common/model/entity/StatProfitTotal.java | 16 - .../jxc/common/model/entity/SysCategory.java | 15 - .../jxc/common/model/entity/SysCustomer.java | 19 - .../common/model/entity/SysDepartment.java | 14 - .../jxc/common/model/entity/SysRegion.java | 15 - .../jxc/common/model/entity/SysResource.java | 19 - .../jxc/common/model/entity/SysRole.java | 20 - .../jxc/common/model/entity/SysSupplier.java | 19 - .../jxc/common/model/entity/SysUser.java | 20 - .../jxc/common/model/vo/BaseSearch.java | 9 - .../jxc/common/model/vo/DepartmentVo.java | 20 - .../cn/toesbieya/jxc/common/model/vo/R.java | 83 - .../jxc/common/model/vo/ResourceVo.java | 20 - .../jxc/common/model/vo/SocketEventVo.java | 21 - .../jxc/common/model/vo/SocketOfflineVo.java | 16 - .../jxc/common/model/vo/StockOutboundVo.java | 17 - .../jxc/common/model/vo/StockSearch.java | 20 - .../common/model/vo/StockSearchResult.java | 15 - .../toesbieya/jxc/common/model/vo/UserVo.java | 27 - .../toesbieya/jxc/common/util/DateUtil.java | 53 - .../toesbieya/jxc/common/util/RedisUtil.java | 176 - .../jxc/common/util/SessionUtil.java | 57 - .../toesbieya/jxc/common/util/SpringUtil.java | 29 - .../cn/toesbieya/jxc/common/util/Util.java | 72 - .../jxc/common/util/WebSocketUtil.java | 36 - .../resources/script/increase_and_expire.lua | 6 - java/cloud/gateway/pom.xml | 42 - .../jxc/gateway/GatewayApplication.java | 13 - .../jxc/gateway/config/GatewayConfig.java | 19 - .../jxc/gateway/config/RateConfig.java | 14 - .../jxc/gateway/config/ResourceConfig.java | 66 - .../jxc/gateway/config/RouteConfig.java | 138 - .../controller/FallbackController.java | 13 - .../jxc/gateway/filter/SecurityFilter.java | 107 - .../jxc/gateway/filter/SentinelFilter.java | 68 - .../gateway/src/main/resources/bootstrap.yml | 20 - .../nacos-config/jxc-common-database.yml | 24 - java/cloud/nacos-config/jxc-common-redis.yml | 12 - java/cloud/nacos-config/jxc-gateway.yml | 66 - java/cloud/nacos-config/jxc-web-account.yml | 2 - java/cloud/nacos-config/jxc-web-doc.yml | 4 - java/cloud/nacos-config/jxc-web-file.yml | 11 - java/cloud/nacos-config/jxc-web-message.yml | 4 - java/cloud/nacos-config/jxc-web-record.yml | 2 - java/cloud/nacos-config/jxc-web-statistic.yml | 2 - java/cloud/nacos-config/jxc-web-stock.yml | 2 - java/cloud/nacos-config/jxc-web-system.yml | 4 - java/cloud/nacos-config/jxc-websocket.yml | 6 - java/cloud/pom.xml | 151 - java/cloud/schedule/pom.xml | 34 - .../jxc/schedule/ScheduleApplication.java | 16 - .../jxc/schedule/config/ExecutorConfig.java | 45 - .../jxc/schedule/mapper/StatisticMapper.java | 33 - .../toesbieya/jxc/schedule/task/DocTask.java | 106 - .../jxc/schedule/task/SessionTask.java | 63 - .../jxc/schedule/task/StatisticTask.java | 116 - .../schedule/src/main/resources/bootstrap.yml | 14 - .../src/main/resources/mapper/Statistic.xml | 100 - java/cloud/web/file/pom.xml | 20 - .../toesbieya/jxc/file/FileApplication.java | 11 - .../jxc/file/config/QiniuConfig.java | 16 - .../jxc/file/config/QiniuProperty.java | 45 - .../jxc/file/config/QiniuTemplate.java | 54 - .../jxc/file/controller/FileController.java | 36 - .../jxc/file/service/FileService.java | 34 - .../web/file/src/main/resources/bootstrap.yml | 22 - java/cloud/web/pom.xml | 50 - java/cloud/web/web-common/pom.xml | 30 - .../jxc/web/common/annoation/Lock.java | 10 - .../jxc/web/common/annoation/TimeCost.java | 10 - .../jxc/web/common/annoation/UserAction.java | 10 - .../jxc/web/common/aspect/LockAspect.java | 82 - .../common/aspect/RestExceptionAspect.java | 89 - .../jxc/web/common/aspect/TimeCostAspect.java | 45 - .../web/common/aspect/UserActionAspect.java | 70 - .../jxc/web/common/config/WebConfig.java | 55 - .../common/enumeration/UserActionEnum.java | 15 - .../common/interceptor/PredicateConfig.java | 15 - .../interceptor/SecurityInterceptor.java | 21 - .../interceptor/UserActionInterceptor.java | 25 - .../predicate/UserActionPredicate.java | 7 - .../jxc/web/common/model/vo/PageResult.java | 30 - .../jxc/web/common/util/ExcelUtil.java | 224 - .../jxc/web/common/util/HttpUtil.java | 22 - .../toesbieya/jxc/web/common/util/IpUtil.java | 118 - .../jxc/web/common/util/SecurityUtil.java | 17 - .../jxc/web/common/util/SessionUtil.java | 10 - .../jxc/web/common/util/ThreadUtil.java | 58 - .../jxc/web/common/util/WebUtil.java | 23 - java/cloud/web/web-modules/account/pom.xml | 13 - .../jxc/account/AccountApplication.java | 13 - .../account/controller/AccountController.java | 98 - .../enumeration/RecLoginHistoryEnum.java | 15 - .../jxc/account/mapper/SysResourceMapper.java | 7 - .../jxc/account/mapper/SysRoleMapper.java | 7 - .../jxc/account/mapper/SysUserMapper.java | 7 - .../jxc/account/service/AccountService.java | 251 - .../toesbieya/jxc/account/vo/LoginParam.java | 17 - .../jxc/account/vo/LoginSuccessInfo.java | 27 - .../jxc/account/vo/PasswordUpdateParam.java | 10 - .../jxc/account/vo/RegisterParam.java | 17 - .../account/src/main/resources/bootstrap.yml | 20 - java/cloud/web/web-modules/doc/pom.xml | 15 - .../cn/toesbieya/jxc/doc/DocApplication.java | 13 - .../doc/controller/DocHistoryController.java | 20 - .../controller/PurchaseInboundController.java | 140 - .../controller/PurchaseOrderController.java | 155 - .../doc/controller/SellOrderController.java | 149 - .../controller/SellOutboundController.java | 148 - .../jxc/doc/enumeration/DocFinishEnum.java | 15 - .../jxc/doc/enumeration/DocHistoryEnum.java | 15 - .../jxc/doc/enumeration/DocStatusEnum.java | 15 - .../jxc/doc/mapper/DocHistoryMapper.java | 7 - .../jxc/doc/mapper/PurchaseInboundMapper.java | 14 - .../doc/mapper/PurchaseInboundSubMapper.java | 10 - .../jxc/doc/mapper/PurchaseOrderMapper.java | 14 - .../doc/mapper/PurchaseOrderSubMapper.java | 10 - .../jxc/doc/mapper/SellOrderMapper.java | 14 - .../jxc/doc/mapper/SellOrderSubMapper.java | 10 - .../jxc/doc/mapper/SellOutboundMapper.java | 14 - .../jxc/doc/mapper/SellOutboundSubMapper.java | 10 - .../jxc/doc/model/vo/DocHistorySearch.java | 16 - .../toesbieya/jxc/doc/model/vo/DocSearch.java | 23 - .../jxc/doc/model/vo/DocStatusUpdate.java | 10 - .../doc/model/vo/PurchaseInboundExport.java | 40 - .../doc/model/vo/PurchaseInboundSearch.java | 13 - .../jxc/doc/model/vo/PurchaseInboundVo.java | 27 - .../jxc/doc/model/vo/PurchaseOrderExport.java | 52 - .../jxc/doc/model/vo/PurchaseOrderSearch.java | 16 - .../jxc/doc/model/vo/PurchaseOrderVo.java | 24 - .../jxc/doc/model/vo/SellOrderExport.java | 52 - .../jxc/doc/model/vo/SellOrderSearch.java | 16 - .../jxc/doc/model/vo/SellOrderVo.java | 27 - .../jxc/doc/model/vo/SellOutboundExport.java | 40 - .../jxc/doc/model/vo/SellOutboundSearch.java | 13 - .../jxc/doc/model/vo/SellOutboundVo.java | 27 - .../jxc/doc/service/DocHistoryService.java | 36 - .../doc/service/PurchaseInboundService.java | 433 - .../jxc/doc/service/PurchaseOrderService.java | 337 - .../jxc/doc/service/SellOrderService.java | 371 - .../jxc/doc/service/SellOutboundService.java | 474 - .../cn/toesbieya/jxc/doc/util/DocUtil.java | 82 - .../doc/src/main/resources/bootstrap.yml | 20 - .../resources/mapper/BizPurchaseInbound.xml | 19 - .../mapper/BizPurchaseInboundSub.xml | 10 - .../resources/mapper/BizPurchaseOrder.xml | 26 - .../resources/mapper/BizPurchaseOrderSub.xml | 10 - .../main/resources/mapper/BizSellOrder.xml | 26 - .../main/resources/mapper/BizSellOrderSub.xml | 10 - .../main/resources/mapper/BizSellOutbound.xml | 19 - .../resources/mapper/BizSellOutboundSub.xml | 10 - .../src/main/resources/script/get_doc_id.lua | 13 - java/cloud/web/web-modules/message/pom.xml | 15 - .../jxc/message/MessageApplication.java | 13 - .../jxc/message/constant/MsgConstant.java | 7 - .../message/controller/ManageController.java | 108 - .../message/controller/UserController.java | 35 - .../jxc/message/mapper/MsgMapper.java | 13 - .../jxc/message/mapper/MsgStateMapper.java | 7 - .../message/model/vo/MsgPersonalSearch.java | 15 - .../jxc/message/model/vo/MsgSearch.java | 15 - .../jxc/message/service/ManageService.java | 129 - .../jxc/message/service/UserService.java | 71 - .../message/src/main/resources/bootstrap.yml | 20 - .../message/src/main/resources/mapper/Msg.xml | 33 - java/cloud/web/web-modules/pom.xml | 44 - java/cloud/web/web-modules/record/pom.xml | 13 - .../jxc/record/RecordApplication.java | 13 - .../jxc/record/config/ExecutorConfig.java | 45 - .../record/controller/RecordController.java | 29 - .../record/mapper/RecAttachmentMapper.java | 10 - .../record/mapper/RecLoginHistoryMapper.java | 7 - .../record/mapper/RecUserActionMapper.java | 7 - .../record/model/vo/LoginHistorySearch.java | 19 - .../jxc/record/model/vo/UserActionSearch.java | 19 - .../jxc/record/service/RecordService.java | 150 - .../record/src/main/resources/bootstrap.yml | 25 - .../main/resources/mapper/RecAttachment.xml | 11 - java/cloud/web/web-modules/statistic/pom.xml | 15 - .../jxc/statistic/StatisticApplication.java | 14 - .../controller/StatisticController.java | 36 - .../jxc/statistic/mapper/StatisticMapper.java | 41 - .../jxc/statistic/model/vo/FourBlockStat.java | 13 - .../statistic/service/StatisticService.java | 98 - .../src/main/resources/bootstrap.yml | 20 - .../src/main/resources/mapper/Statistic.xml | 148 - java/cloud/web/web-modules/stock/pom.xml | 15 - .../toesbieya/jxc/stock/StockApplication.java | 14 - .../jxc/stock/controller/StockController.java | 39 - .../jxc/stock/mapper/StockMapper.java | 22 - .../jxc/stock/model/vo/StockExport.java | 54 - .../jxc/stock/service/StockService.java | 112 - .../stock/src/main/resources/bootstrap.yml | 25 - .../src/main/resources/mapper/StockMapper.xml | 53 - java/cloud/web/web-modules/system/pom.xml | 15 - .../jxc/system/SystemApplication.java | 13 - .../system/controller/CategoryController.java | 74 - .../system/controller/CustomerController.java | 66 - .../controller/DepartmentController.java | 62 - .../system/controller/ResourceController.java | 35 - .../jxc/system/controller/RoleController.java | 63 - .../system/controller/SupplierController.java | 64 - .../jxc/system/controller/UserController.java | 95 - .../jxc/system/mapper/SysCategoryMapper.java | 9 - .../jxc/system/mapper/SysCustomerMapper.java | 11 - .../system/mapper/SysDepartmentMapper.java | 14 - .../jxc/system/mapper/SysRegionMapper.java | 7 - .../jxc/system/mapper/SysResourceMapper.java | 11 - .../jxc/system/mapper/SysRoleMapper.java | 7 - .../jxc/system/mapper/SysSupplierMapper.java | 11 - .../jxc/system/mapper/SysUserMapper.java | 7 - .../jxc/system/model/vo/CategorySearch.java | 15 - .../jxc/system/model/vo/CustomerSearch.java | 21 - .../jxc/system/model/vo/CustomerVo.java | 20 - .../system/model/vo/RegionValueResult.java | 9 - .../jxc/system/model/vo/RoleSearch.java | 19 - .../jxc/system/model/vo/SupplierSearch.java | 21 - .../jxc/system/model/vo/SupplierVo.java | 20 - .../jxc/system/model/vo/UserSearch.java | 19 - .../jxc/system/service/CategoryService.java | 123 - .../jxc/system/service/CustomerService.java | 140 - .../jxc/system/service/DepartmentService.java | 123 - .../jxc/system/service/ResourceService.java | 170 - .../jxc/system/service/RoleService.java | 112 - .../jxc/system/service/SupplierService.java | 139 - .../jxc/system/service/UserService.java | 206 - .../system/src/main/resources/bootstrap.yml | 25 - .../src/main/resources/mapper/SysCategory.xml | 7 - .../src/main/resources/mapper/SysCustomer.xml | 11 - .../main/resources/mapper/SysDepartment.xml | 37 - .../src/main/resources/mapper/SysResource.xml | 37 - .../src/main/resources/mapper/SysSupplier.xml | 11 - java/cloud/websocket/pom.xml | 30 - .../jxc/socket/WebSocketApplication.java | 14 - .../config/RedisEventListenerConfig.java | 145 - .../jxc/socket/config/SocketConfig.java | 97 - .../jxc/socket/config/SocketProperty.java | 19 - .../jxc/socket/server/WebSocketServer.java | 171 - .../src/main/resources/bootstrap.yml | 13 - vue/template/.gitignore | 22 - vue/template/babel.config.js | 5 - .../component/Message/index.js | 101 - .../component/Message/main.vue | 110 - vue/template/element-ui-personal/index.js | 6 - .../element-ui-personal/style/index.scss | 1 - .../element-ui-personal/style/message.scss | 58 - vue/template/package-lock.json | 11746 ---------------- vue/template/package.json | 38 - vue/template/public/favicon.ico | Bin 4286 -> 0 bytes vue/template/public/index.html | 27 - vue/template/public/static/img/dot1.png | Bin 7207 -> 0 bytes vue/template/public/static/img/dot2.png | Bin 690 -> 0 bytes vue/template/public/static/img/dot3.png | Bin 1893 -> 0 bytes vue/template/public/static/img/dot4.png | Bin 1847 -> 0 bytes vue/template/public/static/img/logo.svg | 1 - .../static/lightgallery/lg-pager.min.js | 7 - .../static/lightgallery/lg-thumbnail.min.js | 7 - .../public/static/lightgallery/lg-zoom.min.js | 7 - vue/template/src/App.vue | 11 - vue/template/src/asset/icon/index.js | 9 - vue/template/src/asset/icon/svg/bug.svg | 1 - vue/template/src/asset/icon/svg/check.svg | 1 - vue/template/src/asset/icon/svg/develop.svg | 1 - .../src/asset/icon/svg/documentation.svg | 1 - vue/template/src/asset/icon/svg/eye-open.svg | 1 - vue/template/src/asset/icon/svg/eye.svg | 1 - vue/template/src/asset/icon/svg/home.svg | 1 - vue/template/src/asset/icon/svg/icon.svg | 1 - vue/template/src/asset/icon/svg/message.svg | 1 - vue/template/src/asset/icon/svg/money.svg | 1 - vue/template/src/asset/icon/svg/password.svg | 1 - vue/template/src/asset/icon/svg/qq.svg | 1 - vue/template/src/asset/icon/svg/sell.svg | 1 - vue/template/src/asset/icon/svg/shopping.svg | 1 - vue/template/src/asset/icon/svg/show.svg | 1 - vue/template/src/asset/icon/svg/stock.svg | 1 - vue/template/src/asset/icon/svg/system.svg | 1 - vue/template/src/asset/icon/svg/user.svg | 1 - vue/template/src/asset/icon/svgo.yml | 22 - .../src/asset/style/cover/element-ui.scss | 45 - vue/template/src/asset/style/cover/var.scss | 4 - vue/template/src/asset/style/index.scss | 102 - vue/template/src/asset/style/mixin.scss | 32 - vue/template/src/asset/style/nprogress.scss | 11 - vue/template/src/asset/style/var.scss | 11 - vue/template/src/component/Icon/index.vue | 39 - .../src/component/Skeleton/constant.js | 6 - vue/template/src/component/Skeleton/index.vue | 50 - .../src/component/Skeleton/style.scss | 140 - vue/template/src/config/index.js | 29 - .../src/layout/component/Footer/index.vue | 11 - .../src/layout/component/Footer/style.scss | 9 - .../component/checkbox/ColorCheckbox.vue | 15 - .../component/checkbox/Group.vue | 15 - .../component/checkbox/ImgCheckbox.vue | 21 - .../SettingDrawer/component/checkbox/mixin.js | 22 - .../component/checkbox/style.scss | 34 - .../layout/component/SettingDrawer/index.vue | 314 - .../layout/component/SettingDrawer/style.scss | 17 - vue/template/src/layout/index.vue | 101 - .../src/layout/mixin/tagsViewPersistent.js | 47 - .../src/layout/mixin/tagsViewShortcut.js | 83 - vue/template/src/layout/style.scss | 6 - vue/template/src/main.js | 20 - vue/template/src/router/define.js | 43 - .../src/router/guardian/accessControl.js | 42 - .../src/router/guardian/avoidReuse.js | 22 - vue/template/src/router/guardian/iframe.js | 22 - vue/template/src/router/guardian/index.js | 13 - vue/template/src/router/guardian/nprogress.js | 17 - vue/template/src/router/guardian/setTitle.js | 20 - vue/template/src/router/index.js | 52 - .../src/router/module/admin/child/default.js | 12 - vue/template/src/router/module/admin/index.js | 12 - vue/template/src/router/module/doc/index.js | 4 - .../router/module/example/child/component.js | 11 - .../module/example/child/globalMethod.js | 11 - .../src/router/module/example/child/icon.js | 5 - .../src/router/module/example/child/iframe.js | 14 - .../src/router/module/example/child/test.js | 30 - .../src/router/module/example/index.js | 12 - vue/template/src/router/module/index.js | 5 - vue/template/src/router/util.js | 148 - vue/template/src/store/index.js | 18 - vue/template/src/store/module/resource.js | 105 - vue/template/src/store/module/user.js | 65 - vue/template/src/store/util.js | 18 - vue/template/src/util/auth.js | 39 - vue/template/src/util/index.js | 64 - vue/template/src/util/message.js | 22 - vue/template/src/util/secret.js | 31 - vue/template/src/util/storage.js | 132 - vue/template/src/util/tree.js | 22 - vue/template/src/util/validate.js | 7 - vue/template/src/view/_app/403.vue | 13 - vue/template/src/view/_app/404.vue | 13 - vue/template/src/view/_app/500.vue | 13 - .../src/view/_app/login/LoginForm.vue | 133 - .../src/view/_app/login/RegisterForm.vue | 116 - vue/template/src/view/_app/login/index.vue | 40 - vue/template/src/view/_app/login/style.scss | 103 - vue/template/src/view/_app/redirect.vue | 12 - .../src/view/_common/ExceptionPage/index.vue | 50 - .../src/view/_common/ExceptionPage/style.scss | 47 - .../src/view/_common/SkeletonPage/index.vue | 28 - .../src/view/_common/SkeletonPage/style.scss | 46 - .../src/view/admin/index/indexPage.vue | 9 - .../view/example/component/skeletonPage.vue | 64 - .../view/example/globalMethod/messagePage.vue | 26 - .../src/view/example/icon/element-icon.js | 15 - .../src/view/example/icon/indexPage.vue | 53 - .../view/example/test/cache/detailPage.vue | 17 - vue/template/vue.config.js | 55 - 390 files changed, 26845 deletions(-) delete mode 100644 java/cloud/.gitignore delete mode 100644 java/cloud/api/pom.xml delete mode 100644 java/cloud/api/src/main/java/cn/toesbieya/jxc/api/FileApi.java delete mode 100644 java/cloud/api/src/main/java/cn/toesbieya/jxc/api/RecordApi.java delete mode 100644 java/cloud/api/src/main/java/cn/toesbieya/jxc/api/StockApi.java delete mode 100644 java/cloud/api/src/main/java/cn/toesbieya/jxc/api/system/DepartmentApi.java delete mode 100644 java/cloud/api/src/main/java/cn/toesbieya/jxc/api/system/ResourceApi.java delete mode 100644 java/cloud/api/src/main/java/cn/toesbieya/jxc/api/system/RoleApi.java delete mode 100644 java/cloud/common/pom.xml delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/config/FastJsonConfigFactory.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/config/RedisConfig.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/DocConstant.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/SessionConstant.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/SocketConstant.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/enumeration/DataScopeEnum.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/enumeration/GeneralStatusEnum.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/enumeration/ResourceTypeEnum.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/exception/JsonResultException.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizDoc.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizDocHistory.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizDocSub.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseInbound.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseInboundSub.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseOrder.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseOrderSub.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOrder.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOrderSub.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOutbound.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOutboundSub.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizStock.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/Msg.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/MsgState.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/RecAttachment.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/RecLoginHistory.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/RecUserAction.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/StatFinishOrder.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/StatProfitGoods.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/StatProfitTotal.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysCategory.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysCustomer.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysDepartment.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysRegion.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysResource.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysRole.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysSupplier.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysUser.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/BaseSearch.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/DepartmentVo.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/R.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/ResourceVo.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/SocketEventVo.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/SocketOfflineVo.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/StockOutboundVo.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/StockSearch.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/StockSearchResult.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/UserVo.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/DateUtil.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/RedisUtil.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/SessionUtil.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/SpringUtil.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/Util.java delete mode 100644 java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/WebSocketUtil.java delete mode 100644 java/cloud/common/src/main/resources/script/increase_and_expire.lua delete mode 100644 java/cloud/gateway/pom.xml delete mode 100644 java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/GatewayApplication.java delete mode 100644 java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/GatewayConfig.java delete mode 100644 java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/RateConfig.java delete mode 100644 java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/ResourceConfig.java delete mode 100644 java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/RouteConfig.java delete mode 100644 java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/controller/FallbackController.java delete mode 100644 java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/filter/SecurityFilter.java delete mode 100644 java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/filter/SentinelFilter.java delete mode 100644 java/cloud/gateway/src/main/resources/bootstrap.yml delete mode 100644 java/cloud/nacos-config/jxc-common-database.yml delete mode 100644 java/cloud/nacos-config/jxc-common-redis.yml delete mode 100644 java/cloud/nacos-config/jxc-gateway.yml delete mode 100644 java/cloud/nacos-config/jxc-web-account.yml delete mode 100644 java/cloud/nacos-config/jxc-web-doc.yml delete mode 100644 java/cloud/nacos-config/jxc-web-file.yml delete mode 100644 java/cloud/nacos-config/jxc-web-message.yml delete mode 100644 java/cloud/nacos-config/jxc-web-record.yml delete mode 100644 java/cloud/nacos-config/jxc-web-statistic.yml delete mode 100644 java/cloud/nacos-config/jxc-web-stock.yml delete mode 100644 java/cloud/nacos-config/jxc-web-system.yml delete mode 100644 java/cloud/nacos-config/jxc-websocket.yml delete mode 100644 java/cloud/pom.xml delete mode 100644 java/cloud/schedule/pom.xml delete mode 100644 java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/ScheduleApplication.java delete mode 100644 java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/config/ExecutorConfig.java delete mode 100644 java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/mapper/StatisticMapper.java delete mode 100644 java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/DocTask.java delete mode 100644 java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/SessionTask.java delete mode 100644 java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/StatisticTask.java delete mode 100644 java/cloud/schedule/src/main/resources/bootstrap.yml delete mode 100644 java/cloud/schedule/src/main/resources/mapper/Statistic.xml delete mode 100644 java/cloud/web/file/pom.xml delete mode 100644 java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/FileApplication.java delete mode 100644 java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/config/QiniuConfig.java delete mode 100644 java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/config/QiniuProperty.java delete mode 100644 java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/config/QiniuTemplate.java delete mode 100644 java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/controller/FileController.java delete mode 100644 java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/service/FileService.java delete mode 100644 java/cloud/web/file/src/main/resources/bootstrap.yml delete mode 100644 java/cloud/web/pom.xml delete mode 100644 java/cloud/web/web-common/pom.xml delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/annoation/Lock.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/annoation/TimeCost.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/annoation/UserAction.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/LockAspect.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/RestExceptionAspect.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/TimeCostAspect.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/UserActionAspect.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/config/WebConfig.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/enumeration/UserActionEnum.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/PredicateConfig.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/SecurityInterceptor.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/UserActionInterceptor.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/predicate/UserActionPredicate.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/model/vo/PageResult.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/ExcelUtil.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/HttpUtil.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/IpUtil.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/SecurityUtil.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/SessionUtil.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/ThreadUtil.java delete mode 100644 java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/WebUtil.java delete mode 100644 java/cloud/web/web-modules/account/pom.xml delete mode 100644 java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/AccountApplication.java delete mode 100644 java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/controller/AccountController.java delete mode 100644 java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/enumeration/RecLoginHistoryEnum.java delete mode 100644 java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/mapper/SysResourceMapper.java delete mode 100644 java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/mapper/SysRoleMapper.java delete mode 100644 java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/mapper/SysUserMapper.java delete mode 100644 java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/service/AccountService.java delete mode 100644 java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/LoginParam.java delete mode 100644 java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/LoginSuccessInfo.java delete mode 100644 java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/PasswordUpdateParam.java delete mode 100644 java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/RegisterParam.java delete mode 100644 java/cloud/web/web-modules/account/src/main/resources/bootstrap.yml delete mode 100644 java/cloud/web/web-modules/doc/pom.xml delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/DocApplication.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/DocHistoryController.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/PurchaseInboundController.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/PurchaseOrderController.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/SellOrderController.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/SellOutboundController.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocFinishEnum.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocHistoryEnum.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocStatusEnum.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/DocHistoryMapper.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseInboundMapper.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseInboundSubMapper.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseOrderMapper.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseOrderSubMapper.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOrderMapper.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOrderSubMapper.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOutboundMapper.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOutboundSubMapper.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocHistorySearch.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocSearch.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocStatusUpdate.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundExport.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundSearch.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundVo.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderExport.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderSearch.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderVo.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderExport.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderSearch.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderVo.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundExport.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundSearch.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundVo.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/DocHistoryService.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/PurchaseInboundService.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/PurchaseOrderService.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/SellOrderService.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/SellOutboundService.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/util/DocUtil.java delete mode 100644 java/cloud/web/web-modules/doc/src/main/resources/bootstrap.yml delete mode 100644 java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseInbound.xml delete mode 100644 java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseInboundSub.xml delete mode 100644 java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseOrder.xml delete mode 100644 java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseOrderSub.xml delete mode 100644 java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOrder.xml delete mode 100644 java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOrderSub.xml delete mode 100644 java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOutbound.xml delete mode 100644 java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOutboundSub.xml delete mode 100644 java/cloud/web/web-modules/doc/src/main/resources/script/get_doc_id.lua delete mode 100644 java/cloud/web/web-modules/message/pom.xml delete mode 100644 java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/MessageApplication.java delete mode 100644 java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/constant/MsgConstant.java delete mode 100644 java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/controller/ManageController.java delete mode 100644 java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/controller/UserController.java delete mode 100644 java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/mapper/MsgMapper.java delete mode 100644 java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/mapper/MsgStateMapper.java delete mode 100644 java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/model/vo/MsgPersonalSearch.java delete mode 100644 java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/model/vo/MsgSearch.java delete mode 100644 java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/service/ManageService.java delete mode 100644 java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/service/UserService.java delete mode 100644 java/cloud/web/web-modules/message/src/main/resources/bootstrap.yml delete mode 100644 java/cloud/web/web-modules/message/src/main/resources/mapper/Msg.xml delete mode 100644 java/cloud/web/web-modules/pom.xml delete mode 100644 java/cloud/web/web-modules/record/pom.xml delete mode 100644 java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/RecordApplication.java delete mode 100644 java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/config/ExecutorConfig.java delete mode 100644 java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/controller/RecordController.java delete mode 100644 java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/mapper/RecAttachmentMapper.java delete mode 100644 java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/mapper/RecLoginHistoryMapper.java delete mode 100644 java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/mapper/RecUserActionMapper.java delete mode 100644 java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/model/vo/LoginHistorySearch.java delete mode 100644 java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/model/vo/UserActionSearch.java delete mode 100644 java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/service/RecordService.java delete mode 100644 java/cloud/web/web-modules/record/src/main/resources/bootstrap.yml delete mode 100644 java/cloud/web/web-modules/record/src/main/resources/mapper/RecAttachment.xml delete mode 100644 java/cloud/web/web-modules/statistic/pom.xml delete mode 100644 java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/StatisticApplication.java delete mode 100644 java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/controller/StatisticController.java delete mode 100644 java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/mapper/StatisticMapper.java delete mode 100644 java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/model/vo/FourBlockStat.java delete mode 100644 java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/service/StatisticService.java delete mode 100644 java/cloud/web/web-modules/statistic/src/main/resources/bootstrap.yml delete mode 100644 java/cloud/web/web-modules/statistic/src/main/resources/mapper/Statistic.xml delete mode 100644 java/cloud/web/web-modules/stock/pom.xml delete mode 100644 java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/StockApplication.java delete mode 100644 java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/controller/StockController.java delete mode 100644 java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/mapper/StockMapper.java delete mode 100644 java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/model/vo/StockExport.java delete mode 100644 java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/service/StockService.java delete mode 100644 java/cloud/web/web-modules/stock/src/main/resources/bootstrap.yml delete mode 100644 java/cloud/web/web-modules/stock/src/main/resources/mapper/StockMapper.xml delete mode 100644 java/cloud/web/web-modules/system/pom.xml delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/SystemApplication.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/CategoryController.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/CustomerController.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/DepartmentController.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/ResourceController.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/RoleController.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/SupplierController.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/UserController.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysCategoryMapper.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysCustomerMapper.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysDepartmentMapper.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysRegionMapper.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysResourceMapper.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysRoleMapper.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysSupplierMapper.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysUserMapper.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/CategorySearch.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/CustomerSearch.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/CustomerVo.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/RegionValueResult.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/RoleSearch.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/SupplierSearch.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/SupplierVo.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/UserSearch.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/CategoryService.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/CustomerService.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/DepartmentService.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/ResourceService.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/RoleService.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/SupplierService.java delete mode 100644 java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/UserService.java delete mode 100644 java/cloud/web/web-modules/system/src/main/resources/bootstrap.yml delete mode 100644 java/cloud/web/web-modules/system/src/main/resources/mapper/SysCategory.xml delete mode 100644 java/cloud/web/web-modules/system/src/main/resources/mapper/SysCustomer.xml delete mode 100644 java/cloud/web/web-modules/system/src/main/resources/mapper/SysDepartment.xml delete mode 100644 java/cloud/web/web-modules/system/src/main/resources/mapper/SysResource.xml delete mode 100644 java/cloud/web/web-modules/system/src/main/resources/mapper/SysSupplier.xml delete mode 100644 java/cloud/websocket/pom.xml delete mode 100644 java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/WebSocketApplication.java delete mode 100644 java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/config/RedisEventListenerConfig.java delete mode 100644 java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/config/SocketConfig.java delete mode 100644 java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/config/SocketProperty.java delete mode 100644 java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/server/WebSocketServer.java delete mode 100644 java/cloud/websocket/src/main/resources/bootstrap.yml delete mode 100644 vue/template/.gitignore delete mode 100644 vue/template/babel.config.js delete mode 100644 vue/template/element-ui-personal/component/Message/index.js delete mode 100644 vue/template/element-ui-personal/component/Message/main.vue delete mode 100644 vue/template/element-ui-personal/index.js delete mode 100644 vue/template/element-ui-personal/style/index.scss delete mode 100644 vue/template/element-ui-personal/style/message.scss delete mode 100644 vue/template/package-lock.json delete mode 100644 vue/template/package.json delete mode 100644 vue/template/public/favicon.ico delete mode 100644 vue/template/public/index.html delete mode 100644 vue/template/public/static/img/dot1.png delete mode 100644 vue/template/public/static/img/dot2.png delete mode 100644 vue/template/public/static/img/dot3.png delete mode 100644 vue/template/public/static/img/dot4.png delete mode 100644 vue/template/public/static/img/logo.svg delete mode 100644 vue/template/public/static/lightgallery/lg-pager.min.js delete mode 100644 vue/template/public/static/lightgallery/lg-thumbnail.min.js delete mode 100644 vue/template/public/static/lightgallery/lg-zoom.min.js delete mode 100644 vue/template/src/App.vue delete mode 100644 vue/template/src/asset/icon/index.js delete mode 100644 vue/template/src/asset/icon/svg/bug.svg delete mode 100644 vue/template/src/asset/icon/svg/check.svg delete mode 100644 vue/template/src/asset/icon/svg/develop.svg delete mode 100644 vue/template/src/asset/icon/svg/documentation.svg delete mode 100644 vue/template/src/asset/icon/svg/eye-open.svg delete mode 100644 vue/template/src/asset/icon/svg/eye.svg delete mode 100644 vue/template/src/asset/icon/svg/home.svg delete mode 100644 vue/template/src/asset/icon/svg/icon.svg delete mode 100644 vue/template/src/asset/icon/svg/message.svg delete mode 100644 vue/template/src/asset/icon/svg/money.svg delete mode 100644 vue/template/src/asset/icon/svg/password.svg delete mode 100644 vue/template/src/asset/icon/svg/qq.svg delete mode 100644 vue/template/src/asset/icon/svg/sell.svg delete mode 100644 vue/template/src/asset/icon/svg/shopping.svg delete mode 100644 vue/template/src/asset/icon/svg/show.svg delete mode 100644 vue/template/src/asset/icon/svg/stock.svg delete mode 100644 vue/template/src/asset/icon/svg/system.svg delete mode 100644 vue/template/src/asset/icon/svg/user.svg delete mode 100644 vue/template/src/asset/icon/svgo.yml delete mode 100644 vue/template/src/asset/style/cover/element-ui.scss delete mode 100644 vue/template/src/asset/style/cover/var.scss delete mode 100644 vue/template/src/asset/style/index.scss delete mode 100644 vue/template/src/asset/style/mixin.scss delete mode 100644 vue/template/src/asset/style/nprogress.scss delete mode 100644 vue/template/src/asset/style/var.scss delete mode 100644 vue/template/src/component/Icon/index.vue delete mode 100644 vue/template/src/component/Skeleton/constant.js delete mode 100644 vue/template/src/component/Skeleton/index.vue delete mode 100644 vue/template/src/component/Skeleton/style.scss delete mode 100644 vue/template/src/config/index.js delete mode 100644 vue/template/src/layout/component/Footer/index.vue delete mode 100644 vue/template/src/layout/component/Footer/style.scss delete mode 100644 vue/template/src/layout/component/SettingDrawer/component/checkbox/ColorCheckbox.vue delete mode 100644 vue/template/src/layout/component/SettingDrawer/component/checkbox/Group.vue delete mode 100644 vue/template/src/layout/component/SettingDrawer/component/checkbox/ImgCheckbox.vue delete mode 100644 vue/template/src/layout/component/SettingDrawer/component/checkbox/mixin.js delete mode 100644 vue/template/src/layout/component/SettingDrawer/component/checkbox/style.scss delete mode 100644 vue/template/src/layout/component/SettingDrawer/index.vue delete mode 100644 vue/template/src/layout/component/SettingDrawer/style.scss delete mode 100644 vue/template/src/layout/index.vue delete mode 100644 vue/template/src/layout/mixin/tagsViewPersistent.js delete mode 100644 vue/template/src/layout/mixin/tagsViewShortcut.js delete mode 100644 vue/template/src/layout/style.scss delete mode 100644 vue/template/src/main.js delete mode 100644 vue/template/src/router/define.js delete mode 100644 vue/template/src/router/guardian/accessControl.js delete mode 100644 vue/template/src/router/guardian/avoidReuse.js delete mode 100644 vue/template/src/router/guardian/iframe.js delete mode 100644 vue/template/src/router/guardian/index.js delete mode 100644 vue/template/src/router/guardian/nprogress.js delete mode 100644 vue/template/src/router/guardian/setTitle.js delete mode 100644 vue/template/src/router/index.js delete mode 100644 vue/template/src/router/module/admin/child/default.js delete mode 100644 vue/template/src/router/module/admin/index.js delete mode 100644 vue/template/src/router/module/doc/index.js delete mode 100644 vue/template/src/router/module/example/child/component.js delete mode 100644 vue/template/src/router/module/example/child/globalMethod.js delete mode 100644 vue/template/src/router/module/example/child/icon.js delete mode 100644 vue/template/src/router/module/example/child/iframe.js delete mode 100644 vue/template/src/router/module/example/child/test.js delete mode 100644 vue/template/src/router/module/example/index.js delete mode 100644 vue/template/src/router/module/index.js delete mode 100644 vue/template/src/router/util.js delete mode 100644 vue/template/src/store/index.js delete mode 100644 vue/template/src/store/module/resource.js delete mode 100644 vue/template/src/store/module/user.js delete mode 100644 vue/template/src/store/util.js delete mode 100644 vue/template/src/util/auth.js delete mode 100644 vue/template/src/util/index.js delete mode 100644 vue/template/src/util/message.js delete mode 100644 vue/template/src/util/secret.js delete mode 100644 vue/template/src/util/storage.js delete mode 100644 vue/template/src/util/tree.js delete mode 100644 vue/template/src/util/validate.js delete mode 100644 vue/template/src/view/_app/403.vue delete mode 100644 vue/template/src/view/_app/404.vue delete mode 100644 vue/template/src/view/_app/500.vue delete mode 100644 vue/template/src/view/_app/login/LoginForm.vue delete mode 100644 vue/template/src/view/_app/login/RegisterForm.vue delete mode 100644 vue/template/src/view/_app/login/index.vue delete mode 100644 vue/template/src/view/_app/login/style.scss delete mode 100644 vue/template/src/view/_app/redirect.vue delete mode 100644 vue/template/src/view/_common/ExceptionPage/index.vue delete mode 100644 vue/template/src/view/_common/ExceptionPage/style.scss delete mode 100644 vue/template/src/view/_common/SkeletonPage/index.vue delete mode 100644 vue/template/src/view/_common/SkeletonPage/style.scss delete mode 100644 vue/template/src/view/admin/index/indexPage.vue delete mode 100644 vue/template/src/view/example/component/skeletonPage.vue delete mode 100644 vue/template/src/view/example/globalMethod/messagePage.vue delete mode 100644 vue/template/src/view/example/icon/element-icon.js delete mode 100644 vue/template/src/view/example/icon/indexPage.vue delete mode 100644 vue/template/src/view/example/test/cache/detailPage.vue delete mode 100644 vue/template/vue.config.js diff --git a/java/cloud/.gitignore b/java/cloud/.gitignore deleted file mode 100644 index bfa3a80..0000000 --- a/java/cloud/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/target/ -/.idea/ -*.iml -.mvn -mvnw -*.cmd diff --git a/java/cloud/api/pom.xml b/java/cloud/api/pom.xml deleted file mode 100644 index fdc1951..0000000 --- a/java/cloud/api/pom.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - jxc - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - api - - - - cn.toesbieya - common - - - \ No newline at end of file diff --git a/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/FileApi.java b/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/FileApi.java deleted file mode 100644 index 24ce9e7..0000000 --- a/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/FileApi.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.api; - -import java.util.List; - -public interface FileApi { - String getToken(); - - void delete(String key); - - void deleteBatch(String... key); - - default void deleteBatch(List key) { - deleteBatch(key.toArray(new String[0])); - } -} diff --git a/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/RecordApi.java b/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/RecordApi.java deleted file mode 100644 index eda07ff..0000000 --- a/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/RecordApi.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.toesbieya.jxc.api; - -import cn.toesbieya.jxc.common.model.entity.RecAttachment; -import cn.toesbieya.jxc.common.model.entity.RecLoginHistory; -import cn.toesbieya.jxc.common.model.entity.RecUserAction; - -import java.util.List; - -public interface RecordApi { - List getAttachmentByPid(String pid); - - void handleAttachment(List upload, List delete); - - void delAttachmentByPid(String pid); - - void insertLoginHistory(RecLoginHistory vo); - - void insertUserAction(RecUserAction vo); -} diff --git a/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/StockApi.java b/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/StockApi.java deleted file mode 100644 index 53c321b..0000000 --- a/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/StockApi.java +++ /dev/null @@ -1,18 +0,0 @@ -package cn.toesbieya.jxc.api; - -import cn.toesbieya.jxc.common.model.entity.BizStock; -import cn.toesbieya.jxc.common.model.vo.StockOutboundVo; -import cn.toesbieya.jxc.common.model.vo.StockSearch; -import cn.toesbieya.jxc.common.model.vo.StockSearchResult; - -import java.util.List; - -public interface StockApi { - List getByCondition(StockSearch vo); - - List getDetail(String cids); - - void inbound(List list); - - void outbound(List list); -} diff --git a/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/system/DepartmentApi.java b/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/system/DepartmentApi.java deleted file mode 100644 index 83d894c..0000000 --- a/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/system/DepartmentApi.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.api.system; - -import cn.toesbieya.jxc.common.model.entity.SysUser; -import cn.toesbieya.jxc.common.model.vo.DepartmentVo; - -import java.util.Set; - -public interface DepartmentApi { - //获取用户的数据范围(部门ID集合),返回null说明无需限制 - Set getUserDataScope(SysUser user); - - //获取带有全名的部门 - DepartmentVo getById(int id); -} diff --git a/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/system/ResourceApi.java b/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/system/ResourceApi.java deleted file mode 100644 index 15a6719..0000000 --- a/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/system/ResourceApi.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.api.system; - -import cn.toesbieya.jxc.common.model.entity.SysResource; -import cn.toesbieya.jxc.common.model.entity.SysRole; - -import java.util.List; - -public interface ResourceApi { - //获取已启用的数据接口列表 - List getEnableApi(); - - //获取角色的权限列表,包含admin权限 - List getResourceByRole(SysRole role); -} diff --git a/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/system/RoleApi.java b/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/system/RoleApi.java deleted file mode 100644 index 3c5499f..0000000 --- a/java/cloud/api/src/main/java/cn/toesbieya/jxc/api/system/RoleApi.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.api.system; - -import cn.toesbieya.jxc.common.model.entity.SysRole; - -public interface RoleApi { - SysRole getRoleById(Integer roleId); -} diff --git a/java/cloud/common/pom.xml b/java/cloud/common/pom.xml deleted file mode 100644 index c14f4f2..0000000 --- a/java/cloud/common/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - jxc - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - common - - - - org.springframework.boot - spring-boot-starter-data-redis - - - - org.apache.commons - commons-pool2 - - - - javax.servlet - javax.servlet-api - - - - com.google.guava - guava - - - - org.yaml - snakeyaml - - - - com.alibaba - fastjson - - - \ No newline at end of file diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/config/FastJsonConfigFactory.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/config/FastJsonConfigFactory.java deleted file mode 100644 index a403ef7..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/config/FastJsonConfigFactory.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.toesbieya.jxc.common.config; - -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastjson.support.config.FastJsonConfig; - -public class FastJsonConfigFactory { - public static FastJsonConfig defaultConfig() { - FastJsonConfig config = new FastJsonConfig(); - - config.setSerializerFeatures( - SerializerFeature.WriteMapNullValue, // 是否输出值为null的字段 - SerializerFeature.WriteDateUseDateFormat, - SerializerFeature.WriteNullListAsEmpty, - SerializerFeature.DisableCircularReferenceDetect // 禁用循环引用 - ); - - return config; - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/config/RedisConfig.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/config/RedisConfig.java deleted file mode 100644 index 968632a..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/config/RedisConfig.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.toesbieya.jxc.common.config; - -import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.serializer.StringRedisSerializer; - -@Configuration -public class RedisConfig { - @Bean - public RedisTemplate redisTemplate(RedisConnectionFactory factory) { - RedisTemplate redisTemplate = new RedisTemplate<>(); - redisTemplate.setConnectionFactory(factory); - - FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer<>(Object.class); - fastJsonRedisSerializer.setFastJsonConfig(FastJsonConfigFactory.defaultConfig()); - - StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); - - // 设置值(value)的序列化采用FastJsonRedisSerializer。 - redisTemplate.setValueSerializer(fastJsonRedisSerializer); - redisTemplate.setHashValueSerializer(fastJsonRedisSerializer); - - // 设置键(key)的序列化采用StringRedisSerializer。 - redisTemplate.setKeySerializer(stringRedisSerializer); - redisTemplate.setHashKeySerializer(stringRedisSerializer); - - redisTemplate.setDefaultSerializer(fastJsonRedisSerializer); - redisTemplate.afterPropertiesSet(); - return redisTemplate; - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/DocConstant.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/DocConstant.java deleted file mode 100644 index 7a3f981..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/DocConstant.java +++ /dev/null @@ -1,12 +0,0 @@ -package cn.toesbieya.jxc.common.constant; - -public interface DocConstant { - //更新单据ID时的redis锁的键 - String UPDATE_DOC_LOCK_KEY = "UPDATE_DOC"; - - //单据ID的redis缓存的键 - String DOC_TYPE_REDIS_KEY = "DOC_ID"; - - //单据类型 - String[] DOC_TYPE = {"CGDD", "CGRK", "CGTH", "XSDD", "XSCK", "XSTH"}; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/SessionConstant.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/SessionConstant.java deleted file mode 100644 index 92c889e..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/SessionConstant.java +++ /dev/null @@ -1,18 +0,0 @@ -package cn.toesbieya.jxc.common.constant; - -public interface SessionConstant { - //session过期时间,单位秒 - long EXPIRE = 3600 * 8; - - //存储用户信息的键的前缀 - String REDIS_NAMESPACE = "sessions:"; - - //key过期事件的前缀 - String REDIS_EXPIRE_TOPIC_PREFIX = "__keyspace@0__:"; - - //http headers中token的字段名 - String TOKEN_KEY = "X-Token"; - - //区别无活动用户的时间间隔,单位秒 - long NO_ACTION_INTERVAL = 1800; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/SocketConstant.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/SocketConstant.java deleted file mode 100644 index 47e7f50..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/SocketConstant.java +++ /dev/null @@ -1,23 +0,0 @@ -package cn.toesbieya.jxc.common.constant; - -public interface SocketConstant { - //web-socket服务端订阅的redis主题名称 - String REDIS_EVENT_TOPIC_SEND = "socket-event-send"; - - //指定用户 - int REDIS_EVENT_SPECIFIC = 0; - //广播 - int REDIS_EVENT_BROADCAST = 1; - //登出 - int REDIS_EVENT_LOGOUT = 2; - - //存放于redis中的在线用户的ID集合的键 - String REDIS_ONLINE_USER = "socket:online-user"; - //存放于redis中的离线用户的离线时间的键 - String REDIS_OFFLINE_USER = "socket:offline-user"; - - //登出事件 - String EVENT_LOGOUT = "logout"; - //新消息事件 - String EVENT_NEW_MESSAGE = "new-message"; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/enumeration/DataScopeEnum.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/enumeration/DataScopeEnum.java deleted file mode 100644 index 84f744d..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/enumeration/DataScopeEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.common.enumeration; - -public enum DataScopeEnum { - ALL(1), SELF(2), SPECIFIC(3); - - private final int code; - - DataScopeEnum(int code) { - this.code = code; - } - - public int getCode() { - return code; - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/enumeration/GeneralStatusEnum.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/enumeration/GeneralStatusEnum.java deleted file mode 100644 index a488f40..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/enumeration/GeneralStatusEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.common.enumeration; - -public enum GeneralStatusEnum { - DISABLED(0), ENABLED(1); - - private final int code; - - GeneralStatusEnum(int code) { - this.code = code; - } - - public int getCode() { - return code; - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/enumeration/ResourceTypeEnum.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/enumeration/ResourceTypeEnum.java deleted file mode 100644 index 21152a8..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/enumeration/ResourceTypeEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.common.enumeration; - -public enum ResourceTypeEnum { - ROOT(0), FOLDER(1), LEAF(2), API(3); - - private final int code; - - ResourceTypeEnum(int code) { - this.code = code; - } - - public int getCode() { - return code; - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/exception/JsonResultException.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/exception/JsonResultException.java deleted file mode 100644 index 53be721..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/exception/JsonResultException.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.common.exception; - -public class JsonResultException extends RuntimeException { - public JsonResultException(String message) { - super(message); - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizDoc.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizDoc.java deleted file mode 100644 index d75ef35..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizDoc.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; - -import java.io.Serializable; - -@Data -public class BizDoc implements Serializable { - private static final long serialVersionUID = 1L; - private String id; - private Integer cid; - private String cname; - private Long ctime; - private Integer vid; - private String vname; - private Long vtime; - private Integer status; - private String remark; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizDocHistory.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizDocHistory.java deleted file mode 100644 index 81f5c58..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizDocHistory.java +++ /dev/null @@ -1,25 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; - -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class BizDocHistory implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private String pid; - private Integer type; - private Integer uid; - private String uname; - private Integer statusBefore; - private Integer statusAfter; - private Long time; - private String info; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizDocSub.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizDocSub.java deleted file mode 100644 index e6fcb62..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizDocSub.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; - -@Data -public class BizDocSub implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private String pid; - private Integer cid; - private String cname; - private BigDecimal num; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseInbound.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseInbound.java deleted file mode 100644 index 1e6aa66..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseInbound.java +++ /dev/null @@ -1,12 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class BizPurchaseInbound extends BizDoc { - private String pid; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseInboundSub.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseInboundSub.java deleted file mode 100644 index 19d64fe..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseInboundSub.java +++ /dev/null @@ -1,12 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class BizPurchaseInboundSub extends BizDocSub { - -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseOrder.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseOrder.java deleted file mode 100644 index 0a3dd79..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseOrder.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.ToString; - -import java.math.BigDecimal; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -@NoArgsConstructor -public class BizPurchaseOrder extends BizDoc { - private Integer sid; - private String sname; - private Integer finish; - private Long ftime; - private BigDecimal total; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseOrderSub.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseOrderSub.java deleted file mode 100644 index a66a00d..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseOrderSub.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -import java.math.BigDecimal; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class BizPurchaseOrderSub extends BizDocSub { - private BigDecimal price; - private BigDecimal remainNum; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOrder.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOrder.java deleted file mode 100644 index 82317b1..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOrder.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.ToString; - -import java.math.BigDecimal; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class BizSellOrder extends BizDoc { - private Integer customerId; - private String customerName; - private Integer finish; - private Long ftime; - private BigDecimal total; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOrderSub.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOrderSub.java deleted file mode 100644 index afebf5d..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOrderSub.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -import java.math.BigDecimal; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class BizSellOrderSub extends BizDocSub { - private BigDecimal price; - private BigDecimal remainNum; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOutbound.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOutbound.java deleted file mode 100644 index 764423f..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOutbound.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class BizSellOutbound extends BizDoc { - private String pid; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOutboundSub.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOutboundSub.java deleted file mode 100644 index 8d32aa0..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOutboundSub.java +++ /dev/null @@ -1,12 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class BizSellOutboundSub extends BizDocSub { - private Integer sid; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizStock.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizStock.java deleted file mode 100644 index c0bc7d1..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizStock.java +++ /dev/null @@ -1,25 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; -import java.math.BigDecimal; - -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class BizStock implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private Integer cid; - private String cname; - private BigDecimal num; - private BigDecimal price; - private Long ctime; - private String cgrkid; - private String cgddid; -} \ No newline at end of file diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/Msg.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/Msg.java deleted file mode 100644 index c618664..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/Msg.java +++ /dev/null @@ -1,26 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; - -import java.io.Serializable; - -@Data -public class Msg implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private String title; - private String content; - private Integer type; - private Integer cid; - private String cname; - private Long ctime; - private Integer pid; - private String pname; - private Long ptime; - private Integer wid; - private String wname; - private Long wtime; - private Integer status; - private boolean broadcast = false; - private String recipient; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/MsgState.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/MsgState.java deleted file mode 100644 index 8e2c59a..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/MsgState.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; - -import java.io.Serializable; - -@Data -public class MsgState implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private Integer mid; - private Integer uid; - private Long time; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/RecAttachment.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/RecAttachment.java deleted file mode 100644 index 3dd5b7e..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/RecAttachment.java +++ /dev/null @@ -1,23 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; - -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class RecAttachment implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private String pid; - private String name; - private Long time; - private Integer sort; - private String url; - private Long size; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/RecLoginHistory.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/RecLoginHistory.java deleted file mode 100644 index db1306e..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/RecLoginHistory.java +++ /dev/null @@ -1,23 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; - -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class RecLoginHistory implements Serializable { - private static final long serialVersionUID = 1L; - private Long id; - private Integer uid; - private String uname; - private String ip; - private String address; - private boolean login = false; - private Long time; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/RecUserAction.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/RecUserAction.java deleted file mode 100644 index 965c095..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/RecUserAction.java +++ /dev/null @@ -1,25 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; - -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class RecUserAction implements Serializable { - private static final long serialVersionUID = 1L; - private Long id; - private Integer uid; - private String uname; - private String url; - private String ip; - private Long time; - private String action; - private String error; - private boolean success = false; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/StatFinishOrder.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/StatFinishOrder.java deleted file mode 100644 index 0650124..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/StatFinishOrder.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; - -import java.io.Serializable; - -@Data -public class StatFinishOrder implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private Integer purchase; - private Integer sell; - private Long time; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/StatProfitGoods.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/StatProfitGoods.java deleted file mode 100644 index 9140477..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/StatProfitGoods.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class StatProfitGoods extends StatProfitTotal { - private Integer cid; - private String cname; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/StatProfitTotal.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/StatProfitTotal.java deleted file mode 100644 index f8af42b..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/StatProfitTotal.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; - -@Data -public class StatProfitTotal implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private BigDecimal purchase; - private BigDecimal sell; - private BigDecimal profit; - private Long time; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysCategory.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysCategory.java deleted file mode 100644 index df97484..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysCategory.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; - -import java.io.Serializable; - -@Data -public class SysCategory implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private Integer pid; - private String name; - private boolean leaf = false; - private Long ctime; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysCustomer.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysCustomer.java deleted file mode 100644 index 560f04a..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysCustomer.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; - -import java.io.Serializable; - -@Data -public class SysCustomer implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private String name; - private String address; - private String linkman; - private String linkphone; - private String region; - private boolean enable = false; - private Long ctime; - private String remark; -} \ No newline at end of file diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysDepartment.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysDepartment.java deleted file mode 100644 index c1b4078..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysDepartment.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; - -import java.io.Serializable; - -@Data -public class SysDepartment implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private Integer pid; - private String name; - private boolean enable = false; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysRegion.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysRegion.java deleted file mode 100644 index 2992bae..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysRegion.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; - -import java.io.Serializable; - -@Data -public class SysRegion implements Serializable { - private static final long serialVersionUID = 1L; - private String id; - private String pid; - private String name; - private String fullname; - private int level; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysResource.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysResource.java deleted file mode 100644 index 7463f94..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysResource.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; - -import java.io.Serializable; - -@Data -public class SysResource implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private Integer pid; - private Integer type; - private String name; - private String path; - private String component; - private String meta; - private boolean admin = false; - private boolean enable = true; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysRole.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysRole.java deleted file mode 100644 index ec53e82..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysRole.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import cn.toesbieya.jxc.common.enumeration.DataScopeEnum; -import lombok.Data; - -import java.io.Serializable; - -@Data -public class SysRole implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private String name; - private Integer cid; - private String cname; - private Long ctime; - private boolean enable = false; - private int scope = DataScopeEnum.ALL.getCode(); - private String departmentId; - private String resourceId; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysSupplier.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysSupplier.java deleted file mode 100644 index 588e738..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysSupplier.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; - -import java.io.Serializable; - -@Data -public class SysSupplier implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private String name; - private String address; - private String linkman; - private String linkphone; - private String region; - private boolean enable = false; - private Long ctime; - private String remark; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysUser.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysUser.java deleted file mode 100644 index a695e99..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysUser.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.toesbieya.jxc.common.model.entity; - -import lombok.Data; - -import java.io.Serializable; - -@Data -public class SysUser implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private String loginName; - private String nickName; - private String pwd; - private Integer role; - private String avatar; - private Long ctime; - private boolean admin = false; - private boolean enable = false; - private Integer dept; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/BaseSearch.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/BaseSearch.java deleted file mode 100644 index d6425be..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/BaseSearch.java +++ /dev/null @@ -1,9 +0,0 @@ -package cn.toesbieya.jxc.common.model.vo; - -import lombok.Data; - -@Data -public class BaseSearch { - private Integer page; - private Integer pageSize; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/DepartmentVo.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/DepartmentVo.java deleted file mode 100644 index 3735caa..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/DepartmentVo.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.toesbieya.jxc.common.model.vo; - -import cn.toesbieya.jxc.common.model.entity.SysDepartment; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.ToString; -import org.springframework.beans.BeanUtils; - -@Data -@NoArgsConstructor -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class DepartmentVo extends SysDepartment { - String fullname; - - public DepartmentVo(SysDepartment parent) { - BeanUtils.copyProperties(parent, this); - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/R.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/R.java deleted file mode 100644 index 730783a..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/R.java +++ /dev/null @@ -1,83 +0,0 @@ -package cn.toesbieya.jxc.common.model.vo; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class R implements Serializable { - private static final long serialVersionUID = 1L; - - //返回码,200表示成功,其他表示失败 - private int status; - - //返回的信息 - private String msg; - - //返回的数据 - private Object data; - - public R(int status) { - this.status = status; - } - - public R(int status, String msg) { - this.status = status; - this.msg = msg; - } - - public R(int status, Object data) { - this.status = status; - this.data = data; - } - - public static R success() { - return new R(200); - } - - public static R success(String msg) { - return new R(200, msg); - } - - public static R success(Object data) { - return new R(200, data); - } - - public static R success(String msg, Object data) { - return new R(200, msg, data); - } - - public static R fail(String msg) { - return new R(500, msg); - } - - public static R notfound() { - return new R(404, "请求地址不存在"); - } - - public static R requireLogin() { - return new R(401, "请登录后重试"); - } - - public static R noPermission() { - return new R(403, "没有权限进行该操作"); - } - - public static R overload() { - return new R(503, "当前请求的人数过多,请稍后重试"); - } - - public static R tooManyRequest() { - return new R(429, "操作过于频繁,请稍后重试"); - } - - public boolean isSuccess() { - return this.status == 200; - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/ResourceVo.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/ResourceVo.java deleted file mode 100644 index 283bed6..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/ResourceVo.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.toesbieya.jxc.common.model.vo; - -import cn.toesbieya.jxc.common.model.entity.SysResource; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.ToString; -import org.springframework.beans.BeanUtils; - -@Data -@NoArgsConstructor -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class ResourceVo extends SysResource { - private String fullname; - - public ResourceVo(SysResource parent) { - BeanUtils.copyProperties(parent, this); - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/SocketEventVo.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/SocketEventVo.java deleted file mode 100644 index 34987dc..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/SocketEventVo.java +++ /dev/null @@ -1,21 +0,0 @@ -package cn.toesbieya.jxc.common.model.vo; - -import cn.toesbieya.jxc.common.constant.SocketConstant; -import lombok.Data; - -import java.util.List; - -@Data -public class SocketEventVo { - //事件类型 - private int type = SocketConstant.REDIS_EVENT_SPECIFIC; - - //事件名称 - private String event; - - //发送对象的id集合 - private List to; - - //数据包 - private Object data; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/SocketOfflineVo.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/SocketOfflineVo.java deleted file mode 100644 index fa7a95e..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/SocketOfflineVo.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.toesbieya.jxc.common.model.vo; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@NoArgsConstructor -@AllArgsConstructor -public class SocketOfflineVo { - //用户ID - private Integer uid; - - //断开时间 - private Long time; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/StockOutboundVo.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/StockOutboundVo.java deleted file mode 100644 index b248680..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/StockOutboundVo.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.toesbieya.jxc.common.model.vo; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; -import java.math.BigDecimal; - -@Data -@NoArgsConstructor -@AllArgsConstructor -public class StockOutboundVo implements Serializable { - private static final long serialVersionUID = 1L; - private Integer id; - private BigDecimal num; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/StockSearch.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/StockSearch.java deleted file mode 100644 index 85c7f9c..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/StockSearch.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.toesbieya.jxc.common.model.vo; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -import java.io.Serializable; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class StockSearch extends BaseSearch implements Serializable { - private static final long serialVersionUID = 1L; - private String ids; - private String cids; - private Long startTime; - private Long endTime; - private String cgddids; - private String cgrkids; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/StockSearchResult.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/StockSearchResult.java deleted file mode 100644 index d17535b..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/StockSearchResult.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.common.model.vo; - -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; - -@Data -public class StockSearchResult implements Serializable { - private static final long serialVersionUID = 1L; - private Integer cid; - private String cname; - private BigDecimal totalNum; - private BigDecimal totalPrice; -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/UserVo.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/UserVo.java deleted file mode 100644 index 280ad00..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/vo/UserVo.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.toesbieya.jxc.common.model.vo; - -import cn.toesbieya.jxc.common.model.entity.SysUser; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.ToString; -import org.springframework.beans.BeanUtils; - -import java.util.Set; - -@Data -@NoArgsConstructor -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class UserVo extends SysUser { - private String token; - private String roleName; - private String deptName; - private boolean online = false; - private Set departmentIds; - private Set resourceIds; - - public UserVo(SysUser parent) { - BeanUtils.copyProperties(parent, this); - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/DateUtil.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/DateUtil.java deleted file mode 100644 index 282fee0..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/DateUtil.java +++ /dev/null @@ -1,53 +0,0 @@ -package cn.toesbieya.jxc.common.util; - -import java.time.Instant; -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.format.DateTimeFormatter; -import java.util.Calendar; -import java.util.Date; - -public class DateUtil { - public static final DateTimeFormatter defaultFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - - public static String dateFormat() { - return dateFormat(null, null); - } - - public static String dateFormat(Long time) { - LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault()); - return dateFormat(localDateTime, null); - } - - public static String dateFormat(LocalDateTime time) { - return dateFormat(time, null); - } - - public static String dateFormat(DateTimeFormatter formatter) { - return dateFormat(null, formatter); - } - - public static String dateFormat(LocalDateTime time, DateTimeFormatter formatter) { - LocalDateTime t = time == null ? LocalDateTime.now() : time; - DateTimeFormatter f = formatter == null ? defaultFormatter : formatter; - return t.format(f); - } - - //获取今日零点的时间戳 - public static long getTimestampNow() { - long currentTimestamps = System.currentTimeMillis(); - return currentTimestamps - (currentTimestamps + 60 * 60 * 8 * 1000) % (60 * 60 * 24 * 1000); - } - - //获取n天前零点的时间戳 - public static long getTimestampBeforeNow(int before) { - Calendar cal = Calendar.getInstance(); - cal.setTime(new Date()); - cal.add(Calendar.DATE, -before); - cal.set(Calendar.HOUR_OF_DAY, 0); - cal.set(Calendar.MINUTE, 0); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - return cal.getTime().getTime(); - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/RedisUtil.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/RedisUtil.java deleted file mode 100644 index 39a8a6c..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/RedisUtil.java +++ /dev/null @@ -1,176 +0,0 @@ -package cn.toesbieya.jxc.common.util; - -import com.google.common.io.ByteStreams; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.io.ClassPathResource; -import org.springframework.data.redis.core.*; -import org.springframework.data.redis.core.script.DefaultRedisScript; -import org.springframework.data.redis.core.script.RedisScript; -import org.springframework.stereotype.Component; - -import java.io.Closeable; -import java.io.IOException; -import java.util.*; -import java.util.concurrent.TimeUnit; - -@Component -@Slf4j -public class RedisUtil { - private static String INCREMENT_AND_EXPIRE_SCRIPT; - private static RedisTemplate redisTemplate; - private static StringRedisTemplate stringRedisTemplate; - - static { - try { - INCREMENT_AND_EXPIRE_SCRIPT = new String(ByteStreams.toByteArray(new ClassPathResource("/script/increase_and_expire.lua").getInputStream())); - } - catch (IOException e) { - e.printStackTrace(); - } - } - - @Autowired - public RedisUtil(RedisTemplate redisTemplate, StringRedisTemplate stringRedisTemplate) { - RedisUtil.redisTemplate = redisTemplate; - RedisUtil.stringRedisTemplate = stringRedisTemplate; - } - - public static Set keys(String match) { - return redisTemplate.execute((RedisCallback>) connection -> { - Set result = new HashSet<>(); - - Cursor cursor = - connection.scan( - new ScanOptions - .ScanOptionsBuilder() - .match(match) - .count(2000) - .build() - ); - - while (cursor.hasNext()) { - result.add(new String(cursor.next())); - } - - return result; - }); - } - - public static boolean exist(String key) { - Boolean result = redisTemplate.hasKey(key); - return result != null && result; - } - - public static void del(String... keys) { - redisTemplate.delete(Arrays.asList(keys)); - } - - public static long incrAndExpire(String key, int time) { - RedisScript redisScript = new DefaultRedisScript<>(INCREMENT_AND_EXPIRE_SCRIPT, Long.class); - - Long result = redisTemplate.execute(redisScript, Collections.singletonList(key), time); - - return result == null ? 0 : result; - } - - public static Object get(String key) { - return redisTemplate.opsForValue().get(key); - } - - public static void set(String key, Object value) { - redisTemplate.opsForValue().set(key, value); - } - - public static void set(String key, Object value, long expire) { - redisTemplate.opsForValue().set(key, value, expire, TimeUnit.SECONDS); - } - - public static Object hget(String key, String field) { - return redisTemplate.opsForHash().get(key, field); - } - - public static Map hgetAll(String key) { - return redisTemplate.opsForHash().entries(key); - } - - public static void hset(String key, String field, Object value) { - redisTemplate.opsForHash().put(key, field, value); - } - - public static void hdel(String key, Object... fields) { - redisTemplate.opsForHash().delete(key, fields); - } - - public static List hmget(String key, String... field) { - return redisTemplate.opsForHash().multiGet(key, Arrays.asList(field)); - } - - public static void hmset(String key, Map map) { - redisTemplate.opsForHash().putAll(key, map); - } - - public static long sadd(String key, Object... members) { - Long result = redisTemplate.opsForSet().add(key, members); - return result == null ? 0 : result; - } - - public static void srem(String key, Object... members) { - redisTemplate.opsForSet().remove(key, members); - } - - public static long scard(String key) { - Long result = redisTemplate.opsForSet().size(key); - return result == null ? 0 : result; - } - - public static Set smembers(String key) { - Set result = redisTemplate.opsForSet().members(key); - return result == null ? Collections.emptySet() : result; - } - - public static T execute(RedisScript script, List keys, Object... args) { - return redisTemplate.execute(script, keys, args); - } - - public static RedisTemplate getRedisTemplate() { - return redisTemplate; - } - - public static StringRedisTemplate getStringRedisTemplate() { - return stringRedisTemplate; - } - - public static class Locker implements Closeable { - private final String key; - private final String value; - private final long expire; - - public Locker(String key) { - this.key = "lock:" + key; - this.value = String.valueOf(System.currentTimeMillis()); - this.expire = 300; - } - - @Override - public void close() { - this.unlock(); - } - - public boolean lock() { - String LOCK_LUA_SCRIPT = "return redis.call('set',KEYS[1],ARGV[1],'EX',ARGV[2],'NX')"; - RedisScript redisScript = new DefaultRedisScript<>(LOCK_LUA_SCRIPT, Boolean.class); - Boolean result = redisTemplate.execute(redisScript, Collections.singletonList(key), value, expire); - return result != null; - } - - public void unlock() { - String UNLOCK_LUA_SCRIPT = "if redis.call('get',KEYS[1]) == ARGV[1] then return redis.call('del',KEYS[1]) else return false end"; - RedisScript redisScript = new DefaultRedisScript<>(UNLOCK_LUA_SCRIPT, Boolean.class); - Boolean result = redisTemplate.execute(redisScript, Collections.singletonList(key), value); - if (result == null || !result) { - log.error("redis锁释放失败,key:{},value:{}", key, value); - } - } - } -} \ No newline at end of file diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/SessionUtil.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/SessionUtil.java deleted file mode 100644 index 2f48e3b..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/SessionUtil.java +++ /dev/null @@ -1,57 +0,0 @@ -package cn.toesbieya.jxc.common.util; - -import cn.toesbieya.jxc.common.model.entity.SysUser; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import com.alibaba.fastjson.JSONObject; -import cn.toesbieya.jxc.common.constant.SessionConstant; -import org.springframework.util.StringUtils; - -import javax.servlet.http.HttpServletRequest; - -public class SessionUtil { - //token中的连接符 - private static final String tokenSeparator = "-*-"; - - public static void remove(String token) { - if (StringUtils.isEmpty(token)) return; - - RedisUtil.del(SessionConstant.REDIS_NAMESPACE + token); - } - - public static void save(UserVo user) { - String token = user.getToken(); - - if (StringUtils.isEmpty(token)) return; - - RedisUtil.set(SessionConstant.REDIS_NAMESPACE + token, user, SessionConstant.EXPIRE); - } - - public static UserVo get(String token) { - if (StringUtils.isEmpty(token)) return null; - - JSONObject o = (JSONObject) RedisUtil.get(SessionConstant.REDIS_NAMESPACE + token); - - if (o == null) return null; - - return JSONObject.toJavaObject(o, UserVo.class); - } - - public static UserVo get(HttpServletRequest request) { - String token = request.getHeader(SessionConstant.TOKEN_KEY); - return get(token); - } - - public static String generateToken(SysUser user) { - return user.getId() + tokenSeparator + Util.UUID(); - } - - public static Integer getUidFromToken(String token) { - if (StringUtils.isEmpty(token)) { - return null; - } - - String[] arr = token.split(tokenSeparator); - - return arr.length > 1 ? Integer.valueOf(arr[0]) : null; - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/SpringUtil.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/SpringUtil.java deleted file mode 100644 index 7198e4d..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/SpringUtil.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.toesbieya.jxc.common.util; - -import org.springframework.expression.EvaluationContext; -import org.springframework.expression.ExpressionParser; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.expression.spel.support.StandardEvaluationContext; -import org.springframework.util.StringUtils; - -public class SpringUtil { - private static final ExpressionParser parser = new SpelExpressionParser(); - - /** - * el表达式解析 - * - * @param el 表达式 - * @param names 参数名称数组 - * @param args 参数数组 - */ - public static Object spell(String el, String[] names, Object[] args) { - if (StringUtils.isEmpty(el)) { - return null; - } - EvaluationContext context = new StandardEvaluationContext(); - for (int i = 0; i < args.length; i++) { - context.setVariable(names[i], args[i]); - } - return parser.parseExpression(el).getValue(context); - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/Util.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/Util.java deleted file mode 100644 index 6188222..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/Util.java +++ /dev/null @@ -1,72 +0,0 @@ -package cn.toesbieya.jxc.common.util; - -import org.springframework.util.StringUtils; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.nio.charset.StandardCharsets; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.UUID; -import java.util.function.Predicate; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - -public class Util { - public static String UUID() { - return UUID.randomUUID().toString(); - } - - public static List str2List(String string) { - if (StringUtils.isEmpty(string)) { - return Collections.emptyList(); - } - return Arrays.stream(string.split(",")) - .map(i -> Integer.parseInt(i.trim())) - .collect(Collectors.toList()); - } - - public static String str2Hex(String s) { - byte[] baKeyword = new byte[s.length() / 2]; - for (int i = 0; i < baKeyword.length; i++) { - baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(i * 2, i * 2 + 2), 16)); - } - return new String(baKeyword, StandardCharsets.ISO_8859_1); - } - - public static boolean isInteger(String str) { - Pattern pattern = Pattern.compile("^[-+]?[\\d]*$"); - return pattern.matcher(str).matches(); - } - - public static String exception2Str(Exception e) { - StringWriter stringWriter = new StringWriter(); - PrintWriter printWriter = new PrintWriter(stringWriter); - e.printStackTrace(printWriter); - printWriter.close(); - return stringWriter.toString(); - } - - public static T find(Iterable list, Predicate predicate) { - for (T t : list) { - if (predicate.test(t)) return t; - } - return null; - } - - public static int findIndex(Iterable list, Predicate predicate) { - int i = -1; - if (list == null) return i; - for (T t : list) { - i++; - if (predicate.test(t)) return i; - } - return -1; - } - - public static boolean some(Iterable list, Predicate predicate) { - int index = findIndex(list, predicate); - return index > -1; - } -} diff --git a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/WebSocketUtil.java b/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/WebSocketUtil.java deleted file mode 100644 index cfde600..0000000 --- a/java/cloud/common/src/main/java/cn/toesbieya/jxc/common/util/WebSocketUtil.java +++ /dev/null @@ -1,36 +0,0 @@ -package cn.toesbieya.jxc.common.util; - -import cn.toesbieya.jxc.common.model.vo.SocketEventVo; -import cn.toesbieya.jxc.common.constant.SocketConstant; - -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; - -public class WebSocketUtil { - //获取在线用户的总数 - public static long getOnlineUserNum() { - return RedisUtil.scard(SocketConstant.REDIS_ONLINE_USER); - } - - //获取所有在线用户的id集合 - public static Set getOnlineUserIds() { - Set result = RedisUtil.smembers(SocketConstant.REDIS_ONLINE_USER); - - return result.stream().map(e -> (Integer) e).collect(Collectors.toSet()); - } - - //发送消息 - public static void sendEvent(SocketEventVo vo) { - RedisUtil.getRedisTemplate().convertAndSend(SocketConstant.REDIS_EVENT_TOPIC_SEND, vo); - } - - //登出 - public static void sendLogoutEvent(List to, String msg) { - SocketEventVo vo = new SocketEventVo(); - vo.setEvent(SocketConstant.EVENT_LOGOUT); - vo.setTo(to); - vo.setData(msg); - sendEvent(vo); - } -} diff --git a/java/cloud/common/src/main/resources/script/increase_and_expire.lua b/java/cloud/common/src/main/resources/script/increase_and_expire.lua deleted file mode 100644 index 5e0a74e..0000000 --- a/java/cloud/common/src/main/resources/script/increase_and_expire.lua +++ /dev/null @@ -1,6 +0,0 @@ -local current -current = redis.call("incr", KEYS[1]) -if tonumber(current) == 1 then - redis.call("expire", KEYS[1], ARGV[1]) -end -return current \ No newline at end of file diff --git a/java/cloud/gateway/pom.xml b/java/cloud/gateway/pom.xml deleted file mode 100644 index 269c3c0..0000000 --- a/java/cloud/gateway/pom.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - jxc - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - gateway - - - - cn.toesbieya - common - - - cn.toesbieya - api - - - - org.springframework.boot - spring-boot-starter - - - org.springframework.cloud - spring-cloud-starter-gateway - - - com.alibaba.cloud - spring-cloud-starter-dubbo - - - - - \ No newline at end of file diff --git a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/GatewayApplication.java b/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/GatewayApplication.java deleted file mode 100644 index f5d95e0..0000000 --- a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/GatewayApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.toesbieya.jxc.gateway; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; - -@SpringBootApplication(scanBasePackages = "cn.toesbieya.jxc") -@EnableDiscoveryClient -public class GatewayApplication { - public static void main(String[] args) { - SpringApplication.run(GatewayApplication.class, args); - } -} diff --git a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/GatewayConfig.java b/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/GatewayConfig.java deleted file mode 100644 index 541a220..0000000 --- a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/GatewayConfig.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.toesbieya.jxc.gateway.config; - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -import java.util.HashSet; -import java.util.Set; - -@Component -@ConfigurationProperties("spring.cloud.gateway") -@Data -public class GatewayConfig { - private Set whitelist = new HashSet<>(); - - private String dataId = "jxc-gateway.yml"; - - private String group = "DEFAULT_GROUP"; -} diff --git a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/RateConfig.java b/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/RateConfig.java deleted file mode 100644 index 4105c36..0000000 --- a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/RateConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.gateway.config; - -import org.springframework.cloud.gateway.filter.ratelimit.KeyResolver; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import reactor.core.publisher.Mono; - -@Configuration -public class RateConfig { - @Bean - public KeyResolver urlKeyResolver() { - return exchange -> Mono.just(exchange.getRequest().getPath().value()); - } -} diff --git a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/ResourceConfig.java b/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/ResourceConfig.java deleted file mode 100644 index 23f0645..0000000 --- a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/ResourceConfig.java +++ /dev/null @@ -1,66 +0,0 @@ -package cn.toesbieya.jxc.gateway.config; - -import cn.toesbieya.jxc.api.system.ResourceApi; -import cn.toesbieya.jxc.common.model.entity.SysResource; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.Reference; -import org.springframework.boot.CommandLineRunner; -import org.springframework.stereotype.Component; - -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.List; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; - -@Component -@Slf4j -public class ResourceConfig implements CommandLineRunner { - private final static ConcurrentHashMap urlMap = new ConcurrentHashMap<>(256); - private final static ConcurrentHashMap adminUrlMap = new ConcurrentHashMap<>(16); - @Reference - private ResourceApi resourceApi; - - public static boolean authority(UserVo user, String url) { - boolean isAdmin = user.isAdmin(); - SysResource r = adminUrlMap.get(url); - - //访问admin权限的资源时,需要用户是admin并且该权限已启用 - if (r != null) { - return r.isEnable() && isAdmin; - } - - if (isAdmin) return true; - - r = urlMap.get(url); - - //权限表中无记录的资源放行 - if (r == null) return true; - - //未启用时拦截 - if (!r.isEnable()) return false; - - //根据用户权限判断 - Set ids = user.getResourceIds(); - return ids != null && ids.contains(r.getId()); - } - - @Override - public void run(String... args) { - Instant start = Instant.now(); - - List resources = resourceApi.getEnableApi(); - - for (SysResource p : resources) { - String path = p.getPath(); - if (p.isAdmin()) { - adminUrlMap.put(path, p); - } - else urlMap.put(path, p); - } - - Instant end = Instant.now(); - log.info("权限资源加载完成,耗时:{}毫秒", ChronoUnit.MILLIS.between(start, end)); - } -} diff --git a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/RouteConfig.java b/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/RouteConfig.java deleted file mode 100644 index 61371b3..0000000 --- a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/config/RouteConfig.java +++ /dev/null @@ -1,138 +0,0 @@ -package cn.toesbieya.jxc.gateway.config; - -import cn.toesbieya.jxc.gateway.filter.SecurityFilter; -import com.alibaba.nacos.api.NacosFactory; -import com.alibaba.nacos.api.PropertyKeyConst; -import com.alibaba.nacos.api.config.ConfigService; -import com.alibaba.nacos.api.config.listener.Listener; -import com.alibaba.nacos.api.exception.NacosException; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.cloud.gateway.event.RefreshRoutesEvent; -import org.springframework.cloud.gateway.filter.FilterDefinition; -import org.springframework.cloud.gateway.handler.predicate.PredicateDefinition; -import org.springframework.cloud.gateway.route.RouteDefinition; -import org.springframework.cloud.gateway.route.RouteDefinitionWriter; -import org.springframework.context.ApplicationEventPublisher; -import org.springframework.context.ApplicationEventPublisherAware; -import org.springframework.stereotype.Component; -import org.yaml.snakeyaml.Yaml; -import reactor.core.publisher.Mono; - -import javax.annotation.PostConstruct; -import java.net.URI; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.concurrent.Executor; -import java.util.stream.Collectors; - -@Component -@Slf4j -public class RouteConfig implements ApplicationEventPublisherAware { - @Value("${spring.cloud.nacos.config.server-addr}") - private String NACOS_SERVER_ADDR; - - private GatewayConfig config; - - private RouteDefinitionWriter writer; - - private ApplicationEventPublisher publisher; - - @PostConstruct - public void addListener() throws NacosException { - Properties properties = new Properties(); - properties.put(PropertyKeyConst.SERVER_ADDR, NACOS_SERVER_ADDR); - ConfigService configService = NacosFactory.createConfigService(properties); - - configService.addListener(config.getDataId(), config.getGroup(), new Listener() { - @Override - public Executor getExecutor() { - return null; - } - - @Override - @SuppressWarnings("unchecked") - public void receiveConfigInfo(String configInfo) { - Yaml yaml = new Yaml(); - Map config = yaml.load(configInfo); - config = (Map) config.get("spring"); - config = (Map) config.get("cloud"); - config = (Map) config.get("gateway"); - - SecurityFilter.updateWhitelist((List) config.get("whitelist")); - - List> routes = (List>) config.get("routes"); - - if (routes == null) return; - - List list = - routes - .stream() - .map(map -> { - RouteDefinition route = new RouteDefinition(); - - route.setId((String) map.get("id")); - - route.setUri(URI.create((String) map.get("uri"))); - - List predicates = (List) map.get("predicates"); - - if (predicates != null) { - route.setPredicates( - predicates - .stream() - .map(PredicateDefinition::new) - .collect(Collectors.toList()) - ); - } - - List filters = (List) map.get("filters"); - - if (filters != null) { - route.setFilters( - filters - .stream() - .map(FilterDefinition::new) - .collect(Collectors.toList()) - ); - } - - return route; - }) - .collect(Collectors.toList()); - - update(list); - - //SentinelFilter.registerRules(list); - } - }); - } - - private void update(List routes) { - if (routes == null) return; - - routes.forEach(route -> { - this.writer.delete(Mono.just(route.getId())); - writer.save(Mono.just(route)).subscribe(); - }); - - this.publisher.publishEvent(new RefreshRoutesEvent(this)); - } - - @Override - public void setApplicationEventPublisher(ApplicationEventPublisher publisher) { - this.publisher = publisher; - } - - @Autowired - public void setWriter(RouteDefinitionWriter writer) { - this.writer = writer; - } - - @Autowired - public void setGatewayProperties(GatewayConfig config) { - this.config = config; - } -} diff --git a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/controller/FallbackController.java b/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/controller/FallbackController.java deleted file mode 100644 index 7265dfb..0000000 --- a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/controller/FallbackController.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.toesbieya.jxc.gateway.controller; - -import cn.toesbieya.jxc.common.model.vo.R; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -public class FallbackController { - @RequestMapping("fallback") - @ResponseBody - public R fallback() { - return R.fail("服务异常"); - } -} diff --git a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/filter/SecurityFilter.java b/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/filter/SecurityFilter.java deleted file mode 100644 index 06f279a..0000000 --- a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/filter/SecurityFilter.java +++ /dev/null @@ -1,107 +0,0 @@ -package cn.toesbieya.jxc.gateway.filter; - -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.gateway.config.GatewayConfig; -import cn.toesbieya.jxc.gateway.config.ResourceConfig; -import com.alibaba.fastjson.JSON; -import cn.toesbieya.jxc.common.constant.SessionConstant; -import cn.toesbieya.jxc.common.util.SessionUtil; -import cn.toesbieya.jxc.common.util.Util; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.gateway.filter.GlobalFilter; -import org.springframework.context.annotation.Bean; -import org.springframework.core.annotation.Order; -import org.springframework.core.io.buffer.DataBuffer; -import org.springframework.http.HttpStatus; -import org.springframework.http.server.PathContainer; -import org.springframework.http.server.reactive.ServerHttpResponse; -import org.springframework.stereotype.Component; -import org.springframework.web.util.pattern.PathPattern; -import org.springframework.web.util.pattern.PathPatternParser; -import reactor.core.publisher.Mono; - -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; - -import static org.springframework.http.server.PathContainer.parsePath; - -@Component -@Slf4j -public class SecurityFilter { - private GatewayConfig gatewayConfig; - - private static final PathPatternParser pathPatternParser = new PathPatternParser(); - - private static List whitelistPatterns = new ArrayList<>(); - - @Bean - @Order(-1) - public GlobalFilter globalFilter() { - updateWhitelist(gatewayConfig.getWhitelist()); - - return ((exchange, chain) -> { - String requestUrl = exchange.getRequest().getURI().getPath(); - - PathContainer path = parsePath(requestUrl); - - //放行白名单内的url - if (Util.some(whitelistPatterns, pattern -> pattern.matches(path))) { - return chain.filter(exchange); - } - - ServerHttpResponse response = exchange.getResponse(); - - String token = exchange.getRequest().getHeaders().getFirst(SessionConstant.TOKEN_KEY); - - UserVo user = SessionUtil.get(token); - - //未登录 - if (user == null) { - return responseJSON(response, R.requireLogin()); - } - - //没有权限 - if (!ResourceConfig.authority(user, requestUrl)) { - log.warn("权限拦截,访问路径:{},用户:{}", requestUrl, user.getNickName()); - return responseJSON(response, R.noPermission()); - } - - return chain.filter(exchange); - }); - } - - private Mono responseJSON(ServerHttpResponse response, R result) { - byte[] bytes = JSON.toJSONString(result).getBytes(StandardCharsets.UTF_8); - - DataBuffer buffer = response.bufferFactory().wrap(bytes); - - response.setStatusCode(HttpStatus.OK); - - response.getHeaders().add("Content-Type", "application/json; charset=utf-8"); - - return response.writeWith(Mono.just(buffer)); - } - - public static void updateWhitelist(Collection list) { - if (list == null) { - whitelistPatterns = new ArrayList<>(); - return; - } - - whitelistPatterns = - list - .stream() - .map(pathPatternParser::parse) - .collect(Collectors.toList()); - } - - @Autowired - public void setGatewayProperties(GatewayConfig gatewayConfig) { - this.gatewayConfig = gatewayConfig; - } -} diff --git a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/filter/SentinelFilter.java b/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/filter/SentinelFilter.java deleted file mode 100644 index eafac6f..0000000 --- a/java/cloud/gateway/src/main/java/cn/toesbieya/jxc/gateway/filter/SentinelFilter.java +++ /dev/null @@ -1,68 +0,0 @@ -package cn.toesbieya.jxc.gateway.filter; - -import org.springframework.context.annotation.Configuration; - -@Configuration -public class SentinelFilter { - /*private GatewayProperties gatewayProperties; - - private final List viewResolvers; - private final ServerCodecConfigurer serverCodecConfigurer; - - public SentinelFilter(ObjectProvider> viewResolversProvider, - ServerCodecConfigurer serverCodecConfigurer) { - this.viewResolvers = viewResolversProvider.getIfAvailable(Collections::emptyList); - this.serverCodecConfigurer = serverCodecConfigurer; - } - - @Bean - @Order(Ordered.HIGHEST_PRECEDENCE) - public SentinelGatewayBlockExceptionHandler sentinelGatewayBlockExceptionHandler() { - return new SentinelGatewayBlockExceptionHandler(viewResolvers, serverCodecConfigurer); - } - - @Bean - @Order(Ordered.HIGHEST_PRECEDENCE) - public GlobalFilter sentinelGatewayFilter() { - return new SentinelGatewayFilter(); - } - - @PostConstruct - public void init() { - registerRules(gatewayProperties.getRoutes()); - - GatewayCallbackManager.setBlockHandler( - (exchange, t) -> - ServerResponse - .status(HttpStatus.OK) - .contentType(MediaType.APPLICATION_JSON_UTF8) - .body(fromObject(R.tooManyRequest())) - ); - } - - public static void registerRules(List routes) { - Set rules = new HashSet<>(); - - routes.forEach(route -> { - String id = route.getId(); - - rules.add(new GatewayFlowRule(id).setCount(100)); - - rules.add( - new GatewayFlowRule(id) - .setCount(1) - .setParamItem( - new GatewayParamFlowItem() - .setParseStrategy(SentinelGatewayConstants.PARAM_PARSE_STRATEGY_CLIENT_IP) - ) - ); - }); - - GatewayRuleManager.register2Property(new DynamicSentinelProperty<>(rules)); - } - - @Autowired - public void setGatewayProperties(GatewayProperties gatewayProperties) { - this.gatewayProperties = gatewayProperties; - }*/ -} diff --git a/java/cloud/gateway/src/main/resources/bootstrap.yml b/java/cloud/gateway/src/main/resources/bootstrap.yml deleted file mode 100644 index dd92bb1..0000000 --- a/java/cloud/gateway/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,20 +0,0 @@ -spring: - application: - name: jxc-gateway - - cloud: - nacos: - config: - server-addr: 127.0.0.1:8848 - shared-configs: - - data-id: jxc-common-redis.yml - file-extension: yml - - discovery: - server-addr: 127.0.0.1:8848 - -dubbo: - registry: - address: nacos://127.0.0.1:8848 - cloud: - subscribed-services: jxc-web-system \ No newline at end of file diff --git a/java/cloud/nacos-config/jxc-common-database.yml b/java/cloud/nacos-config/jxc-common-database.yml deleted file mode 100644 index c2cdc7c..0000000 --- a/java/cloud/nacos-config/jxc-common-database.yml +++ /dev/null @@ -1,24 +0,0 @@ -spring: - datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/repo?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true - username: - password: - -mybatis-plus: - mapper-locations: - - classpath*:/mapper/**/*.xml - configuration: - local-cache-scope: STATEMENT - cache-enabled: false - #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl - global-config: - banner: false - db-config: - id-type: NONE - -pagehelper: - helperDialect: mysql - reasonable: true - supportMethodsArguments: true - params: count=countSql \ No newline at end of file diff --git a/java/cloud/nacos-config/jxc-common-redis.yml b/java/cloud/nacos-config/jxc-common-redis.yml deleted file mode 100644 index 2a87125..0000000 --- a/java/cloud/nacos-config/jxc-common-redis.yml +++ /dev/null @@ -1,12 +0,0 @@ -spring: - redis: - host: localhost - port: 6379 - password: - timeout: 3000 - lettuce: - pool: - max-idle: 500 - min-idle: 50 - max-active: 2000 - max-wait: 1000 \ No newline at end of file diff --git a/java/cloud/nacos-config/jxc-gateway.yml b/java/cloud/nacos-config/jxc-gateway.yml deleted file mode 100644 index 197b9ee..0000000 --- a/java/cloud/nacos-config/jxc-gateway.yml +++ /dev/null @@ -1,66 +0,0 @@ -server: - port: 8081 - -spring: - cloud: - gateway: - discovery: - locator: - enabled: true - lowerCaseServiceId: true - - default-filters: - - name: RequestRateLimiter - args: - redis-rate-limiter.replenishRate: 10 # 每秒处理多少个请求 - redis-rate-limiter.burstCapacity: 20 # 一秒钟内完成的最大请求数 - key-resolver: #{@urlKeyResolver} - - routes: - - id: jxc-web-account - uri: lb://jxc-web-account - predicates: - - Path=/account/** - - - id: jxc-web-doc - uri: lb://jxc-web-doc - predicates: - - Path=/doc/** - - - id: jxc-web-file - uri: lb://jxc-web-file - predicates: - - Path=/file/** - - - id: jxc-web-message - uri: lb://jxc-web-message - predicates: - - Path=/message/** - - - id: jxc-web-record - uri: lb://jxc-web-record - predicates: - - Path=/record/** - - - id: jxc-web-statistic - uri: lb://jxc-web-statistic - predicates: - - Path=/statistic/** - - - id: jxc-web-stock - uri: lb://jxc-web-stock - predicates: - - Path=/stock/** - - - id: jxc-web-system - uri: lb://jxc-web-system - predicates: - - Path=/system/** - - whitelist: - - /test/** - - /account/login - - /account/logout - - /account/register - - /account/checkLoginName - - /account/checkNickName \ No newline at end of file diff --git a/java/cloud/nacos-config/jxc-web-account.yml b/java/cloud/nacos-config/jxc-web-account.yml deleted file mode 100644 index 1ad94ef..0000000 --- a/java/cloud/nacos-config/jxc-web-account.yml +++ /dev/null @@ -1,2 +0,0 @@ -server: - port: 8000 \ No newline at end of file diff --git a/java/cloud/nacos-config/jxc-web-doc.yml b/java/cloud/nacos-config/jxc-web-doc.yml deleted file mode 100644 index 0e11ac8..0000000 --- a/java/cloud/nacos-config/jxc-web-doc.yml +++ /dev/null @@ -1,4 +0,0 @@ -server: - port: 8001 - servlet: - context-path: /doc \ No newline at end of file diff --git a/java/cloud/nacos-config/jxc-web-file.yml b/java/cloud/nacos-config/jxc-web-file.yml deleted file mode 100644 index c1f0ec4..0000000 --- a/java/cloud/nacos-config/jxc-web-file.yml +++ /dev/null @@ -1,11 +0,0 @@ -server: - port: 8002 - -qiniu: - access-key: - secret-key: - bucket: - #七牛的临时上传凭证的有效期,单位秒 - token-expires: 3600 - #七牛的临时上传凭证的redis键名 - redis-cache-key: qiniu-token \ No newline at end of file diff --git a/java/cloud/nacos-config/jxc-web-message.yml b/java/cloud/nacos-config/jxc-web-message.yml deleted file mode 100644 index 88cd6c3..0000000 --- a/java/cloud/nacos-config/jxc-web-message.yml +++ /dev/null @@ -1,4 +0,0 @@ -server: - port: 8003 - servlet: - context-path: /message \ No newline at end of file diff --git a/java/cloud/nacos-config/jxc-web-record.yml b/java/cloud/nacos-config/jxc-web-record.yml deleted file mode 100644 index 6753dd0..0000000 --- a/java/cloud/nacos-config/jxc-web-record.yml +++ /dev/null @@ -1,2 +0,0 @@ -server: - port: 8004 \ No newline at end of file diff --git a/java/cloud/nacos-config/jxc-web-statistic.yml b/java/cloud/nacos-config/jxc-web-statistic.yml deleted file mode 100644 index ab8fc62..0000000 --- a/java/cloud/nacos-config/jxc-web-statistic.yml +++ /dev/null @@ -1,2 +0,0 @@ -server: - port: 8005 \ No newline at end of file diff --git a/java/cloud/nacos-config/jxc-web-stock.yml b/java/cloud/nacos-config/jxc-web-stock.yml deleted file mode 100644 index 5ce9bb6..0000000 --- a/java/cloud/nacos-config/jxc-web-stock.yml +++ /dev/null @@ -1,2 +0,0 @@ -server: - port: 8006 \ No newline at end of file diff --git a/java/cloud/nacos-config/jxc-web-system.yml b/java/cloud/nacos-config/jxc-web-system.yml deleted file mode 100644 index f407ed2..0000000 --- a/java/cloud/nacos-config/jxc-web-system.yml +++ /dev/null @@ -1,4 +0,0 @@ -server: - port: 8007 - servlet: - context-path: /system \ No newline at end of file diff --git a/java/cloud/nacos-config/jxc-websocket.yml b/java/cloud/nacos-config/jxc-websocket.yml deleted file mode 100644 index f7e6bd9..0000000 --- a/java/cloud/nacos-config/jxc-websocket.yml +++ /dev/null @@ -1,6 +0,0 @@ -socket: - #hostname: 172.24.52.184 - hostname: localhost - port: 12580 - max-frame-payload-length: 1048576 - max-http-content-length: 1048576 \ No newline at end of file diff --git a/java/cloud/pom.xml b/java/cloud/pom.xml deleted file mode 100644 index f2a518a..0000000 --- a/java/cloud/pom.xml +++ /dev/null @@ -1,151 +0,0 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.2.7.RELEASE - - - pom - - common - gateway - web - websocket - schedule - api - - - cn.toesbieya - jxc - 0.0.1-SNAPSHOT - jxc - - - 1.8 - 2.2.1.RELEASE - Hoxton.SR3 - 3.3.2 - 1.2.12 - 1.7.18 - 29.0-jre - 1.2.60 - [7.2.0, 7.2.99] - 2.2.5 - - - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-config - - - - - org.projectlombok - lombok - - - - - - - - cn.toesbieya - common - ${project.version} - - - cn.toesbieya - web-common - ${project.version} - - - cn.toesbieya - api - ${project.version} - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - com.alibaba.cloud - spring-cloud-alibaba-dependencies - ${spring-cloud-alibaba.version} - pom - import - - - - - com.baomidou - mybatis-plus-boot-starter - ${mybatis-plus.version} - - - com.github.pagehelper - pagehelper-spring-boot-starter - ${pagehelper.version} - - - - - com.corundumstudio.socketio - netty-socketio - ${socketio.version} - - - - - com.alibaba - easyexcel - ${easyexcel.version} - - - com.qiniu - qiniu-java-sdk - ${qiniu.version} - - - com.google.guava - guava - ${guava.version} - - - com.alibaba - fastjson - ${fastjson.version} - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - diff --git a/java/cloud/schedule/pom.xml b/java/cloud/schedule/pom.xml deleted file mode 100644 index 4278d2f..0000000 --- a/java/cloud/schedule/pom.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - jxc - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - shedule - - - - cn.toesbieya - common - - - - org.springframework.boot - spring-boot-starter - - - - mysql - mysql-connector-java - - - com.baomidou - mybatis-plus-boot-starter - - - \ No newline at end of file diff --git a/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/ScheduleApplication.java b/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/ScheduleApplication.java deleted file mode 100644 index 7127ffa..0000000 --- a/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/ScheduleApplication.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.toesbieya.jxc.schedule; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.WebApplicationType; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.builder.SpringApplicationBuilder; - -@SpringBootApplication(scanBasePackages = "cn.toesbieya.jxc") -@MapperScan("cn.toesbieya.jxc.schedule.mapper") -public class ScheduleApplication { - public static void main(String[] args) { - new SpringApplicationBuilder(ScheduleApplication.class) - .web(WebApplicationType.NONE) - .run(args); - } -} \ No newline at end of file diff --git a/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/config/ExecutorConfig.java b/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/config/ExecutorConfig.java deleted file mode 100644 index 7600065..0000000 --- a/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/config/ExecutorConfig.java +++ /dev/null @@ -1,45 +0,0 @@ -package cn.toesbieya.jxc.schedule.config; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.annotation.AsyncConfigurer; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; - -import java.util.concurrent.Executor; -import java.util.concurrent.ThreadPoolExecutor; - -@Configuration -@EnableAsync -@Slf4j -public class ExecutorConfig implements AsyncConfigurer { - - @Override - public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() { - return (ex, method, params) -> { - log.error("异步线程执行失败。方法:[{}],异常信息[{}] : ", method, ex.getMessage(), ex); - }; - } - - //定时任务线程池 - @Bean - public Executor scheduledExecutor() { - ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor(); - //核心线程数 - threadPoolTaskExecutor.setCorePoolSize(3); - //是否回收空闲线程 - threadPoolTaskExecutor.setAllowCoreThreadTimeOut(true); - //最大线程数 - threadPoolTaskExecutor.setMaxPoolSize(5); - //配置等待队列大小 - threadPoolTaskExecutor.setQueueCapacity(2); - //配置线程池前缀 - threadPoolTaskExecutor.setThreadNamePrefix("scheduled-"); - //拒绝策略 - threadPoolTaskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy()); - threadPoolTaskExecutor.initialize(); - return threadPoolTaskExecutor; - } -} diff --git a/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/mapper/StatisticMapper.java b/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/mapper/StatisticMapper.java deleted file mode 100644 index 7560e40..0000000 --- a/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/mapper/StatisticMapper.java +++ /dev/null @@ -1,33 +0,0 @@ -package cn.toesbieya.jxc.schedule.mapper; - -import cn.toesbieya.jxc.common.model.entity.StatFinishOrder; -import cn.toesbieya.jxc.common.model.entity.StatProfitGoods; -import cn.toesbieya.jxc.common.model.entity.StatProfitTotal; -import org.apache.ibatis.annotations.Param; - -import java.math.BigDecimal; -import java.util.List; - -public interface StatisticMapper { - boolean checkDailyFinishOrderExist(@Param("time") long time); - - boolean checkDailyProfitExist(@Param("time") long time); - - int insertFinishOrder(StatFinishOrder param); - - int insertProfitTotal(StatProfitTotal param); - - int insertProfitGoodsBatch(@Param("list") List list); - - BigDecimal getPurchaseOrderDailyTotalPurchasePrice(@Param("start") Long start, @Param("end") Long end); - - List getPurchaseOrderDailyProfitGoods(@Param("start") long start, @Param("end") long end); - - Integer getPurchaseOrderLastDayFinishOrderNum(); - - BigDecimal getSellOrderDailyTotalPurchasePrice(@Param("start") Long start, @Param("end") Long end); - - List getSellOrderDailyProfitGoods(@Param("start") long start, @Param("end") long end); - - Integer getSellOrderLastDayFinishOrderNum(); -} diff --git a/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/DocTask.java b/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/DocTask.java deleted file mode 100644 index 64f937a..0000000 --- a/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/DocTask.java +++ /dev/null @@ -1,106 +0,0 @@ -package cn.toesbieya.jxc.schedule.task; - -import cn.toesbieya.jxc.common.constant.DocConstant; -import cn.toesbieya.jxc.common.util.DateUtil; -import cn.toesbieya.jxc.common.util.RedisUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.CommandLineRunner; -import org.springframework.context.annotation.DependsOn; -import org.springframework.scheduling.annotation.Async; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Component -@Slf4j -@DependsOn("redisUtil") -public class DocTask implements CommandLineRunner { - @Override - public void run(String... args) { - template("初始化单据ID", 0); - } - - //每天零点重置单据ID的值 - @Async("scheduledExecutor") - @Scheduled(cron = "1 0 0 */1 * ?") - public void autoRefreshDocId() { - template("定时更新单据ID", 1); - } - - //启动时初始化单据ID - private void initDocId() { - String[] fields = new String[DocConstant.DOC_TYPE.length + 1]; - fields[0] = "date"; - System.arraycopy(DocConstant.DOC_TYPE, 0, fields, 1, fields.length - 1); - - List result = RedisUtil.hmget(DocConstant.DOC_TYPE_REDIS_KEY, fields); - - long now = DateUtil.getTimestampNow(); - - //日期不是今天时,更新全部 - Object firstItem = result.get(0); - if (null == firstItem || now != (long) firstItem) { - updateAllDoc(now); - log.info("更新【{}】种单据ID成功", DocConstant.DOC_TYPE.length); - return; - } - - //判断是否有新增的单据类型,有则更新 - int updateNum = 0; - Map update = new HashMap<>(); - int resultSize = result.size(); - - for (int i = 1; i < resultSize; i++) { - if (result.get(i) == null) { - updateNum++; - update.put(DocConstant.DOC_TYPE[i - 1], 1); - } - } - - if (updateNum > 0) { - RedisUtil.hmset(DocConstant.DOC_TYPE_REDIS_KEY, update); - log.info("更新增加的单据【{}】种", updateNum); - } - } - - //每种单据的值置为1 - private void updateAllDoc(long now) { - Map map = new HashMap<>(); - map.put("date", now); - for (String v : DocConstant.DOC_TYPE) { - map.put(v, 1); - } - RedisUtil.hmset(DocConstant.DOC_TYPE_REDIS_KEY, map); - } - - //模板 - private void template(String action, int type) { - Instant start = Instant.now(); - - String lockKey = DocConstant.UPDATE_DOC_LOCK_KEY; - - try (RedisUtil.Locker locker = new RedisUtil.Locker(lockKey)) { - if (!locker.lock()) { - log.error("{}失败,获取锁【{}】失败", action, lockKey); - return; - } - - if (type == 0) { - initDocId(); - } - else { - updateAllDoc(DateUtil.getTimestampNow()); - } - - log.info("{}成功,耗时:{}毫秒", action, ChronoUnit.MILLIS.between(start, Instant.now())); - } - catch (Exception e) { - log.error("{}失败", action, e); - } - } -} \ No newline at end of file diff --git a/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/SessionTask.java b/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/SessionTask.java deleted file mode 100644 index b01ceb1..0000000 --- a/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/SessionTask.java +++ /dev/null @@ -1,63 +0,0 @@ -package cn.toesbieya.jxc.schedule.task; - -import cn.toesbieya.jxc.common.constant.SessionConstant; -import cn.toesbieya.jxc.common.constant.SocketConstant; -import cn.toesbieya.jxc.common.model.vo.SocketOfflineVo; -import cn.toesbieya.jxc.common.util.RedisUtil; -import com.alibaba.fastjson.JSONObject; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.CommandLineRunner; -import org.springframework.context.annotation.DependsOn; -import org.springframework.scheduling.annotation.Async; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import java.util.Map; -import java.util.Set; - -@Component -@Slf4j -@DependsOn("redisUtil") -public class SessionTask implements CommandLineRunner { - @Override - public void run(String... args) { - cleanSession(); - } - - @Async("scheduledExecutor") - @Scheduled(cron = "0 */10 * * * ?") - public void autoCleanSession() { - cleanSession(); - } - - //清理session中未活动的用户 - private void cleanSession() { - try { - long now = System.currentTimeMillis(); - - //获取所有用户session - Set sessionKeys = RedisUtil.keys(SessionConstant.REDIS_NAMESPACE + "*"); - - //获取离线情况 (k:sessionKey,v:SocketOfflineVo) - Map offlineMap = RedisUtil.hgetAll(SocketConstant.REDIS_OFFLINE_USER); - - //移除无活动时间超出限定的用户 - sessionKeys.forEach(sessionKey -> { - Object obj = offlineMap.get(sessionKey); - if (obj != null) { - SocketOfflineVo offlineVo = ((JSONObject) obj).toJavaObject(SocketOfflineVo.class); - if (now > offlineVo.getTime() + SessionConstant.NO_ACTION_INTERVAL) { - //删除session - RedisUtil.del(sessionKey); - - //删除离线表信息 - RedisUtil.hdel(SocketConstant.REDIS_OFFLINE_USER, sessionKey); - } - } - }); - } - catch (Exception e) { - log.error("清理session失败", e); - } - } -} diff --git a/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/StatisticTask.java b/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/StatisticTask.java deleted file mode 100644 index baa3dc3..0000000 --- a/java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/StatisticTask.java +++ /dev/null @@ -1,116 +0,0 @@ -package cn.toesbieya.jxc.schedule.task; - -import cn.toesbieya.jxc.common.model.entity.StatFinishOrder; -import cn.toesbieya.jxc.common.model.entity.StatProfitGoods; -import cn.toesbieya.jxc.common.model.entity.StatProfitTotal; -import cn.toesbieya.jxc.common.util.DateUtil; -import cn.toesbieya.jxc.schedule.mapper.StatisticMapper; -import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.CommandLineRunner; -import org.springframework.scheduling.annotation.Async; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.math.BigDecimal; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Component -@Slf4j -public class StatisticTask implements CommandLineRunner { - @Resource - private StatisticMapper mapper; - - @Override - public void run(String... args) throws Exception { - autoStat(); - } - - //每天零点统计信息 - @Async("scheduledExecutor") - @Scheduled(cron = "1 0 0 */1 * ?") - public void autoStat() { - log.info("开始统计信息..."); - - long lastDay = DateUtil.getTimestampBeforeNow(1); - long today = DateUtil.getTimestampNow(); - - //检查是否已统计过昨日已完成的订单数 - if (!mapper.checkDailyFinishOrderExist(lastDay)) { - Integer lastDayPurchaseOrderFinish = mapper.getPurchaseOrderLastDayFinishOrderNum(); - Integer lastDaySellOrderFinish = mapper.getSellOrderLastDayFinishOrderNum(); - - StatFinishOrder param = new StatFinishOrder(); - param.setPurchase(lastDayPurchaseOrderFinish); - param.setSell(lastDaySellOrderFinish); - param.setTime(lastDay); - - mapper.insertFinishOrder(param); - } - - //检查是否已统计过昨日的采购额、销售额、毛利 - if (!mapper.checkDailyProfitExist(lastDay)) { - //昨日各个商品的采购额、销售额 - List purchaseProfitGoods = mapper.getPurchaseOrderDailyProfitGoods(lastDay, today); - List sellProfitGoods = mapper.getSellOrderDailyProfitGoods(lastDay, today); - - //昨日的采购总额、销售总额 - BigDecimal totalPurchase = new BigDecimal(0); - BigDecimal totalSell = new BigDecimal(0); - - //根据商品分类计算 - Map map = new HashMap<>(sellProfitGoods.size()); - - for (StatProfitGoods p : sellProfitGoods) { - map.put(p.getCid(), p); - } - - for (StatProfitGoods p : purchaseProfitGoods) { - p.setTime(lastDay); - Integer cid = p.getCid(); - BigDecimal purchase = p.getPurchase(); - totalPurchase = totalPurchase.add(purchase); - StatProfitGoods s = map.get(cid); - - if (s != null) { - BigDecimal sell = s.getSell(); - totalSell = totalSell.add(sell); - p.setSell(sell); - p.setProfit(sell.subtract(purchase)); - map.remove(cid); - } - else { - p.setSell(new BigDecimal(0)); - p.setProfit(p.getSell().subtract(purchase)); - } - } - - for (StatProfitGoods s : map.values()) { - s.setTime(lastDay); - s.setPurchase(new BigDecimal(0)); - BigDecimal sell = s.getSell(); - s.setProfit(sell); - totalSell = totalSell.add(sell); - purchaseProfitGoods.add(s); - } - - BigDecimal totalProfit = totalSell.subtract(totalPurchase); - - StatProfitTotal statProfitTotal = new StatProfitTotal(); - statProfitTotal.setPurchase(totalPurchase); - statProfitTotal.setSell(totalSell); - statProfitTotal.setProfit(totalProfit); - statProfitTotal.setTime(lastDay); - - mapper.insertProfitTotal(statProfitTotal); - - if (!purchaseProfitGoods.isEmpty()) { - mapper.insertProfitGoodsBatch(purchaseProfitGoods); - } - } - - log.info("结束统计信息..."); - } -} diff --git a/java/cloud/schedule/src/main/resources/bootstrap.yml b/java/cloud/schedule/src/main/resources/bootstrap.yml deleted file mode 100644 index c6e27fd..0000000 --- a/java/cloud/schedule/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,14 +0,0 @@ -spring: - application: - name: jxc-schedule - - cloud: - nacos: - config: - server-addr: 127.0.0.1:8848 - file-extension: yml - shared-configs: - - data-id: jxc-common-database.yml - - data-id: jxc-common-redis.yml - discovery: - server-addr: 127.0.0.1:8848 \ No newline at end of file diff --git a/java/cloud/schedule/src/main/resources/mapper/Statistic.xml b/java/cloud/schedule/src/main/resources/mapper/Statistic.xml deleted file mode 100644 index 2613420..0000000 --- a/java/cloud/schedule/src/main/resources/mapper/Statistic.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - insert into stat_finish_order (purchase, sell, time) - values (#{purchase}, #{sell}, #{time}) - - - - insert into stat_profit_total (purchase, sell, profit, time) - values (#{purchase}, #{sell}, #{profit}, #{time}) - - - - insert into stat_profit_goods - (cid, purchase, sell, profit, time) - values - - (#{item.cid}, #{item.purchase}, #{item.sell}, #{item.profit}, #{item.time}) - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/java/cloud/web/file/pom.xml b/java/cloud/web/file/pom.xml deleted file mode 100644 index 7124ebf..0000000 --- a/java/cloud/web/file/pom.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - web - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - file - - - - com.qiniu - qiniu-java-sdk - - - \ No newline at end of file diff --git a/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/FileApplication.java b/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/FileApplication.java deleted file mode 100644 index 735083c..0000000 --- a/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/FileApplication.java +++ /dev/null @@ -1,11 +0,0 @@ -package cn.toesbieya.jxc.file; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication(scanBasePackages = "cn.toesbieya.jxc") -public class FileApplication { - public static void main(String[] args) { - SpringApplication.run(FileApplication.class, args); - } -} diff --git a/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/config/QiniuConfig.java b/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/config/QiniuConfig.java deleted file mode 100644 index faf14b9..0000000 --- a/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/config/QiniuConfig.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.toesbieya.jxc.file.config; - -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.DependsOn; - -@Configuration -@EnableConfigurationProperties(QiniuProperty.class) -@DependsOn("redisUtil") -public class QiniuConfig { - @Bean - public QiniuTemplate qiniuTemplate(QiniuProperty property) { - return new QiniuTemplate(property); - } -} diff --git a/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/config/QiniuProperty.java b/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/config/QiniuProperty.java deleted file mode 100644 index 880ca4c..0000000 --- a/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/config/QiniuProperty.java +++ /dev/null @@ -1,45 +0,0 @@ -package cn.toesbieya.jxc.file.config; - -import com.qiniu.storage.Region; -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.cloud.context.config.annotation.RefreshScope; - -@Data -@ConfigurationProperties("qiniu") -@RefreshScope -public class QiniuProperty { - private String accessKey; - - private String secretKey; - - private String bucket; - - //机房区域,默认为自动 - private QiniuRegion region = QiniuRegion.auto; - - //临时上传凭证的有效期,单位秒 - private Integer tokenExpire = 3600; - - //临时上传凭证的redis键名 - private String redisCacheKey = "qiniu-token"; - - enum QiniuRegion { - auto(Region.autoRegion()), - huadong(Region.huadong()), - huabei(Region.huabei()), - huanan(Region.huanan()), - beimei(Region.beimei()), - xinjiapo(Region.xinjiapo()); - - private final Region region; - - QiniuRegion(Region region) { - this.region = region; - } - - public Region getRegion() { - return this.region; - } - } -} diff --git a/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/config/QiniuTemplate.java b/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/config/QiniuTemplate.java deleted file mode 100644 index 5ba409d..0000000 --- a/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/config/QiniuTemplate.java +++ /dev/null @@ -1,54 +0,0 @@ -package cn.toesbieya.jxc.file.config; - -import cn.toesbieya.jxc.common.util.RedisUtil; -import com.qiniu.common.QiniuException; -import com.qiniu.storage.BucketManager; -import com.qiniu.storage.Configuration; -import com.qiniu.util.Auth; -import lombok.extern.slf4j.Slf4j; - -@Slf4j -public class QiniuTemplate { - private final QiniuProperty property; - private final Auth auth; - private final BucketManager bucketManager; - - public QiniuTemplate(QiniuProperty property) { - this.property = property; - this.auth = Auth.create(property.getAccessKey(), property.getSecretKey()); - this.bucketManager = new BucketManager(this.auth, new Configuration(property.getRegion().getRegion())); - } - - public String getToken() { - String key = property.getRedisCacheKey(); - - String token = (String) RedisUtil.get(key); - - if (token == null) { - token = auth.uploadToken(property.getBucket()); - RedisUtil.set(key, token, property.getTokenExpire()); - } - - return token; - } - - public void delete(String key) { - try { - bucketManager.delete(property.getBucket(), key); - } - catch (QiniuException e) { - log.info("七牛云删除单个文件失败,{}", e.getMessage()); - } - } - - public void deleteBatch(String... key) { - BucketManager.BatchOperations batchOperations = new BucketManager.BatchOperations(); - batchOperations.addDeleteOp(property.getBucket(), key); - try { - bucketManager.batch(batchOperations); - } - catch (QiniuException e) { - log.info("七牛云批量删除文件失败,{}", e.getMessage()); - } - } -} diff --git a/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/controller/FileController.java b/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/controller/FileController.java deleted file mode 100644 index 4efc3ba..0000000 --- a/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/controller/FileController.java +++ /dev/null @@ -1,36 +0,0 @@ -package cn.toesbieya.jxc.file.controller; - -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.file.service.FileService; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; - -@RestController -@RequestMapping("file") -public class FileController { - @Resource - private FileService service; - - @GetMapping("delete") - public R delete(@RequestParam String url) throws UnsupportedEncodingException { - service.delete(URLDecoder.decode(url, "utf-8")); - return R.success("删除成功"); - } - - @PostMapping("deleteBatch") - public R deleteBatch(@RequestBody String[] urls) { - if (urls.length == 0) { - return R.fail("参数错误"); - } - service.deleteBatch(urls); - return R.success("批量删除成功"); - } - - @GetMapping("getToken") - public R getToken() { - return R.success(null, service.getToken()); - } -} diff --git a/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/service/FileService.java b/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/service/FileService.java deleted file mode 100644 index 6f0cd59..0000000 --- a/java/cloud/web/file/src/main/java/cn/toesbieya/jxc/file/service/FileService.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.toesbieya.jxc.file.service; - -import cn.toesbieya.jxc.api.FileApi; -import cn.toesbieya.jxc.file.config.QiniuTemplate; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; - -@Service -@org.apache.dubbo.config.annotation.Service -public class FileService implements FileApi { - @Resource - private QiniuTemplate template; - - @Override - public String getToken() { - return template.getToken(); - } - - @Override - public void delete(String key) { - template.delete(key); - } - - @Override - public void deleteBatch(String... key) { - template.deleteBatch(key); - } - - /*@Override - public void deleteBatch(List key) { - deleteBatch(key.toArray(new String[0])); - }*/ -} diff --git a/java/cloud/web/file/src/main/resources/bootstrap.yml b/java/cloud/web/file/src/main/resources/bootstrap.yml deleted file mode 100644 index 67e34b1..0000000 --- a/java/cloud/web/file/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,22 +0,0 @@ -spring: - application: - name: jxc-web-file - - cloud: - nacos: - config: - server-addr: 127.0.0.1:8848 - file-extension: yml - shared-configs: - - data-id: jxc-common-redis.yml - discovery: - server-addr: 127.0.0.1:8848 - -dubbo: - protocol: - port: -1 - name: dubbo - scan: - base-packages: cn.toesbieya.jxc.file.service - registry: - address: nacos://127.0.0.1:8848 \ No newline at end of file diff --git a/java/cloud/web/pom.xml b/java/cloud/web/pom.xml deleted file mode 100644 index 1596bbe..0000000 --- a/java/cloud/web/pom.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - jxc - cn.toesbieya - 0.0.1-SNAPSHOT - - pom - - web-modules - web-common - file - - 4.0.0 - - web - - - - cn.toesbieya - common - - - cn.toesbieya - api - - - - org.springframework.boot - spring-boot-starter-web - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-sentinel - - - jackson-dataformat-xml - com.fasterxml.jackson.dataformat - - - - - com.alibaba.cloud - spring-cloud-starter-dubbo - - - \ No newline at end of file diff --git a/java/cloud/web/web-common/pom.xml b/java/cloud/web/web-common/pom.xml deleted file mode 100644 index c4c877b..0000000 --- a/java/cloud/web/web-common/pom.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - web - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - web-common - - - - org.springframework.boot - spring-boot-starter-aop - - - - com.github.pagehelper - pagehelper-spring-boot-starter - - - - com.alibaba - easyexcel - - - \ No newline at end of file diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/annoation/Lock.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/annoation/Lock.java deleted file mode 100644 index 6633d84..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/annoation/Lock.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.toesbieya.jxc.web.common.annoation; - -import java.lang.annotation.*; - -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface Lock { - String[] value() default {}; -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/annoation/TimeCost.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/annoation/TimeCost.java deleted file mode 100644 index ca22c08..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/annoation/TimeCost.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.toesbieya.jxc.web.common.annoation; - -import java.lang.annotation.*; - -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface TimeCost { - -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/annoation/UserAction.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/annoation/UserAction.java deleted file mode 100644 index 9b67bd5..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/annoation/UserAction.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.toesbieya.jxc.web.common.annoation; - -import java.lang.annotation.*; - -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface UserAction { - String value() default ""; -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/LockAspect.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/LockAspect.java deleted file mode 100644 index 5d98453..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/LockAspect.java +++ /dev/null @@ -1,82 +0,0 @@ -package cn.toesbieya.jxc.web.common.aspect; - -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.util.RedisUtil; -import cn.toesbieya.jxc.common.util.SpringUtil; -import cn.toesbieya.jxc.web.common.annoation.Lock; -import lombok.extern.slf4j.Slf4j; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.*; -import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -import java.lang.reflect.Method; -import java.util.ArrayList; - -@Component -@Aspect -@Slf4j -@Order(Integer.MAX_VALUE - 1) -public class LockAspect { - private final ThreadLocal> lockHelperThreadLocal = new ThreadLocal<>(); - - @Pointcut("@annotation(cn.toesbieya.jxc.web.common.annoation.Lock)&&execution(cn.toesbieya.jxc.common.model.vo.R cn.toesbieya.jxc..*.*(..))") - public void pointCut() { - - } - - @Around("pointCut()") - public Object around(ProceedingJoinPoint point) throws Throwable { - MethodSignature signature = (MethodSignature) point.getSignature(); - Method method = signature.getMethod(); - String[] values = method.getAnnotation(Lock.class).value(); - - if (values.length <= 0) { - return point.proceed(); - } - - ArrayList locks = new ArrayList<>(); - String[] parameterNames = signature.getParameterNames(); - Object[] args = point.getArgs(); - - for (String v : values) { - String lockKey = (String) SpringUtil.spell(v, parameterNames, args); - - //跳过空值 - if (StringUtils.isEmpty(lockKey)) continue; - - RedisUtil.Locker lockHelper = new RedisUtil.Locker(lockKey); - - if (!lockHelper.lock()) { - locks.forEach(RedisUtil.Locker::close); - return R.fail("操作失败,请刷新后重试"); - } - - locks.add(lockHelper); - } - - lockHelperThreadLocal.set(locks); - return point.proceed(); - } - - @AfterReturning("pointCut()") - public void afterReturning() { - unlock(); - } - - @AfterThrowing("pointCut()") - public void afterThrowing() { - unlock(); - } - - private void unlock() { - ArrayList locks = lockHelperThreadLocal.get(); - if (!CollectionUtils.isEmpty(locks)) { - locks.forEach(RedisUtil.Locker::close); - lockHelperThreadLocal.remove(); - } - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/RestExceptionAspect.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/RestExceptionAspect.java deleted file mode 100644 index 4f24288..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/RestExceptionAspect.java +++ /dev/null @@ -1,89 +0,0 @@ -package cn.toesbieya.jxc.web.common.aspect; - -import cn.toesbieya.jxc.api.RecordApi; -import cn.toesbieya.jxc.common.exception.JsonResultException; -import cn.toesbieya.jxc.common.model.entity.RecUserAction; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.util.Util; -import cn.toesbieya.jxc.web.common.util.ThreadUtil; -import cn.toesbieya.jxc.web.common.util.WebUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.Reference; -import org.springframework.http.converter.HttpMessageNotReadableException; -import org.springframework.util.StringUtils; -import org.springframework.validation.BindingResult; -import org.springframework.web.HttpRequestMethodNotSupportedException; -import org.springframework.web.bind.MethodArgumentNotValidException; -import org.springframework.web.bind.MissingServletRequestParameterException; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.RestControllerAdvice; -import org.springframework.web.multipart.MaxUploadSizeExceededException; - -@Slf4j -@RestControllerAdvice -public class RestExceptionAspect { - @Reference - private RecordApi recordApi; - - //抛出异常时希望返回给前台 - @ExceptionHandler(JsonResultException.class) - public R handle(JsonResultException e) { - recordUserAction(e); - return R.fail(e.getMessage()); - } - - //请求方法有误 - @ExceptionHandler(HttpRequestMethodNotSupportedException.class) - public R handle(HttpRequestMethodNotSupportedException e) { - return R.fail("请求方法有误"); - } - - //校验不通过 - @ExceptionHandler(MethodArgumentNotValidException.class) - public R handleMethodArgumentNotValidException(MethodArgumentNotValidException e) { - BindingResult bindingResult = e.getBindingResult(); - String error = bindingResult.getFieldErrors().get(0).getDefaultMessage(); - return R.fail(error); - } - - //@RequestParam没有匹配到值 - @ExceptionHandler(MissingServletRequestParameterException.class) - public R handle(MissingServletRequestParameterException e) { - log.error(e.getMessage()); - return R.fail("get参数有误"); - } - - //@RequestBody没有匹配到值 - @ExceptionHandler(HttpMessageNotReadableException.class) - public R handle(HttpMessageNotReadableException e) { - log.error(e.getMessage()); - return R.fail("post参数有误"); - } - - //上传文件过大 - @ExceptionHandler(MaxUploadSizeExceededException.class) - public R handle(MaxUploadSizeExceededException e) { - log.error("上传的文件超出限定大小,{}", e.getMessage()); - recordUserAction(e); - return R.fail("上传的文件过大"); - } - - //最终捕获 - @ExceptionHandler(Exception.class) - public R handle(Exception e) { - log.error(String.format("服务运行异常,访问路径:%s", WebUtil.getRequest().getServletPath()), e); - recordUserAction(e); - return R.fail("服务运行异常"); - } - - private void recordUserAction(Exception e) { - RecUserAction action = ThreadUtil.getAction(); - if (action != null && !StringUtils.isEmpty(action.getAction())) { - action.setTime(System.currentTimeMillis()); - action.setError(Util.exception2Str(e)); - action.setSuccess(false); - recordApi.insertUserAction(action); - } - ThreadUtil.clearAll(); - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/TimeCostAspect.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/TimeCostAspect.java deleted file mode 100644 index 965d3ee..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/TimeCostAspect.java +++ /dev/null @@ -1,45 +0,0 @@ -package cn.toesbieya.jxc.web.common.aspect; - -import lombok.extern.slf4j.Slf4j; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.annotation.AfterReturning; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Before; -import org.aspectj.lang.annotation.Pointcut; -import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; - -import java.lang.reflect.Method; -import java.time.Instant; -import java.time.temporal.ChronoUnit; - -@Component -@Aspect -@Slf4j -@Order(1) -public class TimeCostAspect { - private final ThreadLocal instantThreadLocal = new ThreadLocal<>(); - - @Pointcut("@annotation(cn.toesbieya.jxc.web.common.annoation.TimeCost)") - public void pointCut() { - - } - - @Before("pointCut()") - public void before() { - instantThreadLocal.set(Instant.now()); - } - - @AfterReturning("pointCut()") - public void afterReturning(JoinPoint point) { - if (null != instantThreadLocal.get()) { - MethodSignature signature = (MethodSignature) point.getSignature(); - Method method = signature.getMethod(); - log.info("类:{},方法:{},耗时:{}毫秒", - method.getDeclaringClass().getName(), - method.getName(), - ChronoUnit.MILLIS.between(instantThreadLocal.get(), Instant.now())); - } - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/UserActionAspect.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/UserActionAspect.java deleted file mode 100644 index fd52c08..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/UserActionAspect.java +++ /dev/null @@ -1,70 +0,0 @@ -package cn.toesbieya.jxc.web.common.aspect; - -import cn.toesbieya.jxc.api.RecordApi; -import cn.toesbieya.jxc.common.model.entity.RecUserAction; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.util.SpringUtil; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import cn.toesbieya.jxc.web.common.util.ThreadUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.Reference; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Pointcut; -import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; -import org.springframework.util.StringUtils; - -import java.lang.reflect.Method; - -@Component -@Aspect -@Slf4j -@Order(Integer.MAX_VALUE - 2) -public class UserActionAspect { - @Reference - private RecordApi recordApi; - - @Pointcut("@annotation(cn.toesbieya.jxc.web.common.annoation.UserAction)&&execution(cn.toesbieya.jxc.common.model.vo.R cn.toesbieya.jxc..*.*(..))") - public void pointCut() { - - } - - @Around("pointCut()") - public Object around(ProceedingJoinPoint pjp) throws Throwable { - RecUserAction action = ThreadUtil.getAction(); - - if (action == null) { - return pjp.proceed(); - } - - action.setTime(System.currentTimeMillis()); - - MethodSignature signature = (MethodSignature) pjp.getSignature(); - Method method = signature.getMethod(); - Object[] args = pjp.getArgs(); - String[] argNames = signature.getParameterNames(); - UserAction annotation = method.getAnnotation(UserAction.class); - - //优先使用注解表达式 - if (!StringUtils.isEmpty(annotation.value())) { - String str = (String) SpringUtil.spell(annotation.value(), argNames, args); - if (!StringUtils.isEmpty(str)) { - action.setAction(str); - } - } - - R result = (R) pjp.proceed(); - - action.setSuccess(result.isSuccess()); - if (!result.isSuccess()) { - action.setError(result.getMsg()); - } - - recordApi.insertUserAction(action); - - return result; - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/config/WebConfig.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/config/WebConfig.java deleted file mode 100644 index 2a8c16f..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/config/WebConfig.java +++ /dev/null @@ -1,55 +0,0 @@ -package cn.toesbieya.jxc.web.common.config; - -import cn.toesbieya.jxc.common.config.FastJsonConfigFactory; -import cn.toesbieya.jxc.web.common.interceptor.SecurityInterceptor; -import cn.toesbieya.jxc.web.common.interceptor.UserActionInterceptor; -import cn.toesbieya.jxc.web.common.interceptor.predicate.UserActionPredicate; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.MediaType; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.config.annotation.InterceptorRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -import java.util.ArrayList; -import java.util.List; - -@Configuration -public class WebConfig implements WebMvcConfigurer { - private UserActionPredicate userActionPredicate; - - @Autowired - public void setUserActionInterceptor(UserActionPredicate userActionPredicate) { - this.userActionPredicate = userActionPredicate; - } - - @Override - public void configureMessageConverters(List> converters) { - for (int i = converters.size() - 1; i >= 0; i--) { - if (converters.get(i) instanceof MappingJackson2HttpMessageConverter) { - converters.remove(i); - } - } - - converters.add(getFastJsonConverter()); - } - - @Override - public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(new SecurityInterceptor()).addPathPatterns("/**"); - registry.addInterceptor(new UserActionInterceptor(userActionPredicate)).addPathPatterns("/**"); - } - - private FastJsonHttpMessageConverter getFastJsonConverter() { - FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - converter.setFastJsonConfig(FastJsonConfigFactory.defaultConfig()); - - List fastMediaTypes = new ArrayList<>(); - fastMediaTypes.add(MediaType.APPLICATION_JSON); - converter.setSupportedMediaTypes(fastMediaTypes); - - return converter; - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/enumeration/UserActionEnum.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/enumeration/UserActionEnum.java deleted file mode 100644 index 21efbd0..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/enumeration/UserActionEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.web.common.enumeration; - -public enum UserActionEnum { - FAIL(0), SUCCESS(1); - - private final int code; - - UserActionEnum(int code) { - this.code = code; - } - - public int getCode() { - return code; - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/PredicateConfig.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/PredicateConfig.java deleted file mode 100644 index e4b851e..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/PredicateConfig.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.web.common.interceptor; - -import cn.toesbieya.jxc.web.common.interceptor.predicate.UserActionPredicate; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class PredicateConfig { - @Bean - @ConditionalOnMissingBean(UserActionPredicate.class) - public UserActionPredicate defaultUserActionPredicate() { - return request -> true; - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/SecurityInterceptor.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/SecurityInterceptor.java deleted file mode 100644 index 525aa0e..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/SecurityInterceptor.java +++ /dev/null @@ -1,21 +0,0 @@ -package cn.toesbieya.jxc.web.common.interceptor; - -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.common.util.SessionUtil; -import cn.toesbieya.jxc.web.common.util.ThreadUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.servlet.HandlerInterceptor; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -@Slf4j -public class SecurityInterceptor implements HandlerInterceptor { - @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - UserVo user = SessionUtil.get(request); - if (user == null) ThreadUtil.clearAll(); - else ThreadUtil.setUser(user); - return true; - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/UserActionInterceptor.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/UserActionInterceptor.java deleted file mode 100644 index 230b6ab..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/UserActionInterceptor.java +++ /dev/null @@ -1,25 +0,0 @@ -package cn.toesbieya.jxc.web.common.interceptor; - -import cn.toesbieya.jxc.web.common.interceptor.predicate.UserActionPredicate; -import cn.toesbieya.jxc.web.common.util.ThreadUtil; -import org.springframework.web.servlet.HandlerInterceptor; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -public class UserActionInterceptor implements HandlerInterceptor { - private final UserActionPredicate predicate; - - @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException { - if (predicate.allowed(request)) { - ThreadUtil.quicklySetAction(request); - } - return true; - } - - public UserActionInterceptor(UserActionPredicate predicate) { - this.predicate = predicate; - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/predicate/UserActionPredicate.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/predicate/UserActionPredicate.java deleted file mode 100644 index 0421df9..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/interceptor/predicate/UserActionPredicate.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.web.common.interceptor.predicate; - -import javax.servlet.http.HttpServletRequest; - -public interface UserActionPredicate { - boolean allowed(HttpServletRequest request); -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/model/vo/PageResult.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/model/vo/PageResult.java deleted file mode 100644 index 1944631..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/model/vo/PageResult.java +++ /dev/null @@ -1,30 +0,0 @@ -package cn.toesbieya.jxc.web.common.model.vo; - -import com.github.pagehelper.Page; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -@Data -@NoArgsConstructor -public class PageResult { - private long total; - private List list; - private Object data; - - public PageResult(List list) { - this.list = list; - if (list instanceof Page) { - this.total = ((Page) list).getTotal(); - } - else { - this.total = list.size(); - } - } - - public PageResult(long total, List list) { - this.total = total; - this.list = list; - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/ExcelUtil.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/ExcelUtil.java deleted file mode 100644 index 0218b4c..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/ExcelUtil.java +++ /dev/null @@ -1,224 +0,0 @@ -package cn.toesbieya.jxc.web.common.util; - -import cn.toesbieya.jxc.common.model.vo.R; -import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.metadata.Head; -import com.alibaba.excel.write.builder.ExcelWriterBuilder; -import com.alibaba.excel.write.merge.AbstractMergeStrategy; -import com.alibaba.excel.write.metadata.style.WriteCellStyle; -import com.alibaba.excel.write.style.AbstractVerticalCellStyleStrategy; -import lombok.AllArgsConstructor; -import lombok.Data; -import org.apache.poi.ss.usermodel.Cell; -import org.apache.poi.ss.usermodel.HorizontalAlignment; -import org.apache.poi.ss.usermodel.Sheet; -import org.apache.poi.ss.usermodel.VerticalAlignment; -import org.apache.poi.ss.util.CellRangeAddress; -import org.springframework.util.StringUtils; - -import javax.servlet.http.HttpServletResponse; -import java.lang.reflect.Field; -import java.net.URLEncoder; -import java.util.Arrays; -import java.util.List; - -public class ExcelUtil { - private static final WriteCellStyle defaultCellStyle = new WriteCellStyle(); - - static { - defaultCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER); - defaultCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); - } - - public static void exportSimply( - List list, - HttpServletResponse response, - String filename) throws Exception { - export(list, response, filename, null); - } - - public static void export( - List list, - HttpServletResponse response, - String filename, - CommonMergeOptions mergeOptions) throws Exception { - String name = URLEncoder.encode(filename, "utf-8") + ".xlsx"; - response.setHeader("Content-disposition", "attachment;filename=" + name); - response.setCharacterEncoding("utf-8"); - - int size = list.size(); - if (size == 0) { - WebUtil.responseJson(response, R.fail("当前没有能导出的数据")); - return; - } - else if (size < 10000) { - WebUtil.responseJson(response, R.success(list)); - return; - } - - response.setContentType("application/vnd.ms-excel"); - - Class clazz = list.get(0).getClass(); - - ExcelWriterBuilder writerBuilder = EasyExcel.write(response.getOutputStream(), clazz); - - writerBuilder.registerWriteHandler(getDefaultStyle()); - - if (mergeOptions != null) { - CommonMerge commonMerge = new CommonMerge(list, clazz, mergeOptions); - writerBuilder.registerWriteHandler(commonMerge); - } - - writerBuilder.sheet(0, "Sheet1").doWrite(list); - } - - private static AbstractVerticalCellStyleStrategy getDefaultStyle() { - return new AbstractVerticalCellStyleStrategy() { - @Override - protected WriteCellStyle headCellStyle(Head head) { - return defaultCellStyle; - } - - @Override - protected WriteCellStyle contentCellStyle(Head head) { - return defaultCellStyle; - } - }; - } - - @Data - @AllArgsConstructor - public static class CommonMergeOptions { - private String[] attrs; - private String primaryKey; - private String orderKey; - } - - - private static class CommonMerge extends AbstractMergeStrategy { - private boolean finish = false; - private int ignoreRows = 1; - private final Field[] attrs; - private final Field primaryField; - private final int[][] merge; - private final int[] temp; - - public CommonMerge(List data, Class clazz, CommonMergeOptions mergeOptions) throws Exception { - String[] attrs = mergeOptions.getAttrs(); - String primaryKey = mergeOptions.getPrimaryKey(); - String orderKey = mergeOptions.getOrderKey(); - - int length = data.size(); - this.attrs = new Field[attrs.length]; - this.merge = new int[attrs.length][]; - for (int i = 0; i < attrs.length; i++) { - if (StringUtils.isEmpty(attrs[i])) continue; - Field field = clazz.getDeclaredField(attrs[i]); - field.setAccessible(true); - - //获取easyExcel的注解,根据值来确定字段在excel中的位置 - ExcelProperty property = field.getAnnotation(ExcelProperty.class); - int colIndex = property == null ? i : property.index(); - //当未标明index时,使用循环中的顺序 - if (colIndex == -1) colIndex = i; - - this.attrs[colIndex] = field; - - //初始化merge - int[] a = new int[length]; - a[0] = 1; - this.merge[i] = a; - } - Field primaryField = clazz.getDeclaredField(primaryKey); - primaryField.setAccessible(true); - this.primaryField = primaryField; - Field orderField = clazz.getDeclaredField(orderKey); - orderField.setAccessible(true); - this.temp = new int[attrs.length]; - Arrays.fill(this.temp, 1); - - //序号从1开始 - int indexAfterMerge = 1; - orderField.set(data.get(0), indexAfterMerge); - for (int i = 1; i < length; i++) { - Object currentRow = data.get(i); - Object lastRow = data.get(i - 1); - Object nextRow = i == length - 1 ? null : data.get(i + 1); - - //重写序号 - if (primaryField.get(currentRow).equals(primaryField.get(lastRow))) { - orderField.set(currentRow, orderField.get(lastRow)); - } - else orderField.set(currentRow, ++indexAfterMerge); - if (nextRow != null && primaryField.get(currentRow).equals(primaryField.get(nextRow))) { - orderField.set(nextRow, orderField.get(currentRow)); - } - - for (int colIndex = 0; colIndex < this.attrs.length; colIndex++) { - if (this.attrs[colIndex] == null) continue; - compare(currentRow, lastRow, nextRow, i, colIndex); - } - } - } - - private void compare(Object currentRow, Object lastRow, Object nextRow, int rowIndex, int colIndex) throws Exception { - Field attr = this.attrs[colIndex]; - //若与上一行的primaryKey相同且属性相同,则temp对应项+1 - if (attr.get(currentRow).equals(attr.get(lastRow)) - && attr.get(currentRow).equals(attr.get(lastRow))) { - this.temp[colIndex]++; - //最后一行特殊处理 - if (nextRow == null) { - this.merge[colIndex][rowIndex] = this.temp[colIndex]; - } - else { - //若与下一行相同 - if (primaryField.get(currentRow).equals(primaryField.get(nextRow)) - && attr.get(currentRow).equals(attr.get(nextRow))) { - this.merge[colIndex][rowIndex] = 1; - } - //否则存入 - else this.merge[colIndex][rowIndex] = this.temp[colIndex]; - } - } - //否则清零 - else { - this.temp[colIndex] = 1; - this.merge[colIndex][rowIndex] = 1; - } - } - - private void addMergedRegion(Sheet sheet, int ignoreRows) { - for (int colIndex = 0; colIndex < merge.length; colIndex++) { - int[] rowspanArr = merge[colIndex]; - for (int rowIndex = 0; rowIndex < rowspanArr.length; rowIndex++) { - int rowspan = rowspanArr[rowIndex]; - if (rowspan > 1) { - sheet.addMergedRegion( - new CellRangeAddress( - ignoreRows + rowIndex - (rowspan - 1), - ignoreRows + rowIndex, - colIndex, - colIndex - ) - ); - } - } - } - } - - public CommonMerge ignore(int rows) { - this.ignoreRows = rows; - return this; - } - - @Override - protected void merge(Sheet sheet, Cell cell, Head head, Integer rowIndex) { - if (!finish) { - addMergedRegion(sheet, ignoreRows); - finish = true; - } - } - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/HttpUtil.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/HttpUtil.java deleted file mode 100644 index 192652b..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/HttpUtil.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.toesbieya.jxc.web.common.util; - -import okhttp3.Call; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.ResponseBody; - -public class HttpUtil { - public static String get(String url) { - OkHttpClient okHttpClient = new OkHttpClient(); - Request request = new Request.Builder().url(url).method("GET", null).build(); - Call call = okHttpClient.newCall(request); - try { - ResponseBody body = call.execute().body(); - - return body == null ? null : body.string(); - } - catch (Exception e) { - return null; - } - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/IpUtil.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/IpUtil.java deleted file mode 100644 index 125d7b0..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/IpUtil.java +++ /dev/null @@ -1,118 +0,0 @@ -package cn.toesbieya.jxc.web.common.util; - -import cn.toesbieya.jxc.common.util.RedisUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.List; -import java.util.function.Function; - -public class IpUtil { - private static final List> handlerList = new ArrayList<>(); - - static { - handlerList.add(new PconlineApi()); - handlerList.add(new IphelpApi()); - handlerList.add(new IpipApi()); - } - - private static final String REDIS_IP_CACHE_KEY = "ipCache"; - - public static String getIp(HttpServletRequest request) { - String ip = ""; - if (request != null) { - ip = request.getHeader("x-forwarded-for"); - if (invalidIp(ip)) { - ip = request.getHeader("Proxy-Client-IP"); - } - if (invalidIp(ip)) { - ip = request.getHeader("WL-Proxy-Client-IP"); - } - if (invalidIp(ip)) { - ip = request.getRemoteAddr(); - } - } - return ip; - } - - public static String getIpAddress(String ip) { - if (StringUtils.isEmpty(ip) || ip.equals("127.0.0.1")) { - return null; - } - String cache = (String) RedisUtil.hget(REDIS_IP_CACHE_KEY, ip); - if (!StringUtils.isEmpty(cache)) { - return cache; - } - for (Function handler : handlerList) { - try { - cache = handler.apply(ip); - } - catch (Exception e) { - continue; - } - if (!StringUtils.isEmpty(cache)) { - RedisUtil.hset(REDIS_IP_CACHE_KEY, ip, cache); - return cache; - } - } - return null; - } - - private static boolean invalidIp(String ip) { - return StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip); - } - - private static class IphelpApi implements Function { - @Override - public String apply(String ip) { - String url = "https://ip.help.bj.cn/?ip=" + ip; - String response = HttpUtil.get(url); - JSONObject result = JSON.parseObject(response); - if (!result.getString("status").equals("200") || result.get("data") == null) { - return null; - } - JSONArray array = result.getJSONArray("data"); - if (CollectionUtils.isEmpty(array)) return null; - result = array.getJSONObject(0); - return handleAddress(result.getString("province"), result.getString("city")); - } - } - - //https://www.ipip.net/support/api.html 每天限1000次 - private static class IpipApi implements Function { - @Override - public String apply(String ip) { - String url = "https://freeapi.ipip.net/" + ip; - String response = HttpUtil.get(url); - JSONArray result = JSON.parseArray(response); - if (result == null || result.size() != 5) return null; - return handleAddress(result.getString(1), result.getString(2)); - } - } - - //这个不错 - private static class PconlineApi implements Function { - @Override - public String apply(String ip) { - String url = "http://whois.pconline.com.cn/ipJson.jsp?json=true&ip=" + ip; - String response = HttpUtil.get(url); - JSONObject result = JSON.parseObject(response); - return handleAddress(result.getString("pro"), result.getString("city")); - } - } - - private static String handleAddress(String province, String city) { - if (StringUtils.isEmpty(province) || StringUtils.isEmpty(city)) { - return null; - } - else if (province.equals(city)) { - return province; - } - return province + city; - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/SecurityUtil.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/SecurityUtil.java deleted file mode 100644 index ed1b29f..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/SecurityUtil.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.toesbieya.jxc.web.common.util; - -import cn.toesbieya.jxc.common.model.vo.UserVo; - -import java.util.Set; -import java.util.stream.Collectors; - -public class SecurityUtil { - //获取字符串形式的数据范围,sql中使用 in (${param}) 拼接 - public static String getScopeParam() { - UserVo user = ThreadUtil.getUser(); - if (user == null) return "''"; - Set deptIds = user.getDepartmentIds(); - if (deptIds == null) return null; - return deptIds.isEmpty() ? "''" : deptIds.stream().map(String::valueOf).collect(Collectors.joining(",")); - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/SessionUtil.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/SessionUtil.java deleted file mode 100644 index 8f00b0b..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/SessionUtil.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.toesbieya.jxc.web.common.util; - -import cn.toesbieya.jxc.common.model.vo.UserVo; - -public class SessionUtil extends cn.toesbieya.jxc.common.util.SessionUtil { - public static UserVo get() { - UserVo user = ThreadUtil.getUser(); - return user == null ? get(WebUtil.getRequest()) : user; - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/ThreadUtil.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/ThreadUtil.java deleted file mode 100644 index 4a69604..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/ThreadUtil.java +++ /dev/null @@ -1,58 +0,0 @@ -package cn.toesbieya.jxc.web.common.util; - -import cn.toesbieya.jxc.common.model.entity.RecUserAction; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.common.util.SessionUtil; - -import javax.servlet.http.HttpServletRequest; - -public class ThreadUtil { - private static final ThreadLocal THREAD_LOCAL_USER_ACTION = new ThreadLocal<>(); - private static final ThreadLocal THREAD_LOCAL_USER = new ThreadLocal<>(); - - public static void quicklySetAction(HttpServletRequest request) { - UserVo user = getUser(); - if (user == null) user = SessionUtil.get(request); - if (user == null) return; - - RecUserAction userAction = - RecUserAction - .builder() - .uid(user.getId()) - .uname(user.getNickName()) - .ip(IpUtil.getIp(request)) - .url(request.getServletPath()) - .build(); - - setAction(userAction); - } - - public static RecUserAction getAction() { - return THREAD_LOCAL_USER_ACTION.get(); - } - - public static void setAction(RecUserAction action) { - THREAD_LOCAL_USER_ACTION.set(action); - } - - public static UserVo getUser() { - return THREAD_LOCAL_USER.get(); - } - - public static void setUser(UserVo user) { - THREAD_LOCAL_USER.set(user); - } - - public static void clearAll() { - clearAction(); - clearUser(); - } - - public static void clearAction() { - THREAD_LOCAL_USER_ACTION.remove(); - } - - public static void clearUser() { - THREAD_LOCAL_USER.remove(); - } -} diff --git a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/WebUtil.java b/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/WebUtil.java deleted file mode 100644 index d35b001..0000000 --- a/java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/util/WebUtil.java +++ /dev/null @@ -1,23 +0,0 @@ -package cn.toesbieya.jxc.web.common.util; - -import cn.toesbieya.jxc.common.model.vo.R; -import com.alibaba.fastjson.JSON; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.Objects; - -public class WebUtil { - public static void responseJson(HttpServletResponse response, R result) throws IOException { - response.setCharacterEncoding("UTF-8"); - response.setContentType("application/json; charset=utf-8"); - response.getWriter().print(JSON.toJSONString(result)); - } - - public static HttpServletRequest getRequest() { - return ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); - } -} diff --git a/java/cloud/web/web-modules/account/pom.xml b/java/cloud/web/web-modules/account/pom.xml deleted file mode 100644 index 9e93d9b..0000000 --- a/java/cloud/web/web-modules/account/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - web-modules - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - account - \ No newline at end of file diff --git a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/AccountApplication.java b/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/AccountApplication.java deleted file mode 100644 index 06eb594..0000000 --- a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/AccountApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.toesbieya.jxc.account; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication(scanBasePackages = "cn.toesbieya.jxc") -@MapperScan("cn.toesbieya.jxc.account.mapper") -public class AccountApplication { - public static void main(String[] args) { - SpringApplication.run(AccountApplication.class, args); - } -} diff --git a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/controller/AccountController.java b/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/controller/AccountController.java deleted file mode 100644 index 66e69a9..0000000 --- a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/controller/AccountController.java +++ /dev/null @@ -1,98 +0,0 @@ -package cn.toesbieya.jxc.account.controller; - -import cn.toesbieya.jxc.account.service.AccountService; -import cn.toesbieya.jxc.account.vo.LoginParam; -import cn.toesbieya.jxc.account.vo.PasswordUpdateParam; -import cn.toesbieya.jxc.account.vo.RegisterParam; -import cn.toesbieya.jxc.common.model.entity.SysUser; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.web.common.util.IpUtil; -import cn.toesbieya.jxc.web.common.util.SessionUtil; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.validation.Valid; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; - -@RestController -@RequestMapping("account") -public class AccountController { - @Resource - private AccountService service; - - @PostMapping("login") - public R login(HttpServletRequest request, @Valid @RequestBody LoginParam param) { - return service.login(param, IpUtil.getIp(request)); - } - - @GetMapping("logout") - public R logout(HttpServletRequest request) { - UserVo user = SessionUtil.get(); - return service.logout(user, IpUtil.getIp(request)); - } - - @PostMapping("register") - public R register(@Valid @RequestBody RegisterParam param) { - return service.register(param); - } - - @PostMapping("updatePwd") - public R updatePwd(@RequestBody PasswordUpdateParam param) { - SysUser user = SessionUtil.get(); - param.setId(user.getId()); - - String errMsg = validateUpdatePwdParam(param); - if (errMsg != null) return R.fail(errMsg); - - return service.updatePwd(param); - } - - @GetMapping("updateAvatar") - public R updateAvatar(@RequestParam String key) throws UnsupportedEncodingException { - if (StringUtils.isEmpty(key)) return R.fail("参数错误"); - - return service.updateAvatar(SessionUtil.get(), URLDecoder.decode(key, "utf-8")); - } - - @GetMapping("validate") - public R validate(@RequestParam String pwd) { - SysUser current = SessionUtil.get(); - - if (!pwd.equals(current.getPwd())) { - return R.fail("校验失败"); - } - - return R.success("校验通过"); - } - - @GetMapping("checkLoginName") - public R checkLoginName(@RequestParam(required = false) Integer id, @RequestParam String name) { - if (StringUtils.isEmpty(name)) { - return R.success(); - } - - return R.success(service.isLoginNameExist(name, id) ? "该登录名已存在" : null); - } - - @GetMapping("checkNickName") - public R checkNickName(@RequestParam(required = false) Integer id, @RequestParam String name) { - if (StringUtils.isEmpty(name)) { - return R.success(); - } - - return R.success(service.isNickNameExist(name, id) ? "该昵称已存在" : null); - } - - private String validateUpdatePwdParam(PasswordUpdateParam vo) { - if (vo.getId() == null) return "修改失败,参数错误"; - if (StringUtils.isEmpty(vo.getOldPwd())) return "修改失败,原密码不能为空"; - if (StringUtils.isEmpty(vo.getNewPwd())) return "修改失败,新密码不能为空"; - if (vo.getOldPwd().equals(vo.getNewPwd())) return "修改失败,新密码不得与旧密码相同"; - if (vo.getNewPwd().length() != 32) return "修改失败,密码参数有误"; - return null; - } -} diff --git a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/enumeration/RecLoginHistoryEnum.java b/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/enumeration/RecLoginHistoryEnum.java deleted file mode 100644 index a0ffb80..0000000 --- a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/enumeration/RecLoginHistoryEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.account.enumeration; - -public enum RecLoginHistoryEnum { - LOGOUT(0), LOGIN(1); - - private final int code; - - RecLoginHistoryEnum(int code) { - this.code = code; - } - - public int getCode() { - return code; - } -} diff --git a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/mapper/SysResourceMapper.java b/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/mapper/SysResourceMapper.java deleted file mode 100644 index b94de65..0000000 --- a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/mapper/SysResourceMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.account.mapper; - -import cn.toesbieya.jxc.common.model.entity.SysResource; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -public interface SysResourceMapper extends BaseMapper { -} diff --git a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/mapper/SysRoleMapper.java b/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/mapper/SysRoleMapper.java deleted file mode 100644 index 200e12c..0000000 --- a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/mapper/SysRoleMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.account.mapper; - -import cn.toesbieya.jxc.common.model.entity.SysRole; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -public interface SysRoleMapper extends BaseMapper { -} diff --git a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/mapper/SysUserMapper.java b/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/mapper/SysUserMapper.java deleted file mode 100644 index f1797ca..0000000 --- a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/mapper/SysUserMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.account.mapper; - -import cn.toesbieya.jxc.common.model.entity.SysUser; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -public interface SysUserMapper extends BaseMapper { -} diff --git a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/service/AccountService.java b/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/service/AccountService.java deleted file mode 100644 index a52cc65..0000000 --- a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/service/AccountService.java +++ /dev/null @@ -1,251 +0,0 @@ -package cn.toesbieya.jxc.account.service; - -import cn.toesbieya.jxc.account.mapper.SysUserMapper; -import cn.toesbieya.jxc.account.vo.LoginParam; -import cn.toesbieya.jxc.account.vo.LoginSuccessInfo; -import cn.toesbieya.jxc.account.vo.PasswordUpdateParam; -import cn.toesbieya.jxc.account.vo.RegisterParam; -import cn.toesbieya.jxc.api.FileApi; -import cn.toesbieya.jxc.api.RecordApi; -import cn.toesbieya.jxc.api.system.DepartmentApi; -import cn.toesbieya.jxc.api.system.ResourceApi; -import cn.toesbieya.jxc.api.system.RoleApi; -import cn.toesbieya.jxc.common.enumeration.ResourceTypeEnum; -import cn.toesbieya.jxc.common.model.entity.RecLoginHistory; -import cn.toesbieya.jxc.common.model.entity.SysResource; -import cn.toesbieya.jxc.common.model.entity.SysRole; -import cn.toesbieya.jxc.common.model.entity.SysUser; -import cn.toesbieya.jxc.common.model.vo.DepartmentVo; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.common.util.SessionUtil; -import cn.toesbieya.jxc.web.common.annoation.TimeCost; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.Reference; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.*; - -@Service -@Slf4j -public class AccountService { - @Resource - private SysUserMapper userMapper; - @Reference - private FileApi fileApi; - @Reference - private RecordApi recordApi; - @Reference - private ResourceApi resourceApi; - @Reference - private RoleApi roleApi; - @Reference - public DepartmentApi departmentApi; - - @TimeCost - public R login(LoginParam param, String ip) { - long now = System.currentTimeMillis(); - - SysUser user = userMapper.selectOne( - Wrappers.lambdaQuery(SysUser.class) - .eq(SysUser::getLoginName, param.getUsername()) - .eq(SysUser::getPwd, param.getPassword()) - ); - - if (user == null) { - return R.fail("用户名或密码错误"); - } - if (!user.isEnable()) { - return R.fail("该用户已被禁用,请联系管理员"); - } - Integer roleId = user.getRole(); - if (!user.isAdmin() && roleId == null) { - return R.fail("该用户尚未被分配角色,请联系管理员"); - } - - //设置token - String token = SessionUtil.generateToken(user); - - //存入redis的数据 - UserVo userVo = new UserVo(user); - userVo.setToken(token); - - //传递给前端的数据 - LoginSuccessInfo info = new LoginSuccessInfo(user); - info.setToken(token); - - Map userResources = null; - Set userResourcesIdSet = null; - - //为非admin的用户设置权限 - if (!user.isAdmin()) { - //获取用户的角色 - SysRole role = roleApi.getRoleById(roleId); - - if (role != null) { - //设置角色名称 - String roleName = role.getName(); - userVo.setRoleName(roleName); - info.setRoleName(roleName); - - //获取用户的权限列表 - List resources = resourceApi.getResourceByRole(role); - - userResources = new HashMap<>(resources.size()); - userResourcesIdSet = new HashSet<>(resources.size()); - - for (SysResource r : resources) { - if (r.isAdmin()) continue; - Integer resourceId = r.getId(); - userResources.put(r.getPath(), r.getId()); - if (r.getType().equals(ResourceTypeEnum.API.getCode())) { - userResourcesIdSet.add(resourceId); - } - } - } - } - - //获取用户部门 - Integer deptId = user.getDept(); - if (deptId != null) { - DepartmentVo dept = departmentApi.getById(deptId); - if (dept != null) { - //设置用户的部门名称 - String deptName = dept.getFullname(); - userVo.setDeptName(deptName); - info.setDeptName(deptName); - } - } - - //用户的数据范围 - userVo.setDepartmentIds(departmentApi.getUserDataScope(user)); - - //用户的权限ID集合 - userVo.setResourceIds(userResourcesIdSet); - - //返回给前端的用户权限表 - info.setResources(userResources); - - //用户信息插入redis - SessionUtil.save(userVo); - - //记录登陆信息 - recordApi.insertLoginHistory( - RecLoginHistory - .builder() - .uid(user.getId()) - .uname(user.getNickName()) - .ip(ip) - .login(true) - .time(now) - .build() - ); - - return R.success(info); - } - - public R logout(UserVo user, String ip) { - if (user != null) { - recordApi.insertLoginHistory( - RecLoginHistory - .builder() - .uid(user.getId()) - .uname(user.getNickName()) - .ip(ip) - .login(false) - .time(System.currentTimeMillis()) - .build() - ); - SessionUtil.remove(user.getToken()); - } - - return R.success("登出成功"); - } - - public R register(RegisterParam param) { - String name = param.getUsername(); - String nick = param.getNick(); - - if (isLoginNameExist(name, null)) { - return R.fail("该登录名已存在"); - } - if (isNickNameExist(nick, null)) { - return R.fail("该昵称已存在"); - } - - SysUser user = new SysUser(); - user.setLoginName(name); - user.setNickName(nick); - user.setPwd(param.getPassword()); - user.setRole(1); - user.setDept(1); - user.setEnable(true); - user.setCtime(System.currentTimeMillis()); - - userMapper.insert(user); - - return R.success("注册成功"); - } - - @UserAction("'修改密码'") - public R updatePwd(PasswordUpdateParam param) { - int rows = userMapper.update( - null, - Wrappers.lambdaUpdate(SysUser.class) - .set(SysUser::getPwd, param.getNewPwd()) - .eq(SysUser::getId, param.getId()) - .eq(SysUser::getPwd, param.getOldPwd()) - ); - return rows > 0 ? R.success("修改成功") : R.fail("修改失败,请检查原密码是否正确"); - } - - @UserAction("'修改头像'") - public R updateAvatar(UserVo user, String avatar) { - int rows = userMapper.update( - null, - Wrappers.lambdaUpdate(SysUser.class) - .set(SysUser::getAvatar, avatar) - .eq(SysUser::getId, user.getId()) - ); - - //更新成功后删除云上旧的头像,同时更新redis中的用户信息 - if (rows > 0) { - String oldAvatar = user.getAvatar(); - if (!StringUtils.isEmpty(oldAvatar)) { - fileApi.delete(oldAvatar); - } - user.setAvatar(avatar); - SessionUtil.save(user); - return R.success("上传头像成功", avatar); - } - - //否则删除此次上传至云的头像 - fileApi.delete(avatar); - - return R.fail("上传头像失败"); - } - - //登录名重复时返回true - public boolean isLoginNameExist(String name, Integer id) { - Integer num = userMapper.selectCount( - Wrappers.lambdaQuery(SysUser.class) - .eq(SysUser::getLoginName, name) - .ne(id != null, SysUser::getId, id) - ); - return num != null && num > 0; - } - - //用户昵称重复时返回true - public boolean isNickNameExist(String name, Integer id) { - Integer num = userMapper.selectCount( - Wrappers.lambdaQuery(SysUser.class) - .eq(SysUser::getNickName, name) - .ne(id != null, SysUser::getId, id) - ); - return num != null && num > 0; - } -} diff --git a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/LoginParam.java b/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/LoginParam.java deleted file mode 100644 index 2c60f3f..0000000 --- a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/LoginParam.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.toesbieya.jxc.account.vo; - -import lombok.Data; -import org.hibernate.validator.constraints.Length; - -import javax.validation.constraints.NotNull; - -@Data -public class LoginParam { - @NotNull(message = "用户名不能为空") - @Length(max = 20, message = "用户名太长了") - private String username; - - @NotNull(message = "密码不能为空") - @Length(min = 32, max = 32, message = "密码异常") - private String password; -} diff --git a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/LoginSuccessInfo.java b/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/LoginSuccessInfo.java deleted file mode 100644 index e761263..0000000 --- a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/LoginSuccessInfo.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.toesbieya.jxc.account.vo; - -import cn.toesbieya.jxc.common.model.entity.SysUser; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.Map; - -@Data -@NoArgsConstructor -public class LoginSuccessInfo { - private Integer id; - private String name; - private String roleName; - private String deptName; - private String avatar; - private boolean admin; - private String token; - private Map resources; - - public LoginSuccessInfo(SysUser user) { - this.id = user.getId(); - this.name = user.getNickName(); - this.avatar = user.getAvatar(); - this.admin = user.isAdmin(); - } -} diff --git a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/PasswordUpdateParam.java b/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/PasswordUpdateParam.java deleted file mode 100644 index a10bdde..0000000 --- a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/PasswordUpdateParam.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.toesbieya.jxc.account.vo; - -import lombok.Data; - -@Data -public class PasswordUpdateParam { - private Integer id; - private String newPwd; - private String oldPwd; -} diff --git a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/RegisterParam.java b/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/RegisterParam.java deleted file mode 100644 index 4237cdf..0000000 --- a/java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/vo/RegisterParam.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.toesbieya.jxc.account.vo; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; -import org.hibernate.validator.constraints.Length; - -import javax.validation.constraints.NotNull; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class RegisterParam extends LoginParam { - @NotNull(message = "昵称不能为空") - @Length(max = 100, message = "昵称太长了") - private String nick; -} diff --git a/java/cloud/web/web-modules/account/src/main/resources/bootstrap.yml b/java/cloud/web/web-modules/account/src/main/resources/bootstrap.yml deleted file mode 100644 index 7ecb4c5..0000000 --- a/java/cloud/web/web-modules/account/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,20 +0,0 @@ -spring: - application: - name: jxc-web-account - - cloud: - nacos: - config: - server-addr: 127.0.0.1:8848 - file-extension: yml - shared-configs: - - data-id: jxc-common-database.yml - - data-id: jxc-common-redis.yml - discovery: - server-addr: 127.0.0.1:8848 - -dubbo: - registry: - address: nacos://127.0.0.1:8848 - cloud: - subscribed-services: jxc-web-file,jxc-web-record,jxc-web-system \ No newline at end of file diff --git a/java/cloud/web/web-modules/doc/pom.xml b/java/cloud/web/web-modules/doc/pom.xml deleted file mode 100644 index f77d3ea..0000000 --- a/java/cloud/web/web-modules/doc/pom.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - web-modules - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - doc - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/DocApplication.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/DocApplication.java deleted file mode 100644 index 48195b0..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/DocApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.toesbieya.jxc.doc; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication(scanBasePackages = "cn.toesbieya.jxc") -@MapperScan("cn.toesbieya.jxc.doc.mapper") -public class DocApplication { - public static void main(String[] args) { - SpringApplication.run(DocApplication.class, args); - } -} \ No newline at end of file diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/DocHistoryController.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/DocHistoryController.java deleted file mode 100644 index 03e315e..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/DocHistoryController.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.toesbieya.jxc.doc.controller; - -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.doc.model.vo.DocHistorySearch; -import cn.toesbieya.jxc.doc.service.DocHistoryService; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; - -@RestController -@RequestMapping("history") -public class DocHistoryController { - @Resource - private DocHistoryService service; - - @PostMapping("search") - public R search(@RequestBody DocHistorySearch vo) { - return R.success(service.search(vo)); - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/PurchaseInboundController.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/PurchaseInboundController.java deleted file mode 100644 index b281ef8..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/PurchaseInboundController.java +++ /dev/null @@ -1,140 +0,0 @@ -package cn.toesbieya.jxc.doc.controller; - -import cn.toesbieya.jxc.common.model.entity.BizPurchaseInbound; -import cn.toesbieya.jxc.common.model.entity.BizPurchaseInboundSub; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum; -import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate; -import cn.toesbieya.jxc.doc.model.vo.PurchaseInboundSearch; -import cn.toesbieya.jxc.doc.model.vo.PurchaseInboundVo; -import cn.toesbieya.jxc.doc.service.PurchaseInboundService; -import cn.toesbieya.jxc.web.common.util.SessionUtil; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.math.BigDecimal; -import java.util.List; - -@RestController -@RequestMapping("purchase/inbound") -public class PurchaseInboundController { - @Resource - private PurchaseInboundService service; - - @GetMapping("getById") - public R getById(@RequestParam String id) { - if (StringUtils.isEmpty(id)) return R.fail("参数错误"); - PurchaseInboundVo inbound = service.getById(id); - return inbound == null ? R.fail("获取单据信息失败") : R.success(inbound); - } - - @GetMapping("getSubById") - public R getSubById(@RequestParam String id) { - if (StringUtils.isEmpty(id)) return R.fail("参数错误"); - return R.success(service.getSubById(id)); - } - - @PostMapping("search") - public R search(@RequestBody PurchaseInboundSearch vo) { - return R.success(service.search(vo)); - } - - @PostMapping("export") - public void export(@RequestBody PurchaseInboundSearch vo, HttpServletResponse response) throws Exception { - service.export(vo, response); - } - - @PostMapping("add") - public R add(@RequestBody PurchaseInboundVo vo) { - String errMsg = validateSub(vo.getData()); - if (errMsg != null) return R.fail(errMsg); - - UserVo user = SessionUtil.get(); - - vo.setCid(user.getId()); - vo.setCname(user.getNickName()); - vo.setCtime(System.currentTimeMillis()); - vo.setStatus(DocStatusEnum.DRAFT.getCode()); - - return service.add(vo); - } - - @PostMapping("update") - public R update(@RequestBody PurchaseInboundVo vo) { - String errMsg = validateUpdate(vo); - if (errMsg == null) errMsg = validateSub(vo.getData()); - if (errMsg != null) return R.fail(errMsg); - - return service.update(vo); - } - - @PostMapping("commit") - public R commit(@RequestBody PurchaseInboundVo vo) { - boolean isFirst = StringUtils.isEmpty(vo.getId()); - - String errMsg = validateSub(vo.getData()); - if (!isFirst && errMsg == null) errMsg = validateUpdate(vo); - if (errMsg != null) return R.fail(errMsg); - - vo.setStatus(DocStatusEnum.WAIT_VERIFY.getCode()); - if (isFirst) { - UserVo user = SessionUtil.get(); - vo.setCid(user.getId()); - vo.setCname(user.getNickName()); - vo.setCtime(System.currentTimeMillis()); - } - return service.commit(vo); - } - - @PostMapping("withdraw") - public R withdraw(@RequestBody DocStatusUpdate vo) { - return service.withdraw(vo, SessionUtil.get()); - } - - @PostMapping("pass") - public R pass(@RequestBody DocStatusUpdate vo) { - if (StringUtils.isEmpty(vo.getPid())) return R.fail("参数错误"); - return service.pass(vo, SessionUtil.get()); - } - - @PostMapping("reject") - public R reject(@RequestBody DocStatusUpdate vo) { - return service.reject(vo, SessionUtil.get()); - } - - @GetMapping("del") - public R del(@RequestParam String id) { - if (StringUtils.isEmpty(id)) return R.fail("参数错误"); - return service.del(id); - } - - private String validateUpdate(BizPurchaseInbound main) { - if (StringUtils.isEmpty(main.getId()) - || StringUtils.isEmpty(main.getPid()) - || StringUtils.isEmpty(main.getCid()) - || StringUtils.isEmpty(main.getCname()) - || StringUtils.isEmpty(main.getCtime()) - || StringUtils.isEmpty(main.getStatus()) - ) return "参数错误"; - return null; - } - - private String validateSub(List list) { - if (CollectionUtils.isEmpty(list)) return "采购入库单必须要有入库列表"; - int len = list.size(); - for (int i = 0; i < len; i++) { - BizPurchaseInboundSub sub = list.get(i); - if (sub.getNum() == null || sub.getNum().compareTo(BigDecimal.ZERO) <= 0) { - return String.format("第%d个入库商品数量有误", i); - } - if (sub.getCid() == null || StringUtils.isEmpty(sub.getCname())) { - return String.format("第%d个入库商品分类有误", i); - } - } - return null; - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/PurchaseOrderController.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/PurchaseOrderController.java deleted file mode 100644 index 9bc2b62..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/PurchaseOrderController.java +++ /dev/null @@ -1,155 +0,0 @@ -package cn.toesbieya.jxc.doc.controller; - -import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrder; -import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrderSub; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.doc.enumeration.DocFinishEnum; -import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum; -import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate; -import cn.toesbieya.jxc.doc.model.vo.PurchaseOrderSearch; -import cn.toesbieya.jxc.doc.model.vo.PurchaseOrderVo; -import cn.toesbieya.jxc.doc.service.PurchaseOrderService; -import cn.toesbieya.jxc.web.common.util.SessionUtil; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.math.BigDecimal; -import java.util.List; - -@RestController -@RequestMapping("purchase/order") -public class PurchaseOrderController { - @Resource - private PurchaseOrderService service; - - @GetMapping("getById") - public R getById(@RequestParam String id) { - if (StringUtils.isEmpty(id)) { - return R.fail("参数错误"); - } - PurchaseOrderVo vo = service.getById(id); - return vo == null ? R.fail("获取单据信息失败") : R.success(vo); - } - - @GetMapping("getSubById") - public R getSubById(@RequestParam String id) { - if (StringUtils.isEmpty(id)) { - return R.fail("参数错误"); - } - return R.success(service.getSubById(id)); - } - - @PostMapping("search") - public R search(@RequestBody PurchaseOrderSearch vo) { - return R.success(service.search(vo)); - } - - @PostMapping("export") - public void export(@RequestBody PurchaseOrderSearch vo, HttpServletResponse response) throws Exception { - service.export(vo, response); - } - - @PostMapping("add") - public R add(@RequestBody PurchaseOrderVo vo) { - if (vo.getSid() == null - || StringUtils.isEmpty(vo.getSname()) - || vo.getTotal() == null) { - return R.fail("参数错误"); - } - - String errMsg = validateSub(vo.getData()); - if (errMsg != null) return R.fail(errMsg); - - UserVo user = SessionUtil.get(); - - vo.setCid(user.getId()); - vo.setCname(user.getNickName()); - vo.setCtime(System.currentTimeMillis()); - vo.setStatus(DocStatusEnum.DRAFT.getCode()); - vo.setFinish(DocFinishEnum.TO_BE_STARTED.getCode()); - - return service.add(vo); - } - - @PostMapping("update") - public R update(@RequestBody PurchaseOrderVo vo) { - String errMsg = validateUpdate(vo); - if (errMsg == null) errMsg = validateSub(vo.getData()); - if (errMsg != null) return R.fail(errMsg); - - return service.update(vo); - } - - @PostMapping("commit") - public R commit(@RequestBody PurchaseOrderVo vo) { - boolean isFirst = StringUtils.isEmpty(vo.getId()); - - String errMsg = validateSub(vo.getData()); - if (!isFirst && errMsg == null) errMsg = validateUpdate(vo); - if (errMsg != null) return R.fail(errMsg); - - vo.setStatus(DocStatusEnum.WAIT_VERIFY.getCode()); - - if (isFirst) { - UserVo user = SessionUtil.get(); - vo.setCid(user.getId()); - vo.setCname(user.getNickName()); - vo.setCtime(System.currentTimeMillis()); - } - - return service.commit(vo); - } - - @PostMapping("withdraw") - public R withdraw(@RequestBody DocStatusUpdate vo) { - return service.withdraw(vo, SessionUtil.get()); - } - - @PostMapping("pass") - public R pass(@RequestBody DocStatusUpdate vo) { - return service.pass(vo, SessionUtil.get()); - } - - @PostMapping("reject") - public R reject(@RequestBody DocStatusUpdate vo) { - return service.reject(vo, SessionUtil.get()); - } - - @GetMapping("del") - public R del(@RequestParam String id) { - if (StringUtils.isEmpty(id)) return R.fail("参数错误"); - return service.del(id); - } - - private String validateUpdate(BizPurchaseOrder main) { - if (StringUtils.isEmpty(main.getId()) - || StringUtils.isEmpty(main.getSid()) - || StringUtils.isEmpty(main.getSname()) - || StringUtils.isEmpty(main.getCid()) - || StringUtils.isEmpty(main.getCname()) - || StringUtils.isEmpty(main.getCtime()) - || StringUtils.isEmpty(main.getStatus()) - || main.getTotal() == null - ) return "参数错误"; - return null; - } - - private String validateSub(List list) { - if (CollectionUtils.isEmpty(list)) return "采购订单必须要有采购列表"; - int len = list.size(); - for (int i = 0; i < len; i++) { - BizPurchaseOrderSub sub = list.get(i); - if (sub.getNum() == null || sub.getNum().compareTo(BigDecimal.ZERO) <= 0) { - return String.format("第%d个入库商品数量有误", i); - } - if (sub.getPrice() == null || sub.getPrice().compareTo(BigDecimal.ZERO) <= 0) { - return String.format("第%d个采购商品价格有误", i); - } - } - return null; - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/SellOrderController.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/SellOrderController.java deleted file mode 100644 index ce48376..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/SellOrderController.java +++ /dev/null @@ -1,149 +0,0 @@ -package cn.toesbieya.jxc.doc.controller; - -import cn.toesbieya.jxc.common.model.entity.BizSellOrder; -import cn.toesbieya.jxc.common.model.entity.BizSellOrderSub; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum; -import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate; -import cn.toesbieya.jxc.doc.model.vo.SellOrderSearch; -import cn.toesbieya.jxc.doc.model.vo.SellOrderVo; -import cn.toesbieya.jxc.doc.service.SellOrderService; -import cn.toesbieya.jxc.web.common.util.SessionUtil; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.math.BigDecimal; -import java.util.List; - -@RestController -@RequestMapping("sell/order") -public class SellOrderController { - @Resource - private SellOrderService service; - - @GetMapping("getById") - public R getById(@RequestParam String id) { - if (StringUtils.isEmpty(id)) return R.fail("参数错误"); - SellOrderVo vo = service.getById(id); - return vo == null ? R.fail("获取单据信息失败") : R.success(vo); - } - - @GetMapping("getSubById") - public R getSubById(@RequestParam String id) { - if (StringUtils.isEmpty(id)) return R.fail("参数错误"); - return R.success(service.getSubById(id)); - } - - @PostMapping("search") - public R search(@RequestBody SellOrderSearch vo) { - return R.success(service.search(vo)); - } - - @PostMapping("export") - public void export(@RequestBody SellOrderSearch vo, HttpServletResponse response) throws Exception { - service.export(vo, response); - } - - @PostMapping("add") - public R add(@RequestBody SellOrderVo vo) { - if (vo.getCustomerId() == null - || StringUtils.isEmpty(vo.getCustomerName()) - || vo.getTotal() == null) { - return R.fail("参数错误"); - } - String errMsg = validateSub(vo.getData()); - if (errMsg != null) return R.fail(errMsg); - - UserVo user = SessionUtil.get(); - - vo.setCid(user.getId()); - vo.setCname(user.getNickName()); - vo.setCtime(System.currentTimeMillis()); - vo.setStatus(DocStatusEnum.DRAFT.getCode()); - - return service.add(vo); - } - - @PostMapping("update") - public R update(@RequestBody SellOrderVo vo) { - String errMsg = validateUpdate(vo); - if (errMsg == null) errMsg = validateSub(vo.getData()); - if (errMsg != null) return R.fail(errMsg); - - return service.update(vo); - } - - @PostMapping("commit") - public R commit(@RequestBody SellOrderVo vo) { - boolean isFirst = StringUtils.isEmpty(vo.getId()); - - String errMsg = validateSub(vo.getData()); - if (!isFirst && errMsg == null) errMsg = validateUpdate(vo); - if (errMsg != null) return R.fail(errMsg); - - vo.setStatus(DocStatusEnum.WAIT_VERIFY.getCode()); - - if (isFirst) { - UserVo user = SessionUtil.get(); - - vo.setCid(user.getId()); - vo.setCname(user.getNickName()); - vo.setCtime(System.currentTimeMillis()); - } - - return service.commit(vo); - } - - @PostMapping("withdraw") - public R withdraw(@RequestBody DocStatusUpdate vo) { - return service.withdraw(vo, SessionUtil.get()); - } - - @PostMapping("pass") - public R pass(@RequestBody DocStatusUpdate vo) { - return service.pass(vo, SessionUtil.get()); - } - - @PostMapping("reject") - public R reject(@RequestBody DocStatusUpdate vo) { - return service.reject(vo, SessionUtil.get()); - } - - @GetMapping("del") - public R del(@RequestParam String id) { - if (StringUtils.isEmpty(id)) return R.fail("参数错误"); - return service.del(id); - } - - private String validateUpdate(BizSellOrder main) { - if (StringUtils.isEmpty(main.getId()) - || StringUtils.isEmpty(main.getCustomerId()) - || StringUtils.isEmpty(main.getCustomerName()) - || StringUtils.isEmpty(main.getCid()) - || StringUtils.isEmpty(main.getCname()) - || StringUtils.isEmpty(main.getCtime()) - || StringUtils.isEmpty(main.getStatus()) - || main.getTotal() == null - ) return "参数错误"; - return null; - } - - private String validateSub(List list) { - if (CollectionUtils.isEmpty(list)) return "销售订单必须要有销售列表"; - int len = list.size(); - for (int i = 0; i < len; i++) { - BizSellOrderSub sub = list.get(i); - if (sub.getNum() == null || sub.getNum().compareTo(BigDecimal.ZERO) <= 0) { - return String.format("第%d个销售商品数量有误", i); - } - if (sub.getPrice() == null || sub.getPrice().compareTo(BigDecimal.ZERO) <= 0) { - return String.format("第%d个销售商品价格有误", i); - } - } - return null; - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/SellOutboundController.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/SellOutboundController.java deleted file mode 100644 index 3ebf180..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/SellOutboundController.java +++ /dev/null @@ -1,148 +0,0 @@ -package cn.toesbieya.jxc.doc.controller; - -import cn.toesbieya.jxc.common.model.entity.BizSellOutbound; -import cn.toesbieya.jxc.common.model.entity.BizSellOutboundSub; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum; -import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate; -import cn.toesbieya.jxc.doc.model.vo.SellOutboundSearch; -import cn.toesbieya.jxc.doc.model.vo.SellOutboundVo; -import cn.toesbieya.jxc.doc.service.SellOutboundService; -import cn.toesbieya.jxc.web.common.util.SessionUtil; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.math.BigDecimal; -import java.util.List; - -@RestController -@RequestMapping("sell/outbound") -public class SellOutboundController { - @Resource - private SellOutboundService service; - - @GetMapping("getById") - public R getById(@RequestParam String id) { - if (StringUtils.isEmpty(id)) return R.fail("参数错误"); - SellOutboundVo vo = service.getById(id); - return vo == null ? R.fail("获取单据信息失败") : R.success(vo); - } - - @GetMapping("getSubById") - public R getSubById(@RequestParam String id) { - if (StringUtils.isEmpty(id)) return R.fail("参数错误"); - return R.success(service.getSubById(id)); - } - - @PostMapping("search") - public R search(@RequestBody SellOutboundSearch vo) { - return R.success(service.search(vo)); - } - - @PostMapping("export") - public void export(@RequestBody SellOutboundSearch vo, HttpServletResponse response) throws Exception { - service.export(vo, response); - } - - @PostMapping("add") - public R add(@RequestBody SellOutboundVo vo) { - String errMsg = validateSub(vo.getData()); - if (errMsg != null) return R.fail(errMsg); - - UserVo user = SessionUtil.get(); - - vo.setCid(user.getId()); - vo.setCname(user.getNickName()); - vo.setCtime(System.currentTimeMillis()); - vo.setStatus(DocStatusEnum.DRAFT.getCode()); - - return service.add(vo); - } - - @PostMapping("update") - public R update(@RequestBody SellOutboundVo vo) { - String errMsg = validateUpdate(vo); - if (errMsg == null) errMsg = validateSub(vo.getData()); - if (errMsg != null) return R.fail(errMsg); - - return service.update(vo); - } - - @PostMapping("commit") - public R commit(@RequestBody SellOutboundVo vo) { - boolean isFirst = StringUtils.isEmpty(vo.getId()); - - String errMsg = validateSub(vo.getData()); - if (!isFirst && errMsg == null) errMsg = validateUpdate(vo); - if (errMsg != null) return R.fail(errMsg); - - vo.setStatus(DocStatusEnum.WAIT_VERIFY.getCode()); - if (isFirst) { - UserVo user = SessionUtil.get(); - - vo.setCid(user.getId()); - vo.setCname(user.getNickName()); - vo.setCtime(System.currentTimeMillis()); - } - return service.commit(vo); - } - - @PostMapping("withdraw") - public R withdraw(@RequestBody DocStatusUpdate vo) { - return service.withdraw(vo, SessionUtil.get()); - } - - @PostMapping("pass") - public R pass(@RequestBody DocStatusUpdate vo) { - if (StringUtils.isEmpty(vo.getPid())) { - return R.fail("参数错误"); - } - return service.pass(vo, SessionUtil.get()); - } - - @PostMapping("reject") - public R reject(@RequestBody DocStatusUpdate vo) { - return service.reject(vo, SessionUtil.get()); - } - - @GetMapping("del") - public R del(@RequestParam String id) { - if (StringUtils.isEmpty(id)) return R.fail("参数错误"); - return service.del(id); - } - - private String validateUpdate(BizSellOutbound main) { - if (StringUtils.isEmpty(main.getId()) - || StringUtils.isEmpty(main.getPid()) - || StringUtils.isEmpty(main.getCid()) - || StringUtils.isEmpty(main.getCname()) - || StringUtils.isEmpty(main.getCtime()) - || StringUtils.isEmpty(main.getStatus()) - ) return "参数错误"; - return null; - } - - private String validateSub(List list) { - if (CollectionUtils.isEmpty(list)) { - return "销售出库单必须要有出库列表"; - } - int len = list.size(); - for (int i = 0; i < len; i++) { - BizSellOutboundSub sub = list.get(i); - if (sub.getSid() == null) { - return String.format("第%d个出库商品没有选择库存", i); - } - if (sub.getNum() == null || sub.getNum().compareTo(BigDecimal.ZERO) <= 0) { - return String.format("第%d个出库商品数量有误", i); - } - if (sub.getCid() == null || StringUtils.isEmpty(sub.getCname())) { - return String.format("第%d个出库商品数量有误", i); - } - } - return null; - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocFinishEnum.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocFinishEnum.java deleted file mode 100644 index 5cc6077..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocFinishEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.doc.enumeration; - -public enum DocFinishEnum { - TO_BE_STARTED(0), UNDERWAY(1), FINISHED(2); - - private final int code; - - DocFinishEnum(int code) { - this.code = code; - } - - public int getCode() { - return code; - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocHistoryEnum.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocHistoryEnum.java deleted file mode 100644 index 80616de..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocHistoryEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.doc.enumeration; - -public enum DocHistoryEnum { - WITHDRAW(0), COMMIT(1), PASS(2), REJECT(3); - - private final int code; - - DocHistoryEnum(int code) { - this.code = code; - } - - public int getCode() { - return code; - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocStatusEnum.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocStatusEnum.java deleted file mode 100644 index 1eae36e..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocStatusEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.doc.enumeration; - -public enum DocStatusEnum { - DRAFT(0), WAIT_VERIFY(1), VERIFIED(2); - - private final int code; - - DocStatusEnum(int code) { - this.code = code; - } - - public int getCode() { - return code; - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/DocHistoryMapper.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/DocHistoryMapper.java deleted file mode 100644 index 678697c..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/DocHistoryMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.doc.mapper; - -import cn.toesbieya.jxc.common.model.entity.BizDocHistory; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -public interface DocHistoryMapper extends BaseMapper { -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseInboundMapper.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseInboundMapper.java deleted file mode 100644 index 9e9381f..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseInboundMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.doc.mapper; - -import cn.toesbieya.jxc.common.model.entity.BizPurchaseInbound; -import cn.toesbieya.jxc.doc.model.vo.PurchaseInboundExport; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.toolkit.Constants; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -public interface PurchaseInboundMapper extends BaseMapper { - List export(@Param(Constants.WRAPPER) Wrapper wrapper); -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseInboundSubMapper.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseInboundSubMapper.java deleted file mode 100644 index e02cabc..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseInboundSubMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.toesbieya.jxc.doc.mapper; - -import cn.toesbieya.jxc.common.model.entity.BizPurchaseInboundSub; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import java.util.List; - -public interface PurchaseInboundSubMapper extends BaseMapper { - void insertBatch(List list); -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseOrderMapper.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseOrderMapper.java deleted file mode 100644 index 2f32d6c..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseOrderMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.doc.mapper; - -import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrder; -import cn.toesbieya.jxc.doc.model.vo.PurchaseOrderExport; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.toolkit.Constants; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -public interface PurchaseOrderMapper extends BaseMapper { - List export(@Param(Constants.WRAPPER) Wrapper wrapper); -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseOrderSubMapper.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseOrderSubMapper.java deleted file mode 100644 index 6611bad..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseOrderSubMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.toesbieya.jxc.doc.mapper; - -import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrderSub; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import java.util.List; - -public interface PurchaseOrderSubMapper extends BaseMapper { - void insertBatch(List list); -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOrderMapper.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOrderMapper.java deleted file mode 100644 index ef01464..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOrderMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.doc.mapper; - -import cn.toesbieya.jxc.common.model.entity.BizSellOrder; -import cn.toesbieya.jxc.doc.model.vo.SellOrderExport; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.toolkit.Constants; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -public interface SellOrderMapper extends BaseMapper { - List export(@Param(Constants.WRAPPER) Wrapper wrapper); -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOrderSubMapper.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOrderSubMapper.java deleted file mode 100644 index a6d3d58..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOrderSubMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.toesbieya.jxc.doc.mapper; - -import cn.toesbieya.jxc.common.model.entity.BizSellOrderSub; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import java.util.List; - -public interface SellOrderSubMapper extends BaseMapper { - void insertBatch(List list); -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOutboundMapper.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOutboundMapper.java deleted file mode 100644 index fc59e3f..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOutboundMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.doc.mapper; - -import cn.toesbieya.jxc.common.model.entity.BizSellOutbound; -import cn.toesbieya.jxc.doc.model.vo.SellOutboundExport; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.toolkit.Constants; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -public interface SellOutboundMapper extends BaseMapper { - List export(@Param(Constants.WRAPPER) Wrapper wrapper); -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOutboundSubMapper.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOutboundSubMapper.java deleted file mode 100644 index 7336967..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOutboundSubMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.toesbieya.jxc.doc.mapper; - -import cn.toesbieya.jxc.common.model.entity.BizSellOutboundSub; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import java.util.List; - -public interface SellOutboundSubMapper extends BaseMapper { - void insertBatch(List list); -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocHistorySearch.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocHistorySearch.java deleted file mode 100644 index 7485e5c..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocHistorySearch.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import cn.toesbieya.jxc.common.model.vo.BaseSearch; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class DocHistorySearch extends BaseSearch { - private String pid; - private String type; - private String uid; - private String uname; -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocSearch.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocSearch.java deleted file mode 100644 index bf0c23c..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocSearch.java +++ /dev/null @@ -1,23 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import cn.toesbieya.jxc.common.model.vo.BaseSearch; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class DocSearch extends BaseSearch { - private String id; - private String idFuzzy; - private Integer cid; - private String cname; - private Integer vid; - private String vname; - private String status; - private Long ctimeStart; - private Long ctimeEnd; - private Long vtimeStart; - private Long vtimeEnd; -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocStatusUpdate.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocStatusUpdate.java deleted file mode 100644 index fca21d5..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocStatusUpdate.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import lombok.Data; - -@Data -public class DocStatusUpdate { - private String id; - private String pid; - private String info; -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundExport.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundExport.java deleted file mode 100644 index 1b6a609..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundExport.java +++ /dev/null @@ -1,40 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import lombok.Data; - -@Data -public class PurchaseInboundExport { - @ExcelProperty(value = "单号", index = 0) - @ColumnWidth(20) - private String id; - - @ExcelProperty(value = "采购订单单号", index = 1) - @ColumnWidth(20) - private String pid; - - @ExcelProperty(value = "创建人", index = 2) - @ColumnWidth(20) - private String cname; - - @ExcelProperty(value = "创建时间", index = 3) - @ColumnWidth(20) - private String ctime; - - @ExcelProperty(value = "审核人", index = 4) - @ColumnWidth(20) - private String vname; - - @ExcelProperty(value = "审核时间", index = 5) - @ColumnWidth(20) - private String vtime; - - @ExcelProperty(value = "状态", index = 6) - @ColumnWidth(20) - private String status; - - @ExcelProperty(value = "备注", index = 7) - @ColumnWidth(50) - private String remark; -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundSearch.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundSearch.java deleted file mode 100644 index 5e26158..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundSearch.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class PurchaseInboundSearch extends DocSearch { - private String pid; - private String pidFuzzy; -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundVo.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundVo.java deleted file mode 100644 index c07bd60..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundVo.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import cn.toesbieya.jxc.common.model.entity.BizPurchaseInbound; -import cn.toesbieya.jxc.common.model.entity.BizPurchaseInboundSub; -import cn.toesbieya.jxc.common.model.entity.RecAttachment; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.ToString; -import org.springframework.beans.BeanUtils; - -import java.util.List; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -@NoArgsConstructor -public class PurchaseInboundVo extends BizPurchaseInbound { - private List data; - private List imageList; - private List uploadImageList; - private List deleteImageList; - - public PurchaseInboundVo(BizPurchaseInbound parent) { - BeanUtils.copyProperties(parent, this); - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderExport.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderExport.java deleted file mode 100644 index 541e731..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderExport.java +++ /dev/null @@ -1,52 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import lombok.Data; - -@Data -public class PurchaseOrderExport { - @ExcelProperty(value = "单号", index = 0) - @ColumnWidth(20) - private String id; - - @ExcelProperty(value = "供应商", index = 1) - @ColumnWidth(30) - private String sname; - - @ExcelProperty(value = "创建人", index = 2) - @ColumnWidth(20) - private String cname; - - @ExcelProperty(value = "创建时间", index = 3) - @ColumnWidth(20) - private String ctime; - - @ExcelProperty(value = "审核人", index = 4) - @ColumnWidth(20) - private String vname; - - @ExcelProperty(value = "审核时间", index = 5) - @ColumnWidth(20) - private String vtime; - - @ExcelProperty(value = "状态", index = 6) - @ColumnWidth(20) - private String status; - - @ExcelProperty(value = "完成情况", index = 7) - @ColumnWidth(20) - private String finish; - - @ExcelProperty(value = "完成时间", index = 8) - @ColumnWidth(20) - private String ftime; - - @ExcelProperty(value = "总额", index = 9) - @ColumnWidth(20) - private String total; - - @ExcelProperty(value = "备注", index = 10) - @ColumnWidth(50) - private String remark; -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderSearch.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderSearch.java deleted file mode 100644 index e6909b0..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderSearch.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class PurchaseOrderSearch extends DocSearch { - private Integer sid; - private String sname; - private String finish; - private Long ftimeStart; - private Long ftimeEnd; -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderVo.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderVo.java deleted file mode 100644 index 15eacce..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderVo.java +++ /dev/null @@ -1,24 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrder; -import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrderSub; -import cn.toesbieya.jxc.common.model.entity.RecAttachment; -import lombok.*; -import org.springframework.beans.BeanUtils; - -import java.util.List; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -@NoArgsConstructor -public class PurchaseOrderVo extends BizPurchaseOrder { - private List data; - private List imageList; - private List uploadImageList; - private List deleteImageList; - - public PurchaseOrderVo(BizPurchaseOrder parent) { - BeanUtils.copyProperties(parent, this); - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderExport.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderExport.java deleted file mode 100644 index e724f09..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderExport.java +++ /dev/null @@ -1,52 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import lombok.Data; - -@Data -public class SellOrderExport { - @ExcelProperty(value = "单号", index = 0) - @ColumnWidth(20) - private String id; - - @ExcelProperty(value = "客户", index = 1) - @ColumnWidth(30) - private String customerName; - - @ExcelProperty(value = "创建人", index = 2) - @ColumnWidth(20) - private String cname; - - @ExcelProperty(value = "创建时间", index = 3) - @ColumnWidth(20) - private String ctime; - - @ExcelProperty(value = "审核人", index = 4) - @ColumnWidth(20) - private String vname; - - @ExcelProperty(value = "审核时间", index = 5) - @ColumnWidth(20) - private String vtime; - - @ExcelProperty(value = "状态", index = 6) - @ColumnWidth(20) - private String status; - - @ExcelProperty(value = "完成情况", index = 7) - @ColumnWidth(20) - private String finish; - - @ExcelProperty(value = "完成时间", index = 8) - @ColumnWidth(20) - private String ftime; - - @ExcelProperty(value = "总额", index = 9) - @ColumnWidth(20) - private String total; - - @ExcelProperty(value = "备注", index = 10) - @ColumnWidth(50) - private String remark; -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderSearch.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderSearch.java deleted file mode 100644 index 77960e1..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderSearch.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class SellOrderSearch extends DocSearch { - private Integer customerId; - private String customerName; - private String finish; - private Long ftimeStart; - private Long ftimeEnd; -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderVo.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderVo.java deleted file mode 100644 index af2c2a9..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderVo.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import cn.toesbieya.jxc.common.model.entity.BizSellOrder; -import cn.toesbieya.jxc.common.model.entity.BizSellOrderSub; -import cn.toesbieya.jxc.common.model.entity.RecAttachment; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.ToString; -import org.springframework.beans.BeanUtils; - -import java.util.List; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -@NoArgsConstructor -public class SellOrderVo extends BizSellOrder { - private List data; - private List imageList; - private List uploadImageList; - private List deleteImageList; - - public SellOrderVo(BizSellOrder parent) { - BeanUtils.copyProperties(parent, this); - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundExport.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundExport.java deleted file mode 100644 index 2fb92ce..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundExport.java +++ /dev/null @@ -1,40 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import lombok.Data; - -@Data -public class SellOutboundExport { - @ExcelProperty(value = "单号", index = 0) - @ColumnWidth(20) - private String id; - - @ExcelProperty(value = "销售订单单号", index = 1) - @ColumnWidth(20) - private String pid; - - @ExcelProperty(value = "创建人", index = 2) - @ColumnWidth(20) - private String cname; - - @ExcelProperty(value = "创建时间", index = 3) - @ColumnWidth(20) - private String ctime; - - @ExcelProperty(value = "审核人", index = 4) - @ColumnWidth(20) - private String vname; - - @ExcelProperty(value = "审核时间", index = 5) - @ColumnWidth(20) - private String vtime; - - @ExcelProperty(value = "状态", index = 6) - @ColumnWidth(20) - private String status; - - @ExcelProperty(value = "备注", index = 7) - @ColumnWidth(50) - private String remark; -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundSearch.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundSearch.java deleted file mode 100644 index 34690e7..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundSearch.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class SellOutboundSearch extends DocSearch { - private String pid; - private String pidFuzzy; -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundVo.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundVo.java deleted file mode 100644 index 6e11345..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundVo.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.toesbieya.jxc.doc.model.vo; - -import cn.toesbieya.jxc.common.model.entity.BizSellOutbound; -import cn.toesbieya.jxc.common.model.entity.BizSellOutboundSub; -import cn.toesbieya.jxc.common.model.entity.RecAttachment; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.ToString; -import org.springframework.beans.BeanUtils; - -import java.util.List; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -@NoArgsConstructor -public class SellOutboundVo extends BizSellOutbound { - private List data; - private List imageList; - private List uploadImageList; - private List deleteImageList; - - public SellOutboundVo(BizSellOutbound parent) { - BeanUtils.copyProperties(parent, this); - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/DocHistoryService.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/DocHistoryService.java deleted file mode 100644 index 6a51ad9..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/DocHistoryService.java +++ /dev/null @@ -1,36 +0,0 @@ -package cn.toesbieya.jxc.doc.service; - -import cn.toesbieya.jxc.common.model.entity.BizDocHistory; -import cn.toesbieya.jxc.doc.mapper.DocHistoryMapper; -import cn.toesbieya.jxc.doc.model.vo.DocHistorySearch; -import cn.toesbieya.jxc.web.common.model.vo.PageResult; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.github.pagehelper.PageHelper; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; - -@Service -public class DocHistoryService { - @Resource - private DocHistoryMapper mapper; - - public PageResult search(DocHistorySearch vo) { - String pid = vo.getPid(); - String type = vo.getType(); - String uid = vo.getUid(); - String uname = vo.getUname(); - - Wrapper wrapper = Wrappers.lambdaQuery(BizDocHistory.class) - .eq(!StringUtils.isEmpty(pid), BizDocHistory::getPid, pid) - .inSql(!StringUtils.isEmpty(type), BizDocHistory::getType, type) - .inSql(!StringUtils.isEmpty(uid), BizDocHistory::getUid, uid) - .like(!StringUtils.isEmpty(uname), BizDocHistory::getUname, uname) - .orderByDesc(BizDocHistory::getId); - - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - return new PageResult<>(mapper.selectList(wrapper)); - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/PurchaseInboundService.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/PurchaseInboundService.java deleted file mode 100644 index 1627c38..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/PurchaseInboundService.java +++ /dev/null @@ -1,433 +0,0 @@ -package cn.toesbieya.jxc.doc.service; - -import cn.toesbieya.jxc.api.RecordApi; -import cn.toesbieya.jxc.api.StockApi; -import cn.toesbieya.jxc.common.exception.JsonResultException; -import cn.toesbieya.jxc.common.model.entity.*; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.common.util.Util; -import cn.toesbieya.jxc.doc.enumeration.DocFinishEnum; -import cn.toesbieya.jxc.doc.enumeration.DocHistoryEnum; -import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum; -import cn.toesbieya.jxc.doc.mapper.*; -import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate; -import cn.toesbieya.jxc.doc.model.vo.PurchaseInboundExport; -import cn.toesbieya.jxc.doc.model.vo.PurchaseInboundSearch; -import cn.toesbieya.jxc.doc.model.vo.PurchaseInboundVo; -import cn.toesbieya.jxc.doc.util.DocUtil; -import cn.toesbieya.jxc.web.common.annoation.Lock; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import cn.toesbieya.jxc.web.common.model.vo.PageResult; -import cn.toesbieya.jxc.web.common.util.ExcelUtil; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.github.pagehelper.PageHelper; -import org.apache.dubbo.config.annotation.Reference; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; - -@Service -public class PurchaseInboundService { - @Resource - private PurchaseInboundMapper mainMapper; - @Resource - private PurchaseInboundSubMapper subMapper; - @Resource - private PurchaseOrderMapper orderMapper; - @Resource - private PurchaseOrderSubMapper orderSubMapper; - @Resource - private DocHistoryMapper historyMapper; - @Reference - private StockApi stockApi; - @Reference - private RecordApi recordApi; - - //组装子表、附件列表的数据 - public PurchaseInboundVo getById(String id) { - BizPurchaseInbound main = mainMapper.selectById(id); - - if (main == null) return null; - - PurchaseInboundVo vo = new PurchaseInboundVo(main); - - vo.setData(getSubById(id)); - vo.setImageList(recordApi.getAttachmentByPid(id)); - - return vo; - } - - //根据主表ID获取子表 - public List getSubById(String id) { - return subMapper.selectList( - Wrappers.lambdaQuery(BizPurchaseInboundSub.class) - .eq(BizPurchaseInboundSub::getPid, id) - ); - } - - public PageResult search(PurchaseInboundSearch vo) { - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - return new PageResult<>(mainMapper.selectList(getSearchCondition(vo))); - } - - public void export(PurchaseInboundSearch vo, HttpServletResponse response) throws Exception { - List list = mainMapper.export(getSearchCondition(vo)); - ExcelUtil.exportSimply(list, response, "采购入库单导出"); - } - - @UserAction("'添加采购入库单'") - @Transactional(rollbackFor = Exception.class) - public R add(PurchaseInboundVo doc) { - return addMain(doc); - } - - @UserAction("'修改采购入库单'+#doc.id") - @Lock("#doc.id") - @Transactional(rollbackFor = Exception.class) - public R update(PurchaseInboundVo doc) { - return updateMain(doc); - } - - @UserAction("'提交采购入库单'+#doc.id") - @Lock("#doc.id") - @Transactional(rollbackFor = Exception.class) - public R commit(PurchaseInboundVo doc) { - boolean isFirstCreate = StringUtils.isEmpty(doc.getId()); - R result = isFirstCreate ? addMain(doc) : updateMain(doc); - - if (result.isSuccess()) { - historyMapper.insert( - BizDocHistory.builder() - .pid(doc.getId()) - .type(DocHistoryEnum.COMMIT.getCode()) - .uid(doc.getCid()) - .uname(doc.getCname()) - .statusBefore(DocStatusEnum.DRAFT.getCode()) - .statusAfter(DocStatusEnum.WAIT_VERIFY.getCode()) - .time(System.currentTimeMillis()) - .build() - ); - result.setMsg("提交成功"); - } - else result.setMsg("提交失败," + result.getMsg()); - - return result; - } - - @UserAction("'撤回采购入库单'+#vo.id") - @Lock("#vo.id") - @Transactional(rollbackFor = Exception.class) - public R withdraw(DocStatusUpdate vo, UserVo user) { - String id = vo.getId(); - String info = vo.getInfo(); - - if (rejectById(id) < 1) { - return R.fail("撤回失败,请刷新重试"); - } - - historyMapper.insert( - BizDocHistory.builder() - .pid(id) - .type(DocHistoryEnum.WITHDRAW.getCode()) - .uid(user.getId()) - .uname(user.getNickName()) - .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) - .statusAfter(DocStatusEnum.DRAFT.getCode()) - .time(System.currentTimeMillis()) - .info(info) - .build() - ); - - return R.success("撤回成功"); - } - - @UserAction("'通过采购入库单'+#vo.id") - @Lock({"#vo.pid", "#vo.id"}) - @Transactional(rollbackFor = Exception.class) - public R pass(DocStatusUpdate vo, UserVo user) { - String id = vo.getId(); - String info = vo.getInfo(); - String pid = vo.getPid(); - long now = System.currentTimeMillis(); - - //检查采购订单状态、入库商品是否符合订单要求 - List subList = getSubById(id); - String err = checkOrder(pid, subList); - if (err != null) return R.fail("通过失败," + err); - - if (1 > mainMapper.update( - null, - Wrappers.lambdaUpdate(BizPurchaseInbound.class) - .set(BizPurchaseInbound::getStatus, DocStatusEnum.VERIFIED.getCode()) - .set(BizPurchaseInbound::getVid, user.getId()) - .set(BizPurchaseInbound::getVname, user.getNickName()) - .set(BizPurchaseInbound::getVtime, now) - .eq(BizPurchaseInbound::getId, id) - .eq(BizPurchaseInbound::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) - )) { - return R.fail("通过失败,请刷新重试"); - } - - //修改采购订单完成情况、子表的未入库数量 - List stockList = new ArrayList<>(); - DocFinishEnum finish = DocFinishEnum.FINISHED; - - List orderSubList = getOrderSubListByPid(pid); - - //生成需要入库的商品列表 - for (BizPurchaseOrderSub orderSub : orderSubList) { - if (orderSub.getRemainNum().equals(BigDecimal.ZERO)) { - continue; - } - - BizPurchaseInboundSub inboundSub = Util.find(subList, i -> i.getCid().equals(orderSub.getCid())); - - if (inboundSub == null) continue; - - stockList.add( - BizStock.builder() - .cid(inboundSub.getCid()).cname(inboundSub.getCname()).num(inboundSub.getNum()) - .price(orderSub.getPrice()).ctime(now).cgddid(pid).cgrkid(id) - .build() - ); - - BigDecimal gap = orderSub.getRemainNum().subtract(inboundSub.getNum()); - - //如果有任意一个采购商品的remainNum大于采购商品的num,则完成情况为进行中,否则为已完成 - if (gap.compareTo(BigDecimal.ZERO) > 0) { - finish = DocFinishEnum.UNDERWAY; - } - - //更新采购订单子表的remainNum - orderSubMapper.update( - null, - Wrappers.lambdaUpdate(BizPurchaseOrderSub.class) - .set(BizPurchaseOrderSub::getRemainNum, gap) - .eq(BizPurchaseOrderSub::getId, orderSub.getId()) - ); - } - - //更新采购订单完成情况 - if (1 > orderMapper.update( - null, - Wrappers.lambdaUpdate(BizPurchaseOrder.class) - .set(BizPurchaseOrder::getFinish, finish.getCode()) - .set(BizPurchaseOrder::getFtime, finish == DocFinishEnum.FINISHED ? now : null) - .eq(BizPurchaseOrder::getId, pid) - .eq(BizPurchaseOrder::getStatus, DocStatusEnum.VERIFIED.getCode()) - )) { - throw new JsonResultException("通过失败,采购订单状态有误,请刷新重试"); - } - - //插入库存 - stockApi.inbound(stockList); - - historyMapper.insert( - BizDocHistory - .builder() - .pid(id).type(DocHistoryEnum.PASS.getCode()) - .uid(user.getId()).uname(user.getNickName()) - .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) - .statusAfter(DocStatusEnum.VERIFIED.getCode()) - .time(now).info(info) - .build() - ); - - return R.success("通过成功"); - } - - @UserAction("'驳回采购入库单'+#vo.id") - @Lock("#vo.id") - @Transactional(rollbackFor = Exception.class) - public R reject(DocStatusUpdate vo, UserVo user) { - String id = vo.getId(); - String info = vo.getInfo(); - - if (rejectById(id) < 1) { - return R.fail("驳回失败,请刷新重试"); - } - - historyMapper.insert( - BizDocHistory.builder() - .pid(id) - .type(DocHistoryEnum.REJECT.getCode()) - .uid(user.getId()) - .uname(user.getNickName()) - .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) - .statusAfter(DocStatusEnum.DRAFT.getCode()) - .time(System.currentTimeMillis()) - .info(info) - .build() - ); - - return R.success("驳回成功"); - } - - @UserAction("'删除采购入库单'+#id") - @Lock("#id") - @Transactional(rollbackFor = Exception.class) - public R del(String id) { - if (mainMapper.deleteById(id) < 1) { - return R.fail("删除失败"); - } - - //同时删除子表和附件 - delSubByPid(id); - recordApi.delAttachmentByPid(id); - - return R.success("删除成功"); - } - - private R addMain(PurchaseInboundVo doc) { - List subList = doc.getData(); - - String err = checkOrder(doc.getPid(), subList); - if (err != null) return R.fail(err); - - String id = DocUtil.getDocId("CGRK"); - - if (StringUtils.isEmpty(id)) { - return R.fail("获取单号失败"); - } - - doc.setId(id); - - //设置子表的pid - subList.forEach(sub -> sub.setPid(id)); - - mainMapper.insert(doc); - subMapper.insertBatch(subList); - - //插入附件 - List uploadImageList = doc.getUploadImageList(); - Long time = System.currentTimeMillis(); - for (RecAttachment attachment : uploadImageList) { - attachment.setPid(id); - attachment.setTime(time); - } - recordApi.handleAttachment(uploadImageList, null); - - return R.success("添加成功", id); - } - - private R updateMain(PurchaseInboundVo doc) { - String docId = doc.getId(); - - String err = checkUpdateStatus(docId); - if (err == null) err = checkOrder(doc.getPid(), doc.getData()); - if (err != null) return R.fail(err); - - //更新主表 - mainMapper.update( - null, - Wrappers.lambdaUpdate(BizPurchaseInbound.class) - .set(BizPurchaseInbound::getPid, doc.getPid()) - .set(BizPurchaseInbound::getStatus, doc.getStatus()) - .set(BizPurchaseInbound::getRemark, doc.getRemark()) - .eq(BizPurchaseInbound::getId, docId) - ); - - //删除旧的子表 - delSubByPid(docId); - - //插入新的子表 - subMapper.insertBatch(doc.getData()); - - //附件增删 - List uploadImageList = doc.getUploadImageList(); - Long time = System.currentTimeMillis(); - for (RecAttachment attachment : uploadImageList) { - attachment.setPid(docId); - attachment.setTime(time); - } - recordApi.handleAttachment(uploadImageList, doc.getDeleteImageList()); - - return R.success("修改成功"); - } - - //只有拟定状态的单据才能修改 - private String checkUpdateStatus(String id) { - BizPurchaseInbound doc = mainMapper.selectById(id); - if (doc == null || !doc.getStatus().equals(DocStatusEnum.DRAFT.getCode())) { - return "单据状态已更新,请刷新后重试"; - } - return null; - } - - //检查采购订单是否已审核、未完成、还有未入库的商品 - private String checkOrder(String pid, List docSubList) { - BizPurchaseOrder order = orderMapper.selectById(pid); - - if (order == null - || !order.getStatus().equals(DocStatusEnum.VERIFIED.getCode()) - || order.getFinish().equals(DocFinishEnum.FINISHED.getCode()) - ) { - return "采购订单状态异常"; - } - - List orderSubList = getOrderSubListByPid(pid); - - if (CollectionUtils.isEmpty(orderSubList)) return "没有找到采购订单的数据"; - - //判断入库商品是否合法 - for (BizPurchaseInboundSub inboundSub : docSubList) { - BizPurchaseOrderSub orderSub = Util.find(orderSubList, t -> t.getCid().equals(inboundSub.getCid())); - - if (orderSub == null) { - return String.format("入库商品【%s】不在采购订单中", inboundSub.getCname()); - } - if (orderSub.getRemainNum().compareTo(BigDecimal.ZERO) <= 0) { - return String.format("入库商品【%s】已全部入库", inboundSub.getCname()); - } - if (orderSub.getRemainNum().compareTo(inboundSub.getNum()) < 0) { - return String.format("入库商品【%s】的数量超出订单数量", inboundSub.getCname()); - } - } - - return null; - } - - //根据主表ID删除子表 - private void delSubByPid(String pid) { - subMapper.delete( - Wrappers.lambdaQuery(BizPurchaseInboundSub.class) - .eq(BizPurchaseInboundSub::getPid, pid) - ); - } - - //驳回单据,只有等待审核单据的才能被驳回 - private int rejectById(String id) { - return mainMapper.update( - null, - Wrappers.lambdaUpdate(BizPurchaseInbound.class) - .set(BizPurchaseInbound::getStatus, DocStatusEnum.DRAFT.getCode()) - .eq(BizPurchaseInbound::getId, id) - .eq(BizPurchaseInbound::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) - ); - } - - private List getOrderSubListByPid(String pid) { - return orderSubMapper.selectList( - Wrappers.lambdaQuery(BizPurchaseOrderSub.class) - .eq(BizPurchaseOrderSub::getPid, pid) - ); - } - - private Wrapper getSearchCondition(PurchaseInboundSearch vo) { - String pid = vo.getPid(); - String pidFuzzy = vo.getPidFuzzy(); - - return DocUtil.baseCondition(BizPurchaseInbound.class, vo) - .eq(pid != null, BizPurchaseInbound::getPid, pid) - .like(!StringUtils.isEmpty(pidFuzzy), BizPurchaseInbound::getPid, pidFuzzy); - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/PurchaseOrderService.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/PurchaseOrderService.java deleted file mode 100644 index 0104dc7..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/PurchaseOrderService.java +++ /dev/null @@ -1,337 +0,0 @@ -package cn.toesbieya.jxc.doc.service; - -import cn.toesbieya.jxc.api.RecordApi; -import cn.toesbieya.jxc.common.model.entity.BizDocHistory; -import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrder; -import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrderSub; -import cn.toesbieya.jxc.common.model.entity.RecAttachment; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.doc.enumeration.DocHistoryEnum; -import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum; -import cn.toesbieya.jxc.doc.mapper.DocHistoryMapper; -import cn.toesbieya.jxc.doc.mapper.PurchaseOrderMapper; -import cn.toesbieya.jxc.doc.mapper.PurchaseOrderSubMapper; -import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate; -import cn.toesbieya.jxc.doc.model.vo.PurchaseOrderExport; -import cn.toesbieya.jxc.doc.model.vo.PurchaseOrderSearch; -import cn.toesbieya.jxc.doc.model.vo.PurchaseOrderVo; -import cn.toesbieya.jxc.doc.util.DocUtil; -import cn.toesbieya.jxc.web.common.annoation.Lock; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import cn.toesbieya.jxc.web.common.model.vo.PageResult; -import cn.toesbieya.jxc.web.common.util.ExcelUtil; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.github.pagehelper.PageHelper; -import org.apache.dubbo.config.annotation.Reference; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.util.List; - -@Service -public class PurchaseOrderService { - @Resource - private PurchaseOrderMapper mainMapper; - @Resource - private PurchaseOrderSubMapper subMapper; - @Resource - private DocHistoryMapper historyMapper; - @Reference - private RecordApi recordApi; - - //组装子表、附件列表的数据 - public PurchaseOrderVo getById(String id) { - BizPurchaseOrder main = mainMapper.selectById(id); - - if (main == null) return null; - - PurchaseOrderVo vo = new PurchaseOrderVo(main); - - vo.setData(getSubById(id)); - vo.setImageList(recordApi.getAttachmentByPid(id)); - - return vo; - } - - //根据主表ID获取子表 - public List getSubById(String id) { - return subMapper.selectList( - Wrappers.lambdaQuery(BizPurchaseOrderSub.class) - .eq(BizPurchaseOrderSub::getPid, id) - ); - } - - public PageResult search(PurchaseOrderSearch vo) { - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - return new PageResult<>(mainMapper.selectList(getSearchCondition(vo))); - } - - public void export(PurchaseOrderSearch vo, HttpServletResponse response) throws Exception { - List list = mainMapper.export(getSearchCondition(vo)); - ExcelUtil.exportSimply(list, response, "采购订单导出"); - } - - @UserAction("'添加采购订单'") - @Transactional(rollbackFor = Exception.class) - public R add(PurchaseOrderVo doc) { - return addMain(doc); - } - - @UserAction("'修改采购订单'+#doc.id") - @Lock("#doc.id") - @Transactional(rollbackFor = Exception.class) - public R update(PurchaseOrderVo doc) { - return updateMain(doc); - } - - @UserAction("'提交采购订单'+#doc.id") - @Lock("#doc.id") - @Transactional(rollbackFor = Exception.class) - public R commit(PurchaseOrderVo doc) { - boolean isFirstCreate = StringUtils.isEmpty(doc.getId()); - R result = isFirstCreate ? addMain(doc) : updateMain(doc); - - if (result.isSuccess()) { - historyMapper.insert( - BizDocHistory.builder() - .pid(doc.getId()) - .type(DocHistoryEnum.COMMIT.getCode()) - .uid(doc.getCid()) - .uname(doc.getCname()) - .statusBefore(DocStatusEnum.DRAFT.getCode()) - .statusAfter(DocStatusEnum.WAIT_VERIFY.getCode()) - .time(System.currentTimeMillis()) - .build() - ); - result.setMsg("提交成功"); - } - else result.setMsg("提交失败," + result.getMsg()); - - return result; - } - - @UserAction("'撤回采购订单'+#vo.id") - @Lock("#vo.id") - @Transactional(rollbackFor = Exception.class) - public R withdraw(DocStatusUpdate vo, UserVo user) { - String id = vo.getId(); - String info = vo.getInfo(); - - if (rejectById(id) < 1) { - return R.fail("撤回失败,请刷新重试"); - } - - historyMapper.insert( - BizDocHistory.builder() - .pid(id) - .type(DocHistoryEnum.WITHDRAW.getCode()) - .uid(user.getId()) - .uname(user.getNickName()) - .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) - .statusAfter(DocStatusEnum.DRAFT.getCode()) - .time(System.currentTimeMillis()) - .info(info) - .build() - ); - - return R.success("撤回成功"); - } - - @UserAction("'通过采购订单'+#vo.id") - @Lock("#vo.id") - @Transactional(rollbackFor = Exception.class) - public R pass(DocStatusUpdate vo, UserVo user) { - String id = vo.getId(); - String info = vo.getInfo(); - long now = System.currentTimeMillis(); - - if (0 == mainMapper.update( - null, - Wrappers.lambdaUpdate(BizPurchaseOrder.class) - .set(BizPurchaseOrder::getStatus, DocStatusEnum.VERIFIED.getCode()) - .set(BizPurchaseOrder::getVid, user.getId()) - .set(BizPurchaseOrder::getVname, user.getNickName()) - .set(BizPurchaseOrder::getVtime, now) - .eq(BizPurchaseOrder::getId, id) - .eq(BizPurchaseOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) - )) { - return R.fail("通过失败,请刷新重试"); - } - - historyMapper.insert( - BizDocHistory.builder() - .pid(id) - .type(DocHistoryEnum.PASS.getCode()) - .uid(user.getId()) - .uname(user.getNickName()) - .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) - .statusAfter(DocStatusEnum.VERIFIED.getCode()) - .time(now) - .info(info) - .build() - ); - - return R.success("通过成功"); - } - - @UserAction("'驳回采购订单'+#vo.id") - @Lock("#vo.id") - @Transactional(rollbackFor = Exception.class) - public R reject(DocStatusUpdate vo, UserVo user) { - String id = vo.getId(); - String info = vo.getInfo(); - - if (rejectById(id) < 1) { - return R.fail("驳回失败,请刷新重试"); - } - - historyMapper.insert( - BizDocHistory.builder() - .pid(id) - .type(DocHistoryEnum.REJECT.getCode()) - .uid(user.getId()) - .uname(user.getNickName()) - .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) - .statusAfter(DocStatusEnum.DRAFT.getCode()) - .time(System.currentTimeMillis()) - .info(info) - .build() - ); - - return R.success("驳回成功"); - } - - @UserAction("'删除采购订单'+#id") - @Lock("#id") - @Transactional(rollbackFor = Exception.class) - public R del(String id) { - if (mainMapper.deleteById(id) < 1) { - return R.fail("删除失败"); - } - - //同时删除子表和附件 - delSubByPid(id); - recordApi.delAttachmentByPid(id); - - return R.success("删除成功"); - } - - private R addMain(PurchaseOrderVo doc) { - String id = DocUtil.getDocId("CGDD"); - - if (StringUtils.isEmpty(id)) { - return R.fail("获取单号失败"); - } - - doc.setId(id); - - List subList = doc.getData(); - - //设置子表的pid、剩余未出库数量 - for (BizPurchaseOrderSub sub : subList) { - sub.setPid(id); - sub.setRemainNum(sub.getNum()); - } - - //插入主表和子表 - mainMapper.insert(doc); - subMapper.insertBatch(subList); - - //插入附件 - List uploadImageList = doc.getUploadImageList(); - Long time = System.currentTimeMillis(); - for (RecAttachment attachment : uploadImageList) { - attachment.setPid(id); - attachment.setTime(time); - } - recordApi.handleAttachment(uploadImageList, null); - - return R.success("添加成功", id); - } - - private R updateMain(PurchaseOrderVo doc) { - String docId = doc.getId(); - - String err = checkUpdateStatus(docId); - if (err != null) return R.fail(err); - - //更新主表 - mainMapper.update( - null, - Wrappers.lambdaUpdate(BizPurchaseOrder.class) - .set(BizPurchaseOrder::getSid, doc.getSid()) - .set(BizPurchaseOrder::getSname, doc.getSname()) - .set(BizPurchaseOrder::getStatus, doc.getStatus()) - .set(BizPurchaseOrder::getTotal, doc.getTotal()) - .set(BizPurchaseOrder::getRemark, doc.getRemark()) - .eq(BizPurchaseOrder::getId, docId) - ); - - //删除旧的子表 - delSubByPid(docId); - - //插入新的子表 - List subList = doc.getData(); - subList.forEach(sub -> sub.setRemainNum(sub.getNum())); - subMapper.insertBatch(subList); - - //附件增删 - List uploadImageList = doc.getUploadImageList(); - Long time = System.currentTimeMillis(); - for (RecAttachment attachment : uploadImageList) { - attachment.setPid(docId); - attachment.setTime(time); - } - recordApi.handleAttachment(uploadImageList, doc.getDeleteImageList()); - - return R.success("修改成功"); - } - - //只有拟定状态的单据才能修改 - private String checkUpdateStatus(String id) { - BizPurchaseOrder doc = mainMapper.selectById(id); - if (doc == null || !doc.getStatus().equals(DocStatusEnum.DRAFT.getCode())) { - return "单据状态已更新,请刷新后重试"; - } - return null; - } - - //根据主表ID删除子表 - private void delSubByPid(String pid) { - subMapper.delete( - Wrappers.lambdaQuery(BizPurchaseOrderSub.class) - .eq(BizPurchaseOrderSub::getPid, pid) - ); - } - - //驳回单据,只有等待审核单据的才能被驳回 - private int rejectById(String id) { - return mainMapper.update( - null, - Wrappers.lambdaUpdate(BizPurchaseOrder.class) - .set(BizPurchaseOrder::getStatus, DocStatusEnum.DRAFT.getCode()) - .eq(BizPurchaseOrder::getId, id) - .eq(BizPurchaseOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) - ); - } - - private Wrapper getSearchCondition(PurchaseOrderSearch vo) { - Integer sid = vo.getSid(); - String sname = vo.getSname(); - String finish = vo.getFinish(); - Long ftimeStart = vo.getFtimeStart(); - Long ftimeEnd = vo.getFtimeEnd(); - - return DocUtil.baseCondition(BizPurchaseOrder.class, vo) - .eq(sid != null, BizPurchaseOrder::getSid, sid) - .like(!StringUtils.isEmpty(sname), BizPurchaseOrder::getSname, sname) - .inSql(!StringUtils.isEmpty(finish), BizPurchaseOrder::getFinish, finish) - .ge(ftimeStart != null, BizPurchaseOrder::getCtime, ftimeStart) - .le(ftimeEnd != null, BizPurchaseOrder::getCtime, ftimeEnd); - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/SellOrderService.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/SellOrderService.java deleted file mode 100644 index e51b50f..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/SellOrderService.java +++ /dev/null @@ -1,371 +0,0 @@ -package cn.toesbieya.jxc.doc.service; - -import cn.toesbieya.jxc.api.RecordApi; -import cn.toesbieya.jxc.api.StockApi; -import cn.toesbieya.jxc.common.model.entity.*; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.StockSearch; -import cn.toesbieya.jxc.common.model.vo.StockSearchResult; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.doc.enumeration.DocHistoryEnum; -import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum; -import cn.toesbieya.jxc.doc.mapper.DocHistoryMapper; -import cn.toesbieya.jxc.doc.mapper.SellOrderMapper; -import cn.toesbieya.jxc.doc.mapper.SellOrderSubMapper; -import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate; -import cn.toesbieya.jxc.doc.model.vo.SellOrderExport; -import cn.toesbieya.jxc.doc.model.vo.SellOrderSearch; -import cn.toesbieya.jxc.doc.model.vo.SellOrderVo; -import cn.toesbieya.jxc.doc.util.DocUtil; -import cn.toesbieya.jxc.web.common.annoation.Lock; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import cn.toesbieya.jxc.web.common.model.vo.PageResult; -import cn.toesbieya.jxc.web.common.util.ExcelUtil; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.github.pagehelper.PageHelper; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; - -@Service -public class SellOrderService { - @Resource - private SellOrderMapper mainMapper; - @Resource - private SellOrderSubMapper subMapper; - @Resource - private DocHistoryMapper historyMapper; - @Resource - private StockApi stockApi; - @Resource - private RecordApi recordApi; - - //组装子表、附件列表的数据 - public SellOrderVo getById(String id) { - BizSellOrder main = mainMapper.selectById(id); - - if (main == null) return null; - - SellOrderVo vo = new SellOrderVo(main); - - vo.setData(getSubById(id)); - vo.setImageList(recordApi.getAttachmentByPid(id)); - - return vo; - } - - //根据主表ID获取子表 - public List getSubById(String id) { - return subMapper.selectList( - Wrappers.lambdaQuery(BizSellOrderSub.class) - .eq(BizSellOrderSub::getPid, id) - ); - } - - public PageResult search(SellOrderSearch vo) { - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - return new PageResult<>(mainMapper.selectList(getSearchCondition(vo))); - } - - public void export(SellOrderSearch vo, HttpServletResponse response) throws Exception { - List list = mainMapper.export(getSearchCondition(vo)); - ExcelUtil.exportSimply(list, response, "销售订单导出"); - } - - @UserAction("'添加销售订单'") - @Transactional(rollbackFor = Exception.class) - public R add(SellOrderVo doc) { - return addMain(doc); - } - - @UserAction("'修改销售订单'+#doc.id") - @Lock("#doc.id") - @Transactional(rollbackFor = Exception.class) - public R update(SellOrderVo doc) { - return updateMain(doc); - } - - @UserAction("'提交销售订单'+#doc.id") - @Lock("#doc.id") - @Transactional(rollbackFor = Exception.class) - public R commit(SellOrderVo doc) { - boolean isFirstCreate = StringUtils.isEmpty(doc.getId()); - R result = isFirstCreate ? addMain(doc) : updateMain(doc); - - if (result.isSuccess()) { - historyMapper.insert( - BizDocHistory.builder() - .pid(doc.getId()) - .type(DocHistoryEnum.COMMIT.getCode()) - .uid(doc.getCid()) - .uname(doc.getCname()) - .statusBefore(DocStatusEnum.DRAFT.getCode()) - .statusAfter(DocStatusEnum.WAIT_VERIFY.getCode()) - .time(System.currentTimeMillis()) - .build() - ); - result.setMsg("提交成功"); - } - else result.setMsg("提交失败," + result.getMsg()); - - return result; - } - - @UserAction("'撤回销售订单'+#vo.id") - @Lock("#vo.id") - @Transactional(rollbackFor = Exception.class) - public R withdraw(DocStatusUpdate vo, UserVo user) { - String id = vo.getId(); - String info = vo.getInfo(); - - if (rejectById(id) < 1) { - return R.fail("撤回失败,请刷新重试"); - } - - historyMapper.insert( - BizDocHistory.builder() - .pid(id) - .type(DocHistoryEnum.WITHDRAW.getCode()) - .uid(user.getId()) - .uname(user.getNickName()) - .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) - .statusAfter(DocStatusEnum.DRAFT.getCode()) - .time(System.currentTimeMillis()) - .info(info) - .build() - ); - - return R.success("撤回成功"); - } - - @UserAction("'通过销售订单'+#vo.id") - @Lock("#vo.id") - @Transactional(rollbackFor = Exception.class) - public R pass(DocStatusUpdate vo, UserVo user) { - String id = vo.getId(); - String info = vo.getInfo(); - long now = System.currentTimeMillis(); - - if (0 == mainMapper.update( - null, - Wrappers.lambdaUpdate(BizSellOrder.class) - .set(BizSellOrder::getStatus, DocStatusEnum.VERIFIED.getCode()) - .set(BizSellOrder::getVid, user.getId()) - .set(BizSellOrder::getVname, user.getNickName()) - .set(BizSellOrder::getVtime, now) - .eq(BizSellOrder::getId, id) - .eq(BizSellOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) - )) { - return R.fail("通过失败,请刷新重试"); - } - - historyMapper.insert( - BizDocHistory.builder() - .pid(id) - .type(DocHistoryEnum.PASS.getCode()) - .uid(user.getId()) - .uname(user.getNickName()) - .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) - .statusAfter(DocStatusEnum.VERIFIED.getCode()) - .time(now) - .info(info) - .build() - ); - - return R.success("通过成功"); - } - - @UserAction("'驳回销售订单'+#vo.id") - @Lock("#vo.id") - @Transactional(rollbackFor = Exception.class) - public R reject(DocStatusUpdate vo, UserVo user) { - String id = vo.getId(); - String info = vo.getInfo(); - - if (rejectById(id) < 1) { - return R.fail("驳回失败,请刷新重试"); - } - - historyMapper.insert( - BizDocHistory.builder() - .pid(id) - .type(DocHistoryEnum.REJECT.getCode()) - .uid(user.getId()) - .uname(user.getNickName()) - .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) - .statusAfter(DocStatusEnum.DRAFT.getCode()) - .time(System.currentTimeMillis()) - .info(info) - .build() - ); - - return R.success("驳回成功"); - } - - @UserAction("'删除销售订单'+#id") - @Lock("#id") - @Transactional(rollbackFor = Exception.class) - public R del(String id) { - if (mainMapper.deleteById(id) < 1) { - return R.fail("删除失败"); - } - - //同时删除子表和附件 - delSubByPid(id); - recordApi.delAttachmentByPid(id); - - return R.success("删除成功"); - } - - private R addMain(SellOrderVo doc) { - String err = checkStock(doc.getData()); - if (err != null) return R.fail(err); - - String id = DocUtil.getDocId("XSDD"); - - if (StringUtils.isEmpty(id)) { - return R.fail("获取单号失败"); - } - - doc.setId(id); - - List subList = doc.getData(); - - for (BizSellOrderSub sub : subList) { - sub.setPid(id); - sub.setRemainNum(sub.getNum()); - } - - //插入主表和子表 - mainMapper.insert(doc); - subMapper.insertBatch(subList); - - //插入附件 - List uploadImageList = doc.getUploadImageList(); - Long time = System.currentTimeMillis(); - for (RecAttachment attachment : uploadImageList) { - attachment.setPid(id); - attachment.setTime(time); - } - recordApi.handleAttachment(uploadImageList, null); - - return R.success("添加成功", id); - } - - private R updateMain(SellOrderVo doc) { - String docId = doc.getId(); - - String err = checkUpdateStatus(docId); - if (err == null) err = checkStock(doc.getData()); - if (err != null) return R.fail(err); - - //更新主表 - mainMapper.update( - null, - Wrappers.lambdaUpdate(BizSellOrder.class) - .set(BizSellOrder::getCustomerId, doc.getCustomerId()) - .set(BizSellOrder::getCustomerName, doc.getCustomerName()) - .set(BizSellOrder::getStatus, doc.getStatus()) - .set(BizSellOrder::getTotal, doc.getTotal()) - .set(BizSellOrder::getRemark, doc.getRemark()) - .eq(BizSellOrder::getId, docId) - ); - - //删除旧的子表 - delSubByPid(docId); - - //插入新的子表 - List subList = doc.getData(); - subList.forEach(sub -> sub.setRemainNum(sub.getNum())); - subMapper.insertBatch(subList); - - //附件增删 - List uploadImageList = doc.getUploadImageList(); - Long time = System.currentTimeMillis(); - for (RecAttachment attachment : uploadImageList) { - attachment.setPid(docId); - attachment.setTime(time); - } - recordApi.handleAttachment(uploadImageList, doc.getDeleteImageList()); - - return R.success("修改成功"); - } - - //只有拟定状态的单据才能修改 - private String checkUpdateStatus(String id) { - BizSellOrder doc = mainMapper.selectById(id); - if (doc == null || !doc.getStatus().equals(DocStatusEnum.DRAFT.getCode())) { - return "单据状态已更新,请刷新后重试"; - } - return null; - } - - //添加、修改、提交、审核通过都必须检验库存是否足够 - private String checkStock(List list) { - List cids = list.stream().map(i -> String.valueOf(i.getCid())).collect(Collectors.toList()); - StockSearch vo = new StockSearch(); - vo.setCids(String.join(",", cids)); - List stockList = stockApi.getByCondition(vo); - - //list长度必然大于等于stockList长度 - int subListLength = list.size(); - int stockListLength = stockList.size(); - if (subListLength != stockListLength) { - BizSellOrderSub sub = list.get(stockListLength); - return String.format("商品【%s】库存不足", sub.getCname()); - } - - list.sort(Comparator.comparing(BizDocSub::getCid)); - stockList.sort(Comparator.comparing(StockSearchResult::getCid)); - for (int i = 0; i < subListLength; i++) { - BizSellOrderSub sub = list.get(i); - StockSearchResult stock = stockList.get(i); - if (sub.getNum().compareTo(stock.getTotalNum()) > 0) { - return String.format("商品【%s】库存不足", sub.getCname()); - } - } - - return null; - } - - //根据主表ID删除子表 - private void delSubByPid(String pid) { - subMapper.delete( - Wrappers.lambdaQuery(BizSellOrderSub.class) - .eq(BizSellOrderSub::getPid, pid) - ); - } - - //驳回单据,只有等待审核单据的才能被驳回 - private int rejectById(String id) { - return mainMapper.update( - null, - Wrappers.lambdaUpdate(BizSellOrder.class) - .set(BizSellOrder::getStatus, DocStatusEnum.DRAFT.getCode()) - .eq(BizSellOrder::getId, id) - .eq(BizSellOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) - ); - } - - private Wrapper getSearchCondition(SellOrderSearch vo) { - Integer customerId = vo.getCustomerId(); - String customerName = vo.getCustomerName(); - String finish = vo.getFinish(); - Long ftimeStart = vo.getFtimeStart(); - Long ftimeEnd = vo.getFtimeEnd(); - - return DocUtil.baseCondition(BizSellOrder.class, vo) - .eq(customerId != null, BizSellOrder::getCustomerId, customerId) - .like(!StringUtils.isEmpty(customerName), BizSellOrder::getCustomerName, customerName) - .inSql(!StringUtils.isEmpty(finish), BizSellOrder::getFinish, finish) - .ge(ftimeStart != null, BizSellOrder::getCtime, ftimeStart) - .le(ftimeEnd != null, BizSellOrder::getCtime, ftimeEnd); - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/SellOutboundService.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/SellOutboundService.java deleted file mode 100644 index f363951..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/SellOutboundService.java +++ /dev/null @@ -1,474 +0,0 @@ -package cn.toesbieya.jxc.doc.service; - -import cn.toesbieya.jxc.api.RecordApi; -import cn.toesbieya.jxc.api.StockApi; -import cn.toesbieya.jxc.common.exception.JsonResultException; -import cn.toesbieya.jxc.common.model.entity.*; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.StockOutboundVo; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.common.util.Util; -import cn.toesbieya.jxc.doc.enumeration.DocFinishEnum; -import cn.toesbieya.jxc.doc.enumeration.DocHistoryEnum; -import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum; -import cn.toesbieya.jxc.doc.mapper.*; -import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate; -import cn.toesbieya.jxc.doc.model.vo.SellOutboundExport; -import cn.toesbieya.jxc.doc.model.vo.SellOutboundSearch; -import cn.toesbieya.jxc.doc.model.vo.SellOutboundVo; -import cn.toesbieya.jxc.doc.util.DocUtil; -import cn.toesbieya.jxc.web.common.annoation.Lock; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import cn.toesbieya.jxc.web.common.model.vo.PageResult; -import cn.toesbieya.jxc.web.common.util.ExcelUtil; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.github.pagehelper.PageHelper; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -@Service -public class SellOutboundService { - @Resource - private SellOutboundMapper mainMapper; - @Resource - private SellOutboundSubMapper subMapper; - @Resource - private SellOrderMapper orderMapper; - @Resource - private SellOrderSubMapper orderSubMapper; - @Resource - private DocHistoryMapper historyMapper; - @Resource - private StockApi stockApi; - @Resource - private RecordApi recordApi; - - //组装子表、附件列表的数据 - public SellOutboundVo getById(String id) { - BizSellOutbound main = mainMapper.selectById(id); - - if (main == null) return null; - - SellOutboundVo vo = new SellOutboundVo(main); - - vo.setData(getSubById(id)); - vo.setImageList(recordApi.getAttachmentByPid(id)); - - return vo; - } - - //根据主表ID获取子表 - public List getSubById(String id) { - return subMapper.selectList( - Wrappers.lambdaQuery(BizSellOutboundSub.class) - .eq(BizSellOutboundSub::getPid, id) - ); - } - - public PageResult search(SellOutboundSearch vo) { - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - return new PageResult<>(mainMapper.selectList(getSearchCondition(vo))); - } - - public void export(SellOutboundSearch vo, HttpServletResponse response) throws Exception { - List list = mainMapper.export(getSearchCondition(vo)); - ExcelUtil.exportSimply(list, response, "销售出库单导出"); - } - - @UserAction("'添加销售出库单'") - @Transactional(rollbackFor = Exception.class) - public R add(SellOutboundVo doc) { - return addMain(doc); - } - - @UserAction("'修改销售出库单'+#doc.id") - @Lock("#doc.id") - @Transactional(rollbackFor = Exception.class) - public R update(SellOutboundVo doc) { - return updateMain(doc); - } - - @UserAction("'提交销售出库单'+#doc.id") - @Lock("#doc.id") - @Transactional(rollbackFor = Exception.class) - public R commit(SellOutboundVo doc) { - boolean isFirstCreate = StringUtils.isEmpty(doc.getId()); - R result = isFirstCreate ? addMain(doc) : updateMain(doc); - - if (result.isSuccess()) { - historyMapper.insert( - BizDocHistory.builder() - .pid(doc.getId()) - .type(DocHistoryEnum.COMMIT.getCode()) - .uid(doc.getCid()) - .uname(doc.getCname()) - .statusBefore(DocStatusEnum.DRAFT.getCode()) - .statusAfter(DocStatusEnum.WAIT_VERIFY.getCode()) - .time(System.currentTimeMillis()) - .build() - ); - result.setMsg("提交成功"); - } - else result.setMsg("提交失败," + result.getMsg()); - - return result; - } - - @UserAction("'撤回销售出库单'+#vo.id") - @Lock("#vo.id") - @Transactional(rollbackFor = Exception.class) - public R withdraw(DocStatusUpdate vo, UserVo user) { - String id = vo.getId(); - String info = vo.getInfo(); - - if (rejectById(id) < 1) { - return R.fail("撤回失败,请刷新重试"); - } - - historyMapper.insert( - BizDocHistory.builder() - .pid(id) - .type(DocHistoryEnum.WITHDRAW.getCode()) - .uid(user.getId()) - .uname(user.getNickName()) - .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) - .statusAfter(DocStatusEnum.DRAFT.getCode()) - .time(System.currentTimeMillis()) - .info(info) - .build() - ); - - return R.success("撤回成功"); - } - - @UserAction("'通过销售出库单'+#vo.id") - @Lock({"#vo.pid", "#vo.id"}) - @Transactional(rollbackFor = Exception.class) - public R pass(DocStatusUpdate vo, UserVo user) { - String id = vo.getId(); - String info = vo.getInfo(); - String pid = vo.getPid(); - long now = System.currentTimeMillis(); - - List subList = getSubById(vo.getId()); - String err = check(vo.getPid(), subList); - if (err != null) return R.fail("通过失败," + err); - - if (1 > mainMapper.update( - null, - Wrappers.lambdaUpdate(BizSellOutbound.class) - .set(BizSellOutbound::getStatus, DocStatusEnum.VERIFIED.getCode()) - .set(BizSellOutbound::getVid, user.getId()) - .set(BizSellOutbound::getVname, user.getNickName()) - .set(BizSellOutbound::getVtime, now) - .eq(BizSellOutbound::getId, id) - .eq(BizSellOutbound::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) - )) { - return R.fail("通过失败,请刷新重试"); - } - - //按分类分组统计出库数量 - List stockList = new ArrayList<>(); - Map outboundCount = new HashMap<>(); - for (BizSellOutboundSub outboundSub : subList) { - stockList.add(new StockOutboundVo(outboundSub.getSid(), outboundSub.getNum())); - - Integer cid = outboundSub.getCid(); - BigDecimal num = outboundCount.getOrDefault(cid, BigDecimal.ZERO); - outboundCount.put(cid, num.add(outboundSub.getNum())); - } - - //更新销售订单子表的剩余未出库数量,记录销售订单的完成情况 - DocFinishEnum finish = DocFinishEnum.FINISHED; - List orderSubList = getOrderSubListByPid(pid); - - for (BizSellOrderSub orderSub : orderSubList) { - if (orderSub.getRemainNum().equals(BigDecimal.ZERO)) { - continue; - } - - BigDecimal outboundNum = outboundCount.get(orderSub.getCid()); - - if (outboundNum == null) continue; - - BigDecimal gap = orderSub.getRemainNum().subtract(outboundNum); - - //如果有任意一个采购商品的remainNum大于采购商品的num,则完成情况为进行中,否则为已完成 - if (gap.compareTo(BigDecimal.ZERO) > 0) { - finish = DocFinishEnum.UNDERWAY; - } - - //更新采购订单子表的remainNum - orderSubMapper.update( - null, - Wrappers.lambdaUpdate(BizSellOrderSub.class) - .set(BizSellOrderSub::getRemainNum, gap) - .eq(BizSellOrderSub::getId, orderSub.getId()) - ); - } - - //更新销售订单完成情况 - if (1 > orderMapper.update( - null, - Wrappers.lambdaUpdate(BizSellOrder.class) - .set(BizSellOrder::getFinish, finish.getCode()) - .set(BizSellOrder::getFtime, finish == DocFinishEnum.FINISHED ? now : null) - .eq(BizSellOrder::getId, pid) - .eq(BizSellOrder::getStatus, DocStatusEnum.VERIFIED.getCode()) - )) { - throw new JsonResultException("通过失败,销售订单状态有误,请刷新重试"); - } - - //出库 - stockApi.outbound(stockList); - - historyMapper.insert( - BizDocHistory.builder() - .pid(id) - .type(DocHistoryEnum.PASS.getCode()) - .uid(user.getId()) - .uname(user.getNickName()) - .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) - .statusAfter(DocStatusEnum.VERIFIED.getCode()) - .time(now) - .info(info) - .build() - ); - - return R.success("通过成功"); - } - - @UserAction("'驳回销售出库单'+#vo.id") - @Lock("#vo.id") - @Transactional(rollbackFor = Exception.class) - public R reject(DocStatusUpdate vo, UserVo user) { - String id = vo.getId(); - String info = vo.getInfo(); - - if (rejectById(id) < 1) { - return R.fail("驳回失败,请刷新重试"); - } - - historyMapper.insert( - BizDocHistory.builder() - .pid(id) - .type(DocHistoryEnum.REJECT.getCode()) - .uid(user.getId()) - .uname(user.getNickName()) - .statusBefore(DocStatusEnum.WAIT_VERIFY.getCode()) - .statusAfter(DocStatusEnum.DRAFT.getCode()) - .time(System.currentTimeMillis()) - .info(info) - .build() - ); - - return R.success("驳回成功"); - } - - @UserAction("'删除销售出库单'+#id") - @Lock("#id") - @Transactional(rollbackFor = Exception.class) - public R del(String id) { - if (mainMapper.deleteById(id) < 1) { - return R.fail("删除失败"); - } - - //同时删除子表和附件 - delSubByPid(id); - recordApi.delAttachmentByPid(id); - - return R.success("删除成功"); - } - - private R addMain(SellOutboundVo doc) { - List subList = doc.getData(); - - String err = check(doc.getPid(), subList); - if (err != null) return R.fail(err); - - String id = DocUtil.getDocId("XSCK"); - - if (StringUtils.isEmpty(id)) return R.fail("获取单号失败"); - - doc.setId(id); - - //设置子表的pid - subList.forEach(sub -> sub.setPid(id)); - - mainMapper.insert(doc); - subMapper.insertBatch(subList); - - //插入附件 - List uploadImageList = doc.getUploadImageList(); - Long time = System.currentTimeMillis(); - for (RecAttachment attachment : uploadImageList) { - attachment.setPid(id); - attachment.setTime(time); - } - recordApi.handleAttachment(uploadImageList, null); - - return R.success("添加成功", id); - } - - private R updateMain(SellOutboundVo doc) { - String docId = doc.getId(); - - String err = checkUpdateStatus(docId); - if (err == null) err = check(doc.getPid(), doc.getData()); - if (err != null) return R.fail(err); - - //更新主表 - mainMapper.update( - null, - Wrappers.lambdaUpdate(BizSellOutbound.class) - .set(BizSellOutbound::getPid, doc.getPid()) - .set(BizSellOutbound::getStatus, doc.getStatus()) - .set(BizSellOutbound::getRemark, doc.getRemark()) - .eq(BizSellOutbound::getId, docId) - ); - - //删除旧的子表 - delSubByPid(docId); - - //插入新的子表 - subMapper.insertBatch(doc.getData()); - - //附件增删 - List uploadImageList = doc.getUploadImageList(); - Long time = System.currentTimeMillis(); - for (RecAttachment attachment : uploadImageList) { - attachment.setPid(docId); - attachment.setTime(time); - } - recordApi.handleAttachment(uploadImageList, doc.getDeleteImageList()); - - return R.success("修改成功"); - } - - //只有拟定状态的单据才能修改 - private String checkUpdateStatus(String id) { - BizSellOutbound doc = mainMapper.selectById(id); - if (doc == null || !doc.getStatus().equals(DocStatusEnum.DRAFT.getCode())) { - return "单据状态已更新,请刷新后重试"; - } - return null; - } - - //添加、修改、通过前都需要检查 - private String check(String pid, List docSubList) { - BizSellOrder order = orderMapper.selectById(pid); - - //检查销售订单是否已审核、未完成 - if (order == null - || !order.getStatus().equals(DocStatusEnum.VERIFIED.getCode()) - || order.getFinish().equals(DocFinishEnum.FINISHED.getCode()) - ) { - return "销售订单状态异常"; - } - - List orderSubList = getOrderSubListByPid(pid); - - if (CollectionUtils.isEmpty(orderSubList)) { - return "没有找到销售订单的数据"; - } - - //按分类统计商品的出库数量 - Map outboundCount = getOutboundCount(docSubList); - - String[] cids = new String[outboundCount.size()]; - - int index = 0; - - //检查出库商品是否符合销售订单 - for (Integer cid : outboundCount.keySet()) { - BizSellOrderSub orderSub = Util.find(orderSubList, t -> t.getCid().equals(cid)); - if (orderSub == null) { - return "未在销售订单中找到对应的出库商品"; - } - if (orderSub.getRemainNum().equals(BigDecimal.ZERO)) { - return String.format("出库商品【%s】已全部出库", orderSub.getCname()); - } - if (orderSub.getRemainNum().compareTo(outboundCount.get(cid)) < 0) { - return String.format("出库商品【%s】的数量超出订单数量", orderSub.getCname()); - } - cids[index] = String.valueOf(cid); - index++; - } - - //获取当前库存,判断库存是否足够 - List stockList = stockApi.getDetail(String.join(",", cids)); - for (BizSellOutboundSub sub : docSubList) { - BizStock stock = Util.find(stockList, i -> i.getId().equals(sub.getSid())); - if (stock == null || stock.getNum().compareTo(sub.getNum()) < 0) { - return String.format("出库商品【%s】(采购入库单:%s)库存不足", sub.getCname(), sub.getPid()); - } - } - - return null; - } - - //根据主表ID删除子表 - private void delSubByPid(String pid) { - subMapper.delete( - Wrappers.lambdaQuery(BizSellOutboundSub.class) - .eq(BizSellOutboundSub::getPid, pid) - ); - } - - //驳回单据,只有等待审核单据的才能被驳回 - private int rejectById(String id) { - return mainMapper.update( - null, - Wrappers.lambdaUpdate(BizSellOutbound.class) - .set(BizSellOutbound::getStatus, DocStatusEnum.DRAFT.getCode()) - .eq(BizSellOutbound::getId, id) - .eq(BizSellOutbound::getStatus, DocStatusEnum.WAIT_VERIFY.getCode()) - ); - } - - private List getOrderSubListByPid(String pid) { - return orderSubMapper.selectList( - Wrappers.lambdaQuery(BizSellOrderSub.class) - .eq(BizSellOrderSub::getPid, pid) - ); - } - - private Wrapper getSearchCondition(SellOutboundSearch vo) { - String pid = vo.getPid(); - String pidFuzzy = vo.getPidFuzzy(); - - return DocUtil.baseCondition(BizSellOutbound.class, vo) - .eq(pid != null, BizSellOutbound::getPid, pid) - .like(!StringUtils.isEmpty(pidFuzzy), BizSellOutbound::getPid, pidFuzzy); - } - - private Map getOutboundCount(List list) { - if (CollectionUtils.isEmpty(list)) { - return new HashMap<>(); - } - return list - .stream() - .collect( - Collectors.groupingBy( - BizSellOutboundSub::getCid, - Collectors.reducing( - BigDecimal.ZERO, - BizSellOutboundSub::getNum, - BigDecimal::add - ) - ) - ); - } -} \ No newline at end of file diff --git a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/util/DocUtil.java b/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/util/DocUtil.java deleted file mode 100644 index 5994119..0000000 --- a/java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/util/DocUtil.java +++ /dev/null @@ -1,82 +0,0 @@ -package cn.toesbieya.jxc.doc.util; - -import cn.toesbieya.jxc.common.constant.DocConstant; -import cn.toesbieya.jxc.common.model.entity.BizDoc; -import cn.toesbieya.jxc.common.util.DateUtil; -import cn.toesbieya.jxc.common.util.RedisUtil; -import cn.toesbieya.jxc.doc.model.vo.DocSearch; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.google.common.io.ByteStreams; -import lombok.extern.slf4j.Slf4j; -import org.springframework.core.io.ClassPathResource; -import org.springframework.data.redis.core.script.DefaultRedisScript; -import org.springframework.data.redis.core.script.RedisScript; -import org.springframework.util.StringUtils; - -import java.io.IOException; -import java.time.format.DateTimeFormatter; -import java.util.Arrays; - -@Slf4j -public class DocUtil { - private static String GET_DOC_ID_SCRIPT; - - static { - try { - GET_DOC_ID_SCRIPT = new String(ByteStreams.toByteArray(new ClassPathResource("/script/get_doc_id.lua").getInputStream())); - } - catch (IOException e) { - e.printStackTrace(); - } - } - - //获取单号,形如 {type}0001 - public static String getDocId(String type) { - if (!Arrays.asList(DocConstant.DOC_TYPE).contains(type)) { - log.error("单据类型有误,【{}】不存在", type); - return null; - } - - RedisScript redisScript = new DefaultRedisScript<>(GET_DOC_ID_SCRIPT, Long.class); - - Long result = RedisUtil.getStringRedisTemplate().execute( - redisScript, - Arrays.asList(DocConstant.UPDATE_DOC_LOCK_KEY, DocConstant.DOC_TYPE_REDIS_KEY), - String.valueOf(DateUtil.getTimestampNow()), - type - ); - - if (result == null || result <= 1) return null; - - return String.format("%s%s%04d", type, DateUtil.dateFormat(DateTimeFormatter.BASIC_ISO_DATE), result - 1); - } - - public static LambdaQueryWrapper baseCondition(Class c, DocSearch vo) { - String id = vo.getId(); - String idFuzzy = vo.getIdFuzzy(); - Integer cid = vo.getCid(); - String cname = vo.getCname(); - Integer vid = vo.getVid(); - String vname = vo.getVname(); - String status = vo.getStatus(); - Long ctimeStart = vo.getCtimeStart(); - Long ctimeEnd = vo.getCtimeEnd(); - Long vtimeStart = vo.getVtimeStart(); - Long vtimeEnd = vo.getVtimeEnd(); - - return Wrappers.lambdaQuery(c) - .eq(!StringUtils.isEmpty(id), BizDoc::getId, id) - .like(!StringUtils.isEmpty(idFuzzy), BizDoc::getId, idFuzzy) - .eq(cid != null, BizDoc::getCid, cid) - .like(!StringUtils.isEmpty(cname), BizDoc::getCname, cname) - .eq(vid != null, BizDoc::getVid, vid) - .like(!StringUtils.isEmpty(vname), BizDoc::getVname, vname) - .inSql(!StringUtils.isEmpty(status), BizDoc::getStatus, status) - .ge(ctimeStart != null, BizDoc::getCtime, ctimeStart) - .le(ctimeEnd != null, BizDoc::getCtime, ctimeEnd) - .ge(vtimeStart != null, BizDoc::getCtime, vtimeStart) - .le(vtimeEnd != null, BizDoc::getCtime, vtimeEnd) - .orderByDesc(BizDoc::getCtime); - } -} diff --git a/java/cloud/web/web-modules/doc/src/main/resources/bootstrap.yml b/java/cloud/web/web-modules/doc/src/main/resources/bootstrap.yml deleted file mode 100644 index caeb883..0000000 --- a/java/cloud/web/web-modules/doc/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,20 +0,0 @@ -spring: - application: - name: jxc-web-doc - - cloud: - nacos: - config: - server-addr: 127.0.0.1:8848 - file-extension: yml - shared-configs: - - data-id: jxc-common-database.yml - - data-id: jxc-common-redis.yml - discovery: - server-addr: 127.0.0.1:8848 - -dubbo: - registry: - address: nacos://127.0.0.1:8848 - cloud: - subscribed-services: jxc-web-record,jxc-web-stock \ No newline at end of file diff --git a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseInbound.xml b/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseInbound.xml deleted file mode 100644 index 971a76c..0000000 --- a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseInbound.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseInboundSub.xml b/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseInboundSub.xml deleted file mode 100644 index db9fc78..0000000 --- a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseInboundSub.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - insert into biz_purchase_inbound_sub(pid, cid, cname, num) values - - (#{i.pid}, #{i.cid}, #{i.cname}, #{i.num}) - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseOrder.xml b/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseOrder.xml deleted file mode 100644 index 4575fb8..0000000 --- a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseOrder.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseOrderSub.xml b/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseOrderSub.xml deleted file mode 100644 index b7a77be..0000000 --- a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseOrderSub.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - insert into biz_purchase_order_sub(pid, cid, cname, num, price, remain_num) values - - (#{i.pid}, #{i.cid}, #{i.cname}, #{i.num}, #{i.price}, #{i.remainNum}) - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOrder.xml b/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOrder.xml deleted file mode 100644 index f65548b..0000000 --- a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOrder.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOrderSub.xml b/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOrderSub.xml deleted file mode 100644 index d37c0dd..0000000 --- a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOrderSub.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - insert into biz_sell_order_sub(pid, cid, cname, num, price, remain_num) values - - (#{i.pid}, #{i.cid}, #{i.cname}, #{i.num}, #{i.price}, #{i.remainNum}) - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOutbound.xml b/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOutbound.xml deleted file mode 100644 index fa77773..0000000 --- a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOutbound.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOutboundSub.xml b/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOutboundSub.xml deleted file mode 100644 index 6bbf98b..0000000 --- a/java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOutboundSub.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - insert into biz_sell_outbound_sub(pid, sid, cid, cname, num) values - - (#{i.pid}, #{i.sid}, #{i.cid}, #{i.cname}, #{i.num}) - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/doc/src/main/resources/script/get_doc_id.lua b/java/cloud/web/web-modules/doc/src/main/resources/script/get_doc_id.lua deleted file mode 100644 index 76240d5..0000000 --- a/java/cloud/web/web-modules/doc/src/main/resources/script/get_doc_id.lua +++ /dev/null @@ -1,13 +0,0 @@ -if redis.call('exists', KEYS[1]) == 0 then - if redis.call('hget', KEYS[2], 'date') == ARGV[1] then - if redis.call('hexists', KEYS[2], ARGV[2]) == 1 then - return redis.call('hincrby', KEYS[2], ARGV[2], 1) - else - return 0 - end - else - return 0 - end -else - return 0 -end \ No newline at end of file diff --git a/java/cloud/web/web-modules/message/pom.xml b/java/cloud/web/web-modules/message/pom.xml deleted file mode 100644 index 735e296..0000000 --- a/java/cloud/web/web-modules/message/pom.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - web-modules - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - message - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/MessageApplication.java b/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/MessageApplication.java deleted file mode 100644 index 550824f..0000000 --- a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/MessageApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.toesbieya.jxc.message; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication(scanBasePackages = "cn.toesbieya.jxc") -@MapperScan("cn.toesbieya.jxc.message.mapper") -public class MessageApplication { - public static void main(String[] args) { - SpringApplication.run(MessageApplication.class, args); - } -} diff --git a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/constant/MsgConstant.java b/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/constant/MsgConstant.java deleted file mode 100644 index c3462e1..0000000 --- a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/constant/MsgConstant.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.message.constant; - -public interface MsgConstant { - Integer STATUS_DRAFT = 0; //拟定 - Integer STATUS_PUBLISHED = 1; //已发布 - Integer STATUS_WITHDREW = 2; //已撤回 -} diff --git a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/controller/ManageController.java b/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/controller/ManageController.java deleted file mode 100644 index 3607a6d..0000000 --- a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/controller/ManageController.java +++ /dev/null @@ -1,108 +0,0 @@ -package cn.toesbieya.jxc.message.controller; - -import cn.toesbieya.jxc.common.model.entity.Msg; -import cn.toesbieya.jxc.common.model.entity.SysUser; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.message.constant.MsgConstant; -import cn.toesbieya.jxc.message.model.vo.MsgSearch; -import cn.toesbieya.jxc.message.service.ManageService; -import cn.toesbieya.jxc.web.common.util.SessionUtil; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; - -@RestController -@RequestMapping("manage") -public class ManageController { - @Resource - private ManageService service; - - @RequestMapping("search") - public R search(@RequestBody MsgSearch vo) { - return R.success(service.search(vo)); - } - - @PostMapping("add") - public R add(@RequestBody Msg msg) { - String errMsg = validateAdd(msg); - if (errMsg != null) return R.fail(errMsg); - - SysUser user = SessionUtil.get(); - setAddInfo(user, msg); - - return service.add(msg); - } - - @PostMapping("update") - public R update(@RequestBody Msg msg) { - String errMsg = validateAdd(msg); - if (errMsg == null) errMsg = validateUpdate(msg); - if (errMsg != null) return R.fail(errMsg); - - return service.update(msg); - } - - @PostMapping("publish") - public R publish(@RequestBody Msg msg) { - boolean isFirstCreate = msg.getId() == null; - - String errMsg = validateAdd(msg); - if (errMsg == null && !isFirstCreate) { - errMsg = validateUpdate(msg); - } - if (errMsg != null) return R.fail(errMsg); - - SysUser user = SessionUtil.get(); - if (isFirstCreate) setAddInfo(user, msg); - - msg.setPid(user.getId()); - msg.setPname(user.getNickName()); - msg.setPtime(System.currentTimeMillis()); - msg.setStatus(MsgConstant.STATUS_PUBLISHED); - - return service.publish(msg); - } - - @PostMapping("withdraw") - public R withdraw(@RequestBody Msg msg) { - if (msg.getId() == null) return R.fail("参数错误"); - - UserVo user = SessionUtil.get(); - - msg.setWid(user.getId()); - msg.setWname(user.getNickName()); - msg.setWtime(System.currentTimeMillis()); - - return service.withdraw(msg); - } - - @GetMapping("del") - public R del(@RequestParam Integer id, @RequestParam String title) { - return service.del(id, title); - } - - private void setAddInfo(SysUser user, Msg msg) { - msg.setId(null); - msg.setCid(user.getId()); - msg.setCname(user.getNickName()); - msg.setCtime(System.currentTimeMillis()); - msg.setStatus(MsgConstant.STATUS_DRAFT); - } - - private String validateAdd(Msg msg) { - if (StringUtils.isEmpty(msg.getTitle()) - || msg.getType() == null - || !msg.isBroadcast() && StringUtils.isEmpty(msg.getRecipient()) - ) return "参数错误"; - return null; - } - - private String validateUpdate(Msg msg) { - if (StringUtils.isEmpty(msg.getId()) - || !msg.getStatus().equals(MsgConstant.STATUS_DRAFT) - ) return "参数错误"; - return null; - } -} diff --git a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/controller/UserController.java b/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/controller/UserController.java deleted file mode 100644 index 1c6002c..0000000 --- a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/controller/UserController.java +++ /dev/null @@ -1,35 +0,0 @@ -package cn.toesbieya.jxc.message.controller; - -import cn.toesbieya.jxc.common.model.entity.SysUser; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.message.model.vo.MsgPersonalSearch; -import cn.toesbieya.jxc.message.service.UserService; -import cn.toesbieya.jxc.web.common.util.SessionUtil; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; - -@RestController -@RequestMapping("user") -public class UserController { - @Resource - private UserService service; - - @PostMapping("search") - public R search(@RequestBody MsgPersonalSearch vo) { - SysUser user = SessionUtil.get(); - vo.setUid(user.getId()); - vo.setCtime(user.getCtime()); - return R.success(service.search(vo)); - } - - @GetMapping("read") - public R read(@RequestParam Integer id) { - return service.read(SessionUtil.get(), id); - } - - @GetMapping("readAll") - public R readAll() { - return service.readAll(SessionUtil.get()); - } -} diff --git a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/mapper/MsgMapper.java b/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/mapper/MsgMapper.java deleted file mode 100644 index 428a28c..0000000 --- a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/mapper/MsgMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.toesbieya.jxc.message.mapper; - -import cn.toesbieya.jxc.common.model.entity.Msg; -import cn.toesbieya.jxc.message.model.vo.MsgPersonalSearch; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import java.util.List; - -public interface MsgMapper extends BaseMapper { - List getReadByUser(MsgPersonalSearch search); - - List getUnreadByUser(MsgPersonalSearch search); -} diff --git a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/mapper/MsgStateMapper.java b/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/mapper/MsgStateMapper.java deleted file mode 100644 index 36293aa..0000000 --- a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/mapper/MsgStateMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.message.mapper; - -import cn.toesbieya.jxc.common.model.entity.MsgState; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -public interface MsgStateMapper extends BaseMapper { -} diff --git a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/model/vo/MsgPersonalSearch.java b/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/model/vo/MsgPersonalSearch.java deleted file mode 100644 index 1c8db48..0000000 --- a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/model/vo/MsgPersonalSearch.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.message.model.vo; - -import cn.toesbieya.jxc.common.model.vo.BaseSearch; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class MsgPersonalSearch extends BaseSearch { - private Integer uid; - private Long ctime; - private boolean unread = true; -} diff --git a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/model/vo/MsgSearch.java b/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/model/vo/MsgSearch.java deleted file mode 100644 index ed92d98..0000000 --- a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/model/vo/MsgSearch.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.message.model.vo; - -import cn.toesbieya.jxc.common.model.vo.BaseSearch; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class MsgSearch extends BaseSearch { - private String title; - private String type; - private String status; -} diff --git a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/service/ManageService.java b/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/service/ManageService.java deleted file mode 100644 index 4aabc8c..0000000 --- a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/service/ManageService.java +++ /dev/null @@ -1,129 +0,0 @@ -package cn.toesbieya.jxc.message.service; - -import cn.toesbieya.jxc.common.constant.SocketConstant; -import cn.toesbieya.jxc.common.model.entity.Msg; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.SocketEventVo; -import cn.toesbieya.jxc.common.util.WebSocketUtil; -import cn.toesbieya.jxc.message.constant.MsgConstant; -import cn.toesbieya.jxc.message.mapper.MsgMapper; -import cn.toesbieya.jxc.message.model.vo.MsgSearch; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import cn.toesbieya.jxc.web.common.model.vo.PageResult; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.github.pagehelper.PageHelper; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -@Service -public class ManageService { - @Resource - private MsgMapper mapper; - - public PageResult search(MsgSearch vo) { - String title = vo.getTitle(); - String type = vo.getType(); - String status = vo.getStatus(); - - Wrapper wrapper = - Wrappers.lambdaQuery(Msg.class) - .like(!StringUtils.isEmpty(title), Msg::getTitle, title) - .inSql(!StringUtils.isEmpty(type), Msg::getType, type) - .inSql(!StringUtils.isEmpty(status), Msg::getStatus, status) - .orderByDesc(Msg::getId); - - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - return new PageResult<>(mapper.selectList(wrapper)); - } - - @UserAction("'添加消息:'+#msg.title") - public R add(Msg msg) { - mapper.insert(msg); - return R.success("添加成功", msg); - } - - @UserAction("'修改消息:'+#msg.title") - public R update(Msg msg) { - int rows = mapper.update( - null, - Wrappers.lambdaUpdate(Msg.class) - .set(Msg::getTitle, msg.getTitle()) - .set(Msg::getContent, msg.getContent()) - .set(Msg::getType, msg.getType()) - .set(Msg::getPid, msg.getPid()) - .set(Msg::getPname, msg.getPname()) - .set(Msg::getPtime, msg.getPtime()) - .set(Msg::getWid, msg.getWid()) - .set(Msg::getWname, msg.getWname()) - .set(Msg::getWtime, msg.getWtime()) - .set(Msg::getStatus, msg.getStatus()) - .set(Msg::isBroadcast, msg.isBroadcast()) - .set(Msg::getRecipient, msg.getRecipient()) - .eq(Msg::getId, msg.getId()) - ); - return rows > 0 ? R.success("修改成功") : R.fail("修改失败,请刷新重试"); - } - - @UserAction("'发布消息:'+#msg.title") - public R publish(Msg msg) { - boolean isFirstCreate = msg.getId() == null; - R result = isFirstCreate ? add(msg) : update(msg); - - if (result.isSuccess()) { - result.setMsg("提交成功"); - result.setData(msg); - - SocketEventVo eventVo = new SocketEventVo(); - eventVo.setEvent(SocketConstant.EVENT_NEW_MESSAGE); - - //发送websocket消息 - if (msg.isBroadcast()) { - eventVo.setType(SocketConstant.REDIS_EVENT_BROADCAST); - WebSocketUtil.sendEvent(eventVo); - } - else { - String recipient = msg.getRecipient(); - - if (!StringUtils.isEmpty(recipient)) { - String[] ids = recipient.split(","); - List to = Arrays.stream(ids).map(Integer::valueOf).collect(Collectors.toList()); - - eventVo.setType(SocketConstant.REDIS_EVENT_SPECIFIC); - eventVo.setTo(to); - - WebSocketUtil.sendEvent(eventVo); - } - } - } - else result.setMsg("发布失败,请刷新重试"); - - return result; - } - - @UserAction("'撤回消息:'+#msg.title") - public R withdraw(Msg msg) { - int rows = mapper.update( - null, - Wrappers.lambdaUpdate(Msg.class) - .set(Msg::getStatus, MsgConstant.STATUS_WITHDREW) - .set(Msg::getWid, msg.getWid()) - .set(Msg::getWname, msg.getWname()) - .set(Msg::getWtime, msg.getWtime()) - .eq(Msg::getId, msg.getId()) - .eq(Msg::getStatus, MsgConstant.STATUS_PUBLISHED) - ); - return rows > 0 ? R.success("撤回成功", msg) : R.fail("撤回失败,请刷新重试"); - } - - @UserAction("'删除消息:'+#title") - public R del(int id, String title) { - int rows = mapper.deleteById(id); - return rows > 0 ? R.success("删除成功") : R.fail("删除失败,请刷新重试"); - } -} diff --git a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/service/UserService.java b/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/service/UserService.java deleted file mode 100644 index 053fc28..0000000 --- a/java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/service/UserService.java +++ /dev/null @@ -1,71 +0,0 @@ -package cn.toesbieya.jxc.message.service; - -import cn.toesbieya.jxc.common.model.entity.Msg; -import cn.toesbieya.jxc.common.model.entity.MsgState; -import cn.toesbieya.jxc.common.model.entity.SysUser; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.message.mapper.MsgMapper; -import cn.toesbieya.jxc.message.mapper.MsgStateMapper; -import cn.toesbieya.jxc.message.model.vo.MsgPersonalSearch; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import cn.toesbieya.jxc.web.common.model.vo.PageResult; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.github.pagehelper.PageHelper; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.List; - -@Service -public class UserService { - @Resource - private MsgMapper msgMapper; - @Resource - private MsgStateMapper msgStateMapper; - - public PageResult search(MsgPersonalSearch vo) { - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - List list = vo.isUnread() ? msgMapper.getUnreadByUser(vo) : msgMapper.getReadByUser(vo); - return new PageResult<>(list); - } - - public R read(SysUser user, int id) { - //如果该消息已读,直接返回 - if (!msgStateMapper - .selectCount( - Wrappers.lambdaQuery(MsgState.class) - .eq(MsgState::getId, id) - .eq(MsgState::getMid, user.getId()) - ) - .equals(0)) { - return R.success(); - } - - MsgState state = new MsgState(); - state.setMid(id); - state.setUid(user.getId()); - state.setTime(System.currentTimeMillis()); - - return R.success(msgStateMapper.insert(state)); - } - - @UserAction("'清空所有未读消息'") - public R readAll(SysUser user) { - MsgPersonalSearch vo = new MsgPersonalSearch(); - vo.setUid(user.getId()); - vo.setCtime(user.getCtime()); - - MsgState state = new MsgState(); - state.setUid(user.getId()); - state.setTime(System.currentTimeMillis()); - - List list = msgMapper.getUnreadByUser(vo); - - for (Msg msg : list) { - state.setMid(msg.getId()); - msgStateMapper.insert(state); - } - - return R.success(); - } -} diff --git a/java/cloud/web/web-modules/message/src/main/resources/bootstrap.yml b/java/cloud/web/web-modules/message/src/main/resources/bootstrap.yml deleted file mode 100644 index 5d58b7a..0000000 --- a/java/cloud/web/web-modules/message/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,20 +0,0 @@ -spring: - application: - name: jxc-web-message - - cloud: - nacos: - config: - server-addr: 127.0.0.1:8848 - file-extension: yml - shared-configs: - - data-id: jxc-common-database.yml - - data-id: jxc-common-redis.yml - discovery: - server-addr: 127.0.0.1:8848 - -dubbo: - registry: - address: nacos://127.0.0.1:8848 - cloud: - subscribed-services: jxc-web-record \ No newline at end of file diff --git a/java/cloud/web/web-modules/message/src/main/resources/mapper/Msg.xml b/java/cloud/web/web-modules/message/src/main/resources/mapper/Msg.xml deleted file mode 100644 index e5cd8f1..0000000 --- a/java/cloud/web/web-modules/message/src/main/resources/mapper/Msg.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/pom.xml b/java/cloud/web/web-modules/pom.xml deleted file mode 100644 index ff506c1..0000000 --- a/java/cloud/web/web-modules/pom.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - web - cn.toesbieya - 0.0.1-SNAPSHOT - - pom - - account - record - message - statistic - system - stock - doc - - 4.0.0 - - web-modules - - - - cn.toesbieya - web-common - - - - org.springframework.boot - spring-boot-starter - - - - mysql - mysql-connector-java - - - com.baomidou - mybatis-plus-boot-starter - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/record/pom.xml b/java/cloud/web/web-modules/record/pom.xml deleted file mode 100644 index 71b4164..0000000 --- a/java/cloud/web/web-modules/record/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - web-modules - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - record - \ No newline at end of file diff --git a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/RecordApplication.java b/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/RecordApplication.java deleted file mode 100644 index 23319a3..0000000 --- a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/RecordApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.toesbieya.jxc.record; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication(scanBasePackages = "cn.toesbieya.jxc") -@MapperScan("cn.toesbieya.jxc.record.mapper") -public class RecordApplication { - public static void main(String[] args) { - SpringApplication.run(RecordApplication.class, args); - } -} diff --git a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/config/ExecutorConfig.java b/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/config/ExecutorConfig.java deleted file mode 100644 index 6c799c0..0000000 --- a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/config/ExecutorConfig.java +++ /dev/null @@ -1,45 +0,0 @@ -package cn.toesbieya.jxc.record.config; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.scheduling.annotation.AsyncConfigurer; -import org.springframework.scheduling.annotation.EnableAsync; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; - -import java.util.concurrent.Executor; -import java.util.concurrent.ThreadPoolExecutor; - -@Configuration -@EnableAsync -@Slf4j -public class ExecutorConfig implements AsyncConfigurer { - - @Override - public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() { - return (ex, method, params) -> { - log.error("异步线程执行失败。方法:[{}],异常信息[{}] : ", method, ex.getMessage(), ex); - }; - } - - //数据库插入线程池 - @Bean("dbInsertExecutor") - public Executor dbInsertExecutor() { - ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor(); - //核心线程数 - threadPoolTaskExecutor.setCorePoolSize(5); - //是否回收空闲线程 - threadPoolTaskExecutor.setAllowCoreThreadTimeOut(true); - //最大线程数 - threadPoolTaskExecutor.setMaxPoolSize(10); - //配置等待队列大小 - threadPoolTaskExecutor.setQueueCapacity(50); - //配置线程池前缀 - threadPoolTaskExecutor.setThreadNamePrefix("dbInsert-"); - //拒绝策略 - threadPoolTaskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy()); - threadPoolTaskExecutor.initialize(); - return threadPoolTaskExecutor; - } -} diff --git a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/controller/RecordController.java b/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/controller/RecordController.java deleted file mode 100644 index c23e351..0000000 --- a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/controller/RecordController.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.toesbieya.jxc.record.controller; - -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.record.model.vo.LoginHistorySearch; -import cn.toesbieya.jxc.record.model.vo.UserActionSearch; -import cn.toesbieya.jxc.record.service.RecordService; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -@RestController -@RequestMapping("record") -public class RecordController { - @Resource - private RecordService service; - - @PostMapping("searchLoginHistory") - public R searchLoginHistory(@RequestBody LoginHistorySearch vo) { - return R.success(service.searchLoginHistory(vo)); - } - - @PostMapping("searchUserAction") - public R searchUserAction(@RequestBody UserActionSearch vo) { - return R.success(service.searchUserAction(vo)); - } -} diff --git a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/mapper/RecAttachmentMapper.java b/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/mapper/RecAttachmentMapper.java deleted file mode 100644 index 2c6fad8..0000000 --- a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/mapper/RecAttachmentMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.toesbieya.jxc.record.mapper; - -import cn.toesbieya.jxc.common.model.entity.RecAttachment; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import java.util.List; - -public interface RecAttachmentMapper extends BaseMapper { - int insertBatch(List list); -} diff --git a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/mapper/RecLoginHistoryMapper.java b/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/mapper/RecLoginHistoryMapper.java deleted file mode 100644 index 795f6a5..0000000 --- a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/mapper/RecLoginHistoryMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.record.mapper; - -import cn.toesbieya.jxc.common.model.entity.RecLoginHistory; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -public interface RecLoginHistoryMapper extends BaseMapper { -} diff --git a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/mapper/RecUserActionMapper.java b/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/mapper/RecUserActionMapper.java deleted file mode 100644 index 79cafa2..0000000 --- a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/mapper/RecUserActionMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.record.mapper; - -import cn.toesbieya.jxc.common.model.entity.RecUserAction; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -public interface RecUserActionMapper extends BaseMapper { -} diff --git a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/model/vo/LoginHistorySearch.java b/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/model/vo/LoginHistorySearch.java deleted file mode 100644 index 6c42248..0000000 --- a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/model/vo/LoginHistorySearch.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.toesbieya.jxc.record.model.vo; - -import cn.toesbieya.jxc.common.model.vo.BaseSearch; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class LoginHistorySearch extends BaseSearch { - private Integer uid; - private String uname; - private Boolean login; - private String ip; - private String address; - private Long endTime; - private Long startTime; -} diff --git a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/model/vo/UserActionSearch.java b/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/model/vo/UserActionSearch.java deleted file mode 100644 index 2464ed8..0000000 --- a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/model/vo/UserActionSearch.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.toesbieya.jxc.record.model.vo; - -import cn.toesbieya.jxc.common.model.vo.BaseSearch; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class UserActionSearch extends BaseSearch { - private Integer uid; - private String uname; - private String ip; - private String url; - private Long startTime; - private Long endTime; - private Boolean success; -} diff --git a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/service/RecordService.java b/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/service/RecordService.java deleted file mode 100644 index e214b43..0000000 --- a/java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/service/RecordService.java +++ /dev/null @@ -1,150 +0,0 @@ -package cn.toesbieya.jxc.record.service; - -import cn.toesbieya.jxc.api.FileApi; -import cn.toesbieya.jxc.api.RecordApi; -import cn.toesbieya.jxc.common.model.entity.RecAttachment; -import cn.toesbieya.jxc.common.model.entity.RecLoginHistory; -import cn.toesbieya.jxc.common.model.entity.RecUserAction; -import cn.toesbieya.jxc.record.mapper.RecAttachmentMapper; -import cn.toesbieya.jxc.record.mapper.RecLoginHistoryMapper; -import cn.toesbieya.jxc.record.mapper.RecUserActionMapper; -import cn.toesbieya.jxc.record.model.vo.LoginHistorySearch; -import cn.toesbieya.jxc.record.model.vo.UserActionSearch; -import cn.toesbieya.jxc.web.common.model.vo.PageResult; -import cn.toesbieya.jxc.web.common.util.IpUtil; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.github.pagehelper.PageHelper; -import org.apache.dubbo.config.annotation.Reference; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -@Service -@org.apache.dubbo.config.annotation.Service -public class RecordService implements RecordApi { - @Resource - private RecLoginHistoryMapper loginHistoryMapper; - @Resource - private RecUserActionMapper userActionMapper; - @Resource - private RecAttachmentMapper attachmentMapper; - @Reference - private FileApi fileApi; - - public PageResult searchLoginHistory(LoginHistorySearch vo) { - Integer uid = vo.getUid(); - String uname = vo.getUname(); - Boolean login = vo.getLogin(); - String ip = vo.getIp(); - String address = vo.getAddress(); - Long startTime = vo.getStartTime(); - Long endTime = vo.getEndTime(); - - Wrapper wrapper = - Wrappers.lambdaQuery(RecLoginHistory.class) - .eq(uid != null, RecLoginHistory::getUid, uid) - .like(!StringUtils.isEmpty(uname), RecLoginHistory::getUname, vo.getUname()) - .eq(login != null, RecLoginHistory::isLogin, login) - .eq(!StringUtils.isEmpty(ip), RecLoginHistory::getIp, vo.getIp()) - .like(!StringUtils.isEmpty(address), RecLoginHistory::getAddress, vo.getAddress()) - .ge(startTime != null, RecLoginHistory::getTime, startTime) - .le(endTime != null, RecLoginHistory::getTime, endTime) - .orderByDesc(RecLoginHistory::getTime); - - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - return new PageResult<>(loginHistoryMapper.selectList(wrapper)); - } - - public PageResult searchUserAction(UserActionSearch vo) { - Integer uid = vo.getUid(); - String uname = vo.getUname(); - Boolean success = vo.getSuccess(); - String ip = vo.getIp(); - String url = vo.getUrl(); - Long startTime = vo.getStartTime(); - Long endTime = vo.getEndTime(); - - Wrapper wrapper = - Wrappers.lambdaQuery(RecUserAction.class) - .eq(uid != null, RecUserAction::getUid, uid) - .like(!StringUtils.isEmpty(uname), RecUserAction::getUname, uname) - .eq(success != null, RecUserAction::isSuccess, success) - .eq(!StringUtils.isEmpty(ip), RecUserAction::getIp, ip) - .eq(!StringUtils.isEmpty(url), RecUserAction::getUrl, url) - .ge(startTime != null, RecUserAction::getTime, startTime) - .le(endTime != null, RecUserAction::getTime, endTime) - .orderByDesc(RecUserAction::getTime); - - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - return new PageResult<>(userActionMapper.selectList(wrapper)); - } - - @Override - public List getAttachmentByPid(String pid) { - if (StringUtils.isEmpty(pid)) { - return Collections.emptyList(); - } - - return attachmentMapper.selectList( - Wrappers.lambdaQuery(RecAttachment.class) - .eq(RecAttachment::getPid, pid) - .orderByAsc(RecAttachment::getSort) - ); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void handleAttachment(List upload, List delete) { - if (!CollectionUtils.isEmpty(upload)) { - attachmentMapper.insertBatch(upload); - } - if (!CollectionUtils.isEmpty(delete)) { - attachmentMapper.delete( - Wrappers.lambdaQuery(RecAttachment.class) - .in(RecAttachment::getUrl, delete) - ); - fileApi.deleteBatch(delete); - } - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delAttachmentByPid(String pid) { - List list = attachmentMapper.selectList( - Wrappers.lambdaQuery(RecAttachment.class) - .eq(RecAttachment::getPid, pid) - ); - - if (CollectionUtils.isEmpty(list)) return; - - attachmentMapper.delete(Wrappers.lambdaQuery(RecAttachment.class).eq(RecAttachment::getPid, pid)); - - List urls = list.stream().map(RecAttachment::getUrl).collect(Collectors.toList()); - fileApi.deleteBatch(urls); - } - - @Override - @Async("dbInsertExecutor") - public void insertLoginHistory(RecLoginHistory history) { - if (StringUtils.isEmpty(history.getAddress())) { - history.setAddress(IpUtil.getIpAddress(history.getIp())); - } - history.setId(null); - loginHistoryMapper.insert(history); - } - - @Override - @Async("dbInsertExecutor") - public void insertUserAction(RecUserAction action) { - action.setId(null); - userActionMapper.insert(action); - } -} diff --git a/java/cloud/web/web-modules/record/src/main/resources/bootstrap.yml b/java/cloud/web/web-modules/record/src/main/resources/bootstrap.yml deleted file mode 100644 index af76758..0000000 --- a/java/cloud/web/web-modules/record/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,25 +0,0 @@ -spring: - application: - name: jxc-web-record - - cloud: - nacos: - config: - server-addr: 127.0.0.1:8848 - file-extension: yml - shared-configs: - - data-id: jxc-common-database.yml - - data-id: jxc-common-redis.yml - discovery: - server-addr: 127.0.0.1:8848 - -dubbo: - protocol: - port: -1 - name: dubbo - scan: - base-packages: cn.toesbieya.jxc.record.service - registry: - address: nacos://127.0.0.1:8848 - cloud: - subscribed-services: jxc-web-file \ No newline at end of file diff --git a/java/cloud/web/web-modules/record/src/main/resources/mapper/RecAttachment.xml b/java/cloud/web/web-modules/record/src/main/resources/mapper/RecAttachment.xml deleted file mode 100644 index fb68030..0000000 --- a/java/cloud/web/web-modules/record/src/main/resources/mapper/RecAttachment.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - insert into rec_attachment (pid, name, time, sort, url,size) - values - - (#{i.pid}, #{i.name}, #{i.time}, #{i.sort}, #{i.url},#{i.size}) - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/statistic/pom.xml b/java/cloud/web/web-modules/statistic/pom.xml deleted file mode 100644 index e47470e..0000000 --- a/java/cloud/web/web-modules/statistic/pom.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - web-modules - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - statistic - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/StatisticApplication.java b/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/StatisticApplication.java deleted file mode 100644 index 4546516..0000000 --- a/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/StatisticApplication.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.statistic; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.openfeign.EnableFeignClients; - -@SpringBootApplication(scanBasePackages = "cn.toesbieya.jxc") -@MapperScan("cn.toesbieya.jxc.statistic.mapper") -public class StatisticApplication { - public static void main(String[] args) { - SpringApplication.run(StatisticApplication.class, args); - } -} diff --git a/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/controller/StatisticController.java b/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/controller/StatisticController.java deleted file mode 100644 index 93fe970..0000000 --- a/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/controller/StatisticController.java +++ /dev/null @@ -1,36 +0,0 @@ -package cn.toesbieya.jxc.statistic.controller; - -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.statistic.service.StatisticService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -@RestController -@RequestMapping("statistic") -public class StatisticController { - @Resource - private StatisticService service; - - @GetMapping("getFourBlock") - public R getFourBlock() { - return R.success(service.getFourBlock()); - } - - @GetMapping("getDailyProfitStat") - public R getDailyProfitStat() { - return R.success(service.getDailyProfitStat()); - } - - @GetMapping("getDailyFinishOrder") - public R getDailyFinishOrder() { - return R.success(service.getDailyFinishOrder()); - } - - @GetMapping("getTotalProfitGoods") - public R getTotalProfitGoods() { - return R.success(service.getTotalProfitGoods()); - } -} diff --git a/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/mapper/StatisticMapper.java b/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/mapper/StatisticMapper.java deleted file mode 100644 index 59ecad5..0000000 --- a/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/mapper/StatisticMapper.java +++ /dev/null @@ -1,41 +0,0 @@ -package cn.toesbieya.jxc.statistic.mapper; - -import cn.toesbieya.jxc.common.model.entity.StatFinishOrder; -import cn.toesbieya.jxc.common.model.entity.StatProfitGoods; -import cn.toesbieya.jxc.common.model.entity.StatProfitTotal; -import org.apache.ibatis.annotations.Param; - -import java.math.BigDecimal; -import java.util.List; - -public interface StatisticMapper { - List searchTotalProfit(@Param("start") Long start, @Param("end") Long end); - - List searchGoodsProfit(@Param("start") Long start, @Param("end") Long end); - - List searchFinishOrder(@Param("start") Long start, @Param("end") Long end); - - List getHistoryTotalProfitGoods(); - - boolean checkDailyFinishOrderExist(@Param("time") long time); - - boolean checkDailyProfitExist(@Param("time") long time); - - int insertFinishOrder(StatFinishOrder param); - - int insertProfitTotal(StatProfitTotal param); - - int insertProfitGoodsBatch(@Param("list") List list); - - BigDecimal getPurchaseOrderDailyTotalPurchasePrice(@Param("start") Long start, @Param("end") Long end); - - List getPurchaseOrderDailyProfitGoods(@Param("start") long start, @Param("end") long end); - - Integer getPurchaseOrderLastDayFinishOrderNum(); - - BigDecimal getSellOrderDailyTotalPurchasePrice(@Param("start") Long start, @Param("end") Long end); - - List getSellOrderDailyProfitGoods(@Param("start") long start, @Param("end") long end); - - Integer getSellOrderLastDayFinishOrderNum(); -} diff --git a/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/model/vo/FourBlockStat.java b/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/model/vo/FourBlockStat.java deleted file mode 100644 index 2f87919..0000000 --- a/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/model/vo/FourBlockStat.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.toesbieya.jxc.statistic.model.vo; - -import lombok.Data; - -import java.math.BigDecimal; - -@Data -public class FourBlockStat { - private long online; - private BigDecimal purchase; - private BigDecimal sell; - private BigDecimal profit; -} diff --git a/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/service/StatisticService.java b/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/service/StatisticService.java deleted file mode 100644 index e842f6b..0000000 --- a/java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/service/StatisticService.java +++ /dev/null @@ -1,98 +0,0 @@ -package cn.toesbieya.jxc.statistic.service; - -import cn.toesbieya.jxc.common.model.entity.StatFinishOrder; -import cn.toesbieya.jxc.common.model.entity.StatProfitGoods; -import cn.toesbieya.jxc.common.model.entity.StatProfitTotal; -import cn.toesbieya.jxc.common.util.DateUtil; -import cn.toesbieya.jxc.common.util.WebSocketUtil; -import cn.toesbieya.jxc.statistic.mapper.StatisticMapper; -import cn.toesbieya.jxc.statistic.model.vo.FourBlockStat; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.math.BigDecimal; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Service -@Slf4j -public class StatisticService { - @Resource - private StatisticMapper mapper; - - //获取首页四个色块的数据,在线用户、今日采购额、今日销售额、今日毛利润 - public FourBlockStat getFourBlock() { - long now = DateUtil.getTimestampNow(); - - FourBlockStat stat = new FourBlockStat(); - - BigDecimal purchase = mapper.getPurchaseOrderDailyTotalPurchasePrice(now, null); - BigDecimal sell = mapper.getSellOrderDailyTotalPurchasePrice(now, null); - - long onlineNum = WebSocketUtil.getOnlineUserNum(); - - stat.setOnline(onlineNum == 0L ? 1L : onlineNum);//进行此请求时在线用户必然大于0 - stat.setPurchase(purchase); - stat.setSell(sell); - stat.setProfit(sell.subtract(purchase)); - - return stat; - } - - //获取历史七天的每日采购额、销售额、毛利润 - public List getDailyProfitStat() { - long lastWeekDay = DateUtil.getTimestampBeforeNow(7); - return mapper.searchTotalProfit(lastWeekDay, null); - } - - //获取历史七天已完成的采购订单数、销售订单数 - public List getDailyFinishOrder() { - long lastWeekDay = DateUtil.getTimestampBeforeNow(7); - return mapper.searchFinishOrder(lastWeekDay, null); - } - - //获取每种商品的采购总额、销售总额、总毛利 - public Collection getTotalProfitGoods() { - //获取历史的信息 - List history = mapper.getHistoryTotalProfitGoods(); - - //获取今日的信息 - long today = DateUtil.getTimestampNow(); - long nextDay = DateUtil.getTimestampBeforeNow(-1); - history.addAll(mapper.getPurchaseOrderDailyProfitGoods(today, nextDay)); - history.addAll(mapper.getSellOrderDailyProfitGoods(today, nextDay)); - - Map map = new HashMap<>(history.size()); - - //根据商品分类计算 - for (StatProfitGoods p : history) { - Integer cid = p.getCid(); - - if (p.getPurchase() == null) { - p.setPurchase(new BigDecimal(0)); - } - if (p.getSell() == null) { - p.setSell(new BigDecimal(0)); - } - if (p.getProfit() == null) { - p.setProfit(p.getSell().subtract(p.getPurchase())); - } - - StatProfitGoods already = map.get(cid); - - if (already == null) map.put(cid, p); - else { - BigDecimal pT = already.getPurchase().add(p.getPurchase()); - BigDecimal sT = already.getSell().add(p.getSell()); - already.setPurchase(pT); - already.setSell(sT); - already.setProfit(sT.subtract(pT)); - } - } - - return map.values(); - } -} diff --git a/java/cloud/web/web-modules/statistic/src/main/resources/bootstrap.yml b/java/cloud/web/web-modules/statistic/src/main/resources/bootstrap.yml deleted file mode 100644 index 473d4c1..0000000 --- a/java/cloud/web/web-modules/statistic/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,20 +0,0 @@ -spring: - application: - name: jxc-web-statistic - - cloud: - nacos: - config: - server-addr: 127.0.0.1:8848 - file-extension: yml - shared-configs: - - data-id: jxc-common-database.yml - - data-id: jxc-common-redis.yml - discovery: - server-addr: 127.0.0.1:8848 - -dubbo: - registry: - address: nacos://127.0.0.1:8848 - cloud: - subscribed-services: jxc-web-record \ No newline at end of file diff --git a/java/cloud/web/web-modules/statistic/src/main/resources/mapper/Statistic.xml b/java/cloud/web/web-modules/statistic/src/main/resources/mapper/Statistic.xml deleted file mode 100644 index 6638cf5..0000000 --- a/java/cloud/web/web-modules/statistic/src/main/resources/mapper/Statistic.xml +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - insert into stat_finish_order (purchase, sell, time) - values (#{purchase}, #{sell}, #{time}) - - - - - - insert into stat_profit_total (purchase, sell, profit, time) - values (#{purchase}, #{sell}, #{profit}, #{time}) - - - - insert into stat_profit_goods - (cid, purchase, sell, profit, time) - values - - (#{item.cid}, #{item.purchase}, #{item.sell}, #{item.profit}, #{item.time}) - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/stock/pom.xml b/java/cloud/web/web-modules/stock/pom.xml deleted file mode 100644 index fafd0d6..0000000 --- a/java/cloud/web/web-modules/stock/pom.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - web-modules - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - stock - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/StockApplication.java b/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/StockApplication.java deleted file mode 100644 index eb8918f..0000000 --- a/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/StockApplication.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.stock; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.openfeign.EnableFeignClients; - -@SpringBootApplication(scanBasePackages = "cn.toesbieya.jxc") -@MapperScan("cn.toesbieya.jxc.stock.mapper") -public class StockApplication { - public static void main(String[] args) { - SpringApplication.run(StockApplication.class, args); - } -} \ No newline at end of file diff --git a/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/controller/StockController.java b/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/controller/StockController.java deleted file mode 100644 index 2cb3c12..0000000 --- a/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/controller/StockController.java +++ /dev/null @@ -1,39 +0,0 @@ -package cn.toesbieya.jxc.stock.controller; - -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.stock.service.StockService; -import cn.toesbieya.jxc.common.model.vo.StockSearch; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; - -@RestController -@RequestMapping("stock/current") -public class StockController { - @Resource - private StockService service; - - @PostMapping("search") - public R search(@RequestBody StockSearch vo) { - return R.success(service.search(vo)); - } - - @GetMapping("getDetail") - public R getDetail(@RequestParam String cids) { - if (StringUtils.isEmpty(cids)) return R.fail("参数错误"); - return R.success(service.getDetail(cids)); - } - - @GetMapping("getDetailById") - public R getDetailById(@RequestParam String ids) { - if (StringUtils.isEmpty(ids)) return R.fail("参数错误"); - return R.success(service.getDetailById(ids)); - } - - @PostMapping("export") - public void export(@RequestBody StockSearch vo, HttpServletResponse response) throws Exception { - service.export(vo, response); - } -} diff --git a/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/mapper/StockMapper.java b/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/mapper/StockMapper.java deleted file mode 100644 index 12d328d..0000000 --- a/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/mapper/StockMapper.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.toesbieya.jxc.stock.mapper; - -import cn.toesbieya.jxc.common.model.entity.BizStock; -import cn.toesbieya.jxc.stock.model.vo.StockExport; -import cn.toesbieya.jxc.common.model.vo.StockSearchResult; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.toolkit.Constants; -import org.apache.ibatis.annotations.Param; - -import java.math.BigDecimal; -import java.util.List; - -public interface StockMapper extends BaseMapper { - List search(@Param(Constants.WRAPPER) Wrapper wrapper); - - List export(@Param(Constants.WRAPPER) Wrapper wrapper); - - int insertBatch(@Param("list") List list); - - int outbound(@Param("id") Integer id, @Param("num") BigDecimal num); -} diff --git a/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/model/vo/StockExport.java b/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/model/vo/StockExport.java deleted file mode 100644 index 54170b0..0000000 --- a/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/model/vo/StockExport.java +++ /dev/null @@ -1,54 +0,0 @@ -package cn.toesbieya.jxc.stock.model.vo; - -import com.alibaba.excel.annotation.ExcelIgnore; -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.annotation.write.style.ColumnWidth; -import lombok.Data; - -import java.math.BigDecimal; - -@Data -public class StockExport { - @ExcelIgnore - private int cid; - - @ExcelProperty(value = "序号", index = 0) - @ColumnWidth(20) - private int id; - - @ExcelProperty(value = "分类名称", index = 1) - @ColumnWidth(20) - private String cname; - - @ExcelProperty(value = "库存总数", index = 2) - @ColumnWidth(20) - private BigDecimal totalNum; - - @ExcelProperty(value = "库存总值", index = 3) - @ColumnWidth(20) - private BigDecimal totalPrice; - - @ExcelProperty(value = "采购订单号", index = 4) - @ColumnWidth(20) - private String cgddid; - - @ExcelProperty(value = "采购单价", index = 5) - @ColumnWidth(20) - private BigDecimal cgPrice; - - @ExcelProperty(value = "采购数量", index = 6) - @ColumnWidth(20) - private BigDecimal cgNum; - - @ExcelProperty(value = "采购入库单号", index = 7) - @ColumnWidth(20) - private String cgrkid; - - @ExcelProperty(value = "入库时间", index = 8) - @ColumnWidth(20) - private String ctime; - - @ExcelProperty(value = "入库数量", index = 9) - @ColumnWidth(20) - private BigDecimal rkNum; -} diff --git a/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/service/StockService.java b/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/service/StockService.java deleted file mode 100644 index ceed064..0000000 --- a/java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/service/StockService.java +++ /dev/null @@ -1,112 +0,0 @@ -package cn.toesbieya.jxc.stock.service; - -import cn.toesbieya.jxc.api.StockApi; -import cn.toesbieya.jxc.common.exception.JsonResultException; -import cn.toesbieya.jxc.common.model.entity.BizStock; -import cn.toesbieya.jxc.common.model.vo.StockOutboundVo; -import cn.toesbieya.jxc.common.model.vo.StockSearch; -import cn.toesbieya.jxc.common.model.vo.StockSearchResult; -import cn.toesbieya.jxc.stock.mapper.StockMapper; -import cn.toesbieya.jxc.stock.model.vo.StockExport; -import cn.toesbieya.jxc.web.common.model.vo.PageResult; -import cn.toesbieya.jxc.web.common.util.ExcelUtil; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.github.pagehelper.PageHelper; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.util.List; - -@Slf4j -@Service -@org.apache.dubbo.config.annotation.Service -public class StockService implements StockApi { - @Resource - private StockMapper mapper; - - private final ExcelUtil.CommonMergeOptions mergeOptions = - new ExcelUtil.CommonMergeOptions( - new String[]{"id", "cname", "totalNum", "totalPrice", "cgddid", "cgPrice", "cgNum"}, - "cid", - "id" - ); - - public PageResult search(StockSearch vo) { - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - return new PageResult<>(getByCondition(vo)); - } - - @Override - public List getByCondition(StockSearch vo) { - return mapper.search(getSearchCondition(vo)); - } - - @Override - @SuppressWarnings("unchecked") - public List getDetail(String cids) { - return mapper.selectList( - Wrappers.lambdaQuery(BizStock.class) - .inSql(!StringUtils.isEmpty(cids), BizStock::getCid, cids) - .gt(BizStock::getNum, 0) - .orderByDesc(BizStock::getCgddid, BizStock::getCgrkid) - ); - } - - public List getDetailById(String ids) { - return mapper.selectList( - Wrappers.lambdaQuery(BizStock.class) - .inSql(!StringUtils.isEmpty(ids), BizStock::getId, ids) - ); - } - - public void export(StockSearch vo, HttpServletResponse response) throws Exception { - List list = mapper.export(getSearchCondition(vo)); - ExcelUtil.export(list, response, "库存导出", mergeOptions); - } - - @Override - public void inbound(List list) { - if (CollectionUtils.isEmpty(list)) { - throw new JsonResultException("入库失败,没有需要入库的商品"); - } - mapper.insertBatch(list); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void outbound(List list) { - if (CollectionUtils.isEmpty(list)) { - throw new JsonResultException("出库失败,没有需要出库的商品"); - } - for (StockOutboundVo vo : list) { - int rows = mapper.outbound(vo.getId(), vo.getNum()); - if (rows < 1) { - throw new JsonResultException("出库失败"); - } - } - } - - private Wrapper getSearchCondition(StockSearch vo) { - String ids = vo.getIds(); - String cids = vo.getCids(); - String cgddids = vo.getCgddids(); - String cgrkids = vo.getCgrkids(); - Long startTime = vo.getStartTime(); - Long endTime = vo.getEndTime(); - - return Wrappers.lambdaQuery(BizStock.class) - .inSql(!StringUtils.isEmpty(ids), BizStock::getId, ids) - .inSql(!StringUtils.isEmpty(cids), BizStock::getCid, cids) - .inSql(!StringUtils.isEmpty(cgddids), BizStock::getCgddid, cgddids) - .inSql(!StringUtils.isEmpty(cgrkids), BizStock::getCgrkid, cgrkids) - .gt(BizStock::getNum, 0) - .ge(startTime != null, BizStock::getCtime, startTime) - .le(endTime != null, BizStock::getCtime, endTime); - } -} diff --git a/java/cloud/web/web-modules/stock/src/main/resources/bootstrap.yml b/java/cloud/web/web-modules/stock/src/main/resources/bootstrap.yml deleted file mode 100644 index 0ac246a..0000000 --- a/java/cloud/web/web-modules/stock/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,25 +0,0 @@ -spring: - application: - name: jxc-web-stock - - cloud: - nacos: - config: - server-addr: 127.0.0.1:8848 - file-extension: yml - shared-configs: - - data-id: jxc-common-database.yml - - data-id: jxc-common-redis.yml - discovery: - server-addr: 127.0.0.1:8848 - -dubbo: - protocol: - port: -1 - name: dubbo - scan: - base-packages: cn.toesbieya.jxc.stock.service - registry: - address: nacos://127.0.0.1:8848 - cloud: - subscribed-services: jxc-web-record \ No newline at end of file diff --git a/java/cloud/web/web-modules/stock/src/main/resources/mapper/StockMapper.xml b/java/cloud/web/web-modules/stock/src/main/resources/mapper/StockMapper.xml deleted file mode 100644 index b2ba8f6..0000000 --- a/java/cloud/web/web-modules/stock/src/main/resources/mapper/StockMapper.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - insert into biz_stock (cid, cname, num, price, ctime, cgrkid, cgddid) values - - (#{item.cid,jdbcType=INTEGER}, #{item.cname,jdbcType=VARCHAR}, #{item.num,jdbcType=DECIMAL}, - #{item.price,jdbcType=DECIMAL}, #{item.ctime,jdbcType=BIGINT}, #{item.cgrkid,jdbcType=VARCHAR}, - #{item.cgddid,jdbcType=VARCHAR}) - - - - - update biz_stock - set num = num - #{num,jdbcType=DECIMAL} - where id = #{id,jdbcType=INTEGER} - and num = ]]> #{num,jdbcType=DECIMAL} - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/system/pom.xml b/java/cloud/web/web-modules/system/pom.xml deleted file mode 100644 index 5eea906..0000000 --- a/java/cloud/web/web-modules/system/pom.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - web-modules - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - system - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/SystemApplication.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/SystemApplication.java deleted file mode 100644 index 7b1ab2c..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/SystemApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.toesbieya.jxc.system; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication(scanBasePackages = "cn.toesbieya.jxc") -@MapperScan("cn.toesbieya.jxc.system.mapper") -public class SystemApplication { - public static void main(String[] args) { - SpringApplication.run(SystemApplication.class, args); - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/CategoryController.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/CategoryController.java deleted file mode 100644 index 5fbddb7..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/CategoryController.java +++ /dev/null @@ -1,74 +0,0 @@ -package cn.toesbieya.jxc.system.controller; - -import cn.toesbieya.jxc.common.model.entity.SysCategory; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.system.model.vo.CategorySearch; -import cn.toesbieya.jxc.system.service.CategoryService; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; - -@RestController -@RequestMapping("category") -public class CategoryController { - @Resource - private CategoryService service; - - @GetMapping("getAll") - public R getAll() { - return R.success(service.getAll()); - } - - @PostMapping("search") - public R search(@RequestBody CategorySearch vo) { - return R.success(service.search(vo)); - } - - @PostMapping("add") - public R add(@RequestBody SysCategory category) { - String errMsg = validateCategoryCreateParam(category); - if (errMsg != null) return R.fail(errMsg); - - category.setId(null); - category.setCtime(System.currentTimeMillis()); - - return service.add(category); - } - - @PostMapping("update") - public R update(@RequestBody SysCategory category) { - String errMsg = validateCategoryUpdateParam(category); - if (errMsg != null) return R.fail(errMsg); - - return service.update(category); - } - - @PostMapping("del") - public R del(@RequestBody SysCategory category) { - if (category.getId() == null) { - return R.fail("删除失败,参数错误"); - } - return service.del(category); - } - - private String validateCategoryCreateParam(SysCategory category) { - if (category.getPid() == null) { - return "创建失败,参数错误"; - } - if (StringUtils.isEmpty(category.getName())) { - return "创建失败,分类名称不能为空"; - } - return null; - } - - private String validateCategoryUpdateParam(SysCategory category) { - if (category.getId() == null || category.getPid() == null) { - return "修改失败,参数错误"; - } - if (StringUtils.isEmpty(category.getName())) { - return "创建失败,分类名称不能为空"; - } - return null; - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/CustomerController.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/CustomerController.java deleted file mode 100644 index 5d048da..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/CustomerController.java +++ /dev/null @@ -1,66 +0,0 @@ -package cn.toesbieya.jxc.system.controller; - -import cn.toesbieya.jxc.common.model.entity.SysCustomer; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.system.service.CustomerService; -import cn.toesbieya.jxc.system.model.vo.CustomerSearch; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; - -@RestController -@RequestMapping("customer") -public class CustomerController { - @Resource - private CustomerService service; - - @GetMapping("getLimitRegion") - public R getLimitRegion() { - return R.success(service.getLimitRegion()); - } - - @PostMapping("search") - public R search(@RequestBody CustomerSearch vo) { - return R.success(service.search(vo)); - } - - @PostMapping("add") - public R add(@RequestBody SysCustomer customer) { - String errMsg = validateCreateParam(customer); - if (errMsg != null) return R.fail("创建失败," + errMsg); - - customer.setId(null); - customer.setCtime(System.currentTimeMillis()); - - return service.add(customer); - } - - @PostMapping("update") - public R update(@RequestBody SysCustomer customer) { - String errMsg = validateUpdateParam(customer); - if (errMsg != null) return R.fail("修改失败," + errMsg); - - return service.update(customer); - } - - @PostMapping("del") - public R del(@RequestBody SysCustomer customer) { - if (customer.getId() == null) return R.fail("删除失败,参数错误"); - return service.del(customer); - } - - private String validateCreateParam(SysCustomer customer) { - if (StringUtils.isEmpty(customer.getName())) return "客户名称不能为空"; - if (StringUtils.isEmpty(customer.getRegion())) return "客户行政区域不能为空"; - if (StringUtils.isEmpty(customer.getAddress())) return "客户地址不能为空"; - if (StringUtils.isEmpty(customer.getLinkman())) return "客户联系人不能为空"; - if (StringUtils.isEmpty(customer.getLinkphone())) return "客户联系电话不能为空"; - return null; - } - - private String validateUpdateParam(SysCustomer customer) { - if (customer.getId() == null) return "参数错误"; - return validateCreateParam(customer); - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/DepartmentController.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/DepartmentController.java deleted file mode 100644 index 8dedf7f..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/DepartmentController.java +++ /dev/null @@ -1,62 +0,0 @@ -package cn.toesbieya.jxc.system.controller; - -import cn.toesbieya.jxc.common.model.entity.SysDepartment; -import cn.toesbieya.jxc.common.model.vo.DepartmentVo; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.system.service.DepartmentService; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; -import java.util.stream.Collectors; - -@RestController -@RequestMapping("department") -public class DepartmentController { - @Resource - private DepartmentService service; - - @GetMapping("get") - public R get(boolean all) { - List list = service.getAll(); - if (!all) { - list = list - .stream() - .filter(SysDepartment::isEnable) - .collect(Collectors.toList()); - } - return R.success(list); - } - - @PostMapping("add") - public R add(@RequestBody SysDepartment department) { - if (null == department.getPid() || StringUtils.isEmpty(department.getName())) { - return R.fail("添加失败,参数错误"); - } - - department.setId(null); - - return service.add(department); - } - - @PostMapping("update") - public R update(@RequestBody SysDepartment department) { - if (null == department.getId() - || null == department.getPid() - || StringUtils.isEmpty(department.getName())) { - return R.fail("修改失败,参数错误"); - } - - return service.update(department); - } - - @PostMapping("del") - public R del(@RequestBody SysDepartment department) { - if (null == department.getId() || StringUtils.isEmpty(department.getName())) { - return R.fail("删除失败,参数错误"); - } - - return service.del(department); - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/ResourceController.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/ResourceController.java deleted file mode 100644 index d8cf3eb..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/ResourceController.java +++ /dev/null @@ -1,35 +0,0 @@ -package cn.toesbieya.jxc.system.controller; - -import cn.toesbieya.jxc.common.model.entity.SysResource; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.system.service.ResourceService; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; - -@RestController -@RequestMapping("resource") -public class ResourceController { - @Resource - private ResourceService service; - - @GetMapping("getAll") - public R getAll() { - return R.success(service.getAll()); - } - - @PostMapping("add") - public R add(@RequestBody SysResource entity) { - return service.add(entity); - } - - @PostMapping("update") - public R update(@RequestBody SysResource entity) { - return service.update(entity); - } - - @GetMapping("del") - public R del(@RequestParam int id) { - return service.del(id); - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/RoleController.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/RoleController.java deleted file mode 100644 index 98eba9c..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/RoleController.java +++ /dev/null @@ -1,63 +0,0 @@ -package cn.toesbieya.jxc.system.controller; - -import cn.toesbieya.jxc.common.model.entity.SysRole; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.system.model.vo.RoleSearch; -import cn.toesbieya.jxc.system.service.RoleService; -import cn.toesbieya.jxc.web.common.util.SessionUtil; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; - -@RequestMapping("role") -@RestController -public class RoleController { - @Resource - private RoleService service; - - @GetMapping("get") - public R get() { - return R.success(service.get()); - } - - @PostMapping("search") - public R search(@RequestBody RoleSearch vo) { - return R.success(service.search(vo)); - } - - @PostMapping("add") - public R add(@RequestBody SysRole role) { - if (StringUtils.isEmpty(role.getName())) { - return R.fail("添加失败,参数错误"); - } - - UserVo user = SessionUtil.get(); - - role.setId(null); - role.setCid(user.getId()); - role.setCname(user.getNickName()); - role.setCtime(System.currentTimeMillis()); - - return service.add(role); - } - - @PostMapping("update") - public R update(@RequestBody SysRole role) { - if (StringUtils.isEmpty(role.getName()) || role.getId() == null) { - return R.fail("修改失败,参数错误"); - } - - return service.update(role); - } - - @PostMapping("del") - public R del(@RequestBody SysRole role) { - if (role.getId() == null) { - return R.fail("删除失败,参数错误"); - } - - return service.del(role); - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/SupplierController.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/SupplierController.java deleted file mode 100644 index 8b3218a..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/SupplierController.java +++ /dev/null @@ -1,64 +0,0 @@ -package cn.toesbieya.jxc.system.controller; - -import cn.toesbieya.jxc.common.model.entity.SysSupplier; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.system.model.vo.SupplierSearch; -import cn.toesbieya.jxc.system.service.SupplierService; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; - -@RestController -@RequestMapping("supplier") -public class SupplierController { - @Resource - private SupplierService service; - - @GetMapping("getLimitRegion") - public R getLimitRegion() { - return R.success(service.getLimitRegion()); - } - - @PostMapping("search") - public R search(@RequestBody SupplierSearch vo) { - return R.success(service.search(vo)); - } - - @PostMapping("add") - public R add(@RequestBody SysSupplier supplier) { - String errMsg = validateCreateParam(supplier); - if (errMsg != null) return R.fail("创建失败," + errMsg); - - supplier.setId(null); - supplier.setCtime(System.currentTimeMillis()); - - return service.add(supplier); - } - - @PostMapping("update") - public R update(@RequestBody SysSupplier supplier) { - String errMsg = validateUpdateParam(supplier); - return errMsg == null ? service.update(supplier) : R.fail("修改失败," + errMsg); - } - - @PostMapping("del") - public R del(@RequestBody SysSupplier supplier) { - if (supplier.getId() == null) return R.fail("删除失败,参数错误"); - return service.del(supplier); - } - - private String validateCreateParam(SysSupplier supplier) { - if (StringUtils.isEmpty(supplier.getName())) return "供应商名称不能为空"; - if (StringUtils.isEmpty(supplier.getRegion())) return "供应商行政区域不能为空"; - if (StringUtils.isEmpty(supplier.getAddress())) return "供应商地址不能为空"; - if (StringUtils.isEmpty(supplier.getLinkman())) return "供应商联系人不能为空"; - if (StringUtils.isEmpty(supplier.getLinkphone())) return "供应商联系电话不能为空"; - return null; - } - - private String validateUpdateParam(SysSupplier supplier) { - if (supplier.getId() == null) return "参数错误"; - return validateCreateParam(supplier); - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/UserController.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/UserController.java deleted file mode 100644 index 57b2a82..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/UserController.java +++ /dev/null @@ -1,95 +0,0 @@ -package cn.toesbieya.jxc.system.controller; - -import cn.toesbieya.jxc.common.model.entity.RecUserAction; -import cn.toesbieya.jxc.common.model.entity.SysUser; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.system.model.vo.UserSearch; -import cn.toesbieya.jxc.system.service.UserService; -import cn.toesbieya.jxc.web.common.util.ThreadUtil; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.util.List; -import java.util.stream.Collectors; - -@RestController -@RequestMapping("user") -public class UserController { - @Resource - private UserService service; - - @PostMapping("search") - public R search(@RequestBody UserSearch vo) { - return R.success(service.search(vo)); - } - - @PostMapping("add") - public R add(@RequestBody SysUser user) { - String errMsg = validateUserCreateParam(user); - if (errMsg != null) { - return R.fail(errMsg); - } - return service.add(user); - } - - @PostMapping("update") - public R update(@RequestBody SysUser user) { - String errMsg = validateUserUpdateParam(user); - if (errMsg != null) { - return R.fail(errMsg); - } - return service.update(user); - } - - @PostMapping("del") - public R del(@RequestBody SysUser user) { - if (user.getId() == null) { - return R.fail("删除失败"); - } - return service.del(user); - } - - @PostMapping("kick") - public R kick(@RequestBody List users) { - if (users == null || users.isEmpty()) { - return R.fail("参数错误"); - } - RecUserAction action = ThreadUtil.getAction(); - List names = users.stream().map(SysUser::getLoginName).collect(Collectors.toList()); - action.setAction("踢出用户:【" + String.join(",", names) + "】"); - - return service.kick(users); - } - - @PostMapping("resetPwd") - public R resetPwd(@RequestBody SysUser user) { - if (user.getId() == null || StringUtils.isEmpty(user.getLoginName())) { - return R.fail("参数错误"); - } - return service.resetPwd(user); - } - - private String validateUserCreateParam(SysUser user) { - if (user.getId() != null) return "创建失败,参数错误"; - if (StringUtils.isEmpty(user.getLoginName()) - ||StringUtils.isEmpty(user.getNickName())) { - return "创建失败,用户名称不能为空"; - } - if (user.getRole() == null) return "创建失败,用户角色不能为空"; - return null; - } - - private String validateUserUpdateParam(SysUser user) { - if (user.getId() == null) return "修改失败,参数错误"; - if (StringUtils.isEmpty(user.getLoginName()) - ||StringUtils.isEmpty(user.getNickName())) { - return "创建失败,用户名称不能为空"; - } - if (user.getRole() == null) return "修改失败,用户角色不能为空"; - return null; - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysCategoryMapper.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysCategoryMapper.java deleted file mode 100644 index cf3628b..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysCategoryMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package cn.toesbieya.jxc.system.mapper; - -import cn.toesbieya.jxc.common.model.entity.SysCategory; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Param; - -public interface SysCategoryMapper extends BaseMapper { - boolean checkIsUse(@Param("cid") Integer cid); -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysCustomerMapper.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysCustomerMapper.java deleted file mode 100644 index 7b6b326..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysCustomerMapper.java +++ /dev/null @@ -1,11 +0,0 @@ -package cn.toesbieya.jxc.system.mapper; - -import cn.toesbieya.jxc.common.model.entity.SysCustomer; -import cn.toesbieya.jxc.system.model.vo.RegionValueResult; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import java.util.List; - -public interface SysCustomerMapper extends BaseMapper { - List getLimitRegion(); -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysDepartmentMapper.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysDepartmentMapper.java deleted file mode 100644 index c9a8ef8..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysDepartmentMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.system.mapper; - -import cn.toesbieya.jxc.common.model.entity.SysDepartment; -import cn.toesbieya.jxc.common.model.vo.DepartmentVo; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -public interface SysDepartmentMapper extends BaseMapper { - List selectChildrenById(@Param("id") int id); - - List selectParentsById(@Param("id") int id); -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysRegionMapper.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysRegionMapper.java deleted file mode 100644 index 6bcaee8..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysRegionMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.system.mapper; - -import cn.toesbieya.jxc.common.model.entity.SysRegion; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -public interface SysRegionMapper extends BaseMapper { -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysResourceMapper.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysResourceMapper.java deleted file mode 100644 index aa8636e..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysResourceMapper.java +++ /dev/null @@ -1,11 +0,0 @@ -package cn.toesbieya.jxc.system.mapper; - -import cn.toesbieya.jxc.common.model.entity.SysResource; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -public interface SysResourceMapper extends BaseMapper { - List selectChildren(@Param("ids") String ids); -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysRoleMapper.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysRoleMapper.java deleted file mode 100644 index bb117a5..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysRoleMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.system.mapper; - -import cn.toesbieya.jxc.common.model.entity.SysRole; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -public interface SysRoleMapper extends BaseMapper { -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysSupplierMapper.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysSupplierMapper.java deleted file mode 100644 index da29195..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysSupplierMapper.java +++ /dev/null @@ -1,11 +0,0 @@ -package cn.toesbieya.jxc.system.mapper; - -import cn.toesbieya.jxc.common.model.entity.SysSupplier; -import cn.toesbieya.jxc.system.model.vo.RegionValueResult; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import java.util.List; - -public interface SysSupplierMapper extends BaseMapper { - List getLimitRegion(); -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysUserMapper.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysUserMapper.java deleted file mode 100644 index 78b4f2b..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/mapper/SysUserMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.toesbieya.jxc.system.mapper; - -import cn.toesbieya.jxc.common.model.entity.SysUser; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -public interface SysUserMapper extends BaseMapper { -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/CategorySearch.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/CategorySearch.java deleted file mode 100644 index 654f74b..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/CategorySearch.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.toesbieya.jxc.system.model.vo; - -import lombok.Data; - -@Data -public class CategorySearch { - private Integer id; - private String ids; - private Integer pid; - private String pids; - private String name; - private Boolean leaf; - private Long startTime; - private Long endTime; -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/CustomerSearch.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/CustomerSearch.java deleted file mode 100644 index d58a371..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/CustomerSearch.java +++ /dev/null @@ -1,21 +0,0 @@ -package cn.toesbieya.jxc.system.model.vo; - -import cn.toesbieya.jxc.common.model.vo.BaseSearch; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class CustomerSearch extends BaseSearch { - private Integer id; - private String name; - private String address; - private String linkman; - private String linkphone; - private String region; - private Boolean enable; - private Long startTime; - private Long endTime; -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/CustomerVo.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/CustomerVo.java deleted file mode 100644 index 15aa219..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/CustomerVo.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.toesbieya.jxc.system.model.vo; - -import cn.toesbieya.jxc.common.model.entity.SysCustomer; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.ToString; -import org.springframework.beans.BeanUtils; - -@Data -@NoArgsConstructor -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class CustomerVo extends SysCustomer { - private String regionName; - - public CustomerVo(SysCustomer parent) { - BeanUtils.copyProperties(parent, this); - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/RegionValueResult.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/RegionValueResult.java deleted file mode 100644 index a0ddb25..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/RegionValueResult.java +++ /dev/null @@ -1,9 +0,0 @@ -package cn.toesbieya.jxc.system.model.vo; - -import lombok.Data; - -@Data -public class RegionValueResult { - private String id; - private int value; -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/RoleSearch.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/RoleSearch.java deleted file mode 100644 index a981574..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/RoleSearch.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.toesbieya.jxc.system.model.vo; - -import cn.toesbieya.jxc.common.model.vo.BaseSearch; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class RoleSearch extends BaseSearch { - private Integer id; - private String name; - private Integer cid; - private String cname; - private Boolean enable; - private Long startTime; - private Long endTime; -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/SupplierSearch.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/SupplierSearch.java deleted file mode 100644 index 6dac68d..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/SupplierSearch.java +++ /dev/null @@ -1,21 +0,0 @@ -package cn.toesbieya.jxc.system.model.vo; - -import cn.toesbieya.jxc.common.model.vo.BaseSearch; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class SupplierSearch extends BaseSearch { - private Integer id; - private String name; - private String address; - private String linkman; - private String linkphone; - private String region; - private Boolean enable; - private Long startTime; - private Long endTime; -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/SupplierVo.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/SupplierVo.java deleted file mode 100644 index 7c31027..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/SupplierVo.java +++ /dev/null @@ -1,20 +0,0 @@ -package cn.toesbieya.jxc.system.model.vo; - -import cn.toesbieya.jxc.common.model.entity.SysSupplier; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.ToString; -import org.springframework.beans.BeanUtils; - -@Data -@NoArgsConstructor -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class SupplierVo extends SysSupplier { - private String regionName; - - public SupplierVo(SysSupplier parent) { - BeanUtils.copyProperties(parent, this); - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/UserSearch.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/UserSearch.java deleted file mode 100644 index 5ea1910..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/model/vo/UserSearch.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.toesbieya.jxc.system.model.vo; - -import cn.toesbieya.jxc.common.model.vo.BaseSearch; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -public class UserSearch extends BaseSearch { - private Integer id; - private String loginName; - private String nickName; - private String role; - private Long startTime; - private Long endTime; - private Boolean enable; -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/CategoryService.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/CategoryService.java deleted file mode 100644 index af5c4a5..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/CategoryService.java +++ /dev/null @@ -1,123 +0,0 @@ -package cn.toesbieya.jxc.system.service; - -import cn.toesbieya.jxc.common.model.entity.SysCategory; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.system.mapper.SysCategoryMapper; -import cn.toesbieya.jxc.system.model.vo.CategorySearch; -import cn.toesbieya.jxc.web.common.annoation.Lock; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.List; - -@Service -@Slf4j -public class CategoryService { - @Resource - private SysCategoryMapper mapper; - - public List getAll() { - return mapper.selectList(null); - } - - public List search(CategorySearch vo) { - Integer id = vo.getId(); - String ids = vo.getIds(); - Integer pid = vo.getPid(); - String pids = vo.getPids(); - String name = vo.getName(); - Boolean leaf = vo.getLeaf(); - Long startTime = vo.getStartTime(); - Long endTime = vo.getEndTime(); - - return mapper.selectList( - Wrappers.lambdaQuery(SysCategory.class) - .eq(id != null, SysCategory::getId, id) - .inSql(!StringUtils.isEmpty(ids), SysCategory::getId, ids) - .eq(pid != null, SysCategory::getPid, pid) - .inSql(!StringUtils.isEmpty(pids), SysCategory::getPid, pids) - .like(!StringUtils.isEmpty(name), SysCategory::getName, name) - .eq(leaf != null, SysCategory::isLeaf, leaf) - .ge(startTime != null, SysCategory::getCtime, startTime) - .le(endTime != null, SysCategory::getCtime, endTime) - .orderByDesc(SysCategory::getCtime) - ); - } - - @UserAction("'添加分类:'+#category.name") - @Lock("'category'+#category.pid") - public R add(SysCategory category) { - String err = check(category); - if (err != null) return R.fail("添加失败," + err); - - int rows = mapper.insert(category); - return rows > 0 ? R.success("添加成功") : R.fail("添加失败"); - } - - @UserAction("'修改分类:'+#category.name") - @Lock("'category'+#category.id") - public R update(SysCategory category) { - String err = check(category); - if (err != null) return R.fail("修改失败," + err); - - int rows = mapper.update( - null, - Wrappers.lambdaUpdate(SysCategory.class) - .set(SysCategory::getPid, category.getPid()) - .set(SysCategory::getName, category.getName()) - .set(SysCategory::isLeaf, category.isLeaf()) - .eq(SysCategory::getId, category.getId()) - ); - return rows > 0 ? R.success("修改成功") : R.fail("修改失败,请刷新后重试"); - } - - @UserAction("'删除分类:'+#category.name") - @Lock("'category'+#category.id") - public R del(SysCategory category) { - Integer cid = category.getId(); - if (hasChildren(cid)) { - return R.fail("请先删除该分类下的子节点"); - } - if (mapper.checkIsUse(cid)) { - return R.fail("该分类已在业务中使用,不可删除"); - } - int rows = mapper.deleteById(cid); - return rows > 0 ? R.success("删除成功") : R.fail("删除失败,请刷新后重试"); - } - - private String check(SysCategory category) { - //当该分类不是顶级节点时,判断其父节点是否允许有下级 - if (!category.getPid().equals(0)) { - SysCategory parent = mapper.selectById(category.getPid()); - if (parent == null || parent.isLeaf()) { - return "父节点状态变更,请刷新后重试"; - } - } - Integer id = category.getId(); - Integer exist = mapper.selectCount( - Wrappers.lambdaQuery(SysCategory.class) - .eq(SysCategory::getName, category.getName()) - .ne(id != null, SysCategory::getId, id) - ); - if (exist != null && exist > 0) { - return String.format("分类【%s】已存在", category.getName()); - } - if (id != null && category.isLeaf() && hasChildren(id)) { - return "该分类下存在子节点,不能改为实体类型"; - } - return null; - } - - private boolean hasChildren(Integer id) { - Integer checkNum = mapper.selectCount( - Wrappers.lambdaQuery(SysCategory.class) - .eq(SysCategory::getPid, id) - ); - - return checkNum != null && checkNum > 0; - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/CustomerService.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/CustomerService.java deleted file mode 100644 index 4289701..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/CustomerService.java +++ /dev/null @@ -1,140 +0,0 @@ -package cn.toesbieya.jxc.system.service; - -import cn.toesbieya.jxc.common.model.entity.SysCustomer; -import cn.toesbieya.jxc.common.model.entity.SysRegion; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.util.Util; -import cn.toesbieya.jxc.system.mapper.SysCustomerMapper; -import cn.toesbieya.jxc.system.mapper.SysRegionMapper; -import cn.toesbieya.jxc.system.model.vo.CustomerSearch; -import cn.toesbieya.jxc.system.model.vo.CustomerVo; -import cn.toesbieya.jxc.system.model.vo.RegionValueResult; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import cn.toesbieya.jxc.web.common.model.vo.PageResult; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.github.pagehelper.PageHelper; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.*; - -@Service -public class CustomerService { - @Resource - private SysCustomerMapper customerMapper; - @Resource - private SysRegionMapper regionMapper; - - public List getLimitRegion() { - return customerMapper.getLimitRegion(); - } - - public PageResult search(CustomerSearch vo) { - Integer id = vo.getId(); - String name = vo.getName(); - String address = vo.getAddress(); - String linkman = vo.getLinkman(); - String linkphone = vo.getLinkphone(); - String region = vo.getRegion(); - Boolean enable = vo.getEnable(); - Long startTime = vo.getStartTime(); - Long endTime = vo.getEndTime(); - - Wrapper wrapper = - Wrappers.lambdaQuery(SysCustomer.class) - .eq(id != null, SysCustomer::getId, id) - .like(!StringUtils.isEmpty(name), SysCustomer::getName, name) - .like(!StringUtils.isEmpty(address), SysCustomer::getAddress, address) - .like(!StringUtils.isEmpty(linkman), SysCustomer::getLinkman, linkman) - .eq(!StringUtils.isEmpty(linkphone), SysCustomer::getLinkphone, linkphone) - .inSql(!StringUtils.isEmpty(region), SysCustomer::getRegion, region) - .eq(enable != null, SysCustomer::isEnable, enable) - .ge(startTime != null, SysCustomer::getCtime, startTime) - .le(endTime != null, SysCustomer::getCtime, endTime) - .orderByDesc(SysCustomer::getCtime); - - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - - List customers = customerMapper.selectList(wrapper); - - PageResult pageResult = new PageResult<>(customers); - - int customerNum = customers.size(); - - List list = new ArrayList<>(customerNum); - - Set regionIds = new HashSet<>(customerNum); - - customers.forEach(customer -> { - list.add(new CustomerVo(customer)); - regionIds.add(customer.getRegion()); - }); - - //获取关联的行政区域的名称 - List regions = regionIds.isEmpty() ? Collections.emptyList() : regionMapper.selectBatchIds(regionIds); - list.forEach(customerVo -> { - SysRegion matched = Util.find(regions, item -> customerVo.getRegion().equals(item.getId())); - - if (matched != null) { - customerVo.setRegionName(matched.getFullname()); - } - }); - - return new PageResult<>(pageResult.getTotal(), list); - } - - @UserAction("'添加客户:'+ #customer.name") - public R add(SysCustomer customer) { - if (isNameExist(customer.getName(), null)) { - return R.fail("添加失败,客户【" + customer.getName() + "】已存在"); - } - int rows = customerMapper.insert(customer); - return rows > 0 ? R.success("添加成功") : R.fail("添加失败"); - } - - @UserAction("'修改客户:'+ #customer.name") - public R update(SysCustomer customer) { - Integer id = customer.getId(); - String name = customer.getName(); - - if (isNameExist(name, id)) { - return R.fail(String.format("修改失败,客户【%s】已存在", name)); - } - - int rows = customerMapper.update( - null, - Wrappers.lambdaUpdate(SysCustomer.class) - .set(SysCustomer::getName, name) - .set(SysCustomer::getAddress, customer.getAddress()) - .set(SysCustomer::getLinkman, customer.getLinkman()) - .set(SysCustomer::getLinkphone, customer.getLinkphone()) - .set(SysCustomer::getRegion, customer.getRegion()) - .set(SysCustomer::isEnable, customer.isEnable()) - .set(SysCustomer::getRemark, customer.getRemark()) - .eq(SysCustomer::getId, id) - ); - return rows > 0 ? R.success("修改成功") : R.fail("修改失败,请刷新重试"); - } - - @UserAction("'删除客户:'+ #customer.name") - public R del(SysCustomer customer) { - int rows = customerMapper.delete( - Wrappers.lambdaQuery(SysCustomer.class) - .eq(SysCustomer::getId, customer.getId()) - .eq(SysCustomer::isEnable, false) - ); - return rows > 0 ? R.success("删除成功") : R.fail("删除失败,请刷新重试"); - } - - private boolean isNameExist(String name, Integer id) { - Integer num = customerMapper.selectCount( - Wrappers.lambdaQuery(SysCustomer.class) - .eq(SysCustomer::getName, name) - .ne(id != null, SysCustomer::getId, id) - ); - - return num != null && num > 0; - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/DepartmentService.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/DepartmentService.java deleted file mode 100644 index bd305c9..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/DepartmentService.java +++ /dev/null @@ -1,123 +0,0 @@ -package cn.toesbieya.jxc.system.service; - -import cn.toesbieya.jxc.api.system.DepartmentApi; -import cn.toesbieya.jxc.common.enumeration.DataScopeEnum; -import cn.toesbieya.jxc.common.model.entity.SysDepartment; -import cn.toesbieya.jxc.common.model.entity.SysRole; -import cn.toesbieya.jxc.common.model.entity.SysUser; -import cn.toesbieya.jxc.common.model.vo.DepartmentVo; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.util.Util; -import cn.toesbieya.jxc.system.mapper.SysDepartmentMapper; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; - -@Service -@org.apache.dubbo.config.annotation.Service -public class DepartmentService implements DepartmentApi { - @Resource - private SysDepartmentMapper departmentMapper; - @Resource - private RoleService roleService; - - public List getAll() { - return departmentMapper.selectChildrenById(1); - } - - @Override - public DepartmentVo getById(int id) { - List list = departmentMapper.selectParentsById(id); - DepartmentVo parent = Util.find(list, i -> i.getPid().equals(0)); - DepartmentVo child = Util.find(list, i -> i.getId().equals(id)); - if (parent == null || child == null) { - return null; - } - child.setFullname(parent.getFullname()); - return child; - } - - @Override - public Set getUserDataScope(SysUser user) { - if (user.isAdmin()) return null; - - SysRole role = roleService.getRoleById(user.getRole()); - - if (role == null) return Collections.emptySet(); - - int scope = role.getScope(); - - //全部 - if (scope == DataScopeEnum.ALL.getCode()) { - return null; - } - - //本部门 - if (scope == DataScopeEnum.SELF.getCode()) { - Integer dept = user.getDept(); - if (dept == null) return Collections.emptySet(); - return departmentMapper - .selectChildrenById(dept) - .stream() - .map(DepartmentVo::getId) - .collect(Collectors.toSet()); - } - - //指定部门 - if (scope == DataScopeEnum.SPECIFIC.getCode()) { - String deptIds = role.getDepartmentId(); - if (StringUtils.isEmpty(deptIds)) { - return Collections.emptySet(); - } - return Arrays - .stream(deptIds.split(",")) - .map(Integer::valueOf) - .collect(Collectors.toSet()); - } - - return Collections.emptySet(); - } - - @UserAction("'添加部门:'+#department.name") - public R add(SysDepartment department) { - if (isNameExist(null, department.getPid(), department.getName())) { - return R.fail("添加失败,存在名称相同的同级部门"); - } - int rows = departmentMapper.insert(department); - return rows > 0 ? R.success("添加成功") : R.fail("添加失败"); - } - - @UserAction("'修改部门:'+#department.name") - public R update(SysDepartment department) { - if (isNameExist(department.getId(), department.getPid(), department.getName())) { - return R.fail("修改失败,存在名称相同的同级部门"); - } - departmentMapper.updateById(department); - return R.success("修改成功"); - } - - @UserAction("'删除部门:'+#department.name") - public R del(SysDepartment department) { - int rows = departmentMapper.deleteById(department.getId()); - return rows > 0 ? R.success("删除成功") : R.fail("删除失败,请刷新重试"); - } - - //判断同级节点中是否有相同的部门名称 - private boolean isNameExist(Integer id, Integer pid, String name) { - Integer num = departmentMapper.selectCount( - Wrappers.lambdaQuery(SysDepartment.class) - .eq(SysDepartment::getName, name) - .ne(id != null, SysDepartment::getId, id) - .eq(SysDepartment::getPid, pid) - ); - return num != null && num > 0; - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/ResourceService.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/ResourceService.java deleted file mode 100644 index 91a4080..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/ResourceService.java +++ /dev/null @@ -1,170 +0,0 @@ -package cn.toesbieya.jxc.system.service; - -import cn.toesbieya.jxc.api.system.ResourceApi; -import cn.toesbieya.jxc.common.enumeration.ResourceTypeEnum; -import cn.toesbieya.jxc.common.model.entity.SysResource; -import cn.toesbieya.jxc.common.model.entity.SysRole; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.system.mapper.SysResourceMapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; -import java.util.function.Predicate; -import java.util.stream.Collectors; - -@Service -@org.apache.dubbo.config.annotation.Service -public class ResourceService implements ResourceApi { - @Resource - private SysResourceMapper mapper; - - public List getAll() { - return mapper.selectList(null); - } - - @Override - public List getEnableApi() { - return getEnableResourceTree(null, i -> i.getType().equals(ResourceTypeEnum.API.getCode())); - } - - @Override - public List getResourceByRole(SysRole role) { - if (role == null) { - return Collections.emptyList(); - } - - String ids = role.getResourceId(); - - if (StringUtils.isEmpty(ids)) { - return Collections.emptyList(); - } - - return getEnableResourceTree(ids, i -> { - Integer type = i.getType(); - return !type.equals(ResourceTypeEnum.ROOT.getCode()) - && !type.equals(ResourceTypeEnum.FOLDER.getCode()); - }); - } - - public R add(SysResource entity) { - String error = check(entity); - if (!StringUtils.isEmpty(error)) { - return R.fail("添加失败," + error); - } - - entity.setId(null); - transform(entity); - - mapper.insert(entity); - - return R.success("添加成功"); - } - - public R update(SysResource entity) { - String error = check(entity); - if (!StringUtils.isEmpty(error)) { - return R.fail("修改失败," + error); - } - - transform(entity); - - mapper.updateById(entity); - - return R.success("修改成功"); - } - - public R del(int id) { - Integer childrenNum = mapper.selectCount( - Wrappers.lambdaQuery(SysResource.class) - .eq(SysResource::getPid, id) - ); - if (childrenNum != null && childrenNum > 0) { - return R.fail("删除失败,该节点下已有其他子节点存在"); - } - int row = mapper.deleteById(id); - return row > 0 ? R.success("删除成功") : R.fail("删除失败"); - } - - /** - * 获取路径经过叠加且以启用的resource列表 - * @param ids resource的id集合,逗号隔开,传入null则返回全部 - * @param predicate 额外的过滤条件,传入null则不进行额外判断 - */ - private List getEnableResourceTree(String ids, Predicate predicate) { - return mapper - .selectChildren(ids) - .stream() - .filter(r -> { - if (!r.isEnable() || predicate != null && !predicate.test(r)) { - return false; - } - - String path = r.getPath(); - int index = path.lastIndexOf("//"); - if (index != -1 && !path.startsWith("http")) { - //去掉'//'前拼接的父节点的path - r.setPath(path.substring(index + 1)); - } - - return true; - }) - .collect(Collectors.toList()); - } - - //判断节点是否合法,不合法则返回错误信息 - private String check(SysResource entity) { - Integer pid = entity.getPid(); - Integer type = entity.getType(); - - //顶部菜单的pid必须为0 - if (type.equals(ResourceTypeEnum.ROOT.getCode())) { - return pid.equals(0) ? null : "顶部菜单不能有父节点"; - } - - //校验父节点 - SysResource parent = mapper.selectById(pid); - if (parent == null) { - return "父节点不存在,请刷新后重试"; - } - Integer parentType = parent.getType(); - //1.待添加的节点为数据接口且父节点必须为叶子菜单 - boolean isApi = type.equals(ResourceTypeEnum.API.getCode()); - if (isApi) { - if (!parentType.equals(ResourceTypeEnum.LEAF.getCode())) { - return "数据接口只能以页面菜单为父节点"; - } - } - //2.非数据接口的节点,其父节点必须为聚合菜单 - else if (!parentType.equals(ResourceTypeEnum.ROOT.getCode()) && !parentType.equals(ResourceTypeEnum.FOLDER.getCode())) { - return "菜单只能以聚合菜单或顶部菜单为父节点"; - } - return null; - } - - //数据转换 - private void transform(SysResource entity) { - Integer type = entity.getType(); - boolean isRoot = type.equals(ResourceTypeEnum.ROOT.getCode()); - boolean isFolder = type.equals(ResourceTypeEnum.FOLDER.getCode()); - boolean isLeaf = type.equals(ResourceTypeEnum.LEAF.getCode()); - boolean isApi = type.equals(ResourceTypeEnum.API.getCode()); - - //能自定义component的只有叶子菜单 - if (!isLeaf) { - //顶部菜单的组件只能为'Layout' - entity.setComponent(isRoot ? "Layout" : null); - } - //顶部或聚合菜单不能设置name(此处的name是路由名称) - if (isRoot || isFolder) { - entity.setName(null); - } - //数据接口不能设置meta - if (isApi) { - entity.setMeta(null); - } - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/RoleService.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/RoleService.java deleted file mode 100644 index 934e6b4..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/RoleService.java +++ /dev/null @@ -1,112 +0,0 @@ -package cn.toesbieya.jxc.system.service; - -import cn.toesbieya.jxc.api.system.RoleApi; -import cn.toesbieya.jxc.common.model.entity.SysRole; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.system.mapper.SysRoleMapper; -import cn.toesbieya.jxc.system.model.vo.RoleSearch; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import cn.toesbieya.jxc.web.common.model.vo.PageResult; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.github.pagehelper.PageHelper; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.List; - -@Service -@org.apache.dubbo.config.annotation.Service -public class RoleService implements RoleApi { - @Resource - private SysRoleMapper mapper; - - public List get() { - return mapper.selectList( - Wrappers.lambdaQuery(SysRole.class) - .eq(SysRole::isEnable, true) - ); - } - - @Override - public SysRole getRoleById(Integer id) { - return id == null ? null : mapper.selectById(id); - } - - public PageResult search(RoleSearch vo) { - Integer id = vo.getId(); - String name = vo.getName(); - Integer cid = vo.getCid(); - String cname = vo.getCname(); - Boolean enable = vo.getEnable(); - Long startTime = vo.getStartTime(); - Long endTime = vo.getEndTime(); - - Wrapper wrapper = - Wrappers.lambdaQuery(SysRole.class) - .eq(id != null, SysRole::getId, id) - .like(!StringUtils.isEmpty(name), SysRole::getName, name) - .eq(cid != null, SysRole::getCid, cid) - .like(!StringUtils.isEmpty(cname), SysRole::getName, cname) - .eq(enable != null, SysRole::isEnable, enable) - .ge(startTime != null, SysRole::getCtime, startTime) - .le(endTime != null, SysRole::getCtime, endTime) - .orderByDesc(SysRole::getCtime); - - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - return new PageResult<>(mapper.selectList(wrapper)); - } - - @UserAction("'添加角色:'+#role.name") - public R add(SysRole role) { - if (isNameExist(role.getName(), null)) { - return R.fail("添加失败,角色名称重复"); - } - - int rows = mapper.insert(role); - return rows > 0 ? R.success("添加成功") : R.fail("添加失败"); - } - - @UserAction("'修改角色:'+#role.name") - public R update(SysRole role) { - Integer id = role.getId(); - String name = role.getName(); - - if (isNameExist(name, id)) { - return R.fail("修改失败,角色名称重复"); - } - - mapper.update( - null, - Wrappers.lambdaUpdate(SysRole.class) - .set(SysRole::getName, name) - .set(SysRole::isEnable, role.isEnable()) - .set(SysRole::getScope, role.getScope()) - .set(SysRole::getDepartmentId, role.getDepartmentId()) - .set(SysRole::getResourceId, role.getResourceId()) - .eq(SysRole::getId, id) - ); - return R.success("修改成功"); - } - - @UserAction("'删除角色:'+#role.name") - public R del(SysRole role) { - int rows = mapper.delete( - Wrappers.lambdaQuery(SysRole.class) - .eq(SysRole::getId, role.getId()) - .eq(SysRole::isEnable, false) - ); - return rows > 0 ? R.success("删除成功") : R.fail("删除失败,请刷新重试"); - } - - private boolean isNameExist(String name, Integer id) { - Integer num = mapper.selectCount( - Wrappers.lambdaQuery(SysRole.class) - .eq(SysRole::getName, name) - .ne(id != null, SysRole::getId, id) - ); - - return num != null && num > 0; - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/SupplierService.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/SupplierService.java deleted file mode 100644 index 5cbc7f1..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/SupplierService.java +++ /dev/null @@ -1,139 +0,0 @@ -package cn.toesbieya.jxc.system.service; - -import cn.toesbieya.jxc.common.model.entity.SysRegion; -import cn.toesbieya.jxc.common.model.entity.SysSupplier; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.util.Util; -import cn.toesbieya.jxc.system.mapper.SysRegionMapper; -import cn.toesbieya.jxc.system.mapper.SysSupplierMapper; -import cn.toesbieya.jxc.system.model.vo.RegionValueResult; -import cn.toesbieya.jxc.system.model.vo.SupplierSearch; -import cn.toesbieya.jxc.system.model.vo.SupplierVo; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import cn.toesbieya.jxc.web.common.model.vo.PageResult; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.github.pagehelper.PageHelper; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.*; - -@Service -public class SupplierService { - @Resource - private SysSupplierMapper supplierMapper; - @Resource - private SysRegionMapper regionMapper; - - public List getLimitRegion() { - return supplierMapper.getLimitRegion(); - } - - public PageResult search(SupplierSearch vo) { - Integer id = vo.getId(); - String name = vo.getName(); - String address = vo.getAddress(); - String linkman = vo.getLinkman(); - String linkphone = vo.getLinkphone(); - String region = vo.getRegion(); - Boolean enable = vo.getEnable(); - Long startTime = vo.getStartTime(); - Long endTime = vo.getEndTime(); - - Wrapper wrapper = - Wrappers.lambdaQuery(SysSupplier.class) - .eq(id != null, SysSupplier::getId, id) - .like(!StringUtils.isEmpty(name), SysSupplier::getName, name) - .like(!StringUtils.isEmpty(address), SysSupplier::getAddress, address) - .like(!StringUtils.isEmpty(linkman), SysSupplier::getLinkman, linkman) - .eq(!StringUtils.isEmpty(linkphone), SysSupplier::getLinkphone, linkphone) - .inSql(!StringUtils.isEmpty(region), SysSupplier::getRegion, region) - .eq(enable != null, SysSupplier::isEnable, enable) - .ge(startTime != null, SysSupplier::getCtime, startTime) - .le(endTime != null, SysSupplier::getCtime, endTime) - .orderByDesc(SysSupplier::getCtime); - - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - - List suppliers = supplierMapper.selectList(wrapper); - - PageResult pageResult = new PageResult<>(suppliers); - - int supplierNum = suppliers.size(); - - List list = new ArrayList<>(supplierNum); - - Set regionIds = new HashSet<>(supplierNum); - - suppliers.forEach(supplier -> { - list.add(new SupplierVo(supplier)); - regionIds.add(supplier.getRegion()); - }); - - //获取关联的行政区域的名称 - List regions = regionIds.isEmpty() ? Collections.emptyList() : regionMapper.selectBatchIds(regionIds); - list.forEach(supplierVo -> { - SysRegion matched = Util.find(regions, item -> supplierVo.getRegion().equals(item.getId())); - if (matched != null) { - supplierVo.setRegionName(matched.getFullname()); - } - }); - - return new PageResult<>(pageResult.getTotal(), list); - } - - @UserAction("'添加供应商:'+ #supplier.name") - public R add(SysSupplier supplier) { - if (isNameExist(supplier.getName(), null)) { - return R.fail(String.format("添加失败,供应商【%s】已存在", supplier.getName())); - } - int rows = supplierMapper.insert(supplier); - return rows > 0 ? R.success("添加成功") : R.fail("添加失败"); - } - - @UserAction("'修改供应商:'+ #supplier.name") - public R update(SysSupplier supplier) { - Integer id = supplier.getId(); - String name = supplier.getName(); - - if (isNameExist(name, id)) { - return R.fail(String.format("修改失败,供应商【%s】已存在", name)); - } - - supplierMapper.update( - null, - Wrappers.lambdaUpdate(SysSupplier.class) - .set(SysSupplier::getName, name) - .set(SysSupplier::getAddress, supplier.getAddress()) - .set(SysSupplier::getLinkman, supplier.getLinkman()) - .set(SysSupplier::getLinkphone, supplier.getLinkphone()) - .set(SysSupplier::getRegion, supplier.getRegion()) - .set(SysSupplier::isEnable, supplier.isEnable()) - .set(SysSupplier::getRemark, supplier.getRemark()) - .eq(SysSupplier::getId, id) - ); - return R.success("修改成功"); - } - - @UserAction("'删除供应商:'+ #supplier.name") - public R del(SysSupplier supplier) { - int rows = supplierMapper.delete( - Wrappers.lambdaQuery(SysSupplier.class) - .eq(SysSupplier::getId, supplier.getId()) - .eq(SysSupplier::isEnable, false) - ); - return rows > 0 ? R.success("删除成功") : R.fail("删除失败,请刷新重试"); - } - - private boolean isNameExist(String name, Integer id) { - Integer num = supplierMapper.selectCount( - Wrappers.lambdaQuery(SysSupplier.class) - .eq(SysSupplier::getName, name) - .ne(id != null, SysSupplier::getId, id) - ); - - return num != null && num > 0; - } -} diff --git a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/UserService.java b/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/UserService.java deleted file mode 100644 index e491a4a..0000000 --- a/java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/UserService.java +++ /dev/null @@ -1,206 +0,0 @@ -package cn.toesbieya.jxc.system.service; - -import cn.toesbieya.jxc.common.model.entity.SysRole; -import cn.toesbieya.jxc.common.model.entity.SysUser; -import cn.toesbieya.jxc.common.model.vo.DepartmentVo; -import cn.toesbieya.jxc.common.model.vo.R; -import cn.toesbieya.jxc.common.model.vo.UserVo; -import cn.toesbieya.jxc.common.util.Util; -import cn.toesbieya.jxc.common.util.WebSocketUtil; -import cn.toesbieya.jxc.system.mapper.SysRoleMapper; -import cn.toesbieya.jxc.system.mapper.SysUserMapper; -import cn.toesbieya.jxc.system.model.vo.UserSearch; -import cn.toesbieya.jxc.web.common.annoation.UserAction; -import cn.toesbieya.jxc.web.common.model.vo.PageResult; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.github.pagehelper.PageHelper; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.DigestUtils; -import org.springframework.util.StringUtils; - -import javax.annotation.Resource; -import java.util.*; -import java.util.stream.Collectors; - -@Service -public class UserService { - private static final String DEFAULT_PWD = DigestUtils.md5DigestAsHex("123456".getBytes()); - @Resource - private SysUserMapper userMapper; - @Resource - private SysRoleMapper roleMapper; - @Resource - private DepartmentService departmentService; - - public PageResult search(UserSearch vo) { - Integer id = vo.getId(); - String loginName = vo.getLoginName(); - String nickName = vo.getNickName(); - String roleIds = vo.getRole(); - Boolean enable = vo.getEnable(); - Long startTime = vo.getStartTime(); - Long endTime = vo.getEndTime(); - - Wrapper wrapper = - Wrappers.lambdaQuery(SysUser.class) - .eq(SysUser::isAdmin, false) - .eq(id != null, SysUser::getId, id) - .like(!StringUtils.isEmpty(loginName), SysUser::getLoginName, loginName) - .like(!StringUtils.isEmpty(nickName), SysUser::getNickName, nickName) - .inSql(!StringUtils.isEmpty(roleIds), SysUser::getRole, roleIds) - .eq(enable != null, SysUser::isEnable, enable) - .ge(startTime != null, SysUser::getCtime, startTime) - .le(endTime != null, SysUser::getCtime, endTime) - .orderByDesc(SysUser::getCtime); - - PageHelper.startPage(vo.getPage(), vo.getPageSize()); - List users = userMapper.selectList(wrapper); - PageResult pageResult = new PageResult<>(users); - - int userNum = users.size(); - - //传递给前端的结果集 - List result = new ArrayList<>(userNum); - - //当前在线的用户id - Set onlineUserIds = WebSocketUtil.getOnlineUserIds(); - - //查询得到的用户的角色id - Set userRoleIds = new HashSet<>(userNum); - //查询得到的用户的部门id - Set userDeptIds = new HashSet<>(userNum); - - users.forEach(user -> { - result.add(new UserVo(user)); - Integer rid = user.getRole(); - Integer deptId = user.getDept(); - if (rid != null) userRoleIds.add(rid); - if (deptId != null) userDeptIds.add(deptId); - }); - - List roles = userRoleIds.isEmpty() ? Collections.emptyList() : roleMapper.selectBatchIds(userRoleIds); - List depts = userDeptIds.isEmpty() ? Collections.emptyList() : departmentService.getAll(); - - result.forEach(userVo -> { - //设置在线情况 - userVo.setOnline(Util.some(onlineUserIds, i -> userVo.getId().equals(i))); - - //设置用户的角色名称 - Integer roleId = userVo.getRole(); - if (roleId != null) { - SysRole matched = Util.find(roles, i -> i.getId().equals(roleId)); - if (matched != null) { - userVo.setRoleName(matched.getName()); - } - } - - //设置部门名称 - Integer deptId = userVo.getDept(); - if (deptId != null) { - DepartmentVo matched = Util.find(depts, i -> i.getId().equals(deptId)); - if (matched != null) { - userVo.setDeptName(matched.getFullname()); - } - } - }); - - return new PageResult<>(pageResult.getTotal(), result); - } - - @UserAction("'添加用户:'+#user.loginName") - public R add(SysUser user) { - if (isLoginNameExist(user.getLoginName(), null)) { - return R.fail("该登录名已存在"); - } - if (isNickNameExist(user.getNickName(), null)) { - return R.fail("该用户昵称已存在"); - } - - user.setId(null); - user.setCtime(System.currentTimeMillis()); - user.setPwd(DEFAULT_PWD); - - userMapper.insert(user); - return R.success("添加成功"); - } - - @UserAction("'修改用户:'+#user.loginName") - public R update(SysUser user) { - Integer id = user.getId(); - String name = user.getNickName(); - - if (isNickNameExist(name, id)) { - return R.fail("该用户昵称已存在"); - } - - userMapper.update( - null, - Wrappers.lambdaUpdate(SysUser.class) - .set(SysUser::getNickName, name) - .set(SysUser::getRole, user.getRole()) - .set(SysUser::getDept, user.getDept()) - .set(SysUser::isEnable, user.isEnable()) - .eq(SysUser::getId, id) - ); - - return R.success("修改成功"); - } - - @UserAction("'删除用户:'+#user.loginName") - @Transactional(rollbackFor = Exception.class) - public R del(SysUser user) { - int rows = userMapper.delete( - Wrappers.lambdaQuery(SysUser.class) - .eq(SysUser::getId, user.getId()) - .eq(SysUser::isAdmin, false) - ); - WebSocketUtil.sendLogoutEvent(Collections.singletonList(user.getId()), "该用户已删除"); - return rows > 0 ? R.success("删除成功") : R.fail("删除失败,请刷新后重试"); - } - - @UserAction - public R kick(List users) { - WebSocketUtil.sendLogoutEvent( - users - .stream() - .map(SysUser::getId) - .collect(Collectors.toList()), - "你已被强制下线,请重新登陆" - ); - - return R.success("踢出成功"); - } - - @UserAction("'重置用户密码:'+#user.loginName") - public R resetPwd(SysUser user) { - int rows = userMapper.update( - null, - Wrappers.lambdaUpdate(SysUser.class) - .set(SysUser::getPwd, DEFAULT_PWD) - .eq(SysUser::getId, user.getId()) - ); - return rows > 0 ? R.success() : R.fail("重置失败,未匹配到用户"); - } - - //登录名重复时返回true - private boolean isLoginNameExist(String name, Integer id) { - Integer num = userMapper.selectCount( - Wrappers.lambdaQuery(SysUser.class) - .eq(SysUser::getLoginName, name) - .ne(id != null, SysUser::getId, id) - ); - return num != null && num > 0; - } - - //用户昵称重复时返回true - private boolean isNickNameExist(String name, Integer id) { - Integer num = userMapper.selectCount( - Wrappers.lambdaQuery(SysUser.class) - .eq(SysUser::getNickName, name) - .ne(id != null, SysUser::getId, id) - ); - return num != null && num > 0; - } -} diff --git a/java/cloud/web/web-modules/system/src/main/resources/bootstrap.yml b/java/cloud/web/web-modules/system/src/main/resources/bootstrap.yml deleted file mode 100644 index 6b87a6c..0000000 --- a/java/cloud/web/web-modules/system/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,25 +0,0 @@ -spring: - application: - name: jxc-web-system - - cloud: - nacos: - config: - server-addr: 127.0.0.1:8848 - file-extension: yml - shared-configs: - - data-id: jxc-common-database.yml - - data-id: jxc-common-redis.yml - discovery: - server-addr: 127.0.0.1:8848 - -dubbo: - protocol: - port: -1 - name: dubbo - scan: - base-packages: cn.toesbieya.jxc.system.service - registry: - address: nacos://127.0.0.1:8848 - cloud: - subscribed-services: jxc-web-record \ No newline at end of file diff --git a/java/cloud/web/web-modules/system/src/main/resources/mapper/SysCategory.xml b/java/cloud/web/web-modules/system/src/main/resources/mapper/SysCategory.xml deleted file mode 100644 index 8affde5..0000000 --- a/java/cloud/web/web-modules/system/src/main/resources/mapper/SysCategory.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/system/src/main/resources/mapper/SysCustomer.xml b/java/cloud/web/web-modules/system/src/main/resources/mapper/SysCustomer.xml deleted file mode 100644 index 02a2a25..0000000 --- a/java/cloud/web/web-modules/system/src/main/resources/mapper/SysCustomer.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/system/src/main/resources/mapper/SysDepartment.xml b/java/cloud/web/web-modules/system/src/main/resources/mapper/SysDepartment.xml deleted file mode 100644 index 43b75c8..0000000 --- a/java/cloud/web/web-modules/system/src/main/resources/mapper/SysDepartment.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/system/src/main/resources/mapper/SysResource.xml b/java/cloud/web/web-modules/system/src/main/resources/mapper/SysResource.xml deleted file mode 100644 index 3c1dba8..0000000 --- a/java/cloud/web/web-modules/system/src/main/resources/mapper/SysResource.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - \ No newline at end of file diff --git a/java/cloud/web/web-modules/system/src/main/resources/mapper/SysSupplier.xml b/java/cloud/web/web-modules/system/src/main/resources/mapper/SysSupplier.xml deleted file mode 100644 index 9bc5d9b..0000000 --- a/java/cloud/web/web-modules/system/src/main/resources/mapper/SysSupplier.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/java/cloud/websocket/pom.xml b/java/cloud/websocket/pom.xml deleted file mode 100644 index 3ac5f73..0000000 --- a/java/cloud/websocket/pom.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - jxc - cn.toesbieya - 0.0.1-SNAPSHOT - - 4.0.0 - - websocket - - - - cn.toesbieya - common - - - - org.springframework.boot - spring-boot-starter - - - - com.corundumstudio.socketio - netty-socketio - - - \ No newline at end of file diff --git a/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/WebSocketApplication.java b/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/WebSocketApplication.java deleted file mode 100644 index 22e6e7a..0000000 --- a/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/WebSocketApplication.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.toesbieya.jxc.socket; - -import org.springframework.boot.WebApplicationType; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.builder.SpringApplicationBuilder; - -@SpringBootApplication(scanBasePackages = "cn.toesbieya.jxc") -public class WebSocketApplication { - public static void main(String[] args) { - new SpringApplicationBuilder(WebSocketApplication.class) - .web(WebApplicationType.NONE) - .run(args); - } -} \ No newline at end of file diff --git a/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/config/RedisEventListenerConfig.java b/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/config/RedisEventListenerConfig.java deleted file mode 100644 index 67e6bb9..0000000 --- a/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/config/RedisEventListenerConfig.java +++ /dev/null @@ -1,145 +0,0 @@ -package cn.toesbieya.jxc.socket.config; - -import cn.toesbieya.jxc.common.constant.SessionConstant; -import cn.toesbieya.jxc.common.constant.SocketConstant; -import cn.toesbieya.jxc.common.model.vo.SocketEventVo; -import cn.toesbieya.jxc.common.util.RedisUtil; -import cn.toesbieya.jxc.common.util.SessionUtil; -import cn.toesbieya.jxc.socket.server.WebSocketServer; -import com.alibaba.fastjson.JSON; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.redis.connection.RedisConnection; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.listener.ChannelTopic; -import org.springframework.data.redis.listener.PatternTopic; -import org.springframework.data.redis.listener.RedisMessageListenerContainer; - -import java.util.List; -import java.util.Properties; - -@Configuration -@Slf4j -public class RedisEventListenerConfig { - private WebSocketServer server; - - @Autowired - public void setSocketServer(WebSocketServer server) { - this.server = server; - } - - @Bean - RedisMessageListenerContainer container(RedisConnectionFactory factory) { - modifyRedisEventConfig(factory); - - RedisMessageListenerContainer container = new RedisMessageListenerContainer(); - container.setConnectionFactory(factory); - - addEventSendListener(container); - addExpireListener(container); - - return container; - } - - //发送消息的监听器 - private void addEventSendListener(RedisMessageListenerContainer container) { - container.addMessageListener( - (message, bytes) -> { - SocketEventVo vo = JSON.parseObject(message.toString(), SocketEventVo.class); - - if (vo == null) return; - - int type = vo.getType(); - String eventName = vo.getEvent(); - Object data = vo.getData(); - List to = vo.getTo(); - - //登出消息 - if (type == SocketConstant.REDIS_EVENT_LOGOUT) { - if (to != null) { - to.forEach(id -> server.logout(id, (String) data)); - } - } - //指定用户 - else if (type == SocketConstant.REDIS_EVENT_SPECIFIC) { - if (to != null) { - to.forEach(id -> server.sendEvent(eventName, id, data)); - } - } - //广播消息 - else if (type == SocketConstant.REDIS_EVENT_BROADCAST) { - server.broadcast(eventName, data); - } - }, - new ChannelTopic(SocketConstant.REDIS_EVENT_TOPIC_SEND) - ); - } - - //key过期的监听器 - private void addExpireListener(RedisMessageListenerContainer container) { - //监听key过期事件 - String expireTopic = SessionConstant.REDIS_EXPIRE_TOPIC_PREFIX + SessionConstant.REDIS_NAMESPACE; - - container.addMessageListener( - (message, bytes) -> { - String event = message.toString(); - String channel = new String(message.getChannel()); - - if (!"del".equals(event) && !"expired".equals(event) - || !channel.startsWith(expireTopic)) { - return; - } - - String token = channel.replace(expireTopic, ""); - Integer uid = SessionUtil.getUidFromToken(token); - - server.logout(uid, token, "登陆信息过期,请重新登陆"); - - //删除离线表信息 - RedisUtil.hdel(SocketConstant.REDIS_OFFLINE_USER, SessionConstant.REDIS_NAMESPACE + token); - }, - new PatternTopic(expireTopic + "*") - ); - } - - //将redis的notify-keyspace-events配置改为Kgx - private void modifyRedisEventConfig(RedisConnectionFactory factory) { - RedisConnection connection = factory.getConnection(); - try { - Properties config = connection.getConfig("notify-keyspace-events"); - - String notifyOptions = - config == null || config.isEmpty() - ? "" - : config.getProperty(config.stringPropertyNames().iterator().next()); - - String customizedNotifyOptions = notifyOptions; - - if (!customizedNotifyOptions.contains("K")) { - customizedNotifyOptions += "K"; - } - - boolean A = customizedNotifyOptions.contains("A"); - - if (!(A || customizedNotifyOptions.contains("g"))) { - customizedNotifyOptions += "g"; - } - if (!(A || customizedNotifyOptions.contains("x"))) { - customizedNotifyOptions += "x"; - } - if (!notifyOptions.equals(customizedNotifyOptions)) { - connection.setConfig("notify-keyspace-events", customizedNotifyOptions); - } - } - finally { - try { - connection.close(); - } - catch (Exception ex) { - log.error("Error closing RedisConnection", ex); - } - } - } -} diff --git a/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/config/SocketConfig.java b/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/config/SocketConfig.java deleted file mode 100644 index 3ec8f6f..0000000 --- a/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/config/SocketConfig.java +++ /dev/null @@ -1,97 +0,0 @@ -package cn.toesbieya.jxc.socket.config; - -import com.corundumstudio.socketio.SocketIOClient; -import com.corundumstudio.socketio.SocketIOServer; -import com.corundumstudio.socketio.annotation.SpringAnnotationScanner; -import com.corundumstudio.socketio.listener.ExceptionListener; -import io.netty.channel.ChannelHandlerContext; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.DependsOn; -import org.springframework.core.io.ClassPathResource; -import org.springframework.util.StringUtils; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; - -@Configuration -@EnableConfigurationProperties(SocketProperty.class) -@DependsOn("redisUtil") -public class SocketConfig { - private SocketProperty property; - - @Bean - public SocketIOServer socketIOServer() throws IOException { - com.corundumstudio.socketio.Configuration config = new com.corundumstudio.socketio.Configuration(); - - setSSL(config); - config.setHostname(property.getHostname()); - config.setPort(property.getPort()); - config.setMaxFramePayloadLength(property.getMaxFramePayloadLength()); - config.setMaxHttpContentLength(property.getMaxHttpContentLength()); - config.setAddVersionHeader(false); - config.setExceptionListener(new ExceptionListener() { - @Override - public void onEventException(Exception e, List args, SocketIOClient client) { - } - - @Override - public void onDisconnectException(Exception e, SocketIOClient client) { - } - - @Override - public void onConnectException(Exception e, SocketIOClient client) { - } - - @Override - public void onPingException(Exception e, SocketIOClient client) { - } - - @Override - public boolean exceptionCaught(ChannelHandlerContext ctx, Throwable e) throws Exception { - return false; - } - }); - - return new SocketIOServer(config); - } - - @Bean - public SpringAnnotationScanner springAnnotationScanner(SocketIOServer socketServer) { - return new SpringAnnotationScanner(socketServer); - } - - @Autowired - public void setSocketProperty(SocketProperty socketProperty) { - this.property = socketProperty; - } - - private void setSSL(com.corundumstudio.socketio.Configuration config) throws IOException { - String keyStore = property.getKeyStore(); - - if (StringUtils.isEmpty(keyStore)) return; - - InputStream inputStream; - String classpathPrefix = "classpath:"; - - if (keyStore.startsWith(classpathPrefix)) { - inputStream = new ClassPathResource(keyStore.substring(classpathPrefix.length())).getInputStream(); - } - else { - inputStream = new FileInputStream(new File(keyStore)); - } - - config.setKeyStore(inputStream); - - String password = property.getKeyStorePassword(); - - if (!StringUtils.isEmpty(password)) { - config.setKeyStorePassword(password); - } - } -} diff --git a/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/config/SocketProperty.java b/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/config/SocketProperty.java deleted file mode 100644 index 07ec357..0000000 --- a/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/config/SocketProperty.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.toesbieya.jxc.socket.config; - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.cloud.context.config.annotation.RefreshScope; - -@ConfigurationProperties("socket") -@RefreshScope -@Data -public class SocketProperty { - private String hostname = "localhost"; - private Integer port = 12580; - private Integer maxFramePayloadLength = 1024 * 1024; - private Integer maxHttpContentLength = 1024 * 1024; - - //ssl证书地址,jks格式,可以是classpath:xxx,也可以是C:\xxx这样的绝对路径 - private String keyStore; - private String keyStorePassword; -} diff --git a/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/server/WebSocketServer.java b/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/server/WebSocketServer.java deleted file mode 100644 index 463a9bb..0000000 --- a/java/cloud/websocket/src/main/java/cn/toesbieya/jxc/socket/server/WebSocketServer.java +++ /dev/null @@ -1,171 +0,0 @@ -package cn.toesbieya.jxc.socket.server; - -import cn.toesbieya.jxc.common.constant.SessionConstant; -import cn.toesbieya.jxc.common.constant.SocketConstant; -import cn.toesbieya.jxc.common.model.vo.SocketOfflineVo; -import cn.toesbieya.jxc.common.util.RedisUtil; -import cn.toesbieya.jxc.common.util.SessionUtil; -import com.corundumstudio.socketio.AckRequest; -import com.corundumstudio.socketio.SocketIOClient; -import com.corundumstudio.socketio.SocketIOServer; -import com.corundumstudio.socketio.annotation.OnConnect; -import com.corundumstudio.socketio.annotation.OnDisconnect; -import com.corundumstudio.socketio.annotation.OnEvent; -import lombok.Data; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.util.StringUtils; - -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; -import java.util.function.BiConsumer; - -@Component -@Slf4j -public class WebSocketServer { - private final ConcurrentHashMap socketMap = new ConcurrentHashMap<>(256); - private final SocketIOServer server; - - @Autowired - public WebSocketServer(SocketIOServer server) { - this.server = server; - - //启动socket服务前清空redis中的在线用户信息 - RedisUtil.del(SocketConstant.REDIS_ONLINE_USER); - - this.server.start(); - } - - public void sendEvent(String event, Integer uid, Object... data) { - sendEvent(event, uid, data, null); - } - - public void sendEvent(String event, Integer uid, Object data, BiConsumer consumer) { - UserObject obj = socketMap.get(uid); - if (obj != null) { - sendEvent(event, obj, data, consumer); - } - } - - public void sendEvent(String event, UserObject obj, Object data, BiConsumer consumer) { - SocketIOClient client = server.getClient(obj.getUuid()); - - if (client == null) return; - - client.sendEvent(event, data); - - if (consumer != null) consumer.accept(obj, client); - } - - public void broadcast(String event, Object... data) { - server.getBroadcastOperations().sendEvent(event, data); - } - - public void logout(Integer uid, String msg) { - logout(uid, null, msg); - } - - public void logout(Integer uid, String token, String msg) { - UserObject obj = socketMap.get(uid); - - //如果传入token且token不同说明不是当前登陆的用户,直接返回 - if (obj == null || !StringUtils.isEmpty(token) && !obj.getToken().equals(token)) return; - - sendEvent(SocketConstant.EVENT_LOGOUT, obj, msg, (o, client) -> { - SessionUtil.remove(o.getToken()); - client.disconnect(); - }); - } - - @OnConnect - public void onConnect(SocketIOClient client) { - UserObject obj = UserObject.getInstance(client); - if (obj == null) return; - String sessionKey = obj.getKey(); - Integer uid = obj.getUid(); - - //用户session是否过期? - if (!RedisUtil.exist(sessionKey)) { - client.sendEvent(SocketConstant.EVENT_LOGOUT, "登陆信息过期,请重新登陆"); - client.disconnect(); - return; - } - - //如果存在,说明该账号重复登陆,强制登出 - if (socketMap.containsKey(uid)) { - logout(uid, "该账号在其他位置登录"); - } - - socketMap.put(uid, obj); - - //放入在线用户ID集合 - RedisUtil.sadd(SocketConstant.REDIS_ONLINE_USER, uid); - //移除离线表的信息 - RedisUtil.hdel(SocketConstant.REDIS_OFFLINE_USER, sessionKey); - } - - @OnDisconnect - public void onDisconnect(SocketIOClient client) { - long now = System.currentTimeMillis(); - UserObject obj = UserObject.getInstance(client); - if (obj == null) return; - - Integer uid = obj.getUid(); - String sessionKey = obj.getKey(); - - //重复登陆时,不需要执行操作 - UserObject already = socketMap.get(uid); - if (already == null || !sessionKey.equals(already.getKey())) { - return; - } - - socketMap.remove(uid); - - //移除在线用户ID集合对应的ID - RedisUtil.srem(SocketConstant.REDIS_ONLINE_USER, uid); - - //在用户session未过期时设置离线表信息 - if (RedisUtil.exist(sessionKey)) { - RedisUtil.hset( - SocketConstant.REDIS_OFFLINE_USER, - sessionKey, - new SocketOfflineVo(uid, now) - ); - } - } - - @OnEvent("text") - public void onEvent(SocketIOClient client, AckRequest ackRequest, String data) { - client.sendEvent("response", "后台得到了数据"); - } - - @Data - private static class UserObject { - private String key; //redis的键名 - private Integer uid; //用户id - private String token; //redis中的token - private UUID uuid; //socketClient自己的sessionID - - public UserObject(SocketIOClient client) { - Map> params = client.getHandshakeData().getUrlParams(); - List list = params.get("id"); - this.uid = Integer.valueOf(list.get(0)); - list = params.get("token"); - this.token = list.get(0); - this.uuid = client.getSessionId(); - this.key = SessionConstant.REDIS_NAMESPACE + this.token; - } - - public static UserObject getInstance(SocketIOClient client) { - try { - return new UserObject(client); - } - catch (Exception e) { - return null; - } - } - } -} diff --git a/java/cloud/websocket/src/main/resources/bootstrap.yml b/java/cloud/websocket/src/main/resources/bootstrap.yml deleted file mode 100644 index f665748..0000000 --- a/java/cloud/websocket/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,13 +0,0 @@ -spring: - application: - name: jxc-websocket - - cloud: - nacos: - config: - server-addr: 127.0.0.1:8848 - file-extension: yml - shared-configs: - - data-id: jxc-common-redis.yml - discovery: - server-addr: 127.0.0.1:8848 \ No newline at end of file diff --git a/vue/template/.gitignore b/vue/template/.gitignore deleted file mode 100644 index 929eb65..0000000 --- a/vue/template/.gitignore +++ /dev/null @@ -1,22 +0,0 @@ -.DS_Store -node_modules -/dist -/test - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/vue/template/babel.config.js b/vue/template/babel.config.js deleted file mode 100644 index c94e729..0000000 --- a/vue/template/babel.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - presets: [ - '@vue/cli-plugin-babel/preset' - ] -} diff --git a/vue/template/element-ui-personal/component/Message/index.js b/vue/template/element-ui-personal/component/Message/index.js deleted file mode 100644 index ecb2913..0000000 --- a/vue/template/element-ui-personal/component/Message/index.js +++ /dev/null @@ -1,101 +0,0 @@ -import Vue from 'vue' -import Main from './main.vue' -import {PopupManager} from 'element-ui/lib/utils/popup' -import {isVNode} from 'element-ui/lib/utils/vdom' - -let MessageConstructor = Vue.extend(Main) - -let instance -let instances = [] -let seed = 1 - -//键:options.type+'|'+options.message,值:message实例 -let groups = {} - -const Message = function (options) { - options = options || {} - if (typeof options === 'string') { - options = {message: options} - } - if (!options.type) { - options.type = 'info' - } - const group = options.type + '|' + options.message - const originalMessage = groups[group] - //若不是新的message - if (originalMessage) { - //旧实例的badge+1,并重新计时(如果有的话) - originalMessage.badge++ - originalMessage.clearTimer(true) - originalMessage.startTimer() - return originalMessage - } - - let userOnClose = options.onClose - let id = 'message_' + seed++ - - options.onClose = function () { - Message.close(id, userOnClose) - } - instance = new MessageConstructor({data: options}) - instance.id = id - instance.group = group - if (isVNode(instance.message)) { - instance.$slots.default = [instance.message] - instance.message = null - } - instance.$mount() - document.body.appendChild(instance.$el) - let verticalOffset = options.offset || 20 - instances.forEach(item => { - verticalOffset += item.$el.offsetHeight + 16 - }) - instance.verticalOffset = verticalOffset - instance.visible = true - instance.$el.style.zIndex = PopupManager.nextZIndex() - instances.push(instance) - groups[group] = instance - return instance -}; - -['success', 'warning', 'info', 'error'].forEach(type => { - Message[type] = options => { - if (typeof options === 'string') { - options = {message: options} - } - options.type = type - return Message(options) - } -}) - -Message.close = function (id, userOnClose) { - let len = instances.length - let index = -1 - let removedHeight - for (let i = 0; i < len; i++) { - if (id === instances[i].id) { - removedHeight = instances[i].$el.offsetHeight - index = i - if (typeof userOnClose === 'function') { - userOnClose(instances[i]) - } - delete groups[instances[i].group] - instances.splice(i, 1) - break - } - } - if (len <= 1 || index === -1 || index > instances.length - 1) return - for (let i = index; i < len - 1; i++) { - let dom = instances[i].$el - dom.style.top = - parseInt(dom.style.top, 10) - removedHeight - 16 + 'px' - } -} - -Message.closeAll = function () { - for (let i = instances.length - 1; i >= 0; i--) { - instances[i].close() - } -} - -export default Message diff --git a/vue/template/element-ui-personal/component/Message/main.vue b/vue/template/element-ui-personal/component/Message/main.vue deleted file mode 100644 index 305fe91..0000000 --- a/vue/template/element-ui-personal/component/Message/main.vue +++ /dev/null @@ -1,110 +0,0 @@ - - - diff --git a/vue/template/element-ui-personal/index.js b/vue/template/element-ui-personal/index.js deleted file mode 100644 index ac08fcf..0000000 --- a/vue/template/element-ui-personal/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import Message from "./component/Message" - -export default function (Vue) { - - Vue.prototype.$message = Message -} diff --git a/vue/template/element-ui-personal/style/index.scss b/vue/template/element-ui-personal/style/index.scss deleted file mode 100644 index 3424bf5..0000000 --- a/vue/template/element-ui-personal/style/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "./message.scss"; diff --git a/vue/template/element-ui-personal/style/message.scss b/vue/template/element-ui-personal/style/message.scss deleted file mode 100644 index 6d141c9..0000000 --- a/vue/template/element-ui-personal/style/message.scss +++ /dev/null @@ -1,58 +0,0 @@ -.el-message { - overflow: visible; - - &__badge { - animation: el-message-badge .42s; - padding: 4px 8px; - position: absolute; - box-shadow: 0 1px 3px rgba(#000, .2), 0 1px 1px rgba(#000, .14), 0 2px 1px -1px rgba(#000, .12); - background-color: $--color-danger; - color: #ffffff; - border-radius: 4px; - top: -10px; - left: -10px; - font-size: 12px; - line-height: 12px; - } - - &__progress { - z-index: -1; - position: absolute; - height: 3px; - bottom: 0; - left: 10px; - right: 10px; - animation: el-message-progress linear; - background-color: currentColor; - opacity: .3; - transform-origin: 0 50%; - transform: scaleX(0); - } -} - -@keyframes el-message-badge { - 15% { - transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg) - } - 30% { - transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg) - } - 45% { - transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg) - } - 60% { - transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg) - } - 75% { - transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg) - } -} - -@keyframes el-message-progress { - 0% { - transform: scaleX(1) - } - 100% { - transform: scaleX(0) - } -} diff --git a/vue/template/package-lock.json b/vue/template/package-lock.json deleted file mode 100644 index dbbf509..0000000 --- a/vue/template/package-lock.json +++ /dev/null @@ -1,11746 +0,0 @@ -{ - "name": "my", - "version": "0.1.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz", - "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.12.7.tgz?cache=0&sync_timestamp=1605904546282&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.12.7.tgz", - "integrity": "sha1-kym0eCp9a71+71fhGt35HuPvHkE=", - "dev": true - }, - "@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.12.9.tgz?cache=0&sync_timestamp=1606252797581&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.12.9.tgz", - "integrity": "sha1-/UUMTsEM27mA4pKLeqeihIRZP8g=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", - "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.12.5", - "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.12.5.tgz?cache=0&sync_timestamp=1604443065947&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.12.5.tgz", - "integrity": "sha1-osUN5ci21wirlb5eYFOTbBiEpN4=", - "dev": true, - "requires": { - "@babel/types": "^7.12.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.10.4.tgz?cache=0&sync_timestamp=1593521260284&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha1-W/DUlaP3V6w72ki1vzs7ownHK6M=", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha1-uwt18xv5jL+f8UPBrleLhydK4aM=", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.12.5", - "resolved": "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.12.5.tgz", - "integrity": "sha1-y0cMdhmNtqJOnbyJhydWMeXSmDE=", - "dev": true, - "requires": { - "@babel/compat-data": "^7.12.5", - "@babel/helper-validator-option": "^7.12.1", - "browserslist": "^4.14.5", - "semver": "^5.5.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.12.1.tgz?cache=0&sync_timestamp=1602802212738&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.12.1.tgz", - "integrity": "sha1-PEWZj0Me3UqSFMXx060USKYTf24=", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.12.7.tgz?cache=0&sync_timestamp=1605904548973&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-regexp-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-regexp-features-plugin-7.12.7.tgz", - "integrity": "sha1-IIQXLpVEP6CgkhS6G7Mo+a6hJ48=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.10.5.tgz", - "integrity": "sha1-tTwQ23imQIABUmkrEzkxR6y5uzA=", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.12.1.tgz?cache=0&sync_timestamp=1602800394981&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha1-gAakZmlcSthqKl8vsVtfLDGtVjM=", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.4.tgz", - "integrity": "sha1-0tOyDFmtjEcRL6fSqUvAnV74Lxo=", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593521259643&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", - "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.10.4.tgz?cache=0&sync_timestamp=1593521259807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz", - "integrity": "sha1-1JsAHR1aaMpeZgTdoBpil/fJOB4=", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.12.7.tgz?cache=0&sync_timestamp=1605904546385&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha1-qne9A5bsgRTl4weH76eFmdh0qFU=", - "dev": true, - "requires": { - "@babel/types": "^7.12.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.12.5.tgz?cache=0&sync_timestamp=1604443061838&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.12.5.tgz", - "integrity": "sha1-G/wCKfeUmI927QpNTpCGCFC1Tfs=", - "dev": true, - "requires": { - "@babel/types": "^7.12.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.12.1.tgz?cache=0&sync_timestamp=1602802212083&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.12.1.tgz", - "integrity": "sha1-eVT+xx9bMsSOSzA7Q3w0RT/XJHw=", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.12.7.tgz?cache=0&sync_timestamp=1605904545434&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.12.7.tgz", - "integrity": "sha1-f5SuXghyGklGc0aqBP0i91ADO5w=", - "dev": true, - "requires": { - "@babel/types": "^7.12.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521089859&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz", - "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha1-jE27+RYxT2BH3AXmoiFwdCODR/0=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-replace-supers": { - "version": "7.12.5", - "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.12.5.tgz?cache=0&sync_timestamp=1604443061763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.12.5.tgz", - "integrity": "sha1-8AmhdUO7u84WsGIGrnO2PT/KaNk=", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.12.1.tgz", - "integrity": "sha1-MkJ+WqYVR9OOsebq9f0UJv2tkTY=", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha1-Ri3GOn5DWt6EaDhcY9K4TM5LPL8=", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.11.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.11.0.tgz", - "integrity": "sha1-+KSRJErPamdhWKxCBykRuoOtCZ8=", - "dev": true, - "requires": { - "@babel/types": "^7.11.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521090675&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", - "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-option/download/@babel/helper-validator-option-7.12.1.tgz?cache=0&sync_timestamp=1602802195133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-option%2Fdownload%2F%40babel%2Fhelper-validator-option-7.12.1.tgz", - "integrity": "sha1-F1VnOAw+d9YP+YpUuwFf548heNk=", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.12.3.tgz", - "integrity": "sha1-MzIzn8TR+78cJ9eVjCfTRwjpkNk=", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.12.5.tgz?cache=0&sync_timestamp=1604441211017&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.12.5.tgz", - "integrity": "sha1-Ghukp2jZtYMQ7aUWxEmRP+ZHEW4=", - "dev": true, - "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - } - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593521251318&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", - "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.12.7.tgz?cache=0&sync_timestamp=1605906390839&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.12.7.tgz", - "integrity": "sha1-/uezn+gJ0Oc+WyXuyvV4DvPXMFY=", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.12.1.tgz?cache=0&sync_timestamp=1602800384790&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.12.1.tgz", - "integrity": "sha1-3GwRcOJ9isqZ/2X0klvQaxyQVQ4=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602802214147&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha1-oIL/VB8qKaSCEGW4rdk0bAwW5d4=", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.12.1.tgz?cache=0&sync_timestamp=1602802213535&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-decorators%2Fdownload%2F%40babel%2Fplugin-proposal-decorators-7.12.1.tgz", - "integrity": "sha1-WScUOf7UFFRWxBBnRQVDruMy0V8=", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-decorators": "^7.12.1" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.12.1.tgz?cache=0&sync_timestamp=1602802196029&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-dynamic-import%2Fdownload%2F%40babel%2Fplugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha1-Q+tcKjSH7NmMXI6otf22midJstw=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.12.1.tgz?cache=0&sync_timestamp=1602802194581&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-export-namespace-from%2Fdownload%2F%40babel%2Fplugin-proposal-export-namespace-from-7.12.1.tgz", - "integrity": "sha1-i5uPN2stiPXdd05NJKXMLjZ5ttQ=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.12.1.tgz?cache=0&sync_timestamp=1602802195726&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha1-1FQjtRdxTu3VYhqd/cA/qfTrJBw=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.12.1.tgz?cache=0&sync_timestamp=1602802195229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-proposal-logical-assignment-operators-7.12.1.tgz", - "integrity": "sha1-8sSQ024bPJZZJBA0pdLNUCY6J1E=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz?cache=0&sync_timestamp=1602802194969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha1-PtT/8xwBXn8/FGfxkNvlRc17BGw=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.12.7.tgz?cache=0&sync_timestamp=1605904544979&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.12.7.tgz", - "integrity": "sha1-i/JT3oE5CZ/qGTspfSOp1AbvBWs=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.12.1.tgz?cache=0&sync_timestamp=1602802214848&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha1-3vm9A86g+bcig9rA7CLSicdpEGk=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.12.1.tgz?cache=0&sync_timestamp=1602802196469&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha1-zMJCGvZNOq5QtVinHO3pKaWrKUI=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.12.7.tgz?cache=0&sync_timestamp=1605904545552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.12.7.tgz", - "integrity": "sha1-4C8OobXcWdQB7Bb7gkZ59oPTMDw=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.12.1.tgz?cache=0&sync_timestamp=1602802212950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.12.1.tgz", - "integrity": "sha1-hoFPbnohN0yYDBDTi0ST5wP0o4k=", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.12.1.tgz?cache=0&sync_timestamp=1602802215129&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha1-Khg5WNQXdluerjNPR3WOXWqC4HI=", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.1.tgz?cache=0&sync_timestamp=1602802196180&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha1-vLKXxTZueb663vUJVJzZOwTxmXg=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.12.1.tgz?cache=0&sync_timestamp=1602802196320&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-decorators%2Fdownload%2F%40babel%2Fplugin-syntax-decorators-7.12.1.tgz", - "integrity": "sha1-gai1NbKER2xBvm3gaFOogCuYxd0=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha1-AolkqbqA28CUyRXEh618TnpmRlo=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.12.1.tgz?cache=0&sync_timestamp=1602800388698&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-jsx%2Fdownload%2F%40babel%2Fplugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha1-nZ01fMgYqnrnk1kXwSV/Z2d6CSY=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha1-ypHvRjA1MESLkGZSusLp/plB9pk=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz?cache=0&sync_timestamp=1578952518069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz?cache=0&sync_timestamp=1593521791666&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz?cache=0&sync_timestamp=1578950070697&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz?cache=0&sync_timestamp=1578952519472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.12.1.tgz?cache=0&sync_timestamp=1602800388781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha1-3WwLNXrBuxQtmFN0UKMZYl0T0qA=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.12.1.tgz?cache=0&sync_timestamp=1602800389200&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha1-gIP/yGrI53f74ktZZ8SyUh88srM=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.12.1.tgz?cache=0&sync_timestamp=1602802209455&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha1-OEmknMKiLpdDy9a1KSbTAzcimvE=", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.12.1.tgz?cache=0&sync_timestamp=1602800389453&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha1-8qGjZb3itxEuCm3tkGf918B5Bdk=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.12.1.tgz?cache=0&sync_timestamp=1602802212849&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.12.1.tgz", - "integrity": "sha1-8O5yeHS0KiCKSKWGuEw9IiwrvvE=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.12.1.tgz?cache=0&sync_timestamp=1602802212452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.12.1.tgz", - "integrity": "sha1-ZeZQ/K3dPYjdzmfA+DSj1DajLbY=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.12.1.tgz?cache=0&sync_timestamp=1602800389561&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha1-1oz2ybf4OKikFEutvpdUHqCQSFI=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.12.1.tgz?cache=0&sync_timestamp=1602800389337&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha1-uaVw/g0KjUYBFkE8tPl+jgiy+Ec=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.12.1.tgz?cache=0&sync_timestamp=1602802215403&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha1-odFsFIYoF7ZAnApnjW+Tc8qc2XU=", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.12.1.tgz?cache=0&sync_timestamp=1602800391058&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha1-dFZhuropWsBuaGgieXpp+6osoig=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.12.1.tgz?cache=0&sync_timestamp=1602800391157&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha1-sPLtNWuhvhQo7K8Sj/iiTwKDCuA=", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.12.1.tgz?cache=0&sync_timestamp=1602800389679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.12.1.tgz", - "integrity": "sha1-B2QPKIZ+0W+VEcmciIKR9WCSHPo=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.12.1.tgz?cache=0&sync_timestamp=1602800389784&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.12.1.tgz", - "integrity": "sha1-LsdiWMcP4IxtfaFUADpIBiDrpmc=", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.12.1.tgz?cache=0&sync_timestamp=1602800391264&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.12.1.tgz", - "integrity": "sha1-1zuAOiazcBfd+dO7j03Fi/uAb1c=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.12.1.tgz?cache=0&sync_timestamp=1602800391490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha1-SWA4YC2vFRSmTUPY4Xy7J1Xgw60=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.12.1.tgz?cache=0&sync_timestamp=1602802215576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha1-MVQwCwJhhWZu67DA7X+EFf789vk=", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.12.1.tgz?cache=0&sync_timestamp=1602802215335&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha1-+kAxJFQmNseGz5tGCg/7tIqG5kg=", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.12.1", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.12.1.tgz?cache=0&sync_timestamp=1602802215093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha1-Zj/qYg1ZPJPyFKRkzTmb9txoMIY=", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-identifier": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.12.1.tgz?cache=0&sync_timestamp=1602802215813&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha1-61ohjWscaPPWIXuPosyC/sZUeQI=", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.12.1.tgz?cache=0&sync_timestamp=1602802215779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha1-tAf1yWvg2fX4hGdJf6grMKw+h1M=", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.12.1.tgz?cache=0&sync_timestamp=1602800391381&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.12.1.tgz", - "integrity": "sha1-gAc/Au4bstNlw0FkkOCFyVdZ3sA=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.12.1.tgz?cache=0&sync_timestamp=1602802211487&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.12.1.tgz", - "integrity": "sha1-TqCGlrjS5lhB0MdwZIKwSL7RBm4=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.12.1.tgz?cache=0&sync_timestamp=1602800391837&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.12.1.tgz", - "integrity": "sha1-0uljsDh3FlDJIu/1k3mclthTJV0=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.12.1.tgz?cache=0&sync_timestamp=1602800391707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha1-QbyBIA1zCrtEVquLP71VN7Wa3s0=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.12.1.tgz?cache=0&sync_timestamp=1602800392288&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha1-Xwoo2EL2RiKB8GqWToi6jXq0l1M=", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.12.1.tgz?cache=0&sync_timestamp=1602800392463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha1-b9/IzH7cxCs2p8EhiMZ4fIc63Ng=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.12.1.tgz?cache=0&sync_timestamp=1602802210016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.12.1.tgz", - "integrity": "sha1-BLeSBX60YDif9qQZjjd2FOoee6U=", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "resolve": "^1.8.1", - "semver": "^5.5.1" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.12.1.tgz?cache=0&sync_timestamp=1602800392815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha1-C/nKxVUPzgz98ENCD2YdZF/cdeM=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.12.1.tgz?cache=0&sync_timestamp=1602802209734&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.12.1.tgz", - "integrity": "sha1-Un+fMRvk7H/cK3m7ife/iEs+Hh4=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.12.7.tgz?cache=0&sync_timestamp=1605904545665&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.12.7.tgz", - "integrity": "sha1-VgIkYTqyOYdFOUjtIdCwsZP6f60=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha1-tD7ObtmnnAxxEZ9XbSme8J2UKEM=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.12.1.tgz", - "integrity": "sha1-nKa+ND1CUS+8LmgjaoKuZLx694o=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.12.1.tgz?cache=0&sync_timestamp=1602800393219&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-escapes%2Fdownload%2F%40babel%2Fplugin-transform-unicode-escapes-7.12.1.tgz", - "integrity": "sha1-UjK5+BzLBwcLfDw2xnobePGEVwk=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.12.1.tgz?cache=0&sync_timestamp=1602800384565&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha1-zJZh9hOQ21xl4/66zO/Vxqw/rss=", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/preset-env": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.12.7.tgz?cache=0&sync_timestamp=1605904542916&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.12.7.tgz", - "integrity": "sha1-VOoh2+ksr28QyxoKV2rcTr8JS1U=", - "dev": true, - "requires": { - "@babel/compat-data": "^7.12.7", - "@babel/helper-compilation-targets": "^7.12.5", - "@babel/helper-module-imports": "^7.12.5", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-option": "^7.12.1", - "@babel/plugin-proposal-async-generator-functions": "^7.12.1", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.1", - "@babel/plugin-proposal-json-strings": "^7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.7", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.7", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.1", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-async-to-generator": "^7.12.1", - "@babel/plugin-transform-block-scoped-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.1", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-computed-properties": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-dotall-regex": "^7.12.1", - "@babel/plugin-transform-duplicate-keys": "^7.12.1", - "@babel/plugin-transform-exponentiation-operator": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-function-name": "^7.12.1", - "@babel/plugin-transform-literals": "^7.12.1", - "@babel/plugin-transform-member-expression-literals": "^7.12.1", - "@babel/plugin-transform-modules-amd": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.12.1", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", - "@babel/plugin-transform-new-target": "^7.12.1", - "@babel/plugin-transform-object-super": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-property-literals": "^7.12.1", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/plugin-transform-reserved-words": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.7", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.1", - "@babel/plugin-transform-unicode-escapes": "^7.12.1", - "@babel/plugin-transform-unicode-regex": "^7.12.1", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.7", - "core-js-compat": "^3.7.0", - "semver": "^5.5.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.4.tgz?cache=0&sync_timestamp=1598549925898&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.4.tgz", - "integrity": "sha1-Ni8raMZihClw/bXiVP/I/BwuQV4=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.12.5.tgz?cache=0&sync_timestamp=1604441208794&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.12.5.tgz", - "integrity": "sha1-QQ5+SHRB4bNgwpvnFdhw2bmFiC4=", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz?cache=0&sync_timestamp=1595456095182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz", - "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U=", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.7.tgz?cache=0&sync_timestamp=1605906405753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.12.7.tgz", - "integrity": "sha1-yBcjNpYBjjn7tsSR0vtoTgXtQ7w=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" - } - }, - "@babel/traverse": { - "version": "7.12.9", - "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.12.9.tgz?cache=0&sync_timestamp=1606252797212&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.12.9.tgz", - "integrity": "sha1-+tJsly6rvBE1DgtpWXjebMjoWW8=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", - "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.12.7", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.12.7.tgz?cache=0&sync_timestamp=1605906410175&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.12.7.tgz", - "integrity": "sha1-YDn/HiQmQKKUUsmuVyFi7JqPXRM=", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&sync_timestamp=1603524710662&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz", - "integrity": "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU=", - "dev": true - }, - "@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz?cache=0&sync_timestamp=1593915150444&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fbourne%2Fdownload%2F%40hapi%2Fbourne-1.3.2.tgz", - "integrity": "sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=", - "dev": true - }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz?cache=0&sync_timestamp=1599008923305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-8.5.1.tgz", - "integrity": "sha1-/elgZMpEbeyMVajC8TCVewcMbgY=", - "dev": true - }, - "@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz?cache=0&sync_timestamp=1603524515155&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz", - "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=", - "dev": true, - "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npm.taobao.org/@hapi/topo/download/@hapi/topo-3.1.6.tgz?cache=0&sync_timestamp=1593916080558&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz", - "integrity": "sha1-aNk1+j6uf91asNf5U/MgXYsr/Ck=", - "dev": true, - "requires": { - "@hapi/hoek": "^8.3.0" - } - }, - "@intervolga/optimize-cssnano-plugin": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/@intervolga/optimize-cssnano-plugin/download/@intervolga/optimize-cssnano-plugin-1.0.6.tgz", - "integrity": "sha1-vnx4RhKLiPapsdEmGgrQbrXA/fg=", - "dev": true, - "requires": { - "cssnano": "^4.0.0", - "cssnano-preset-default": "^4.0.0", - "postcss": "^7.0.0" - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz", - "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", - "dev": true, - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz", - "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", - "dev": true - }, - "@soda/friendly-errors-webpack-plugin": { - "version": "1.7.1", - "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.7.1.tgz", - "integrity": "sha1-cG9kvLSouWQrSK46zkRMcDNNYV0=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "error-stack-parser": "^2.0.0", - "string-width": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1606792266928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1591687028262&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1606205060845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "@soda/get-current-script": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/@soda/get-current-script/download/@soda/get-current-script-1.0.2.tgz?cache=0&sync_timestamp=1592273074614&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40soda%2Fget-current-script%2Fdownload%2F%40soda%2Fget-current-script-1.0.2.tgz", - "integrity": "sha1-pTUV2yXYA4N0OBtzryC7Ty5QjYc=", - "dev": true - }, - "@types/anymatch": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/@types/anymatch/download/@types/anymatch-1.3.1.tgz", - "integrity": "sha1-M2utwb7sudrMOL6izzKt9ieoQho=", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npm.taobao.org/@types/body-parser/download/@types/body-parser-1.19.0.tgz?cache=0&sync_timestamp=1605052849660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fbody-parser%2Fdownload%2F%40types%2Fbody-parser-1.19.0.tgz", - "integrity": "sha1-BoWzxH6zAG/+0RfN1VFkth+AU48=", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npm.taobao.org/@types/connect/download/@types/connect-3.4.33.tgz?cache=0&sync_timestamp=1605052862499&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fconnect%2Fdownload%2F%40types%2Fconnect-3.4.33.tgz", - "integrity": "sha1-MWEMkB7KVzuHE8MzCrxua59YhUY=", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/connect-history-api-fallback": { - "version": "1.3.3", - "resolved": "https://registry.npm.taobao.org/@types/connect-history-api-fallback/download/@types/connect-history-api-fallback-1.3.3.tgz?cache=0&sync_timestamp=1605052862677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fconnect-history-api-fallback%2Fdownload%2F%40types%2Fconnect-history-api-fallback-1.3.3.tgz", - "integrity": "sha1-R3K3m4tTGF8PTJ3qsJI2uvdu47Q=", - "dev": true, - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npm.taobao.org/@types/express/download/@types/express-4.17.9.tgz?cache=0&sync_timestamp=1605057477768&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress%2Fdownload%2F%40types%2Fexpress-4.17.9.tgz", - "integrity": "sha1-9fLfat1wP/KEKK3VK97IoQkbCng=", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "*", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npm.taobao.org/@types/express-serve-static-core/download/@types/express-serve-static-core-4.17.14.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress-serve-static-core%2Fdownload%2F%40types%2Fexpress-serve-static-core-4.17.14.tgz", - "integrity": "sha1-yr+R3r7rPLBLeY4s/5CIZOibYQY=", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz?cache=0&sync_timestamp=1605053250918&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz", - "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/http-proxy": { - "version": "1.17.4", - "resolved": "https://registry.npm.taobao.org/@types/http-proxy/download/@types/http-proxy-1.17.4.tgz?cache=0&sync_timestamp=1605053527025&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-proxy%2Fdownload%2F%40types%2Fhttp-proxy-1.17.4.tgz", - "integrity": "sha1-58kuPb4+E6p5lED/QubToXqdBFs=", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/http-proxy-middleware": { - "version": "0.19.3", - "resolved": "https://registry.npm.taobao.org/@types/http-proxy-middleware/download/@types/http-proxy-middleware-0.19.3.tgz?cache=0&sync_timestamp=1605053527423&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fhttp-proxy-middleware%2Fdownload%2F%40types%2Fhttp-proxy-middleware-0.19.3.tgz", - "integrity": "sha1-suuW+8D5rHJQtdnExTqt4ElJfQM=", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/http-proxy": "*", - "@types/node": "*" - } - }, - "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.6.tgz", - "integrity": "sha1-9MfsQ+gbMZqYFRFQMXCfJph4kfA=", - "dev": true - }, - "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/@types/mime/download/@types/mime-2.0.3.tgz", - "integrity": "sha1-yJO3NyHbc2mZQ7/DZTsd63+qSjo=", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz?cache=0&sync_timestamp=1605054727563&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz", - "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", - "dev": true - }, - "@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/@types/minimist/download/@types/minimist-1.2.1.tgz", - "integrity": "sha1-KD9mn/dte4Jg34q3pCYsyD2YglY=", - "dev": true - }, - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.10.tgz?cache=0&sync_timestamp=1606764776703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.10.tgz", - "integrity": "sha1-WVioLkGGPPxx8jB7N0jjSRugN4U=", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=", - "dev": true - }, - "@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.4.tgz?cache=0&sync_timestamp=1605055092392&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.4.tgz", - "integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ=", - "dev": true - }, - "@types/qs": { - "version": "6.9.5", - "resolved": "https://registry.npm.taobao.org/@types/qs/download/@types/qs-6.9.5.tgz?cache=0&sync_timestamp=1605055213283&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fqs%2Fdownload%2F%40types%2Fqs-6.9.5.tgz", - "integrity": "sha1-Q0cRvdSete5p2QwdZ8NUqajssYs=", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/@types/range-parser/download/@types/range-parser-1.2.3.tgz?cache=0&sync_timestamp=1605055212833&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Frange-parser%2Fdownload%2F%40types%2Frange-parser-1.2.3.tgz", - "integrity": "sha1-fuMwunyq+5gJC+zoal7kQRWQTCw=", - "dev": true - }, - "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npm.taobao.org/@types/serve-static/download/@types/serve-static-1.13.8.tgz?cache=0&sync_timestamp=1605657656157&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fserve-static%2Fdownload%2F%40types%2Fserve-static-1.13.8.tgz", - "integrity": "sha1-hREp1DRDPHCCFIV0/+wmPVgwnEY=", - "dev": true, - "requires": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz", - "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=", - "dev": true - }, - "@types/tapable": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/@types/tapable/download/@types/tapable-1.0.6.tgz", - "integrity": "sha1-qcpLcKGLJwzLK8Cqr+/R1Ia36nQ=", - "dev": true - }, - "@types/uglify-js": { - "version": "3.11.1", - "resolved": "https://registry.npm.taobao.org/@types/uglify-js/download/@types/uglify-js-3.11.1.tgz", - "integrity": "sha1-l/8w5hoKpodsJwtfU4c34tarjOs=", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "@types/webpack": { - "version": "4.41.25", - "resolved": "https://registry.npm.taobao.org/@types/webpack/download/@types/webpack-4.41.25.tgz", - "integrity": "sha1-TTta7MTkQRezdigPv9LcNml5aMQ=", - "dev": true, - "requires": { - "@types/anymatch": "*", - "@types/node": "*", - "@types/tapable": "*", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "@types/webpack-dev-server": { - "version": "3.11.1", - "resolved": "https://registry.npm.taobao.org/@types/webpack-dev-server/download/@types/webpack-dev-server-3.11.1.tgz", - "integrity": "sha1-+PTawdoibVML0VodXcNLI7p2bMs=", - "dev": true, - "requires": { - "@types/connect-history-api-fallback": "*", - "@types/express": "*", - "@types/http-proxy-middleware": "*", - "@types/serve-static": "*", - "@types/webpack": "*" - } - }, - "@types/webpack-sources": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/@types/webpack-sources/download/@types/webpack-sources-2.1.0.tgz", - "integrity": "sha1-iIKwvWLR4M5i8YPQ0Bty5ugujBA=", - "dev": true, - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", - "dev": true - } - } - }, - "@vue/babel-helper-vue-jsx-merge-props": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.2.1.tgz?cache=0&sync_timestamp=1602851304648&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-helper-vue-jsx-merge-props%2Fdownload%2F%40vue%2Fbabel-helper-vue-jsx-merge-props-1.2.1.tgz", - "integrity": "sha1-MWJKelBfsU2h1YAjclpMXycOaoE=", - "dev": true - }, - "@vue/babel-helper-vue-transform-on": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-transform-on/download/@vue/babel-helper-vue-transform-on-1.0.0-rc.2.tgz", - "integrity": "sha1-ckY0H2ZufG5lsT2kIOLOhXFPu8o=", - "dev": true - }, - "@vue/babel-plugin-jsx": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-jsx/download/@vue/babel-plugin-jsx-1.0.0-rc.3.tgz?cache=0&sync_timestamp=1600074425391&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-jsx-1.0.0-rc.3.tgz", - "integrity": "sha1-q0d+6Vx2T75ohCou3dR08SLnCsY=", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "@vue/babel-helper-vue-transform-on": "^1.0.0-rc.2", - "camelcase": "^6.0.0", - "html-tags": "^3.1.0", - "svg-tags": "^1.0.0" - } - }, - "@vue/babel-plugin-transform-vue-jsx": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.2.1.tgz?cache=0&sync_timestamp=1602851234609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-transform-vue-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-transform-vue-jsx-1.2.1.tgz", - "integrity": "sha1-ZGBGxlLC8CQnJ/NFGdkXsGQEHtc=", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "html-tags": "^2.0.0", - "lodash.kebabcase": "^4.1.1", - "svg-tags": "^1.0.0" - }, - "dependencies": { - "html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", - "dev": true - } - } - }, - "@vue/babel-preset-app": { - "version": "4.5.9", - "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.9.tgz", - "integrity": "sha1-pO8YMKITAeT3fXzUoEVV2KAerzM=", - "dev": true, - "requires": { - "@babel/core": "^7.11.0", - "@babel/helper-compilation-targets": "^7.9.6", - "@babel/helper-module-imports": "^7.8.3", - "@babel/plugin-proposal-class-properties": "^7.8.3", - "@babel/plugin-proposal-decorators": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.11.0", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.0", - "@vue/babel-plugin-jsx": "^1.0.0-0", - "@vue/babel-preset-jsx": "^1.1.2", - "babel-plugin-dynamic-import-node": "^2.3.3", - "core-js": "^3.6.5", - "core-js-compat": "^3.6.5", - "semver": "^6.1.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606854810932&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } - } - }, - "@vue/babel-preset-jsx": { - "version": "1.2.4", - "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.2.4.tgz?cache=0&sync_timestamp=1603806993853&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-preset-jsx%2Fdownload%2F%40vue%2Fbabel-preset-jsx-1.2.4.tgz", - "integrity": "sha1-kv6nnbbxOwHoDToAmeKSS9y+Toc=", - "dev": true, - "requires": { - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", - "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", - "@vue/babel-sugar-functional-vue": "^1.2.2", - "@vue/babel-sugar-inject-h": "^1.2.2", - "@vue/babel-sugar-v-model": "^1.2.3", - "@vue/babel-sugar-v-on": "^1.2.3" - } - }, - "@vue/babel-sugar-composition-api-inject-h": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-inject-h/download/@vue/babel-sugar-composition-api-inject-h-1.2.1.tgz?cache=0&sync_timestamp=1602851126644&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-inject-h-1.2.1.tgz", - "integrity": "sha1-BdbgxDJxDjdYKyvppgSbaJtvA+s=", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-composition-api-render-instance": { - "version": "1.2.4", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-render-instance/download/@vue/babel-sugar-composition-api-render-instance-1.2.4.tgz?cache=0&sync_timestamp=1603806995958&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-render-instance%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-render-instance-1.2.4.tgz", - "integrity": "sha1-5MvGmXw0T6wnF4WteikyXFHWjRk=", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-functional-vue": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.2.2.tgz?cache=0&sync_timestamp=1602929516892&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-functional-vue%2Fdownload%2F%40vue%2Fbabel-sugar-functional-vue-1.2.2.tgz", - "integrity": "sha1-JnqayNeHyW7b8Dzj85LEnam9Jlg=", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-inject-h": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.2.2.tgz?cache=0&sync_timestamp=1602929516704&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-inject-h-1.2.2.tgz", - "integrity": "sha1-1zjTyJM2fshJHcu2abAAkZKT46o=", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-v-model": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.2.3.tgz?cache=0&sync_timestamp=1603184347642&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-v-model%2Fdownload%2F%40vue%2Fbabel-sugar-v-model-1.2.3.tgz", - "integrity": "sha1-+h8pulHr8KoabDX6ZtU5vEWaGPI=", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "camelcase": "^5.0.0", - "html-tags": "^2.0.0", - "svg-tags": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603921884289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "dev": true - }, - "html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", - "dev": true - } - } - }, - "@vue/babel-sugar-v-on": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.2.3.tgz?cache=0&sync_timestamp=1603181872947&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-v-on%2Fdownload%2F%40vue%2Fbabel-sugar-v-on-1.2.3.tgz", - "integrity": "sha1-NCNnF4WGpp85LwS/ujICHQKROto=", - "dev": true, - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", - "camelcase": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603921884289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "dev": true - } - } - }, - "@vue/cli-overlay": { - "version": "4.5.9", - "resolved": "https://registry.npm.taobao.org/@vue/cli-overlay/download/@vue/cli-overlay-4.5.9.tgz", - "integrity": "sha1-OTQYttXq+GOPWZyTnLQlg4JX03w=", - "dev": true - }, - "@vue/cli-plugin-babel": { - "version": "4.5.9", - "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-4.5.9.tgz?cache=0&sync_timestamp=1605595939037&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-babel%2Fdownload%2F%40vue%2Fcli-plugin-babel-4.5.9.tgz", - "integrity": "sha1-oJmHVL3QjthAKnvvSU7LFs7hfpI=", - "dev": true, - "requires": { - "@babel/core": "^7.11.0", - "@vue/babel-preset-app": "^4.5.9", - "@vue/cli-shared-utils": "^4.5.9", - "babel-loader": "^8.1.0", - "cache-loader": "^4.1.0", - "thread-loader": "^2.1.3", - "webpack": "^4.0.0" - } - }, - "@vue/cli-plugin-router": { - "version": "4.5.9", - "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-router/download/@vue/cli-plugin-router-4.5.9.tgz?cache=0&sync_timestamp=1605595949795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-router%2Fdownload%2F%40vue%2Fcli-plugin-router-4.5.9.tgz", - "integrity": "sha1-s9I6gIPSaoG9Cb+cjQEKPk5LE9A=", - "dev": true, - "requires": { - "@vue/cli-shared-utils": "^4.5.9" - } - }, - "@vue/cli-plugin-vuex": { - "version": "4.5.9", - "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.5.9.tgz?cache=0&sync_timestamp=1605595922601&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-vuex%2Fdownload%2F%40vue%2Fcli-plugin-vuex-4.5.9.tgz", - "integrity": "sha1-WujxUAx+KUBrAvrILM6uq4bB6Do=", - "dev": true - }, - "@vue/cli-service": { - "version": "4.5.9", - "resolved": "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-4.5.9.tgz?cache=0&sync_timestamp=1605595934552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-4.5.9.tgz", - "integrity": "sha1-PKMRKkQYPKrOQR1R0LamFuLhl7E=", - "dev": true, - "requires": { - "@intervolga/optimize-cssnano-plugin": "^1.0.5", - "@soda/friendly-errors-webpack-plugin": "^1.7.1", - "@soda/get-current-script": "^1.0.0", - "@types/minimist": "^1.2.0", - "@types/webpack": "^4.0.0", - "@types/webpack-dev-server": "^3.11.0", - "@vue/cli-overlay": "^4.5.9", - "@vue/cli-plugin-router": "^4.5.9", - "@vue/cli-plugin-vuex": "^4.5.9", - "@vue/cli-shared-utils": "^4.5.9", - "@vue/component-compiler-utils": "^3.1.2", - "@vue/preload-webpack-plugin": "^1.1.0", - "@vue/web-component-wrapper": "^1.2.0", - "acorn": "^7.4.0", - "acorn-walk": "^7.1.1", - "address": "^1.1.2", - "autoprefixer": "^9.8.6", - "browserslist": "^4.12.0", - "cache-loader": "^4.1.0", - "case-sensitive-paths-webpack-plugin": "^2.3.0", - "cli-highlight": "^2.1.4", - "clipboardy": "^2.3.0", - "cliui": "^6.0.0", - "copy-webpack-plugin": "^5.1.1", - "css-loader": "^3.5.3", - "cssnano": "^4.1.10", - "debug": "^4.1.1", - "default-gateway": "^5.0.5", - "dotenv": "^8.2.0", - "dotenv-expand": "^5.1.0", - "file-loader": "^4.2.0", - "fs-extra": "^7.0.1", - "globby": "^9.2.0", - "hash-sum": "^2.0.0", - "html-webpack-plugin": "^3.2.0", - "launch-editor-middleware": "^2.2.1", - "lodash.defaultsdeep": "^4.6.1", - "lodash.mapvalues": "^4.6.0", - "lodash.transform": "^4.6.0", - "mini-css-extract-plugin": "^0.9.0", - "minimist": "^1.2.5", - "pnp-webpack-plugin": "^1.6.4", - "portfinder": "^1.0.26", - "postcss-loader": "^3.0.0", - "ssri": "^7.1.0", - "terser-webpack-plugin": "^2.3.6", - "thread-loader": "^2.1.3", - "url-loader": "^2.2.0", - "vue-loader": "^15.9.2", - "vue-loader-v16": "npm:vue-loader@^16.0.0-beta.7", - "vue-style-loader": "^4.1.2", - "webpack": "^4.0.0", - "webpack-bundle-analyzer": "^3.8.0", - "webpack-chain": "^6.4.0", - "webpack-dev-server": "^3.11.0", - "webpack-merge": "^4.2.2" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1602534380346&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz", - "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", - "dev": true - }, - "cacache": { - "version": "13.0.1", - "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594428108619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz", - "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=", - "dev": true, - "requires": { - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^7.0.0", - "unique-filename": "^1.1.1" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", - "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "ssri": { - "version": "7.1.0", - "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-7.1.0.tgz", - "integrity": "sha1-ksJBv23oI2W1x/tL126XVSLhKU0=", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1", - "minipass": "^3.1.1" - } - }, - "terser-webpack-plugin": { - "version": "2.3.8", - "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz?cache=0&sync_timestamp=1603881694762&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.8.tgz", - "integrity": "sha1-iUdkoZsHQ/L3BOfCqEjFKDppZyQ=", - "dev": true, - "requires": { - "cacache": "^13.0.1", - "find-cache-dir": "^3.3.1", - "jest-worker": "^25.4.0", - "p-limit": "^2.3.0", - "schema-utils": "^2.6.6", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.6.12", - "webpack-sources": "^1.4.3" - } - } - } - }, - "@vue/cli-shared-utils": { - "version": "4.5.9", - "resolved": "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-4.5.9.tgz?cache=0&sync_timestamp=1605596011052&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-shared-utils%2Fdownload%2F%40vue%2Fcli-shared-utils-4.5.9.tgz", - "integrity": "sha1-SHzqS0KC9N/5B+59iruo3Q3QPM0=", - "dev": true, - "requires": { - "@hapi/joi": "^15.0.1", - "chalk": "^2.4.2", - "execa": "^1.0.0", - "launch-editor": "^2.2.1", - "lru-cache": "^5.1.1", - "node-ipc": "^9.1.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "read-pkg": "^5.1.1", - "request": "^2.88.2", - "semver": "^6.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606854810932&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } - } - }, - "@vue/component-compiler-utils": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcomponent-compiler-utils%2Fdownload%2F%40vue%2Fcomponent-compiler-utils-3.2.0.tgz", - "integrity": "sha1-j4UYLO7Sjps8dTE95mn4MWbRHl0=", - "dev": true, - "requires": { - "consolidate": "^0.15.1", - "hash-sum": "^1.0.2", - "lru-cache": "^4.1.2", - "merge-source-map": "^1.1.0", - "postcss": "^7.0.14", - "postcss-selector-parser": "^6.0.2", - "prettier": "^1.18.2", - "source-map": "~0.6.1", - "vue-template-es2015-compiler": "^1.9.0" - }, - "dependencies": { - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", - "dev": true - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", - "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } - }, - "@vue/preload-webpack-plugin": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fpreload-webpack-plugin%2Fdownload%2F%40vue%2Fpreload-webpack-plugin-1.1.2.tgz", - "integrity": "sha1-zrkktOyzucQ4ccekKaAvhCPmIas=", - "dev": true - }, - "@vue/web-component-wrapper": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.2.0.tgz", - "integrity": "sha1-uw5G8VhafiibTuYGfcxaauYvHdE=", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz", - "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz", - "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz", - "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz", - "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz", - "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz", - "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz", - "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz", - "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz", - "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz", - "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz", - "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz", - "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz", - "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz", - "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz", - "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz", - "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", - "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", - "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz", - "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.2.tgz?cache=0&sync_timestamp=1602534380346&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.2.tgz", - "integrity": "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY=", - "dev": true - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1597235881979&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz", - "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=", - "dev": true - }, - "address": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz", - "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=", - "dev": true - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz?cache=0&sync_timestamp=1598049999221&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.1.0.tgz", - "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1606679068072&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz?cache=0&sync_timestamp=1606048452556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-errors%2Fdownload%2Fajv-errors-1.0.1.tgz", - "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", - "dev": true - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1606678744364&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", - "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", - "dev": true - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz", - "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=", - "dev": true - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1606792266928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", - "dev": true - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz", - "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", - "dev": true - }, - "arch": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/arch/download/arch-2.2.0.tgz", - "integrity": "sha1-G8R4GPMFdk8jqzMGsL/AhsWinRE=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", - "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz", - "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", - "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", - "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz?cache=0&sync_timestamp=1588238435623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz", - "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", - "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz", - "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=", - "dev": true - }, - "async-validator": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz?cache=0&sync_timestamp=1605749896979&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.8.5.tgz", - "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=", - "requires": { - "babel-runtime": "6.x" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", - "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", - "dev": true - }, - "autoprefixer": { - "version": "9.8.6", - "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.6.tgz?cache=0&sync_timestamp=1606511111571&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.6.tgz", - "integrity": "sha1-O3NZTKG/kmYyDFrPFYjXTep0IQ8=", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "colorette": "^1.2.1", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.11.0.tgz?cache=0&sync_timestamp=1604101340021&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.11.0.tgz", - "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=", - "dev": true - }, - "babel-helper-vue-jsx-merge-props": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz", - "integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY=" - }, - "babel-loader": { - "version": "8.2.2", - "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.2.2.tgz?cache=0&sync_timestamp=1606424705083&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.2.2.tgz", - "integrity": "sha1-k2POhMEMmkDmx1N0jhRBtgyKC4E=", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1587495874530&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1606326889335&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz", - "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=" - } - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.5.1.tgz", - "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bfj": { - "version": "6.1.2", - "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz", - "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "check-types": "^8.0.3", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", - "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", - "dev": true - }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz?cache=0&sync_timestamp=1593261249239&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz", - "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", - "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", - "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=", - "dev": true - }, - "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.1.3.tgz", - "integrity": "sha1-vsoAVAj2Quvr6oCwQrTRjSrA7ms=", - "dev": true - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz", - "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", - "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - }, - "dependencies": { - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz", - "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=", - "dev": true - } - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz?cache=0&sync_timestamp=1601898201980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", - "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", - "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", - "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.1.0.tgz", - "integrity": "sha1-sv0Gtbda4pf3zi3GUfkY9b4VjI0=", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.1.tgz?cache=0&sync_timestamp=1596557839950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserify-sign%2Fdownload%2Fbrowserify-sign-4.2.1.tgz", - "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz?cache=0&sync_timestamp=1589129103371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", - "dev": true - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", - "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.15.0", - "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.15.0.tgz?cache=0&sync_timestamp=1606864399655&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.15.0.tgz", - "integrity": "sha1-PUi7ymo/N46GEC/9AX2aA/EivbA=", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001164", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.612", - "escalade": "^3.1.1", - "node-releases": "^1.1.67" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1606098066706&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz", - "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", - "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", - "dev": true - }, - "buffer-json": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/buffer-json/download/buffer-json-2.0.0.tgz", - "integrity": "sha1-9z4TseQvGW/i/WfQAcfXEH7dfCM=", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz", - "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", - "dev": true - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1594428108619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz", - "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cache-loader": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/cache-loader/download/cache-loader-4.1.0.tgz", - "integrity": "sha1-mUjK41OuwKH8ser9ojAIFuyFOH4=", - "dev": true, - "requires": { - "buffer-json": "^2.0.0", - "find-cache-dir": "^3.0.0", - "loader-utils": "^1.2.3", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "schema-utils": "^2.0.0" - } - }, - "call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.0.tgz?cache=0&sync_timestamp=1604117008862&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcall-bind%2Fdownload%2Fcall-bind-1.0.0.tgz", - "integrity": "sha1-JBJwVLs/m9y0sfuCQYGGBy93uM4=", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz?cache=0&sync_timestamp=1606869170809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-6.2.0.tgz?cache=0&sync_timestamp=1603921884289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-6.2.0.tgz", - "integrity": "sha1-kkr4gcnVJaydh/QNlk5c6pgqGAk=", - "dev": true - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz", - "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001164", - "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001164.tgz", - "integrity": "sha1-W7/WTKYF1DEy8TzH/auxfDA2v9w=", - "dev": true - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcase-sensitive-paths-webpack-plugin%2Fdownload%2Fcase-sensitive-paths-webpack-plugin-2.3.0.tgz", - "integrity": "sha1-I6xhPMmoVuT4j/i7c7u16YmCXPc=", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1591687028262&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "check-types": { - "version": "8.0.3", - "resolved": "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcheck-types%2Fdownload%2Fcheck-types-8.0.3.tgz", - "integrity": "sha1-M1bMoZyIlUTy16le1JzlCKDs9VI=", - "dev": true - }, - "chokidar": { - "version": "3.4.3", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.3.tgz?cache=0&sync_timestamp=1602585438968&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.3.tgz", - "integrity": "sha1-wd84IxRI5FykrFiObHlXO6alfVs=", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-1.1.4.tgz", - "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz", - "integrity": "sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ=", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", - "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-css%2Fdownload%2Fclean-css-4.2.3.tgz", - "integrity": "sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=", - "dev": true, - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1605702369164&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz", - "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-highlight": { - "version": "2.1.9", - "resolved": "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.9.tgz?cache=0&sync_timestamp=1606814220250&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-highlight%2Fdownload%2Fcli-highlight-2.1.9.tgz", - "integrity": "sha1-T07LBTJtcNVtS0JJ+r+acPsAJJc=", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "highlight.js": "^10.0.0", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^15.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1606792266928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687028262&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", - "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1606205060845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "cli-spinners": { - "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.5.0.tgz", - "integrity": "sha1-EnY+RyUb+VHLdcIB36WP8byy0Ec=", - "dev": true - }, - "clipboardy": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.3.0.tgz", - "integrity": "sha1-PCkDZQxo5GqRs4iYW8J3QofbopA=", - "dev": true, - "requires": { - "arch": "^2.1.1", - "execa": "^1.0.0", - "is-wsl": "^2.1.1" - }, - "dependencies": { - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz", - "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - } - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz", - "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-4.0.1.tgz", - "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz", - "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=", - "dev": true, - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.1.3", - "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.3.tgz", - "integrity": "sha1-ymf7TnuX1hHc3jns7tQiBn2RWW4=", - "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.4" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-string": { - "version": "1.5.4", - "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.4.tgz", - "integrity": "sha1-3VHNJc/ulT0Tj+QAI3LMPQ5QTLY=", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.1.tgz?cache=0&sync_timestamp=1593955762018&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz", - "integrity": "sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs=", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", - "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1605992767704&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", - "dev": true - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz?cache=0&sync_timestamp=1578286264482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz", - "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz", - "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", - "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", - "dev": true - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz", - "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=", - "dev": true - }, - "consolidate": { - "version": "0.15.1", - "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz", - "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=", - "dev": true, - "requires": { - "bluebird": "^3.1.1" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz", - "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", - "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz", - "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz?cache=0&sync_timestamp=1587525873712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz", - "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", - "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-webpack-plugin": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-5.1.2.tgz?cache=0&sync_timestamp=1605800646784&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-webpack-plugin%2Fdownload%2Fcopy-webpack-plugin-5.1.2.tgz", - "integrity": "sha1-ioieHcr6bJHGzUvhrRWPHTgjuuI=", - "dev": true, - "requires": { - "cacache": "^12.0.3", - "find-cache-dir": "^2.1.0", - "glob-parent": "^3.1.0", - "globby": "^7.1.1", - "is-glob": "^4.0.1", - "loader-utils": "^1.2.3", - "minimatch": "^3.0.4", - "normalize-path": "^3.0.0", - "p-limit": "^2.2.1", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", - "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz?cache=0&sync_timestamp=1591083787584&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1587567576732&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz", - "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081605529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1602858985920&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1601922425223&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "core-js": { - "version": "3.8.0", - "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.8.0.tgz?cache=0&sync_timestamp=1606326889335&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.8.0.tgz", - "integrity": "sha1-D8LUlByt+AU4sDBki7ZNIwtNoM4=" - }, - "core-js-compat": { - "version": "3.8.0", - "resolved": "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.8.0.tgz?cache=0&sync_timestamp=1606326608288&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.8.0.tgz", - "integrity": "sha1-MkjGgm9ABnk71jfbYIvKbkzWiLE=", - "dev": true, - "requires": { - "browserslist": "^4.14.7", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1606854810932&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", - "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1596310773001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz", - "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - } - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz?cache=0&sync_timestamp=1596557450797&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcreate-ecdh%2Fdownload%2Fcreate-ecdh-4.0.4.tgz", - "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", - "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", - "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", - "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&sync_timestamp=1590421084109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", - "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", - "dev": true, - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, - "css-loader": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1604507486215&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz", - "integrity": "sha1-Lkssfm4tJ/jI8o9hv/zS5ske9kU=", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.32", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.2", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^2.7.0", - "semver": "^6.3.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603921884289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606854810932&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz", - "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=", - "dev": true - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&sync_timestamp=1606404102945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz", - "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", - "dev": true, - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.4.2.tgz?cache=0&sync_timestamp=1602570915327&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-3.4.2.tgz", - "integrity": "sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ=", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz", - "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", - "dev": true - }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npm.taobao.org/cssnano/download/cssnano-4.1.10.tgz?cache=0&sync_timestamp=1603212703620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssnano%2Fdownload%2Fcssnano-4.1.10.tgz", - "integrity": "sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI=", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz?cache=0&sync_timestamp=1603212710277&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.7.tgz", - "integrity": "sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y=", - "dev": true, - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=", - "dev": true - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.2.0.tgz?cache=0&sync_timestamp=1606408849393&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-4.2.0.tgz", - "integrity": "sha1-6jpWE0bo3J9UbW/r7dUBh884lSk=", - "dev": true, - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.1.2.tgz?cache=0&sync_timestamp=1606404102945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.1.2.tgz", - "integrity": "sha1-muOTtdr9fa6KYiR1yux409j717U=", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.14.tgz", - "integrity": "sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz?cache=0&sync_timestamp=1601073354236&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz", - "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "deepmerge": { - "version": "1.5.2", - "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz", - "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=" - }, - "default-gateway": { - "version": "5.0.5", - "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.5.tgz", - "integrity": "sha1-T9a9XShV05s0zFpZUFSG6ar8mxA=", - "dev": true, - "requires": { - "execa": "^3.3.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz?cache=0&sync_timestamp=1590421084109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-7.0.3.tgz", - "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "3.4.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1603884816920&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz", - "integrity": "sha1-wI7UVQ72XYWPrCaf/IVyRG8364k=", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz?cache=0&sync_timestamp=1597056544847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz", - "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz?cache=0&sync_timestamp=1596093964303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz?cache=0&sync_timestamp=1577053500910&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-4.0.1.tgz", - "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz?cache=0&sync_timestamp=1597005791058&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fonetime%2Fdownload%2Fonetime-5.1.2.tgz", - "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz", - "integrity": "sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz", - "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", - "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", - "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz", - "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz?cache=0&sync_timestamp=1591083787584&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz", - "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", - "dev": true - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz", - "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz", - "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw=", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", - "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", - "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", - "dev": true - } - } - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz", - "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", - "dev": true, - "requires": { - "path-type": "^3.0.0" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz", - "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz", - "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=", - "dev": true, - "requires": { - "utila": "~0.4" - } - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1600026762467&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", - "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.1.0.tgz?cache=0&sync_timestamp=1606865995285&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.1.0.tgz", - "integrity": "sha1-qFHAgKbRw9lDRK7RUdmfZp7fWF4=", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz", - "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", - "dev": true - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz?cache=0&sync_timestamp=1606865995285&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-1.3.1.tgz", - "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz?cache=0&sync_timestamp=1606872280855&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomhandler%2Fdownload%2Fdomhandler-2.4.2.tgz", - "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domready": { - "version": "1.0.8", - "resolved": "https://registry.npm.taobao.org/domready/download/domready-1.0.8.tgz", - "integrity": "sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw=", - "dev": true - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz?cache=0&sync_timestamp=1601761294162&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz", - "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.3.0.tgz?cache=0&sync_timestamp=1605778171073&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-5.3.0.tgz", - "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npm.taobao.org/dotenv/download/dotenv-8.2.0.tgz", - "integrity": "sha1-l+YZJZradQ7qPk6j4mvO6lQksWo=", - "dev": true - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz", - "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=", - "dev": true - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz", - "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", - "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "easy-stack": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.1.tgz", - "integrity": "sha1-iv5CZGJpiMq7EfPHBMzQyDVBEGY=", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "ejs": { - "version": "2.7.4", - "resolved": "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz?cache=0&sync_timestamp=1597678833084&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz", - "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=", - "dev": true - }, - "el-admin-layout": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/el-admin-layout/-/el-admin-layout-0.0.2.tgz", - "integrity": "sha512-F+5n9HzlbGyD3EbQi4Uk7RdMlZbSLmPAsw5aoK5pYmEtLJktZCOC70bGMNRESc38bGpADa7Cv1+8bwCruG1/uw==" - }, - "electron-to-chromium": { - "version": "1.3.613", - "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.613.tgz?cache=0&sync_timestamp=1606876399469&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.613.tgz", - "integrity": "sha1-WtfsHhnSjIHtttYbnUmQ0clxYYI=", - "dev": true - }, - "element-ui": { - "version": "2.14.1", - "resolved": "https://registry.npm.taobao.org/element-ui/download/element-ui-2.14.1.tgz?cache=0&sync_timestamp=1605089928506&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felement-ui%2Fdownload%2Felement-ui-2.14.1.tgz", - "integrity": "sha1-i1dFxzZsHBpgO7bAIShupxh+KqI=", - "requires": { - "async-validator": "~1.8.1", - "babel-helper-vue-jsx-merge-props": "^2.0.0", - "deepmerge": "^1.2.0", - "normalize-wheel": "^1.0.1", - "resize-observer-polyfill": "^1.5.0", - "throttle-debounce": "^1.0.1" - } - }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.3.tgz?cache=0&sync_timestamp=1592492820150&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.3.tgz", - "integrity": "sha1-y1nrLv2vc6C9eMzXAVpirW4Pk9Y=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", - "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", - "dev": true - } - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1603212288390&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", - "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.3.0.tgz?cache=0&sync_timestamp=1605886975050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz", - "integrity": "sha1-O4BvO/r8HsfeaVUe+TzKRsFwQSY=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz", - "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "entities": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.1.0.tgz?cache=0&sync_timestamp=1602898797807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.1.0.tgz", - "integrity": "sha1-mS0xKc999ocLlsV4WMJJoSD4uLU=", - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz", - "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz?cache=0&sync_timestamp=1578288503034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-stack-parser%2Fdownload%2Ferror-stack-parser-2.0.6.tgz", - "integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=", - "dev": true, - "requires": { - "stackframe": "^1.1.1" - } - }, - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.18.0-next.1.tgz?cache=0&sync_timestamp=1601503031703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.18.0-next.1.tgz", - "integrity": "sha1-bjoKS9pxflAjqzuOkL7DYQjSLGg=", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz", - "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz", - "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1587627154980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz", - "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", - "dev": true - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz?cache=0&sync_timestamp=1598898255610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesrecurse%2Fdownload%2Fesrecurse-4.3.0.tgz", - "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz?cache=0&sync_timestamp=1596641300398&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz", - "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1596641300398&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", - "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "event-pubsub": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz?cache=0&sync_timestamp=1606361549058&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevent-pubsub%2Fdownload%2Fevent-pubsub-4.3.0.tgz", - "integrity": "sha1-9o2Ba8KfHsAsU53FjI3UDOcss24=", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz?cache=0&sync_timestamp=1598517714257&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.7.tgz", - "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=", - "dev": true - }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/events/download/events-3.2.0.tgz?cache=0&sync_timestamp=1595422608991&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevents%2Fdownload%2Fevents-3.2.0.tgz", - "integrity": "sha1-k7h8GPjvzUICpGGuxN/AVWtjk3k=", - "dev": true - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz", - "integrity": "sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA=", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", - "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1603884816920&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz", - "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", - "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", - "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599659970&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", - "dev": true - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz?cache=0&sync_timestamp=1592290346558&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-2.2.7.tgz", - "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "dependencies": { - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", - "dev": true - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz", - "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=", - "dev": true - }, - "file-loader": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz", - "integrity": "sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8=", - "dev": true, - "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.5.0" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", - "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=", - "dev": true, - "optional": true - }, - "filesize": { - "version": "3.6.1", - "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffilesize%2Fdownload%2Ffilesize-3.6.1.tgz", - "integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=", - "dev": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz", - "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", - "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", - "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz?cache=0&sync_timestamp=1597058055564&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz", - "integrity": "sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=", - "dev": true, - "requires": { - "debug": "=3.1.0" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz", - "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-7.0.1.tgz", - "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz?cache=0&sync_timestamp=1579628689954&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz", - "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz?cache=0&sync_timestamp=1604593363910&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.1.3.tgz", - "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz", - "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", - "dev": true - }, - "get-intrinsic": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.0.1.tgz?cache=0&sync_timestamp=1604120613550&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-intrinsic%2Fdownload%2Fget-intrinsic-1.0.1.tgz", - "integrity": "sha1-lKl2j8vdBZWhySc6rPTInQdWMb4=", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz?cache=0&sync_timestamp=1597056544847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz", - "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz", - "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "dev": true - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz?cache=0&sync_timestamp=1591083787584&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-9.2.0.tgz", - "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1590809289115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz", - "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz?cache=0&sync_timestamp=1588086876757&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz", - "integrity": "sha1-Ila94U02MpWMRl68ltxGfKB6Kfs=", - "dev": true - }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz?cache=0&sync_timestamp=1605523125680&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgzip-size%2Fdownload%2Fgzip-size-5.1.1.tgz", - "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - } - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz?cache=0&sync_timestamp=1585154457081&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhandle-thing%2Fdownload%2Fhandle-thing-2.0.1.tgz", - "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz?cache=0&sync_timestamp=1596082584903&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.5.tgz", - "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz", - "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz", - "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz?cache=0&sync_timestamp=1589129103371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", - "dev": true - } - } - }, - "hash-sum": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-2.0.0.tgz", - "integrity": "sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo=", - "dev": true - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", - "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", - "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", - "dev": true - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", - "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", - "dev": true - }, - "highlight.js": { - "version": "10.4.0", - "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-10.4.0.tgz", - "integrity": "sha1-7zzkdeXfp6SEhCYLSeokLdq4I6A=", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz", - "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz", - "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", - "dev": true - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz", - "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=", - "dev": true - }, - "html-entities": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.3.1.tgz?cache=0&sync_timestamp=1586616304085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.3.1.tgz", - "integrity": "sha1-+5oaS1sUxdq6gtPjTGrk/nAaDkQ=", - "dev": true - }, - "html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz", - "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=", - "dev": true, - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - }, - "dependencies": { - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1605992767704&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz", - "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=", - "dev": true - } - } - }, - "html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-3.1.0.tgz", - "integrity": "sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=", - "dev": true - }, - "html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz", - "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", - "dev": true, - "requires": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", - "util.promisify": "1.0.0" - }, - "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", - "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&sync_timestamp=1586045693798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz?cache=0&sync_timestamp=1584445172927&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz", - "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - } - } - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1603670804521&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz", - "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz?cache=0&sync_timestamp=1602898797807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz", - "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1593407634112&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz", - "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz", - "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz?cache=0&sync_timestamp=1602445480546&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz", - "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", - "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1600868483243&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz?cache=0&sync_timestamp=1584199206838&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhuman-signals%2Fdownload%2Fhuman-signals-1.1.1.tgz", - "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz", - "integrity": "sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc=", - "dev": true, - "requires": { - "postcss": "^7.0.14" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.2.1.tgz?cache=0&sync_timestamp=1603838320663&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.2.1.tgz", - "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz?cache=0&sync_timestamp=1590809289115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-3.3.10.tgz", - "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", - "dev": true - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz?cache=0&sync_timestamp=1603728987431&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimage-size%2Fdownload%2Fimage-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1604255726469&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", - "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081605529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1602858985920&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz", - "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", - "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", - "dev": true - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz?cache=0&sync_timestamp=1605885556992&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz", - "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - }, - "dependencies": { - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz", - "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", - "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - } - } - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz?cache=0&sync_timestamp=1601334246637&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", - "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", - "dev": true - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz", - "integrity": "sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM=", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", - "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604432378894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.2.tgz", - "integrity": "sha1-x8ZxXNItTdtI0+GZcCI6zquwgNk=", - "dev": true - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/is-core-module/download/is-core-module-2.2.0.tgz?cache=0&sync_timestamp=1606411588663&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-core-module%2Fdownload%2Fis-core-module-2.2.0.tgz", - "integrity": "sha1-lwN+89UiJNhRY/VZeytj2a/tmBo=", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729293199&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", - "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "dev": true - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/is-docker/download/is-docker-2.1.1.tgz?cache=0&sync_timestamp=1596559550204&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-docker%2Fdownload%2Fis-docker-2.1.1.tgz", - "integrity": "sha1-QSWojkTkUNOE4JBH7eca3C0UQVY=", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", - "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz", - "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz", - "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz?cache=0&sync_timestamp=1599667273698&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.1.tgz?cache=0&sync_timestamp=1596555680838&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.1.tgz", - "integrity": "sha1-xvmKrMVG9s7FRooHt7FTq1ZKV7k=", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", - "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-svg%2Fdownload%2Fis-svg-3.0.0.tgz", - "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=", - "dev": true, - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz", - "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "javascript-stringify": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-2.0.1.tgz?cache=0&sync_timestamp=1572948916758&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.0.1.tgz", - "integrity": "sha1-bvNYA1MQ411mfGde1j0+t8GqGeU=", - "dev": true - }, - "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.5.0.tgz?cache=0&sync_timestamp=1604319799331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-25.5.0.tgz", - "integrity": "sha1-JhHQcbec6g9D7lej0RhZOsFUfbE=", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1606205060845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npm.taobao.org/js-base64/download/js-base64-2.6.4.tgz?cache=0&sync_timestamp=1604450395858&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-base64%2Fdownload%2Fjs-base64-2.6.4.tgz", - "integrity": "sha1-9OaGxd4eofhn28rT1G2WlCjfmMQ=", - "dev": true - }, - "js-message": { - "version": "1.0.7", - "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.7.tgz?cache=0&sync_timestamp=1605128905632&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-message%2Fdownload%2Fjs-message-1.0.7.tgz", - "integrity": "sha1-+93QU8ekcCGHG7iyyVOXzBfCDkc=", - "dev": true - }, - "js-queue": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.2.tgz", - "integrity": "sha1-C+WQM4+QOzbHPTPDGIOoIUEs1II=", - "dev": true, - "requires": { - "easy-stack": "^1.0.1" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", - "dev": true - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.0.tgz", - "integrity": "sha1-p6NBcPJqIbsWJCTYray0ETpp5II=", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz?cache=0&sync_timestamp=1603891161295&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz", - "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npm.taobao.org/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz?cache=0&sync_timestamp=1599333924542&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz", - "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=", - "dev": true - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz?cache=0&sync_timestamp=1586045693798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz", - "integrity": "sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM=", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz?cache=0&sync_timestamp=1604161844511&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", - "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", - "dev": true - }, - "launch-editor": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz", - "integrity": "sha1-hxtaPuOdZoD8wm03kwtu7aidsMo=", - "dev": true, - "requires": { - "chalk": "^2.3.0", - "shell-quote": "^1.6.1" - } - }, - "launch-editor-middleware": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/launch-editor-middleware/download/launch-editor-middleware-2.2.1.tgz", - "integrity": "sha1-4UsH5scVSwpLhqD9NFeE5FgEwVc=", - "dev": true, - "requires": { - "launch-editor": "^2.2.1" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz", - "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", - "dev": true - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1584445172927&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586045693798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336125847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz", - "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=", - "dev": true - }, - "lodash.defaultsdeep": { - "version": "4.6.1", - "resolved": "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz", - "integrity": "sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY=", - "dev": true - }, - "lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", - "dev": true - }, - "lodash.mapvalues": { - "version": "4.6.0", - "resolved": "https://registry.npm.taobao.org/lodash.mapvalues/download/lodash.mapvalues-4.6.0.tgz", - "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.transform": { - "version": "4.6.0", - "resolved": "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz", - "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz", - "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", - "dev": true, - "requires": { - "chalk": "^2.0.1" - } - }, - "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.1.tgz?cache=0&sync_timestamp=1606314029553&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.7.1.tgz", - "integrity": "sha1-AF/eL15uRwaPk1/yhXPhJe9y8Zc=", - "dev": true - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz?cache=0&sync_timestamp=1606867292121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427573763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&sync_timestamp=1587567576732&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz", - "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606854810932&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", - "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz", - "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-options": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/merge-options/download/merge-options-1.0.1.tgz?cache=0&sync_timestamp=1606147071422&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge-options%2Fdownload%2Fmerge-options-1.0.1.tgz", - "integrity": "sha1-KmSyRFe+zU5NxggoMkfpTOWJqjI=", - "dev": true, - "requires": { - "is-plain-obj": "^1.1" - } - }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz", - "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz", - "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz", - "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", - "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", - "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", - "dev": true - } - } - }, - "mime": { - "version": "2.4.6", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.6.tgz", - "integrity": "sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE=", - "dev": true - }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz?cache=0&sync_timestamp=1600831150274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz", - "integrity": "sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I=", - "dev": true - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.27.tgz", - "integrity": "sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8=", - "dev": true, - "requires": { - "mime-db": "1.44.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz?cache=0&sync_timestamp=1596093964303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", - "dev": true - }, - "mini-css-extract-plugin": { - "version": "0.9.0", - "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.9.0.tgz", - "integrity": "sha1-R/LPB6oWWrNXM7H8l9TEbAVkM54=", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1601922425223&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", - "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", - "dev": true - }, - "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz?cache=0&sync_timestamp=1589332658869&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz", - "integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=", - "dev": true, - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", - "dev": true - } - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz", - "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz", - "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.4.tgz?cache=0&sync_timestamp=1595998554107&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass-pipeline%2Fdownload%2Fminipass-pipeline-1.2.4.tgz", - "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", - "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mitt": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/mitt/download/mitt-1.1.2.tgz", - "integrity": "sha1-OA5hSA1qYVtmDwertg1R4KTkvtY=", - "dev": true - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz", - "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz", - "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", - "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz", - "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=", - "dev": true, - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591646310&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz", - "integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk=", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", - "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz", - "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz?cache=0&sync_timestamp=1602353330797&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz?cache=0&sync_timestamp=1606867290260&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-2.3.2.tgz", - "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz?cache=0&sync_timestamp=1599010719234&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.10.0.tgz", - "integrity": "sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M=", - "dev": true - }, - "node-ipc": { - "version": "9.1.3", - "resolved": "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.3.tgz", - "integrity": "sha1-HfPwadEDGErpEn+ohdva6lakQ28=", - "dev": true, - "requires": { - "event-pubsub": "4.3.0", - "js-message": "1.0.7", - "js-queue": "2.0.2" - } - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", - "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-releases": { - "version": "1.1.67", - "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.67.tgz?cache=0&sync_timestamp=1605581400705&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.67.tgz", - "integrity": "sha1-KOv8zNC6pqrY6NTY/ky8Sa4jnBI=", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz", - "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz", - "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", - "dev": true - }, - "normalize-wheel": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz", - "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=" - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&sync_timestamp=1577053500910&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/nprogress/download/nprogress-0.2.0.tgz", - "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz?cache=0&sync_timestamp=1606860664533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz", - "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", - "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&sync_timestamp=1571657171505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.9.0.tgz?cache=0&sync_timestamp=1606804307501&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.9.0.tgz", - "integrity": "sha1-yQUh104RJ7ZyZt7TOUrWEWmGUzo=", - "dev": true - }, - "object-is": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.4.tgz?cache=0&sync_timestamp=1606460463646&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.4.tgz", - "integrity": "sha1-Y9bIPACkP0y8lDTrl1fIpbhWUGg=", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", - "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.2.tgz?cache=0&sync_timestamp=1604115167242&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.2.tgz", - "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.1.tgz?cache=0&sync_timestamp=1606458156847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.1.tgz", - "integrity": "sha1-Df2o0QgHTZxWPoBJDIg7ZmEJFUQ=", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.2.tgz", - "integrity": "sha1-eiAV4G/LD1Rr1lJIbOhYOkcxxzE=", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz", - "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz", - "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz?cache=0&sync_timestamp=1597005791058&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fonetime%2Fdownload%2Fonetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "open": { - "version": "6.4.0", - "resolved": "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz", - "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "opener": { - "version": "1.5.2", - "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.2.tgz?cache=0&sync_timestamp=1598732839408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopener%2Fdownload%2Fopener-1.5.2.tgz", - "integrity": "sha1-XTfh81B3udysQwE3InGv3rKhNZg=", - "dev": true - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz", - "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "ora": { - "version": "3.4.0", - "resolved": "https://registry.npm.taobao.org/ora/download/ora-3.4.0.tgz?cache=0&sync_timestamp=1599423294006&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fora%2Fdownload%2Fora-3.4.0.tgz", - "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz", - "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1606288352885&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081605529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz", - "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz?cache=0&sync_timestamp=1572521210242&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz", - "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=", - "dev": true, - "requires": { - "retry": "^0.12.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz?cache=0&sync_timestamp=1605741935029&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpako%2Fdownload%2Fpako-1.0.11.tgz", - "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz", - "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz?cache=0&sync_timestamp=1606867288643&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz?cache=0&sync_timestamp=1597167385396&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-asn1%2Fdownload%2Fparse-asn1-5.1.6.tgz", - "integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.1.0.tgz", - "integrity": "sha1-+WCIzfJKj6qa6poAny2dlCyZlkY=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz?cache=0&sync_timestamp=1595850971402&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-5.1.1.tgz", - "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=", - "dev": true - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npm.taobao.org/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-6.0.1.tgz?cache=0&sync_timestamp=1596089848278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5-htmlparser2-tree-adapter%2Fdownload%2Fparse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha1-LN+a2CMyEUA3DU2/XT6Sx8jdxuY=", - "dev": true, - "requires": { - "parse5": "^6.0.1" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-6.0.1.tgz?cache=0&sync_timestamp=1595850971402&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-6.0.1.tgz", - "integrity": "sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=", - "dev": true - } - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", - "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", - "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz", - "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz", - "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.1.tgz", - "integrity": "sha1-y4cksPramEWWhW0abrr9NYRlS5Q=", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.2.tgz", - "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1602858985920&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz", - "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "pnp-webpack-plugin": { - "version": "1.6.4", - "resolved": "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.6.4.tgz?cache=0&sync_timestamp=1582068446562&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpnp-webpack-plugin%2Fdownload%2Fpnp-webpack-plugin-1.6.4.tgz", - "integrity": "sha1-yXEaxNxIpoXauvyG+Lbdn434QUk=", - "dev": true, - "requires": { - "ts-pnp": "^1.1.6" - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz?cache=0&sync_timestamp=1596019866852&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.28.tgz", - "integrity": "sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.35.tgz?cache=0&sync_timestamp=1606168386440&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.35.tgz", - "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1606205060845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.5.tgz", - "integrity": "sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4=", - "dev": true, - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz?cache=0&sync_timestamp=1603212718946&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-colormin%2Fdownload%2Fpostcss-colormin-4.0.3.tgz", - "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz?cache=0&sync_timestamp=1603212719094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-convert-values%2Fdownload%2Fpostcss-convert-values-4.0.1.tgz", - "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz?cache=0&sync_timestamp=1603212719196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-comments%2Fdownload%2Fpostcss-discard-comments-4.0.2.tgz", - "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz?cache=0&sync_timestamp=1603212719289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-duplicates%2Fdownload%2Fpostcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz?cache=0&sync_timestamp=1603212719379&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-empty%2Fdownload%2Fpostcss-discard-empty-4.0.1.tgz", - "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz?cache=0&sync_timestamp=1603212719466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-overridden%2Fdownload%2Fpostcss-discard-overridden-4.0.1.tgz", - "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-load-config%2Fdownload%2Fpostcss-load-config-2.1.2.tgz", - "integrity": "sha1-xepQTyxK7zPHNZo03jVzdyrXUCo=", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - } - }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz?cache=0&sync_timestamp=1605790892013&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-loader%2Fdownload%2Fpostcss-loader-3.0.0.tgz", - "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1601922425223&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz?cache=0&sync_timestamp=1603212719743&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-longhand%2Fdownload%2Fpostcss-merge-longhand-4.0.11.tgz", - "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz?cache=0&sync_timestamp=1603212719858&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-merge-rules%2Fdownload%2Fpostcss-merge-rules-4.0.3.tgz", - "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045450967&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz?cache=0&sync_timestamp=1603212719965&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-font-values%2Fdownload%2Fpostcss-minify-font-values-4.0.2.tgz", - "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz?cache=0&sync_timestamp=1603212720051&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-gradients%2Fdownload%2Fpostcss-minify-gradients-4.0.2.tgz", - "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz?cache=0&sync_timestamp=1603212720143&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-params%2Fdownload%2Fpostcss-minify-params-4.0.2.tgz", - "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz?cache=0&sync_timestamp=1603212720250&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-minify-selectors%2Fdownload%2Fpostcss-minify-selectors-4.0.2.tgz", - "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045450967&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz?cache=0&sync_timestamp=1602588267459&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha1-gYcZoa4doyX5gyRGsBE27rSTzX4=", - "dev": true, - "requires": { - "postcss": "^7.0.5" - } - }, - "postcss-modules-local-by-default": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.3.tgz?cache=0&sync_timestamp=1602587552751&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-3.0.3.tgz", - "integrity": "sha1-uxTgzHgnnVBNvcv9fgyiiZP/u7A=", - "dev": true, - "requires": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.32", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz?cache=0&sync_timestamp=1602594980328&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-2.2.0.tgz", - "integrity": "sha1-OFyuATzHdD9afXYC0Qc6iequYu4=", - "dev": true, - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - } - }, - "postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz?cache=0&sync_timestamp=1602586308035&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-3.0.0.tgz", - "integrity": "sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA=", - "dev": true, - "requires": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz?cache=0&sync_timestamp=1603212720341&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-charset%2Fdownload%2Fpostcss-normalize-charset-4.0.1.tgz", - "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz?cache=0&sync_timestamp=1603212720431&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-display-values%2Fdownload%2Fpostcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz?cache=0&sync_timestamp=1603212720516&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-positions%2Fdownload%2Fpostcss-normalize-positions-4.0.2.tgz", - "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz?cache=0&sync_timestamp=1603212720603&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-repeat-style%2Fdownload%2Fpostcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz?cache=0&sync_timestamp=1603212720723&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-string%2Fdownload%2Fpostcss-normalize-string-4.0.2.tgz", - "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=", - "dev": true, - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz?cache=0&sync_timestamp=1603214550002&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-timing-functions%2Fdownload%2Fpostcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz?cache=0&sync_timestamp=1603214550177&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-unicode%2Fdownload%2Fpostcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz?cache=0&sync_timestamp=1603212717176&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-url%2Fdownload%2Fpostcss-normalize-url-4.0.1.tgz", - "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=", - "dev": true, - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz?cache=0&sync_timestamp=1603212717269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-whitespace%2Fdownload%2Fpostcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz?cache=0&sync_timestamp=1603214546361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-ordered-values%2Fdownload%2Fpostcss-ordered-values-4.1.2.tgz", - "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-prefix-selector": { - "version": "1.7.2", - "resolved": "https://registry.npm.taobao.org/postcss-prefix-selector/download/postcss-prefix-selector-1.7.2.tgz", - "integrity": "sha1-Ot7tkDmFc0KY8Z2PXgtlf52Q1Dw=", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-transforms%2Fdownload%2Fpostcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.4.tgz?cache=0&sync_timestamp=1601045450967&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.4.tgz", - "integrity": "sha1-VgdaE4CgRgTDiwY+p3Z6Epr1wrM=", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-svgo%2Fdownload%2Fpostcss-svgo-4.0.2.tgz", - "integrity": "sha1-F7mXvHEbMzurFDqu07jT1uPTglg=", - "dev": true, - "requires": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-unique-selectors%2Fdownload%2Fpostcss-unique-selectors-4.0.1.tgz", - "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz", - "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=", - "dev": true - }, - "posthtml": { - "version": "0.9.2", - "resolved": "https://registry.npm.taobao.org/posthtml/download/posthtml-0.9.2.tgz?cache=0&sync_timestamp=1606388256100&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fposthtml%2Fdownload%2Fposthtml-0.9.2.tgz", - "integrity": "sha1-9MBtufZ7Yf0XxOJW5+PZUVv3Jv0=", - "dev": true, - "requires": { - "posthtml-parser": "^0.2.0", - "posthtml-render": "^1.0.5" - } - }, - "posthtml-parser": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/posthtml-parser/download/posthtml-parser-0.2.1.tgz?cache=0&sync_timestamp=1605282437872&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fposthtml-parser%2Fdownload%2Fposthtml-parser-0.2.1.tgz", - "integrity": "sha1-NdUw3jhnQMK6JP8usvrznM3ycd0=", - "dev": true, - "requires": { - "htmlparser2": "^3.8.3", - "isobject": "^2.1.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "posthtml-rename-id": { - "version": "1.0.12", - "resolved": "https://registry.npm.taobao.org/posthtml-rename-id/download/posthtml-rename-id-1.0.12.tgz", - "integrity": "sha1-z39us3FGvxr6wx5o8YxswZrmFDM=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "posthtml-render": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/posthtml-render/download/posthtml-render-1.4.0.tgz?cache=0&sync_timestamp=1605682833852&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fposthtml-render%2Fdownload%2Fposthtml-render-1.4.0.tgz", - "integrity": "sha1-QBFAcMRYgcrLkzR9rj7/U6+8/xM=", - "dev": true - }, - "posthtml-svg-mode": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/posthtml-svg-mode/download/posthtml-svg-mode-1.0.3.tgz", - "integrity": "sha1-q9VU+s6BIjyrDLNn4Y5O/SpOdLA=", - "dev": true, - "requires": { - "merge-options": "1.0.1", - "posthtml": "^0.9.2", - "posthtml-parser": "^0.2.1", - "posthtml-render": "^1.0.6" - } - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1606521234483&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz", - "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=", - "dev": true, - "optional": true - }, - "pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.2.tgz", - "integrity": "sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y=", - "dev": true, - "requires": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz", - "integrity": "sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8=", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz", - "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", - "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", - "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", - "dev": true - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz?cache=0&sync_timestamp=1569938200736&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpumpify%2Fdownload%2Fpumpify-1.5.1.tgz", - "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", - "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", - "dev": true - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", - "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", - "dev": true - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz?cache=0&sync_timestamp=1597686864502&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.2.0.tgz", - "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", - "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", - "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz", - "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz", - "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz", - "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz", - "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.5.0.tgz?cache=0&sync_timestamp=1602584394621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.5.0.tgz", - "integrity": "sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.2.tgz?cache=0&sync_timestamp=1604220147658&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.2.tgz", - "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1595456095182&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz", - "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz?cache=0&sync_timestamp=1593557731525&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz", - "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz?cache=0&sync_timestamp=1576388141321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz", - "integrity": "sha1-erqJs8E6ZFCdq888qNn7ub31y3U=", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz?cache=0&sync_timestamp=1601503031703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.7.tgz", - "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.1.tgz?cache=0&sync_timestamp=1600413566893&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.1.tgz", - "integrity": "sha1-LepamgcjMpj78NuR+pq8TG4PitY=", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.2.tgz", - "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=", - "dev": true - }, - "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz", - "integrity": "sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI=", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz?cache=0&sync_timestamp=1603891161295&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "renderkid": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.4.tgz", - "integrity": "sha1-0yXlMq+yjT+Hlv/uMGvo/9b8hkw=", - "dev": true, - "requires": { - "css-select": "^1.1.0", - "dom-converter": "^0.2", - "htmlparser2": "^3.3.0", - "lodash": "^4.17.20", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true, - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz?cache=0&sync_timestamp=1602570915327&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-2.1.3.tgz", - "integrity": "sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI=", - "dev": true - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz?cache=0&sync_timestamp=1601761294162&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz", - "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz", - "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=" - }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.19.0.tgz", - "integrity": "sha1-GvW/YwQJc0oGfK4pMYqsf6KaJnw=", - "dev": true, - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", - "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz?cache=0&sync_timestamp=1589129103371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", - "dev": true - }, - "sass": { - "version": "1.29.0", - "resolved": "https://registry.npm.taobao.org/sass/download/sass-1.29.0.tgz?cache=0&sync_timestamp=1604536692062&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass%2Fdownload%2Fsass-1.29.0.tgz", - "integrity": "sha1-7E4YQsFG2OqSWMKMFBuMK3xqt/E=", - "dev": true, - "requires": { - "chokidar": ">=2.0.0 <4.0.0" - } - }, - "sass-loader": { - "version": "8.0.2", - "resolved": "https://registry.npm.taobao.org/sass-loader/download/sass-loader-8.0.2.tgz", - "integrity": "sha1-3r7NjDziQ8dkVPLoKQSCFQOACQ0=", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.2.3", - "neo-async": "^2.6.1", - "schema-utils": "^2.6.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606854810932&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", - "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", - "dev": true - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz?cache=0&sync_timestamp=1601922425223&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.1.tgz", - "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.8.tgz?cache=0&sync_timestamp=1600186174319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.8.tgz", - "integrity": "sha1-DRcgi30Swz+OrIXEGDXyf8PYGjA=", - "dev": true, - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1606854810932&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", - "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz", - "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", - "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-4.0.0.tgz?cache=0&sync_timestamp=1599740657550&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz", - "integrity": "sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao=", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1593407634112&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz", - "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", - "dev": true - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz", - "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz", - "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz", - "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz", - "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-3.0.1.tgz", - "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz", - "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz", - "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz", - "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=", - "dev": true - } - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sockjs": { - "version": "0.3.20", - "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.20.tgz", - "integrity": "sha1-smooPsVi74smh7RAM6Tuzqx12FU=", - "dev": true, - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.4.0", - "websocket-driver": "0.6.5" - } - }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz?cache=0&sync_timestamp=1596409940223&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.4.0.tgz", - "integrity": "sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U=", - "dev": true, - "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz", - "integrity": "sha1-XA6aiWjokSwoZjn96XeosgnyUI4=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", - "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz", - "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz?cache=0&sync_timestamp=1587719289626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz", - "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz?cache=0&sync_timestamp=1590189321962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz", - "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz?cache=0&sync_timestamp=1587422410312&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz", - "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.7.tgz?cache=0&sync_timestamp=1606610735791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.7.tgz", - "integrity": "sha1-6cGKQQ5e1+EkQqVJ+9ivp2cDjWU=", - "dev": true - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz?cache=0&sync_timestamp=1585970558936&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz", - "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", - "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", - "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=", - "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", - "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", - "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-6.0.1.tgz", - "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz", - "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=", - "dev": true - }, - "stackframe": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz", - "integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz?cache=0&sync_timestamp=1587041545531&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-browserify%2Fdownload%2Fstream-browserify-2.0.2.tgz", - "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", - "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz", - "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz", - "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.3.tgz?cache=0&sync_timestamp=1606007944413&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.3.tgz", - "integrity": "sha1-oivVPMpcfPRNfJ1ccyEYhz1s0Ys=", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.3.tgz?cache=0&sync_timestamp=1606007944322&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.3.tgz", - "integrity": "sha1-m0y1kOEjuzZWRAHVmCQpjeUP1ao=", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", - "dev": true - } - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz", - "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", - "dev": true - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstylehacks%2Fdownload%2Fstylehacks-4.0.3.tgz", - "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1601045450967&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1606205060845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "svg-baker": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/svg-baker/download/svg-baker-1.7.0.tgz?cache=0&sync_timestamp=1586351823483&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvg-baker%2Fdownload%2Fsvg-baker-1.7.0.tgz", - "integrity": "sha1-g2f3jYdVUMUv5HVvcwPVxdfC6ac=", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "clone": "^2.1.1", - "he": "^1.1.1", - "image-size": "^0.5.1", - "loader-utils": "^1.1.0", - "merge-options": "1.0.1", - "micromatch": "3.1.0", - "postcss": "^5.2.17", - "postcss-prefix-selector": "^1.6.0", - "posthtml-rename-id": "^1.0", - "posthtml-svg-mode": "^1.0.3", - "query-string": "^4.3.2", - "traverse": "^0.6.6" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1606792266928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1591687028262&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1606205060845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", - "dev": true - } - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", - "dev": true - } - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", - "dev": true - } - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "dev": true - }, - "micromatch": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.0.tgz", - "integrity": "sha1-UQLU6vILaZfWAI46z+HESj+oFeI=", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.2.2", - "define-property": "^1.0.0", - "extend-shallow": "^2.0.1", - "extglob": "^2.0.2", - "fragment-cache": "^0.2.1", - "kind-of": "^5.0.2", - "nanomatch": "^1.2.1", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz?cache=0&sync_timestamp=1606168386440&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-5.2.18.tgz", - "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz?cache=0&sync_timestamp=1606205060845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "svg-baker-runtime": { - "version": "1.4.7", - "resolved": "https://registry.npm.taobao.org/svg-baker-runtime/download/svg-baker-runtime-1.4.7.tgz", - "integrity": "sha1-9HIGN/W2IC7vY3jYHx/q0IFfik4=", - "dev": true, - "requires": { - "deepmerge": "1.3.2", - "mitt": "1.1.2", - "svg-baker": "^1.7.0" - }, - "dependencies": { - "deepmerge": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.3.2.tgz", - "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", - "dev": true - } - } - }, - "svg-sprite-loader": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/svg-sprite-loader/download/svg-sprite-loader-4.3.0.tgz", - "integrity": "sha1-pCf3d/4Vu6g6gG4v3gGnNrGURcg=", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "deepmerge": "1.3.2", - "domready": "1.0.8", - "escape-string-regexp": "1.0.5", - "html-webpack-plugin": "^3.2.0", - "loader-utils": "^1.1.0", - "svg-baker": "^1.5.0", - "svg-baker-runtime": "^1.4.7", - "url-slug": "2.0.0" - }, - "dependencies": { - "deepmerge": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.3.2.tgz", - "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", - "dev": true - } - } - }, - "svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", - "dev": true - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1572433264480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz", - "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz?cache=0&sync_timestamp=1604917766151&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz", - "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", - "dev": true - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1606492163736&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz", - "integrity": "sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz?cache=0&sync_timestamp=1603881694762&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.5.tgz", - "integrity": "sha1-oheu+uozDnNP+sthIOwfoxLWBAs=", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", - "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1587567576732&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz", - "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081605529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1602858985920&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1601922425223&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.1.tgz?cache=0&sync_timestamp=1592413466879&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthenify%2Fdownload%2Fthenify-3.3.1.tgz", - "integrity": "sha1-iTLmhqQGYDigFt2eLKRq3Zg4qV8=", - "dev": true, - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "dev": true, - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "thread-loader": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/thread-loader/download/thread-loader-2.1.3.tgz?cache=0&sync_timestamp=1603809365048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthread-loader%2Fdownload%2Fthread-loader-2.1.3.tgz", - "integrity": "sha1-y9LBOfwrLebp0o9iKGq3cMGsvdo=", - "dev": true, - "requires": { - "loader-runner": "^2.3.1", - "loader-utils": "^1.1.0", - "neo-async": "^2.6.0" - } - }, - "throttle-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz?cache=0&sync_timestamp=1604313880785&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrottle-debounce%2Fdownload%2Fthrottle-debounce-1.1.0.tgz", - "integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz?cache=0&sync_timestamp=1593480386934&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrough2%2Fdownload%2Fthrough2-2.0.5.tgz", - "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz", - "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.12.tgz?cache=0&sync_timestamp=1603793667345&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimers-browserify%2Fdownload%2Ftimers-browserify-2.0.12.tgz", - "integrity": "sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4=", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz", - "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", - "dev": true - }, - "toposort": { - "version": "1.0.7", - "resolved": "https://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz?cache=0&sync_timestamp=1574984066913&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftoposort%2Fdownload%2Ftoposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz", - "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npm.taobao.org/traverse/download/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", - "dev": true - }, - "tryer": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz", - "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=", - "dev": true - }, - "ts-pnp": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.2.0.tgz", - "integrity": "sha1-pQCtCEsHmPHDBxrzkeZZEshrypI=", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1602286603545&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz", - "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581365004105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1606468845607&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype-fest%2Fdownload%2Ftype-fest-0.6.0.tgz", - "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", - "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz", - "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=", - "dev": true, - "requires": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1605992767704&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz", - "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz?cache=0&sync_timestamp=1583948593703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz?cache=0&sync_timestamp=1583945817604&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=", - "dev": true - }, - "unidecode": { - "version": "0.1.8", - "resolved": "https://registry.npm.taobao.org/unidecode/download/unidecode-0.1.8.tgz", - "integrity": "sha1-77swFTi8RSRqmsjFWdcvAVMFBT4=", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz", - "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz", - "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1603180042770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz", - "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz?cache=0&sync_timestamp=1604768535464&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz", - "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", - "dev": true - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true - }, - "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.0.tgz?cache=0&sync_timestamp=1598814377097&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.4.0.tgz", - "integrity": "sha1-qnFCYd55PoqCNHp7zJznTobyhgI=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz?cache=0&sync_timestamp=1585438689517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furix%2Fdownload%2Furix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-loader": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-2.3.0.tgz?cache=0&sync_timestamp=1602252665628&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-loader%2Fdownload%2Furl-loader-2.3.0.tgz", - "integrity": "sha1-4OLvZY8APvuMpBsPP/v3a6uIZYs=", - "dev": true, - "requires": { - "loader-utils": "^1.2.3", - "mime": "^2.4.4", - "schema-utils": "^2.5.0" - } - }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz", - "integrity": "sha1-qKg1NejACjFuQDpdtKwbm4U64ng=", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "url-slug": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/url-slug/download/url-slug-2.0.0.tgz?cache=0&sync_timestamp=1596781184759&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-slug%2Fdownload%2Furl-slug-2.0.0.tgz", - "integrity": "sha1-p4nVrtSZXA2VrzM3etHVxo1NcCc=", - "dev": true, - "requires": { - "unidecode": "0.1.8" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz", - "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz?cache=0&sync_timestamp=1588238435623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.11.1.tgz", - "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.1.tgz", - "integrity": "sha1-a693dLgO6w91INi4HQeYKlmruu4=", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.7.tgz?cache=0&sync_timestamp=1601503031703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.7.tgz", - "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1605962427926&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", - "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz?cache=0&sync_timestamp=1579857147055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvendors%2Fdownload%2Fvendors-1.0.4.tgz", - "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870772154&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz", - "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=", - "dev": true - }, - "vue": { - "version": "2.6.12", - "resolved": "https://registry.npm.taobao.org/vue/download/vue-2.6.12.tgz?cache=0&sync_timestamp=1606321342394&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue%2Fdownload%2Fvue-2.6.12.tgz", - "integrity": "sha1-9evU+mvShpQD4pqJau1JBEVskSM=" - }, - "vue-hot-reload-api": { - "version": "2.3.4", - "resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz", - "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=", - "dev": true - }, - "vue-loader": { - "version": "15.9.5", - "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.5.tgz?cache=0&sync_timestamp=1606702103884&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.5.tgz", - "integrity": "sha1-epYNxCCjQ53qrN2gOP3Nv3xDJwY=", - "dev": true, - "requires": { - "@vue/component-compiler-utils": "^3.1.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "vue-hot-reload-api": "^2.3.0", - "vue-style-loader": "^4.1.0" - }, - "dependencies": { - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", - "dev": true - } - } - }, - "vue-loader-v16": { - "version": "npm:vue-loader@16.1.0", - "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.1.0.tgz?cache=0&sync_timestamp=1606702103884&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-16.1.0.tgz", - "integrity": "sha1-5FRKv2XLs7gfPVNg2Vo+Kug3SaE=", - "dev": true, - "optional": true, - "requires": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "loader-utils": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1606792266928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dev": true, - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687028262&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz", - "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true, - "optional": true - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz?cache=0&sync_timestamp=1584445172927&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-2.0.0.tgz", - "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", - "dev": true, - "optional": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1606205060845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "vue-router": { - "version": "3.4.9", - "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.4.9.tgz?cache=0&sync_timestamp=1606723649928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.4.9.tgz", - "integrity": "sha1-wBb0IDCuKTLxTkdIs5odmg4lDmY=" - }, - "vue-style-loader": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.2.tgz", - "integrity": "sha1-3t80mAbyXOtOZPOtfApE+6c1/Pg=", - "dev": true, - "requires": { - "hash-sum": "^1.0.2", - "loader-utils": "^1.0.2" - }, - "dependencies": { - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", - "dev": true - } - } - }, - "vue-template-compiler": { - "version": "2.6.12", - "resolved": "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.12.tgz?cache=0&sync_timestamp=1597929391082&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-template-compiler%2Fdownload%2Fvue-template-compiler-2.6.12.tgz", - "integrity": "sha1-lH7XGWdEyKUoXr4SM/6WBDf8xX4=", - "dev": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.1.0" - } - }, - "vue-template-es2015-compiler": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz", - "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=", - "dev": true - }, - "vuex": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.6.0.tgz?cache=0&sync_timestamp=1606318163264&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvuex%2Fdownload%2Fvuex-3.6.0.tgz", - "integrity": "sha1-le+lalj3YHwTWwUzUIM6CeAaqBM=" - }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.5.tgz?cache=0&sync_timestamp=1604989202687&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack%2Fdownload%2Fwatchpack-1.7.5.tgz", - "integrity": "sha1-EmfmxV4Lm1vkTCAjrtVDeiwmxFM=", - "dev": true, - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - } - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.1.tgz?cache=0&sync_timestamp=1604989128919&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack-chokidar2%2Fdownload%2Fwatchpack-chokidar2-2.0.1.tgz", - "integrity": "sha1-OFAAcu5uzmbzdpk2lQ6hdxvhyVc=", - "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1593261249239&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", - "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", - "dev": true, - "optional": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1602585438968&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", - "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1604593363910&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", - "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1602584394621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - } - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", - "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "webpack": { - "version": "4.44.2", - "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.44.2.tgz?cache=0&sync_timestamp=1606598822304&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.44.2.tgz", - "integrity": "sha1-a/4rCvBVyLLR6Q7SzZNj+EEma3I=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1601922425223&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "webpack-bundle-analyzer": { - "version": "3.9.0", - "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz?cache=0&sync_timestamp=1606743096172&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-bundle-analyzer%2Fdownload%2Fwebpack-bundle-analyzer-3.9.0.tgz", - "integrity": "sha1-9vlNsQj7V05BWtMT3kGicH0z7zw=", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1", - "bfj": "^6.1.1", - "chalk": "^2.4.1", - "commander": "^2.18.0", - "ejs": "^2.6.1", - "express": "^4.16.3", - "filesize": "^3.6.1", - "gzip-size": "^5.0.0", - "lodash": "^4.17.19", - "mkdirp": "^0.5.1", - "opener": "^1.5.1", - "ws": "^6.0.0" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1602534380346&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz", - "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", - "dev": true - } - } - }, - "webpack-chain": { - "version": "6.5.1", - "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-6.5.1.tgz?cache=0&sync_timestamp=1595813159674&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-6.5.1.tgz", - "integrity": "sha1-TycoTLu2N+PI+970Pu9YjU2GEgY=", - "dev": true, - "requires": { - "deepmerge": "^1.5.2", - "javascript-stringify": "^2.0.1" - } - }, - "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz?cache=0&sync_timestamp=1605010783472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz", - "integrity": "sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM=", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - } - }, - "webpack-dev-server": { - "version": "3.11.0", - "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.11.0.tgz?cache=0&sync_timestamp=1606496454608&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz", - "integrity": "sha1-jxVKO84bz9HMYY705wMniFXn/4w=", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.20", - "sockjs-client": "1.4.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1593261249239&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", - "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603921884289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "dev": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1602585438968&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", - "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz", - "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1606566568533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz", - "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1603212288390&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1604593363910&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", - "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz", - "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081605529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1602584394621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1601922425223&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1606854810932&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1606205060845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz?cache=0&sync_timestamp=1587574502741&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz", - "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz", - "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1605465839188&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", - "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1604886694625&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz", - "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz", - "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz?cache=0&sync_timestamp=1605174973998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-merge%2Fdownload%2Fwebpack-merge-4.2.2.tgz", - "integrity": "sha1-onxS6ng9E5iv0gh/VH17nS9DY00=", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1603965213388&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz", - "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "websocket-driver": { - "version": "0.6.5", - "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dev": true, - "requires": { - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz", - "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", - "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz?cache=0&sync_timestamp=1587574502741&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-6.2.0.tgz", - "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1606792266928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "6.1.4", - "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.1.4.tgz", - "integrity": "sha1-W1yIAK+rkl6UzLKdFTyNAsF3bvk=", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", - "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", - "dev": true - }, - "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.1.tgz", - "integrity": "sha1-jbK4PDHF11CZu4kLI/MJSJHiR9Q=", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", - "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-15.4.1.tgz?cache=0&sync_timestamp=1605465839188&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.4.1.tgz", - "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1604886694625&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz", - "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603921884289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "dev": true - } - } - } - } -} diff --git a/vue/template/package.json b/vue/template/package.json deleted file mode 100644 index 770c527..0000000 --- a/vue/template/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "my", - "version": "0.1.0", - "private": true, - "scripts": { - "serve": "vue-cli-service serve", - "build": "vue-cli-service build", - "svgo": "svgo -f src/asset/icon/svg --config=src/asset/icon/svgo.yml" - }, - "dependencies": { - "core-js": "^3.6.5", - "el-admin-layout": "0.0.2", - "element-ui": "^2.13.2", - "nprogress": "^0.2.0", - "pako": "^1.0.11", - "vue": "^2.6.11", - "vue-router": "^3.3.4", - "vuex": "^3.4.0" - }, - "devDependencies": { - "@vue/cli-plugin-babel": "^4.4.6", - "@vue/cli-service": "^4.4.6", - "sass": "^1.26.10", - "sass-loader": "^8.0.2", - "svg-sprite-loader": "^4.3.0", - "svgo": "^1.3.2", - "vue-template-compiler": "^2.6.11" - }, - "postcss": { - "plugins": { - "autoprefixer": {} - } - }, - "browserslist": [ - "> 1%", - "last 2 versions" - ] -} diff --git a/vue/template/public/favicon.ico b/vue/template/public/favicon.ico deleted file mode 100644 index df36fcfb72584e00488330b560ebcf34a41c64c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S diff --git a/vue/template/public/index.html b/vue/template/public/index.html deleted file mode 100644 index efa8b3f..0000000 --- a/vue/template/public/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - <%= webpackConfig.name %> - - -
-
- -

资源加载中......

-
-
- - - - - - - - - - diff --git a/vue/template/public/static/img/dot1.png b/vue/template/public/static/img/dot1.png deleted file mode 100644 index ab5dd81098e069a4d72fe133f1470a302a0118d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7207 zcmX9@byQSe7adSy=#B}7R9YIOTN*?i>KQ{)?e-&*gz zd*7+O_c`y6yVi?TQ+b1n1;PRV0J!pU((1_7{NIiF4EcN`Y+;F9o?A&MO8@|M@z{S% z(2(yaF6wV20o6YsdjJ4xkeZT)jM4`uSUMDv1}07*B8QUz5&@)%gn$45Bo#y)NsJeZ zM;J#)lt@I8NJ1Kq56ggpQz=MdaH$XwiX>913<%PK+=G(H$>I2*R0>ck8GbZAG!2X$ zjZFq8LI#i}U{fRzVn0Fc4R4J-hL zR}R2W#V3Q4;U?gcCL&Rwpj2|Q1TttE1eytfW`U7m{~{4ofMfsxoB(MgiUm?5s7RAZ zsS!|EE{r0H0-Q`ikxD_Fghvzsq)LZSW&XQBDU`riAT;a0I*5Nyq;{kinhr*Kk;I4+ zaiG~?sw^;RJSjyA33WOZb^tVg6GaeFWkLa(04ijiEC`Ywk~wMe zGo*HC1{jt>1w+!yg20ee5y%t>X$mP7a+CI-1zG(6xEW9+x@Ng1k^nU_J`+ljLJUm@ zA!#79VCi5;3MDiX3_->tK{LT5F(k}SbpN`Yfuss1NhX4&K_LIN;=lBNG{}+&|H(lb zktx|Aqy-X-ha`-whP2?r@u{-G;1n=&xJW*bWJ)AkXf_0CM79nIgcMGeOpL@L|8L^R zL}WjqDIiGZKNk`UmPv(F@lW!97Q!TCPau$-f8KuqIbax4W)_4b0hc0`1d0@ujU)s8 zrzjhl3xOdMk&!uI>`-hfBrbB?$OdMB{ccHTk)P(AtGdcNfVUN|Jcb~uDJ~HUM2sWQ z@P*&I(xiADns+KRPGr)lDleSuVhDA_A~1_XF`p4iGYIDBklQtk=etMXys7~E zbGT!^GnD6ngyc7vf)@renw>ueHfJ!;jdF;2kXx}7wf915p0$6;uEdefPRJOngog;G zy2r2E^?84J7MS*p*Sf1H$?V&1^tTtN(KT(N{>y2hh?v)r%cYwwMC*a|G$ZeEymV_0 zw?a>TNlmjbPsv%29Q@3W7#vx7U3+nIaStD7kawDHnYbzIoBm6Fm^YCXe{io408p67 zOG{{2uT*LssJ{C})g*HCVSMkk-_%V4g>rg}=si_m9l{JY5wm}-X*`M|-L5{f>5hWOgFiD?M=QGe7 zHlF3A^nI}SM4y7FuSW=mkyus5Z4!7@YNd9XF9CZV zj9PkqkmdeF?-@8CI7Fal^f0Afo@IaAp!y|y@HY!b#E=Qc&a{E(9_C5D*G5$LJTIz* zoB(_e65h^?-^_fkz;~|aX1EnuE^HZ$P;`l--{lC1#qG7s2~Co^yDS}v*)L@~NaG(m z*z(NSnU9B{|mEB>GjZi7j@m81;VL{ zpH#DM!8BecXEK5djY}$%{6{VtnggPwODj1|ZDV91Y@os+LmcWwn(={M zR?S!7w{4?$^!?($V8deUmI^&_Z-aLP^CbpuzgEUl=hYiM(XOlRK6-xSwQh*jBMQ4F44lStd6iy)m_~#W$n1NKZ#n&Jc&Ni%Xpdy2 zawk(t6|j3!=a5W>_L*x;P_8EW4-*S3=KcWHctkB-?E9hpGFFkVi_-SBa-C|-@r8fe zCpxmuO>+g-uSy0VoYv?s*+B2=7@c3%%2{A@rMwo&Ft_p-;z%(KYYKYP*ezbwhnmQj zI8-|MARixcFtVZ%U;Me(bgxc_l|k(45}?!?XT)^n9r3K_h1+9=zITW$F4~rKQNFMU1gI)2UxZp3d%Zi5+_m zZpa@a_}xVI&z@JCIy&uZ7ZUh%v~|kRMh4c7||vuK}uy57F|yZj~wArLy~FeSm=Z?K$f|RqAD@(DbB(kr zW~1JRn&v{jM6Jj+=~1@=(uv=i>H4TkFh~j09~BF%cs9!22$0;*;x>if*qOi}d5?@oE#>74vkNEI&&&vG^B=R29k=}Shxt-0b?q(U&6%z`;9phqmFNDP(J@B3 zRdQe@8$0hHnL2SYVSZ{iX%(BN`9T0p6pEy>FMQv|M9Qu&{@eMtjl-@5$L-ghi@j}E z@*Vbl*Dj33uJCVa)<*ec24QIG2erE2ttHvbY|(Ttf#T^#_c}ojJsJFvNUGYVZ(0dv zp1-D+SX(<(scl;P1ece*s;)cTgR=ye`!W}sKJB56uH`ZCvZgfO^V$;%rn1FIk9lDn zlMmId0-H)VfDKM#}I37R}L)k=

ihaS+`S?H>A-*2mq`)X9nA3NA#BvG;wu@-l@!tOJ*GUibzf)Svb0RUmAe8BMgZ6ey0-l7<-wmi2Fnz zLdhD7(>CuXe@Fcmr|}gJ_wsv>8X%;fk$< z4_rDZyxkc5NFWz^OZoj6h0wf6Cm4Csc;aE)W$?C6YriikuOU^=1s_y;FFjuL9xW1o zR$a{zxVv?-n(YX4k@@*)3XL7#W|8#t?3}|%$0@|fb=V@ufQbBWEPj3Xv?>Q>gLzlW zEq^G5j`bXBgmn!Ol?-l6Kc0&Fs;HmEdFD_}cTQHPv&F{s&~b2`{PXKnEQz}jx&x6Tk(&QjQ^L8~PK4MUq&|8tcLR$*oF9ehRl?@>Fc$zqA)$ZfR z?AI>aQ*(1aleAS-vkoion*$wx)deKM-Q>| zteI6$Ti=zsGej>K{gXAtQRN7*h??J;1K%XDMPk-7q6GmNBO~X~q%lEqYV@>Nyf&!A zcu<0 zIa+d%s>+>g|GV|a)~-7gHDVscIpb6ey$(_=L*8W!;?l}5cL?_Om!U2BLpCO7G+ECMjY z6j1u*3Ig#wxGrA1FPUVn&n=uL*mKyo2F{cY*X3`Bk0JWWyK>?_I=K||2G0QQ;b)u99bskzD zVuxS%91cc|@!2>0x_{tRych<4OnFvZ+SXsv+`m0f?mAQpE9|x|X~+ui%nZK2eb)*Ep3$JGzE2d@yk;vrn;# z;l~u0%P|TCv=`mu7y7M!p1wBpfvBLpZ^CdV`r%v`e2jwIz(8uIR`)VHMrG1;?y|YM z1hg%pE>6KCgRG1U=eW29SswJ_w~HIreY-AHWut1fcna882lK~;lj5i2enXX`EL3RW zk!N0s!hMBKIXfz0(ETKO3*J>Qqhbev&QFoK>4o5i1Q%_81zACdxX3FJR{_8n%nLyfVB?Q~2KcA@d=ia+~QA!OT4fr~7sOPSKXbPs=sGorn3SU0le)P*1nHY07 z$e3QhOPKm>+)#J#Waeab9KENA_&D*;TPcBA>{NJ`Cw8zZ`mC4P3#L$x zq$wBulo|eE>bSrp)qZB73RYt9yiw*we3SMD-EJDLekG4yxnNyS5{WOOvFqTq`>phL z+mrw(&8O((ZteG1O?z?(%S>k8clYI0|KGjMU5l0G7fKvS3uH%8&JBjPnMWDAS7g$zzK!#-h0)ka$|Tj(e%{PHTy(~C6X8*yWz&ky5{d3LRH;Xr@1#j$mSfai-0 z%|#xJCmTQL0k5EF0b+4&&BwJ>)=QppAq6dxBo(fb+r90)Acp06@M#^3le;$3;8)f9@j}iM_I`A@@}>g=SX5pp4q0B*os5+29szsoY?h*ODz)HNss6@LOCf~fmq78g* zz*2sY$Ri>#^l9E}ENvmBvk)+sjwuE#$)!${{!C|h)Df4Yx^G>QI|wAaBo?S~_WwYZ zOSyMqG&^ca&7v25O6;nrA_m;2pnpTekn>H|eM(hw{bk6Y{%KP5Wm1)GXHwe@!7_iU zf4y&-B97R%N!8A5?ltZ|+^iDnY7wWzfikB_^Cq`LZm68MKX^l(7FRL+C8y6B#dTs# z|3rGk2Ih;?Ox6^w$8ED+dEZI@oZk0z$bbAX_RT*{bd<#@yw(Uat$p!cu6hG?;04JI zp=N-vtd;Nu@szvu+g?l8-c4@bAXt{Oya@4e)R2#T_}q>{6miD-*|xDosw!k9B%ITM9WpG_~zqp{LQ4yS>?zcF>a*w2_+lg&Dl z4^T*rg`CrXjp|jhY)waaw3EH42x|%KN#{nb)MqE2^io{T(slG}(Hw(?FgE|4w64!o z#>cAsbWw{I1-1Nd(;WvGe!O8ar==99;4`XHi`Q&kfS&NL<7G_+aUB9^DaZ)xO~e!BC&+8bM+}PFc z75bL&QEJB2mNy-Z2WPFhMaU*_nKz}~S>}p9tEd;}9m(Gnj1v)H_8S@|D+Ax|Hv*5h z2AgkdpWTH>1=dSnq=;`OEshh{8rO$$5r^Z)XwYS7oY$0;5OK<&;E|m#a)fL~*sflB zBsQh15;P>LvOm27__Rh2V4lb&t~)W)=02B0C+@PbPu?3D4WPBsjlABkJ9qvw?1tr9 z{sVNYQq6TRVxE_8LPmQIyuQKMChn>=_w@7am*|Gm^o9&(hjP+5ncHLP065{53kl5# z3YYSZGa5AiWt_Oc_)VOb_k15*$TRx#&`_?Uu_K+fr2p={;@L9$BjYKc|6DcF^#s== zc7=gMU5)>lVWFMzUistbe@pmH zsDP!Xh}*;EmF0!V#)WOn{GL+xOFSB0EgUXW#l>OAl=2SNmmH_r5%V5f!gY#^}-d&nRu!f!=vU#@pu^*ykx*H^V?w@>1j47X=_bvtS{I@!=t;T>DW=0??8 zkb!0aS8)oB5&xW7UA01Qq&e1OtORRcA~oNihl7#aE+2?7(_4HMnyESy-|l=Ve{wYx zugK8-)ueUq50;I}#msjN&z}$+r!SHxCqos}>_n@@{qOu=sz0M=*eF}9dJ1S>#Lqh2 zX@C|8J6KGvg))H~{d6ejR_hZc&aEF*wB5cLnF^QaVYQ56*sxRqI}NJ!+fz7q%5bgALyC?d3K&hmN;|9e46K5QQ3O|in^BA z%&U5g_>!NG@z-7fIqlJg9~98j5hIy5504__9hb>!9sDO&0e)gaLeVEnnQik{-!bC{ zHJbS96TV`eB*Wf&Onj(&aOjMl@(+2JU7qK)g@L0*w_ANldi;j5d&yAviG|E;7fKW2 z0yE1E(D!a{_6(6YFcu4fyPXHEtLZjgTg@5dy(UwYSs-T#k#J7`T3=z#8N~^q9x2)R zJk7B{`z>>)Zhm0?Zi-0$_BmTl=J3{__g=qx%}e3ZQ%B66qY0vSPcmU1sSK`iEmMKa zB&IZ0C~=&0$@!zRqd1$L1_lp}BOHrOhSD>aqf8P#gqv$D8mw5XF^nw~DkrGQw4uFq zc3%kyQ-k%--G#1vY?4YJ-WnA(yW!))I8Q0Nr>8%wZR8o4tu>%IZP8#3tB6a#X%mNe zVQyGPFfRptfK$&>LpvuJO}KL%x;x!0xClpaO`Z!%h3mB)MW>Ehj#xl3h@vV)G6E*? zn?|LSa2c@U2pID8-09{p6pC}BaLPP6Tj6Vhw<3Lj)!6PCn(%pAOu=sTcCg8cs>fO5j(zGRTO*0|1FDB790Y~y7%C^}O&<>%y;(x4I$(#P|JR7;{Y0(u~-5pExHuywP zL|-Lm#t`@tvEKxJJ*ZjZf};N}T5+|o$(U33)ipaw#j`QAp6L48(#iBE9{;DY2o%O(MlgrXkG;TItTfdK_xjrC<8JYw zX-X`W`~W*F2zviV!T1=Iy#X~9r_>bdWJYtJ7*zVv#fA-M27}0ugXoHcJfXDdJs=kr z0quEgd7(>q>lC*Xo!4!5ksUmuzeET*l*YB^n=!C`B{cbb(s7YAd43uP>y%qvq2HGL zf~DHhnS)bi5xShO3rv9)6Gr6*QUvIjfvj)4zUA?g;1In6<4j(h{8fGsCjc3cu88k8 zH|Cq4#?uDizw4wSZ_3fv{2rhIy%-=t%?v&~uuF}k4MN;nY_=E}rL|B{XCC6?)uYd_L zZCaFIW}=Z`@z9RGwtw~NFdOKD>hz=*D3s%&5vil4F&oB>dXEtxFk}-L@fUU6HIvVS z8fQnRYSs#G1|{yA9CXo|Z`G;w{WbsVLYDXhs8F}kHQ`eLYrbMxZ`ByWfWsOdTxd*VK5u#sl3#1uiLWLhqA`A#D@fImTcRDYeSVGCKHCd zg0Mzc!?^f+-*XJ@^xhtG1xZZv%jz-or&9YX$>Oba?AfCiV)NdDM06`@@UqMJleGlC zPIH{!l*&?S+IjD4KJ*whs599Z#$HF>GyR=BAjh{<&e)WLvkq8DOV*XzdTaj-zhsRq znsK%<^@wlL%dqlMgwtGcJIhiH`$>VW7#41bJp5Pq5a}w>@(Vkr(dNQOK4(IExvkRI mV}eUGk&4k9(u#&p0GuLs(TeX(j>z9B0C^b|>1s*ip#K3V23X+$ diff --git a/vue/template/public/static/img/dot2.png b/vue/template/public/static/img/dot2.png deleted file mode 100644 index 14cf520a67d5527ece22d1c260b9c33d7bcc722c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU3?z3ec*FxKmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIDo0X`wFKADA@nwn~AYF1WO>gwu1ww9Kb1{eUj5QdJ9PH1Q-kgct)4J3hT zAj*Iw&=@dJ6DST;4^aS72{Z>{0>nUw;XuU@22dqL79vtEBRm6WmR3oSUob<=7v9iK zQ=hzV7nYpD{K)Fx+8UK*jAv~(y_tFL*7WJ`YinO`p4on`qvO`?;yXS-Pfhl8aSX9I z-5T0nc36QYWZBy{d(+ER|Nj3jYS_!$8&@Dy+;HqA!;0Hw|8KnMs*ZeP*8f+mXxqO% z31{`LT5(GIiW&J{n;;-QIZ*n#<)#B)j!W+^owY+zYQ~$6wDip>5|7z(o_+aXpYmZr zpY?`sXCJNMz7}Z5a%bw>jV}_n*4Gs8*ca`acCTGo|LTK%2fyw*_;uUK*LnWT{y+9> zzVIwao-drmbjUE7bxll9Ad8`#cEigvRGLBb1D)-~+r)|s2N$yIxy%NcfAp|DkpXK(S#i&>HI!u5dE&!v|q zTi&`Hd{$reVav@wKODlBwak3fa_e)9hoio;V35YFz!2#!bK@l|bP5emyG<_ijrq|L zZIHVBLQI@S)Dyn5OK+JL?^s=W-}GB=ZF>8)GOxxO-k^`?3N>SrUzN7EdEC5a81JTh zODQ#_pXp}v;ltY|SWOeE@_dl2u6@>T9_zFzX@bAsd%UTyzjm`aad-Wy*NdmTetdI> b-9HAubEm~>tt&-rd>gTe~DWM4fD0~v! diff --git a/vue/template/public/static/img/dot3.png b/vue/template/public/static/img/dot3.png deleted file mode 100644 index 6234e9fd79d5a47b909605ffff552b5cdbe38795..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1893 zcmW+$2~ZSg79Nh_T$CedP#{dnA<+;hvI4{O^nJ|0AcsRZ4T`P-0i^_m1Uw)*z!Gi> zM_CfUP>KQuN`hb_ha$lhO;FGQ0b!JIn29J$hywd2Ro#ET{`% z5ctk;90$83^kW#3VW2G#1CkIBEK3j+j*}RMV^BcR7(_S;)PWvB(GZIe1jiZJrfC)! z6NCiEDM-aI5`#>FK%r1el7@0^6`@rP0o01c1cIO_iu;PhD8m3rv9>>sVz_n}ha3Ww zLI`~z(-*-YN9c<}D~e{cglH{c;1AFs08ju9Y!st7%YqevO92fWxY8_0z;FU^!4P-{ ztDzE@h{f37h&Y%7K7dO=63k&3j^#KMCB&$9C>$ptp$fr(2@ZKQD;DE00*a)yc^oXD zoe+yr@E-sPiUM6g7{vJ^D9n_TNEn*sScya;1)U7dpfC)Y@%Hfr^J$8qX<8)4e1szK z5D}w*1LlELX!rM6fhk_C6T1v&B{3y9AcU9EEVr@|n(67h(Ksp^%9|_TijtSl&owt& zwN$)`k~hOrJ|CqlQ>tw=^Q&dbd&;ua$vQQn$QWqQC^QX|18TK!GE=1((5UYzRyCRG zIt`*KL)1B|j`!*^RgMFb>P#f3PIWKD?3oUnaaKa%yS(qF%3q(i3pamh>|AO#)S5Wb znm84a_&P5CaoEVa!B*jujGy=u(J0G2F0s;k^BgXS16RotRbL`6lzP z<>y1yd!N@U7(3^niIQIf-*sDU+xXQ-*B4AYdil(LhvI!HDyQM-l>W8k1C<}-6&RUr zmsd0x?tUSl14K(PqpygRKhLG)#Y)Nlx>uA4T;*#Qm)mNUr3>yW3!ZNJrM2&e_@A;i zR#s*>B>i%6D&J>R;^pI7e)fnmxzeN4^VWc>(APlbv$?l!$FJ`_d{Femr>40UdT}=l*%}$xa~@scT|NEBBsp z|Imb97ujl<=JBF7D#g}qLdV0-Ki%L8ujlOPUB@ps#wGi?@YkX)jLsPSBuFeg+#e@s zu_rpWBF^uHn{+B%Sf3A4(-g5kU7AWrSmf>GB5h;C&lnM2kwblp`a#7bI`rtS*2SqT%x~PT(XDN~BbwMISvr0&=c;AUlb*AK z5{LP~Q#KC#brvDK$}Q$yMb}iUR1(xzl+O1?j2~UFG%^0r-8o63OXOd_+kVG|dZwGo zcl;>rJnv1!+$VZ1o>@75MIMD=75X^l*=+C18E^Eq7TmU7>-09XN%IZrr>oY^riLfv z#}#_CnTBocHF8sIi8;FY7Tve>P0Q~Oi%%s)mrG7xnDfwouwm`Tvcx^2N!OA;3nP}C zQ-e#8pjJh4j#D?fSB2+43+y^{Yvt~V`|bZ+uo^igyP0BrQn`0fnzii#8vWJ3$9BAL zWa+30`{B9ckg(vI$L>y%)tXMbMTvuLUgOEo;?B9I)}-&Z)CzXi=1#lVOS0S|vgOQ| zMf@y0WaR3w3psRk$Y5)95B|mkz$n?uyxEZ0fMx`gFzR z|E(LIu^N9I@#$Q=T}N(X{BITF>ZiO>%_&*`+e2+vrjCAcQ#F-ddt}9L_uJMg&xv}0 z`{Tie@n0r0volr4A`Q~NOKllyeO>o+YF3{uk%VPgR{zzva(VJ$Lw18Fy0Rl_ef<}s z1@YrM^XIzHZI>6>B~L8)%uFjYhW)GVhei&mEW$Q9s*dfcEy<-{4?jt7S^l=_;%ryK zwWRLWRI6px(w3IxKe9Kf`4#s=(^u~o{71g~NpDg~*xHPji)}||{P9phC=#{kPMX#}pxYg;Y Y&vbMAFWRfAL+~%-N$3Eok%-CqKe^})(EtDd diff --git a/vue/template/public/static/img/dot4.png b/vue/template/public/static/img/dot4.png deleted file mode 100644 index da8971b25551efdac215cf6dabc2ab4979ed7724..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1847 zcmW+$30PBS7LC+c**aK3jXRxypcMoZEZYo}y)?9t$Mn`}2> zu~_E8L4M)zwln-Uz5(OSy+Jg*)*tiv(1*op_}X+;%!c*4`0zkqR^8yvmn@c%%}1ep z|4>;R!!Q^|5F`Zwq)0?j@K6$oL?95r5lJ#QPBM&yBtuNfB@!Y40u)5RgrcBm zB!Zx@3As|K6!?%N31}oqQxuJ2I7vzfAS7aNQUr++LKJAjZe(O6K}ab8rwx&ijuRvy zl|nj-5di+XPzoZE-N8Vn~01AE{DVo?+qfItx-OArKu1F=McpfI5gT|fbzHq--SNm49{lt?1ML<}>i z5DHPy1Ww^3#fMIT)j~`FbDno#J9X0ry@j%oUMXOd^Fh4hktY+LCKEa8EBC)(y|jfX(ony0l&$YyYa#dtli7o>Eh%3 z?$wot2b2dcM8=K@#ssMg722s1tOr{&tNrp-QO^w3G&%OS@#NUo=itrRy3aU{NvB8a_6p{?>pC(xi^p> zYi??8R`n=x`0X1rIFIN*bDU?D9lB=Q7Sy|)*KYj&F7`-0u|BrJT5oODJLUfJ&EcSG z>v$~3RB|Axy=HRe-Sa<8jGajfi0^3O23?TUL!%K8XvM5w@5an{o0Z+|Sw@$;^2UA?ZeGRZHsZCZC^;{`|md=)&~}ie}rp z+}T{G{FqbQIcYoW6CWj^SYhQIOPBsm8oCYh?Vf(C@{%^`~+*xc+v_5B@pV&HCu3fQ?t#Hnu_b;ku94t3CDC#_L;T(#Nav zZ>3fH{5FNCRa{5oPxS$={fLK~-d1Q~Uu;o$cW+#;3(q|8YA+`*xnKPCCU2I4Q`cRc$9wi;!mxI)OM?fj5D5L>FulCs^&kcMvE^O%nvOG zBqSe9OJ!X&cCv3(S4>A|Qs2A?P+jqG+`7O1PgZLEVTJ}+7?L}8OVypAZr1} zk^5|HYi-9MPwV0p^2KC8=aOga{d+4iT=k7EOjUd<`Lc2yyvtDD0j=+sxF z{7zim@t$Cg`fEEi}~BP>#Sr}j9!wX0-#@$^>SvS{1r{P2j@ mJ9*{PEAr*JKtg!SdyQ?p$v>*g(NquLE>^HV&#%sxN&gMl;XMEV diff --git a/vue/template/public/static/img/logo.svg b/vue/template/public/static/img/logo.svg deleted file mode 100644 index 239bf69..0000000 --- a/vue/template/public/static/img/logo.svg +++ /dev/null @@ -1 +0,0 @@ -Group 28 Copy 5Created with Sketch. \ No newline at end of file diff --git a/vue/template/public/static/lightgallery/lg-pager.min.js b/vue/template/public/static/lightgallery/lg-pager.min.js deleted file mode 100644 index cd1cf31..0000000 --- a/vue/template/public/static/lightgallery/lg-pager.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/**! - * lg-pager.js | 1.0.0 | October 5th 2016 - * http://sachinchoolur.github.io/lg-pager.js - * Copyright (c) 2016 Sachin N; - * @license GPLv3 - */ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.LgPager=e()}}(function(){var e,t,r;return function e(t,r,n){function o(i,a){if(!r[i]){if(!t[i]){var l="function"==typeof require&&require;if(!a&&l)return l(i,!0);if(s)return s(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=r[i]={exports:{}};t[i][0].call(u.exports,function(e){var r=t[i][1][e];return o(r?r:e)},u,u.exports,e,t,r,n)}return r[i].exports}for(var s="function"==typeof require&&require,i=0;i1&&this.init(),this};r.prototype.init=function(){var e=this,t="",r,n,o;if(e.core.outer.querySelector(".lg").insertAdjacentHTML("beforeend",'

'),e.core.s.dynamic)for(var s=0;s
';else for(var i=0;i
':'
';n=e.core.outer.querySelector(".lg-pager-outer"),n.innerHTML=t,r=e.core.outer.querySelectorAll(".lg-pager-cont");for(var a=0;a1&&(this.core.s.showThumbByDefault&&setTimeout(function(){utils.addClass(t.core.outer,"lg-thumb-open")},700),this.core.s.pullCaptionUp&&utils.addClass(this.core.outer,"lg-pull-caption-up"),this.build(),this.core.s.animateThumb?(this.core.s.enableThumbDrag&&!this.core.isTouch&&this.core.doCss()&&this.enableThumbDrag(),this.core.s.enableThumbSwipe&&this.core.isTouch&&this.core.doCss()&&this.enableThumbSwipe(),this.thumbClickable=!1):this.thumbClickable=!0,this.toggle(),this.thumbkeyPress())},i.prototype.build=function(){function t(t,u,r){var s=e.core.isVideo(t,r)||{},l,h="";s.youtube||s.vimeo||s.dailymotion?s.youtube?l=e.core.s.loadYoutubeThumbnail?"//img.youtube.com/vi/"+s.youtube[1]+"/"+e.core.s.youtubeThumbSize+".jpg":u:s.vimeo?e.core.s.loadVimeoThumbnail?(l="//i.vimeocdn.com/video/error_"+o+".jpg",h=s.vimeo[1]):l=u:s.dailymotion&&(l=e.core.s.loadDailymotionThumbnail?"//www.dailymotion.com/thumbnail/video/"+s.dailymotion[1]:u):l=u,i+='
',h=""}var e=this,i="",o="",u,r='
';switch(this.core.s.vimeoThumbSize){case"thumbnail_large":o="640";break;case"thumbnail_medium":o="200x150";break;case"thumbnail_small":o="100x75"}if(utils.addClass(e.core.outer,"lg-has-thumb"),e.core.outer.querySelector(".lg").insertAdjacentHTML("beforeend",r),e.thumbOuter=e.core.outer.querySelector(".lg-thumb-outer"),e.thumbOuterWidth=e.thumbOuter.offsetWidth,e.core.s.animateThumb&&(e.core.outer.querySelector(".lg-thumb").style.width=e.thumbTotalWidth+"px",e.core.outer.querySelector(".lg-thumb").style.position="relative"),this.core.s.animateThumb&&(e.thumbOuter.style.height=e.core.s.thumbContHeight+"px"),e.core.s.dynamic)for(var s=0;sthis.thumbTotalWidth-this.thumbOuterWidth&&(this.left=this.thumbTotalWidth-this.thumbOuterWidth),this.left<0&&(this.left=0),this.core.lGalleryOn?(utils.hasClass(e,"on")||utils.setVendor(this.core.outer.querySelector(".lg-thumb"),"TransitionDuration",this.core.s.speed+"ms"),this.core.doCss()||(e.style.left=-this.left+"px")):this.core.doCss()||(e.style.left=-this.left+"px"),this.setTranslate(this.left)}},i.prototype.enableThumbDrag=function(){var t=this,e=0,i=0,o=!1,u=!1,r=0;utils.addClass(t.thumbOuter,"lg-grab"),utils.on(t.core.outer.querySelector(".lg-thumb"),"mousedown.lgthumb",function(i){t.thumbTotalWidth>t.thumbOuterWidth&&(i.preventDefault(),e=i.pageX,o=!0,t.core.outer.scrollLeft+=1,t.core.outer.scrollLeft-=1,t.thumbClickable=!1,utils.removeClass(t.thumbOuter,"lg-grab"),utils.addClass(t.thumbOuter,"lg-grabbing"))}),utils.on(window,"mousemove.lgthumb",function(s){o&&(r=t.left,u=!0,i=s.pageX,utils.addClass(t.thumbOuter,"lg-dragging"),r-=i-e,r>t.thumbTotalWidth-t.thumbOuterWidth&&(r=t.thumbTotalWidth-t.thumbOuterWidth),r<0&&(r=0),t.setTranslate(r))}),utils.on(window,"mouseup.lgthumb",function(){u?(u=!1,utils.removeClass(t.thumbOuter,"lg-dragging"),t.left=r,Math.abs(i-e)t.thumbOuterWidth&&(i.preventDefault(),e=i.targetTouches[0].pageX,t.thumbClickable=!1)}),utils.on(t.core.outer.querySelector(".lg-thumb"),"touchmove.lg",function(r){t.thumbTotalWidth>t.thumbOuterWidth&&(r.preventDefault(),i=r.targetTouches[0].pageX,o=!0,utils.addClass(t.thumbOuter,"lg-dragging"),u=t.left,u-=i-e,u>t.thumbTotalWidth-t.thumbOuterWidth&&(u=t.thumbTotalWidth-t.thumbOuterWidth),u<0&&(u=0),t.setTranslate(u))}),utils.on(t.core.outer.querySelector(".lg-thumb"),"touchend.lg",function(){t.thumbTotalWidth>t.thumbOuterWidth&&o?(o=!1,utils.removeClass(t.thumbOuter,"lg-dragging"),Math.abs(i-e)'),utils.on(t.core.outer.querySelector(".lg-toggle-thumb"),"click.lg",function(){utils.hasClass(t.core.outer,"lg-thumb-open")?utils.removeClass(t.core.outer,"lg-thumb-open"):utils.addClass(t.core.outer,"lg-thumb-open")}))},i.prototype.thumbkeyPress=function(){var t=this;utils.on(window,"keydown.lgthumb",function(e){38===e.keyCode?(e.preventDefault(),utils.addClass(t.core.outer,"lg-thumb-open")):40===e.keyCode&&(e.preventDefault(),utils.removeClass(t.core.outer,"lg-thumb-open"))})},i.prototype.destroy=function(t){if(this.core.s.thumbnail&&this.core.items.length>1){utils.off(window,".lgthumb"),t||this.thumbOuter.parentNode.removeChild(this.thumbOuter),utils.removeClass(this.core.outer,"lg-has-thumb");for(var e=document.getElementsByClassName("lg-script");e[0];)e[0].parentNode.removeChild(e[0])}},window.lgModules.thumbnail=i})},{}]},{},[1])(1)}); \ No newline at end of file diff --git a/vue/template/public/static/lightgallery/lg-zoom.min.js b/vue/template/public/static/lightgallery/lg-zoom.min.js deleted file mode 100644 index f1b0def..0000000 --- a/vue/template/public/static/lightgallery/lg-zoom.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/**! - * lg-zoom.js | 1.2.0 | May 20th 2020 - * http://sachinchoolur.github.io/lg-zoom.js - * Copyright (c) 2016 Sachin N; - * @license GPLv3 - */ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.LgZoom=e()}}(function(){var e,t,o;return function(){function e(t,o,r){function l(a,s){if(!o[a]){if(!t[a]){var n="function"==typeof require&&require;if(!s&&n)return n(a,!0);if(i)return i(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var c=o[a]={exports:{}};t[a][0].call(c.exports,function(e){return l(t[a][1][e]||e)},c,c.exports,e,t,o,r)}return o[a].exports}for(var i="function"==typeof require&&require,a=0;a';e.core.s.actualSize&&(t+=''),e.core.s.useLeftForZoom?utils.addClass(e.core.outer,"lg-use-left-for-zoom"):utils.addClass(e.core.outer,"lg-use-transition-for-zoom"),this.core.outer.querySelector(".lg-toolbar").insertAdjacentHTML("beforeend",t),utils.on(e.core.el,"onSlideItemLoad.lgtmzoom",function(t){var o=e.core.s.enableZoomAfter+t.detail.delay;utils.hasClass(document.body,"lg-from-hash")&&t.detail.delay?o=0:utils.removeClass(document.body,"lg-from-hash"),e.zoomabletimeout=setTimeout(function(){utils.addClass(e.core.___slide[t.detail.index],"lg-zoomable")},o+30)});var o=1,r=function t(o){var r=e.core.outer.querySelector(".lg-current .lg-image"),l,i,a=(window.innerWidth-r.clientWidth)/2,s=(window.innerHeight-r.clientHeight)/2+(document.documentElement.scrollTop||document.body.scrollTop);l=e.pageX-a,i=e.pageY-s;var n=(o-1)*l,u=(o-1)*i;utils.setVendor(r,"Transform","scale3d("+o+", "+o+", 1)"),r.setAttribute("data-scale",o),e.core.s.useLeftForZoom?(r.parentElement.style.left=-n+"px",r.parentElement.style.top=-u+"px"):utils.setVendor(r.parentElement,"Transform","translate3d(-"+n+"px, -"+u+"px, 0)"),r.parentElement.setAttribute("data-x",n),r.parentElement.setAttribute("data-y",u)},l=function t(){o>1?utils.addClass(e.core.outer,"lg-zoomed"):e.resetZoom(),o<1&&(o=1),r(o)},i=function t(r,i,a,s){var n=i.clientWidth,u;u=e.core.s.dynamic?e.core.s.dynamicEl[a].width||i.naturalWidth||n:e.core.items[a].getAttribute("data-width")||i.naturalWidth||n;var c;utils.hasClass(e.core.outer,"lg-zoomed")?o=1:u>n&&(c=u/n,o=c||2),s?(e.pageX=window.innerWidth/2,e.pageY=window.innerHeight/2+(document.documentElement.scrollTop||document.body.scrollTop)):(e.pageX=r.pageX||r.targetTouches[0].pageX,e.pageY=r.pageY||r.targetTouches[0].pageY),l(),setTimeout(function(){utils.removeClass(e.core.outer,"lg-grabbing"),utils.addClass(e.core.outer,"lg-grab")},10)},a=!1;utils.on(e.core.el,"onAferAppendSlide.lgtmzoom",function(t){var o=t.detail.index,r=e.core.___slide[o].querySelector(".lg-image");e.core.isTouch||utils.on(r,"dblclick",function(e){i(e,r,o)}),e.core.isTouch&&utils.on(r,"touchstart",function(e){a?(clearTimeout(a),a=null,i(e,r,o)):a=setTimeout(function(){a=null},300),e.preventDefault()})}),utils.on(window,"resize.lgzoom scroll.lgzoom orientationchange.lgzoom",function(){e.pageX=window.innerWidth/2,e.pageY=window.innerHeight/2+(document.documentElement.scrollTop||document.body.scrollTop),r(o)}),utils.on(document.getElementById("lg-zoom-out"),"click.lg",function(){e.core.outer.querySelector(".lg-current .lg-image")&&(o-=e.core.s.scale,l())}),utils.on(document.getElementById("lg-zoom-in"),"click.lg",function(){e.core.outer.querySelector(".lg-current .lg-image")&&(o+=e.core.s.scale,l())}),utils.on(document.getElementById("lg-actual-size"),"click.lg",function(t){i(t,e.core.___slide[e.core.index].querySelector(".lg-image"),e.core.index,!0)}),utils.on(e.core.el,"onBeforeSlide.lgtm",function(){o=1,e.resetZoom()}),e.core.isTouch||e.zoomDrag(),e.core.isTouch&&e.zoomSwipe()},r.prototype.resetZoom=function(){utils.removeClass(this.core.outer,"lg-zoomed");for(var e=0;ee.core.outer.querySelector(".lg").clientHeight,l=r.offsetWidth*r.getAttribute("data-scale")>e.core.outer.querySelector(".lg").clientWidth,(l||i)&&(o.preventDefault(),t={x:o.targetTouches[0].pageX,y:o.targetTouches[0].pageY})}});for(var s=0;s15||Math.abs(o.y-t.y)>15)&&(e.core.s.useLeftForZoom?(s.style.left=n+"px",s.style.top=u+"px"):utils.setVendor(s,"Transform","translate3d("+n+"px, "+u+"px, 0)"))}});for(var n=0;ne.core.outer.querySelector(".lg").clientHeight,i=l.offsetWidth*l.getAttribute("data-scale")>e.core.outer.querySelector(".lg").clientWidth,utils.hasClass(e.core.outer,"lg-zoomed")&&utils.hasClass(o.target,"lg-object")&&(i||a)&&(o.preventDefault(),t={x:o.pageX,y:o.pageY},r=!0,e.core.outer.scrollLeft+=1,e.core.outer.scrollLeft-=1,utils.removeClass(e.core.outer,"lg-grab"),utils.addClass(e.core.outer,"lg-grabbing"))});utils.on(window,"mousemove.lgzoom",function(s){if(r){var n=e.core.___slide[e.core.index].querySelector(".lg-img-wrap"),u,c;l=!0,o={x:s.pageX,y:s.pageY},utils.addClass(e.core.outer,"lg-zoom-dragging"),c=a?-Math.abs(n.getAttribute("data-y"))+(o.y-t.y):-Math.abs(n.getAttribute("data-y")),u=i?-Math.abs(n.getAttribute("data-x"))+(o.x-t.x):-Math.abs(n.getAttribute("data-x")),e.core.s.useLeftForZoom?(n.style.left=u+"px",n.style.top=c+"px"):utils.setVendor(n,"Transform","translate3d("+u+"px, "+c+"px, 0)")}}),utils.on(window,"mouseup.lgzoom",function(s){r&&(r=!1,utils.removeClass(e.core.outer,"lg-zoom-dragging"),!l||t.x===o.x&&t.y===o.y||(o={x:s.pageX,y:s.pageY},e.touchendZoom(t,o,i,a)),l=!1),utils.removeClass(e.core.outer,"lg-grabbing"),utils.addClass(e.core.outer,"lg-grab")})},r.prototype.touchendZoom=function(e,t,o,r){var l=this,i=l.core.___slide[l.core.index].querySelector(".lg-img-wrap"),a=l.core.___slide[l.core.index].querySelector(".lg-object"),s=-Math.abs(i.getAttribute("data-x"))+(t.x-e.x),n=-Math.abs(i.getAttribute("data-y"))+(t.y-e.y),u=(l.core.outer.querySelector(".lg").clientHeight-a.offsetHeight)/2,c=Math.abs(a.offsetHeight*Math.abs(a.getAttribute("data-scale"))-l.core.outer.querySelector(".lg").clientHeight+u),d=(l.core.outer.querySelector(".lg").clientWidth-a.offsetWidth)/2,g=Math.abs(a.offsetWidth*Math.abs(a.getAttribute("data-scale"))-l.core.outer.querySelector(".lg").clientWidth+d);(Math.abs(t.x-e.x)>15||Math.abs(t.y-e.y)>15)&&(r&&(n<=-c?n=-c:n>=-u&&(n=-u)),o&&(s<=-g?s=-g:s>=-d&&(s=-d)),r?i.setAttribute("data-y",Math.abs(n)):n=-Math.abs(i.getAttribute("data-y")),o?i.setAttribute("data-x",Math.abs(s)):s=-Math.abs(i.getAttribute("data-x")),l.core.s.useLeftForZoom?(i.style.left=s+"px",i.style.top=n+"px"):utils.setVendor(i,"Transform","translate3d("+s+"px, "+n+"px, 0)"))},r.prototype.destroy=function(){var e=this;utils.off(e.core.el,".lgzoom"),utils.off(window,".lgzoom");for(var t=0;t -
- -
- - - diff --git a/vue/template/src/asset/icon/index.js b/vue/template/src/asset/icon/index.js deleted file mode 100644 index b72ebbe..0000000 --- a/vue/template/src/asset/icon/index.js +++ /dev/null @@ -1,9 +0,0 @@ -import Vue from 'vue' -import VIcon from '@/component/Icon' - -Vue.component('v-icon', VIcon) - -const req = require.context('./svg', false, /\.svg$/) -const keys = req.keys() -keys.map(req) -export default keys.map(i => i.match(/\.\/(.*)\.svg/)[1]) diff --git a/vue/template/src/asset/icon/svg/bug.svg b/vue/template/src/asset/icon/svg/bug.svg deleted file mode 100644 index 261d48f..0000000 --- a/vue/template/src/asset/icon/svg/bug.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/check.svg b/vue/template/src/asset/icon/svg/check.svg deleted file mode 100644 index 81b1e26..0000000 --- a/vue/template/src/asset/icon/svg/check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/develop.svg b/vue/template/src/asset/icon/svg/develop.svg deleted file mode 100644 index a0dadbd..0000000 --- a/vue/template/src/asset/icon/svg/develop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/documentation.svg b/vue/template/src/asset/icon/svg/documentation.svg deleted file mode 100644 index 7043122..0000000 --- a/vue/template/src/asset/icon/svg/documentation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/eye-open.svg b/vue/template/src/asset/icon/svg/eye-open.svg deleted file mode 100644 index 88dcc98..0000000 --- a/vue/template/src/asset/icon/svg/eye-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/eye.svg b/vue/template/src/asset/icon/svg/eye.svg deleted file mode 100644 index 16ed2d8..0000000 --- a/vue/template/src/asset/icon/svg/eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/home.svg b/vue/template/src/asset/icon/svg/home.svg deleted file mode 100644 index dae81d5..0000000 --- a/vue/template/src/asset/icon/svg/home.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/icon.svg b/vue/template/src/asset/icon/svg/icon.svg deleted file mode 100644 index 7024bec..0000000 --- a/vue/template/src/asset/icon/svg/icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/message.svg b/vue/template/src/asset/icon/svg/message.svg deleted file mode 100644 index 14ca817..0000000 --- a/vue/template/src/asset/icon/svg/message.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/money.svg b/vue/template/src/asset/icon/svg/money.svg deleted file mode 100644 index c1580de..0000000 --- a/vue/template/src/asset/icon/svg/money.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/password.svg b/vue/template/src/asset/icon/svg/password.svg deleted file mode 100644 index e291d85..0000000 --- a/vue/template/src/asset/icon/svg/password.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/qq.svg b/vue/template/src/asset/icon/svg/qq.svg deleted file mode 100644 index ee13d4e..0000000 --- a/vue/template/src/asset/icon/svg/qq.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/sell.svg b/vue/template/src/asset/icon/svg/sell.svg deleted file mode 100644 index 58ee2d6..0000000 --- a/vue/template/src/asset/icon/svg/sell.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/shopping.svg b/vue/template/src/asset/icon/svg/shopping.svg deleted file mode 100644 index f395bc7..0000000 --- a/vue/template/src/asset/icon/svg/shopping.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/show.svg b/vue/template/src/asset/icon/svg/show.svg deleted file mode 100644 index 915bcee..0000000 --- a/vue/template/src/asset/icon/svg/show.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/stock.svg b/vue/template/src/asset/icon/svg/stock.svg deleted file mode 100644 index 2dafeaa..0000000 --- a/vue/template/src/asset/icon/svg/stock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/system.svg b/vue/template/src/asset/icon/svg/system.svg deleted file mode 100644 index 76b72b1..0000000 --- a/vue/template/src/asset/icon/svg/system.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svg/user.svg b/vue/template/src/asset/icon/svg/user.svg deleted file mode 100644 index 0ba0716..0000000 --- a/vue/template/src/asset/icon/svg/user.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vue/template/src/asset/icon/svgo.yml b/vue/template/src/asset/icon/svgo.yml deleted file mode 100644 index 05c6fbb..0000000 --- a/vue/template/src/asset/icon/svgo.yml +++ /dev/null @@ -1,22 +0,0 @@ -# replace default config - -# multipass: true -# full: true - -plugins: - - # - name - # - # or: - # - name: false - # - name: true - # - # or: - # - name: - # param1: 1 - # param2: 2 - - - removeAttrs: - attrs: - - 'fill' - - 'fill-rule' diff --git a/vue/template/src/asset/style/cover/element-ui.scss b/vue/template/src/asset/style/cover/element-ui.scss deleted file mode 100644 index 9b5cfdb..0000000 --- a/vue/template/src/asset/style/cover/element-ui.scss +++ /dev/null @@ -1,45 +0,0 @@ -// cover some element-ui styles -.el-backtop { - border-radius: 0; -} - -.el-drawer { - &__body { - overflow-y: overlay; - } -} - -.el-message { - @include deep-shadow; - @include max-width-on-mobile; - border-width: 0; - - .el-message__icon, - .el-message__content { - color: $--color-white !important; - } - - &.el-message--success { - background-color: $--color-success; - } - - &.el-message--info { - background-color: $--color-primary; - } - - &.el-message--warning { - background-color: $--color-warning; - } - - &.el-message--error { - background-color: $--color-danger; - } -} - -.el-scrollbar { - height: 100%; - - .el-scrollbar__wrap { - -webkit-overflow-scrolling: touch; - } -} diff --git a/vue/template/src/asset/style/cover/var.scss b/vue/template/src/asset/style/cover/var.scss deleted file mode 100644 index 808cf79..0000000 --- a/vue/template/src/asset/style/cover/var.scss +++ /dev/null @@ -1,4 +0,0 @@ -/*仅覆盖element-ui中的预设变量,不会被使用*/ - -//引入element的scss时需要覆盖字体路径 -$--font-path: '~element-ui/lib/theme-chalk/fonts'; diff --git a/vue/template/src/asset/style/index.scss b/vue/template/src/asset/style/index.scss deleted file mode 100644 index 4da7730..0000000 --- a/vue/template/src/asset/style/index.scss +++ /dev/null @@ -1,102 +0,0 @@ -@import "./var.scss"; -@import "./cover/var.scss"; -@import "./mixin.scss"; -@import "~element-ui/packages/theme-chalk/src/index.scss"; -@import "~@ele/style/index.scss"; -//layout中的样式需要覆盖element-ui原定义,所以放element-ui的后面 -@import "~@/layout/style.scss"; -@import "./cover/element-ui.scss"; -@import "./nprogress.scss"; - -html { - height: 100%; - box-sizing: border-box; -} - -body { - height: 100%; - margin: 0; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - font-family: -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; - -webkit-tap-highlight-color: transparent; -} - -#app { - height: 100%; -} - -*, -*:before, -*:after { - box-sizing: inherit; -} - -a:focus, -a:active, -div:focus { - outline: none; -} - -a, -a:focus, -a:hover { - color: inherit; - text-decoration: none; -} - -//非移动端的滚动条样式修改 -@include pc { - ::-webkit-scrollbar { - width: 6px; - - &:horizontal { - height: 6px; - } - - &-thumb { - width: 6px; - border-radius: 5px; - background-color: rgba($--color-primary, 0.8); - - &:hover { - background-color: $--color-primary; - } - } - } -} - -.flex { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - align-content: space-between; -} - -//仅用于演示用例 -.tip-row { - position: relative; - z-index: 1; - background-color: #fafafa; - padding: 8px 24px; - margin-bottom: 20px; - border-radius: 2px; - display: block; - line-height: 32px; - font-size: 16px; - font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; - color: #337ab7; - user-select: none; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - - * + & { - margin-top: 40px; - } - - a { - color: #337ab7; - cursor: pointer; - text-decoration: underline; - } -} diff --git a/vue/template/src/asset/style/mixin.scss b/vue/template/src/asset/style/mixin.scss deleted file mode 100644 index dc6ecb3..0000000 --- a/vue/template/src/asset/style/mixin.scss +++ /dev/null @@ -1,32 +0,0 @@ -@mixin clearfix { - &::after { - visibility: hidden; - display: block; - font-size: 0; - content: " "; - clear: both; - height: 0; - } -} - -@mixin deep-shadow { - box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12); -} - -@mixin mobile { - @media (max-width: $max-mobile-width) { - @content - } -} - -@mixin pc { - @media (min-width: $max-mobile-width) { - @content - } -} - -@mixin max-width-on-mobile { - @include mobile { - max-width: 384px; - } -} diff --git a/vue/template/src/asset/style/nprogress.scss b/vue/template/src/asset/style/nprogress.scss deleted file mode 100644 index 851e8bc..0000000 --- a/vue/template/src/asset/style/nprogress.scss +++ /dev/null @@ -1,11 +0,0 @@ -@import "~nprogress/nprogress.css"; - -#nprogress { - .bar { - background-color: $--color-primary; - - .peg { - box-shadow: 0 0 10px $--color-primary, 0 0 5px $--color-primary;; - } - } -} diff --git a/vue/template/src/asset/style/var.scss b/vue/template/src/asset/style/var.scss deleted file mode 100644 index 947a849..0000000 --- a/vue/template/src/asset/style/var.scss +++ /dev/null @@ -1,11 +0,0 @@ -@import "~element-ui/packages/theme-chalk/src/common/var"; - -//设定移动端的最大宽度,只能是number类型 -$max-mobile-width: $--sm; - -//覆盖element颜色 -$--color-primary: #1890ff; -$--color-success: #21BA45; -$--color-warning: #FF5722; -$--color-danger: #F44336; -$--color-info: #009688; diff --git a/vue/template/src/component/Icon/index.vue b/vue/template/src/component/Icon/index.vue deleted file mode 100644 index 4c42251..0000000 --- a/vue/template/src/component/Icon/index.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/vue/template/src/component/Skeleton/constant.js b/vue/template/src/component/Skeleton/constant.js deleted file mode 100644 index e0c7ad1..0000000 --- a/vue/template/src/component/Skeleton/constant.js +++ /dev/null @@ -1,6 +0,0 @@ -export const skeletonTypes = [ - 'text', 'circle' -] -export const skeletonAnimations = [ - 'wave', 'pulse', 'pulse-x', 'pulse-y', 'fade', 'blink', 'none' -] diff --git a/vue/template/src/component/Skeleton/index.vue b/vue/template/src/component/Skeleton/index.vue deleted file mode 100644 index ce5309a..0000000 --- a/vue/template/src/component/Skeleton/index.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - diff --git a/vue/template/src/component/Skeleton/style.scss b/vue/template/src/component/Skeleton/style.scss deleted file mode 100644 index 0f0a0a8..0000000 --- a/vue/template/src/component/Skeleton/style.scss +++ /dev/null @@ -1,140 +0,0 @@ -.q-skeleton { - background: rgba(0, 0, 0, .12); - border-radius: 4px; - box-sizing: border-box; - - &::before { - content: '\00a0' - } - - &--type-circle { - height: 48px; - width: 48px; - border-radius: 50%; - } - - &--bordered { - border: 1px solid rgba(0, 0, 0, .05) - } - - &--square { - border-radius: 0; - } - - &--anim-fade { - animation: q-skeleton--fade 1.5s linear .5s infinite - } - - &--anim-pulse { - animation: q-skeleton--pulse 1.5s ease-in-out .5s infinite - } - - &--anim-pulse-x { - animation: q-skeleton--pulse-x 1.5s ease-in-out .5s infinite - } - - &--anim-pulse-y { - animation: q-skeleton--pulse-y 1.5s ease-in-out .5s infinite - } - - &--anim-wave, - &--anim-blink, - &--anim-pop { - position: relative; - overflow: hidden; - z-index: 1; - - &:after { - content: ''; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 0; - } - } - - &--anim-blink:after { - background: rgba(255, 255, 255, .7); - animation: q-skeleton--fade 1.5s linear .5s infinite - } - - &--anim-wave:after { - background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .5), transparent); - animation: q-skeleton--wave 1.5s linear .5s infinite - } - - &--dark { - background: rgba(255, 255, 255, 0.05); - - &.q-skeleton--bordered { - border: 1px solid rgba(255, 255, 255, .25) - } - - &.q-skeleton--anim-wave:after { - background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .1), transparent) - } - - &.q-skeleton--anim-blink:after { - background: rgba(255, 255, 255, .2) - } - } -} - -@keyframes q-skeleton--fade { - 0% { - opacity: 1 - } - 50% { - opacity: .4 - } - 100% { - opacity: 1 - } -} - -@keyframes q-skeleton--pulse { - 0% { - transform: scale(1) - } - 50% { - transform: scale(.85) - } - 100% { - transform: scale(1) - } -} - -@keyframes q-skeleton--pulse-x { - 0% { - transform: scaleX(1) - } - 50% { - transform: scaleX(.75) - } - 100% { - transform: scaleX(1) - } -} - -@keyframes q-skeleton--pulse-y { - 0% { - transform: scaleY(1) - } - 50% { - transform: scaleY(.75) - } - 100% { - transform: scaleY(1) - } -} - -@keyframes q-skeleton--wave { - 0% { - transform: translateX(-100%) - } - 100% { - transform: translateX(100%) - } -} diff --git a/vue/template/src/config/index.js b/vue/template/src/config/index.js deleted file mode 100644 index 428cc30..0000000 --- a/vue/template/src/config/index.js +++ /dev/null @@ -1,29 +0,0 @@ -const isDev = process.env.NODE_ENV === 'development' - -module.exports = { - isDev, - - //项目的部署路径,始终以'/'开头,以'/'结束 - contextPath: '/', - - //页面标题、登录注册页的标题 - title: 'BiuBiuBiu~', - - //logo地址 - logo: `/static/img/logo.svg`, - - //路由配置 - route: { - //路由模式,['hash','history'] - mode: 'history' - }, - - //本地存储配置 - storage: { - //键名前缀 - keyPrefix: 'GCC-', - - //读写时是否进行压缩的默认值 - zip: !isDev - } -} diff --git a/vue/template/src/layout/component/Footer/index.vue b/vue/template/src/layout/component/Footer/index.vue deleted file mode 100644 index 74a2ab5..0000000 --- a/vue/template/src/layout/component/Footer/index.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/vue/template/src/layout/component/Footer/style.scss b/vue/template/src/layout/component/Footer/style.scss deleted file mode 100644 index 37f8167..0000000 --- a/vue/template/src/layout/component/Footer/style.scss +++ /dev/null @@ -1,9 +0,0 @@ -.page-footer > .copyright { - color: $--color-text-secondary; - font-size: 14px; - - > a:hover { - color: $--color-primary; - text-decoration: underline; - } -} diff --git a/vue/template/src/layout/component/SettingDrawer/component/checkbox/ColorCheckbox.vue b/vue/template/src/layout/component/SettingDrawer/component/checkbox/ColorCheckbox.vue deleted file mode 100644 index 6b02081..0000000 --- a/vue/template/src/layout/component/SettingDrawer/component/checkbox/ColorCheckbox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/vue/template/src/layout/component/SettingDrawer/component/checkbox/Group.vue b/vue/template/src/layout/component/SettingDrawer/component/checkbox/Group.vue deleted file mode 100644 index 2292365..0000000 --- a/vue/template/src/layout/component/SettingDrawer/component/checkbox/Group.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/vue/template/src/layout/component/SettingDrawer/component/checkbox/ImgCheckbox.vue b/vue/template/src/layout/component/SettingDrawer/component/checkbox/ImgCheckbox.vue deleted file mode 100644 index 9f5963e..0000000 --- a/vue/template/src/layout/component/SettingDrawer/component/checkbox/ImgCheckbox.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/vue/template/src/layout/component/SettingDrawer/component/checkbox/mixin.js b/vue/template/src/layout/component/SettingDrawer/component/checkbox/mixin.js deleted file mode 100644 index 8971c82..0000000 --- a/vue/template/src/layout/component/SettingDrawer/component/checkbox/mixin.js +++ /dev/null @@ -1,22 +0,0 @@ -export default { - props: ['value'], - - computed: { - checked() { - const group = this.$parent - return group && group.value === this.value - } - }, - - methods: { - click() { - if (this.checked) return - this.$parent.$emit('input', this.value) - } - }, - - created() { - const group = this.$parent - group && group.children.push(this.value) - } -} diff --git a/vue/template/src/layout/component/SettingDrawer/component/checkbox/style.scss b/vue/template/src/layout/component/SettingDrawer/component/checkbox/style.scss deleted file mode 100644 index 5c33195..0000000 --- a/vue/template/src/layout/component/SettingDrawer/component/checkbox/style.scss +++ /dev/null @@ -1,34 +0,0 @@ -@import "~@/asset/style/var"; - -.checkbox-group { - display: flex; - flex-wrap: wrap; - width: 100%; -} - -.color-checkbox { - width: 20px; - height: 20px; - margin: 5px; - border-radius: 2px; - cursor: pointer; - text-align: center; - font-weight: bold; - color: #ffffff; -} - -.img-checkbox { - width: 55px; - margin: 10px; - border-radius: 2px; - cursor: pointer; - position: relative; - - .el-icon-check { - position: absolute; - color: $--color-primary; - font-weight: bold; - top: 25px; - right: 10px; - } -} diff --git a/vue/template/src/layout/component/SettingDrawer/index.vue b/vue/template/src/layout/component/SettingDrawer/index.vue deleted file mode 100644 index 28ee53e..0000000 --- a/vue/template/src/layout/component/SettingDrawer/index.vue +++ /dev/null @@ -1,314 +0,0 @@ - - - diff --git a/vue/template/src/layout/component/SettingDrawer/style.scss b/vue/template/src/layout/component/SettingDrawer/style.scss deleted file mode 100644 index 70eef94..0000000 --- a/vue/template/src/layout/component/SettingDrawer/style.scss +++ /dev/null @@ -1,17 +0,0 @@ -@import "~@/asset/style/var"; -@import "./component/checkbox/style"; - -.drawer-container { - padding: 24px; - font-size: 14px; - line-height: 1.5; - word-wrap: break-word; - - .drawer-item { - display: flex; - justify-content: space-between; - color: $--color-text-regular; - font-size: 14px; - padding: 12px 0; - } -} diff --git a/vue/template/src/layout/index.vue b/vue/template/src/layout/index.vue deleted file mode 100644 index 5866b0c..0000000 --- a/vue/template/src/layout/index.vue +++ /dev/null @@ -1,101 +0,0 @@ - - - diff --git a/vue/template/src/layout/mixin/tagsViewPersistent.js b/vue/template/src/layout/mixin/tagsViewPersistent.js deleted file mode 100644 index 492f108..0000000 --- a/vue/template/src/layout/mixin/tagsViewPersistent.js +++ /dev/null @@ -1,47 +0,0 @@ -/** - * 多页签持久化混入 - * 初始化时读取本地存储中的数据 - * 页签变化时写入本地存储 - */ - -import {tagsViewGetters, tagsViewMutations} from "el-admin-layout" -import {debounce} from "@/util" -import {getTagsView, setTagsView} from "@/util/storage" - -export default { - computed: { - shouldPersistent: () => tagsViewGetters.persistent - }, - - watch: { - shouldPersistent: { - immediate: true, - handler(v) { - //尝试清除之前的watch - if (this.watchVisitedViewsCallback) { - this.watchVisitedViewsCallback() - this.watchVisitedViewsCallback = null - } - - //停用持久化时清空本地存储的页签数据 - if (!v) return setTagsView() - - //启用时先存储一次(仅在mounted后,否则此时页签数据不完整) - this._isMounted && this.persistentTagsView(tagsViewGetters.visitedViews) - - this.watchVisitedViewsCallback = this.$watch('visitedViews', this.persistentTagsView) - } - } - }, - - beforeCreate() { - this.persistentTagsView = debounce(setTagsView) - }, - - mounted() { - if (!this.shouldPersistent) return - - const tags = getTagsView() - Array.isArray(tags) && tags.forEach(tagsViewMutations.addTagOnly) - } -} diff --git a/vue/template/src/layout/mixin/tagsViewShortcut.js b/vue/template/src/layout/mixin/tagsViewShortcut.js deleted file mode 100644 index 358d414..0000000 --- a/vue/template/src/layout/mixin/tagsViewShortcut.js +++ /dev/null @@ -1,83 +0,0 @@ -/** - * 多页签快捷键混入 - * ctrl + →,下一个页签 - * ctrl + ←,上一个页签 - */ - -import {tagsViewGetters} from "el-admin-layout" - -export default { - computed: { - shouldBindKeydownEvent() { - return tagsViewGetters.shortcut - } - }, - - watch: { - shouldBindKeydownEvent: { - immediate: true, - handler(v) { - //尝试移除之前可能添加的事件 - window.removeEventListener('keydown', this.shortcutsListen) - - v && window.addEventListener('keydown', this.shortcutsListen) - } - } - }, - - methods: { - //上一个页签 - gotoViewFront() { - const views = tagsViewGetters.visitedViews - - if (views.length <= 1) return - - let index = views.findIndex(view => view.path === this.$route.path) - - if (index < 0) return - - if (index === 0) { - index = views.length - } - - return this.$router.push({path: views[index - 1].path}) - }, - - //下一个页签 - gotoViewBehind() { - const views = tagsViewGetters.visitedViews - - if (views.length <= 1) return - - let index = views.findIndex(view => view.path === this.$route.path) - - if (index < 0) return - - if (index + 1 > views.length - 1) { - index = -1 - } - - return this.$router.push({path: views[index + 1].path}) - }, - - //快捷键监听 - shortcutsListen(e) { - if (e.ctrlKey) { - switch (e.key) { - //ctrl + → - case 'ArrowRight': - e.preventDefault() - return this.gotoViewBehind() - //ctrl + ← - case 'ArrowLeft': - e.preventDefault() - return this.gotoViewFront() - } - } - } - }, - - beforeDestroy() { - window.removeEventListener('keydown', this.shortcutsListen) - } -} diff --git a/vue/template/src/layout/style.scss b/vue/template/src/layout/style.scss deleted file mode 100644 index 00f200e..0000000 --- a/vue/template/src/layout/style.scss +++ /dev/null @@ -1,6 +0,0 @@ -@import "~el-admin-layout/src/style"; - -@import "./component/Footer/style"; -@import "./component/SettingDrawer/style"; - - diff --git a/vue/template/src/main.js b/vue/template/src/main.js deleted file mode 100644 index 921f6a8..0000000 --- a/vue/template/src/main.js +++ /dev/null @@ -1,20 +0,0 @@ -import Vue from 'vue' -import Element from 'element-ui' -import ElementPersonal from '@ele' -import '@/asset/style/index.scss' -import App from '@/App' -import store from '@/store' -import router from '@/router' -import '@/asset/icon' - -Vue.use(Element) -Vue.use(ElementPersonal) - -Vue.config.productionTip = false - -new Vue({ - el: '#app', - router, - store, - render: h => h(App) -}) diff --git a/vue/template/src/router/define.js b/vue/template/src/router/define.js deleted file mode 100644 index eeec943..0000000 --- a/vue/template/src/router/define.js +++ /dev/null @@ -1,43 +0,0 @@ -import Layout from "@/layout/index" -import Redirect from "@/view/_app/redirect" -import Login from "@/view/_app/login/index" -import Page403 from "@/view/_app/403" -import Page404 from "@/view/_app/404" -import Page500 from "@/view/_app/500" -import routes from './module' -import {deepClone} from "@/util" - -export function getDynamicRoutes() { - return deepClone(routes) -} - -//系统自有路由 -export default [ - { - path: '/redirect', - component: Layout, - children: [ - { - path: '*', - component: Redirect - } - ] - }, - { - path: '/login', - alias: '/register', - component: Login - }, - { - path: '/403', - component: Page403 - }, - { - path: '/404', - component: Page404 - }, - { - path: '/500', - component: Page500 - } -] diff --git a/vue/template/src/router/guardian/accessControl.js b/vue/template/src/router/guardian/accessControl.js deleted file mode 100644 index abfc396..0000000 --- a/vue/template/src/router/guardian/accessControl.js +++ /dev/null @@ -1,42 +0,0 @@ -import store from "@/store" -import {isLogin, auth, needAuth} from "@/util/auth" - -const noLoginList = ['/login', '/register', '/403', '/404', '/500'] - -const beforeEach = async (to, from, next) => { - //放行不需要登录即可访问的路由 - if (noLoginList.includes(to.path)) { - return next() - } - - //未登录时返回登录页 - if (!isLogin()) { - return next({path: '/login', query: {redirect: to.fullPath}}) - } - - //初始化路由和菜单权限 - if (!store.state.resource.init) { - await store.dispatch('resource/init', store.state.user) - return next({...to, replace: true}) - } - - //页面不需要鉴权或有访问权限时通过 - if (!needAuth(to) || auth(getAuthorizedPath(to))) { - return next() - } - - //用户无权限访问时的动作 - next('/403') -} - -//获取进行权限验证的路由地址 -function getAuthorizedPath(route) { - const {path, matched} = route, len = matched.length - - //可能会有路由使用动态路径(诸如/:id),matched中的path是routeConfig中声明的原始路径 - return len > 0 ? matched[len - 1].path : path -} - -export default function (router) { - router.beforeEach(beforeEach) -} diff --git a/vue/template/src/router/guardian/avoidReuse.js b/vue/template/src/router/guardian/avoidReuse.js deleted file mode 100644 index b87e2bd..0000000 --- a/vue/template/src/router/guardian/avoidReuse.js +++ /dev/null @@ -1,22 +0,0 @@ -import {isEmpty} from "@/util" - -const beforeEach = (to, from, next) => { - //若是共用组件的路由页面之间的跳转,借助redirect避免组件复用 - const a = to.meta.commonModule, b = from.meta.commonModule - const isComponentReuse = !isEmpty(a) && a === b - if (isComponentReuse) { - //这里vue-router会报redirect错误,已在下方忽略 - return next(`/redirect${to.fullPath}`) - } - next() -} - -export default function (router) { - router.beforeEach(beforeEach) -} - -window.addEventListener('unhandledrejection', event => { - if (event.reason.stack && event.reason.stack.startsWith('Error: Redirected when going from')) { - event.preventDefault() - } -}) diff --git a/vue/template/src/router/guardian/iframe.js b/vue/template/src/router/guardian/iframe.js deleted file mode 100644 index 13df8a6..0000000 --- a/vue/template/src/router/guardian/iframe.js +++ /dev/null @@ -1,22 +0,0 @@ -import {pageMutations} from "el-admin-layout" - -const beforeEach = (to, from, next) => { - //从iframe页面离开时,判断是否需要删除iframe - if (from.meta.iframe) { - //如果设置了无缓存或是进行了刷新,那么移除iframe - const del = from.meta.noCache || to.path === `/redirect${from.path}` - - pageMutations.closeIframe({src: from.meta.iframe, del}) - } - - //跳转至iframe页面时,打开iframe - if (to.meta.iframe) { - pageMutations.openIframe({src: to.meta.iframe}) - } - - next() -} - -export default function (router) { - router.beforeEach(beforeEach) -} diff --git a/vue/template/src/router/guardian/index.js b/vue/template/src/router/guardian/index.js deleted file mode 100644 index b6a08e2..0000000 --- a/vue/template/src/router/guardian/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import nprogress from './nprogress' -import avoidReuse from './avoidReuse' -import setTitle from './setTitle' -import accessControl from './accessControl' -import iframe from './iframe' - -export default function (router) { - nprogress(router) - avoidReuse(router) - accessControl(router) - setTitle(router) - iframe(router) -} diff --git a/vue/template/src/router/guardian/nprogress.js b/vue/template/src/router/guardian/nprogress.js deleted file mode 100644 index c00cd0a..0000000 --- a/vue/template/src/router/guardian/nprogress.js +++ /dev/null @@ -1,17 +0,0 @@ -import NProgress from 'nprogress' - -NProgress.configure({showSpinner: false}) - -const beforeEach = (to, from, next) => { - //使用redirect进行跳转时不显示进度条 - !to.path.startsWith('/redirect') && NProgress.start() - - next() -} - -const afterEach = () => NProgress.done() - -export default function (router) { - router.beforeEach(beforeEach) - router.afterEach(afterEach) -} diff --git a/vue/template/src/router/guardian/setTitle.js b/vue/template/src/router/guardian/setTitle.js deleted file mode 100644 index 1b17185..0000000 --- a/vue/template/src/router/guardian/setTitle.js +++ /dev/null @@ -1,20 +0,0 @@ -import {title} from "@/config" - -const beforeEach = (to, from, next) => { - const {path, meta} = to - - if (!path.startsWith('/redirect')) { - if (typeof meta.dynamicTitle === 'function') { - meta.title = meta.dynamicTitle(to, from) - } - - const pageTitle = meta.title - document.title = pageTitle ? `${pageTitle} - ${title}` : title - } - - next() -} - -export default function (router) { - router.beforeEach(beforeEach) -} diff --git a/vue/template/src/router/index.js b/vue/template/src/router/index.js deleted file mode 100644 index 3d20106..0000000 --- a/vue/template/src/router/index.js +++ /dev/null @@ -1,52 +0,0 @@ -/** - * 路由配置说明 - * - * 不需要鉴权的路由:meta.noAuth - * 左侧菜单显示:name && !meta.hidden && meta.title - * 左侧菜单排序:能在左侧菜单中显示 && meta.sort,升序排列 - * 左侧菜单不折叠只有一个children的路由:meta.alwaysShow - * 页头显示:meta.pageHeader !== false && (meta.title || meta.dynamicTitle) - * tab栏显示:meta.title || meta.dynamicTitle - * tab栏固定显示:meta.title && meta.affix - * 页面不缓存:!name && !meta.usePathKey && !meta.useFullPathKey || meta.noCache - * 打开iframe:meta.iframe,不会重复打开相同src的iframe - */ - -import Vue from 'vue' -import Router from 'vue-router' -import {route as routeConfig} from '@/config' -import {deepClone} from "@/util" -import {generateRoutes} from './util' -import defaultRoutes from './define' -import registerGuardian from './guardian' - -Vue.use(Router) - -const router = new Router({ - base: process.env.BASE_URL, - mode: routeConfig.mode, - scrollBehavior: () => ({y: 0}), - routes: defaultRoutes -}) - -registerGuardian(router) - -export default router - -/** - * 向外部暴露的动态路由添加方法,只能被调用一次 - * - * @param jsonTree {array} 路由配置项构成的树型数组 - */ -export const addDynamicRoutes = (() => { - let init = false - - return (jsonTree) => { - if (init) return - init = true - - jsonTree = deepClone(jsonTree) - const endRoute = {path: '*', redirect: '/404'} - router.addRoutes([...generateRoutes(jsonTree), endRoute]) - } -})() diff --git a/vue/template/src/router/module/admin/child/default.js b/vue/template/src/router/module/admin/child/default.js deleted file mode 100644 index 61ec6f3..0000000 --- a/vue/template/src/router/module/admin/child/default.js +++ /dev/null @@ -1,12 +0,0 @@ -//路由表:默认页面 - -const router = [ - { - path: 'index', - component: 'admin/index/', - name: 'index', - meta: {title: '首页', affix: true, icon: 'svg-home', noAuth: true, pageHeader: false, sort: 0} - } -] - -export default router diff --git a/vue/template/src/router/module/admin/index.js b/vue/template/src/router/module/admin/index.js deleted file mode 100644 index 7384ebc..0000000 --- a/vue/template/src/router/module/admin/index.js +++ /dev/null @@ -1,12 +0,0 @@ -/*顶级菜单:后台管理*/ - -import {context2array} from '@/router/util' - -const files = require.context('./child', false, /\.js$/) - -export default { - path: '/', - component: 'Layout', - meta: {title: '后台管理', icon: 'svg-home', sort: 0}, - children: context2array(files) -} diff --git a/vue/template/src/router/module/doc/index.js b/vue/template/src/router/module/doc/index.js deleted file mode 100644 index 4bb97ef..0000000 --- a/vue/template/src/router/module/doc/index.js +++ /dev/null @@ -1,4 +0,0 @@ -export default { - path: 'https://doc.toesbieya.cn', - meta: {title: '文档', icon: 'svg-documentation', noAuth: true} -} diff --git a/vue/template/src/router/module/example/child/component.js b/vue/template/src/router/module/example/child/component.js deleted file mode 100644 index ab03aa9..0000000 --- a/vue/template/src/router/module/example/child/component.js +++ /dev/null @@ -1,11 +0,0 @@ -export default { - path: 'component', - meta: {title: '组件', icon: 'el-icon-s-grid', alwaysShow: true}, - children: [ - { - path: 'skeleton', - component: 'example/component/skeleton', - meta: {title: '骨架屏'} - } - ] -} diff --git a/vue/template/src/router/module/example/child/globalMethod.js b/vue/template/src/router/module/example/child/globalMethod.js deleted file mode 100644 index 57f581f..0000000 --- a/vue/template/src/router/module/example/child/globalMethod.js +++ /dev/null @@ -1,11 +0,0 @@ -export default { - path: 'global', - meta: {title: '全局方法', icon: 'el-icon-s-opportunity', alwaysShow: true}, - children: [ - { - path: 'message', - component: 'example/globalMethod/message', - meta: {title: '消息提示'} - } - ] -} diff --git a/vue/template/src/router/module/example/child/icon.js b/vue/template/src/router/module/example/child/icon.js deleted file mode 100644 index ca83a10..0000000 --- a/vue/template/src/router/module/example/child/icon.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - path: 'icon', - component: 'example/icon/', - meta: {title: '图 标', icon: 'el-icon-eleme'} -} diff --git a/vue/template/src/router/module/example/child/iframe.js b/vue/template/src/router/module/example/child/iframe.js deleted file mode 100644 index d7abe17..0000000 --- a/vue/template/src/router/module/example/child/iframe.js +++ /dev/null @@ -1,14 +0,0 @@ -export default { - path: 'iframe', - meta: {title: 'iframe', noCache: false, icon: 'el-icon-s-flag'}, - children: [ - { - path: 'taobao', - meta: {title: '淘宝', iframe: 'https://www.taobao.com'} - }, - { - path: 'baidu', - meta: {title: '百度', iframe: 'https://www.baidu.com'} - } - ] -} diff --git a/vue/template/src/router/module/example/child/test.js b/vue/template/src/router/module/example/child/test.js deleted file mode 100644 index f7bd168..0000000 --- a/vue/template/src/router/module/example/child/test.js +++ /dev/null @@ -1,30 +0,0 @@ -export default { - path: 'test', - meta: {title: '测试页面', icon: 'el-icon-warning', alwaysShow: true}, - children: [ - { - path: 'cache', - meta: {title: '详情页缓存测试', noCache: false}, - children: [ - { - path: 'detailPage1', - component: 'example/test/cache/detail', - meta: { - title: '详情页1', - usePathKey: true, - commonModule: '@/view/example/test/cache/detailPage' - } - }, - { - path: 'detailPage2', - component: 'example/test/cache/detail', - meta: { - title: '详情页2', - usePathKey: true, - commonModule: '@/view/example/test/cache/detailPage' - } - } - ] - } - ] -} diff --git a/vue/template/src/router/module/example/index.js b/vue/template/src/router/module/example/index.js deleted file mode 100644 index f655b24..0000000 --- a/vue/template/src/router/module/example/index.js +++ /dev/null @@ -1,12 +0,0 @@ -/*顶级菜单:演示用例*/ - -import {context2array} from '@/router/util' - -const files = require.context('./child', false, /\.js$/) - -export default { - path: '/example', - component: 'Layout', - meta: {title: '演示用例', icon: 'svg-show', noAuth: true, noCache: true, sort: 1}, - children: context2array(files) -} diff --git a/vue/template/src/router/module/index.js b/vue/template/src/router/module/index.js deleted file mode 100644 index 1e206ec..0000000 --- a/vue/template/src/router/module/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import admin from './admin' -import example from './example' -import doc from './doc' - -export default [admin, example, doc] diff --git a/vue/template/src/router/util.js b/vue/template/src/router/util.js deleted file mode 100644 index 6024fe9..0000000 --- a/vue/template/src/router/util.js +++ /dev/null @@ -1,148 +0,0 @@ -import Layout from '@/layout' -import SkeletonPage from '@/view/_common/SkeletonPage' -import Page500 from '@/view/_app/500' -import {isEmpty} from "@/util" -import {isExternal, isString} from "@/util/validate" - -//根据json数组生成路由 -export function generateRoutes(jsonTree) { - //将深度为2的节点合并为由其最末子节点组成的数组 - function mergeChildren(routes) { - function fun(child, parent = {path: ''}, list = []) { - const {children} = child - if (!isEmpty(parent.path)) { - child.path = `${parent.path}/${child.path}` - } - if (!children || !children.length) { - list.push(child) - } - else { - children.forEach(i => fun(i, child, list)) - } - return list - } - - routes.forEach(root => { - const {children} = root - if (children && children.length) { - const list = [] - children.forEach(route => { - list.push(...fun(route)) - }) - root.children = list - } - }) - } - - //数据转换,同时剔除不合法的路由 - function transform(routes, depth = 1) { - if (!Array.isArray(routes)) return - - for (let i = routes.length - 1; i >= 0; i--) { - const {path, redirect, component, children, meta = {}} = routes[i] - - //剔除外链节点以及无component且非iframe的节点 - if (isExternal(path) || !component && !meta.iframe) { - routes.splice(i, 1) - continue - } - - //清理一些空属性,避免vue-router出错 - ['name', 'component', 'meta'].forEach(key => { - if (key in routes[i] && isEmpty(routes[i][key])) { - delete routes[i][key] - } - }) - - //设置路由组件,当component是vue组件声明对象时,不会进行懒加载 - if (component) { - if (isString(component) && component.toUpperCase() === 'LAYOUT') { - routes[i].component = Layout - } - else if (isString(component) || typeof component === 'function') { - routes[i].component = lazyLoadView(component) - } - } - - //先尝试递归 - transform(children, depth + 1) - - //叶子节点统一设置props = true,省的动态路由还要手动加 - if (!children || children.length <= 0) { - routes[i].props = true - } - //仅在根节点未设置redirect时,将其第一个子节点的路径设为redirect - else if (depth === 1 && isEmpty(redirect)) { - const rootPath = path.endsWith('/') ? path : `${path}/` - routes[i].redirect = `${rootPath}${children[0].path}` - } - } - } - - //路由页面懒加载,入参可以是字符串、返回值为Promise的函数 - function lazyLoadView(component) { - if (isString(component)) { - if (component.endsWith('/')) { - component += 'index' - } - else if (component.endsWith('Page')) { - component = component.replace('Page', '') - } - else { - component = component.replace('Page.vue', '') - } - } - - //这里注意一点,如果设置了超时时间,那么超时后只能刷新整个页面才能重新加载该组件 - const AsyncHandler = () => ({ - component: typeof component === 'function' ? component() : import(`@/view/${component}Page.vue`), - loading: SkeletonPage, - error: Page500, - delay: 200, - timeout: 10000 - }) - - return () => Promise.resolve({ - abstract: true, - functional: true, - render(h, {data, children}) { - return h(AsyncHandler, data, children) - } - }) - } - - mergeChildren(jsonTree) - transform(jsonTree) - - return jsonTree -} - -//子路由继承父路由meta上的{noAuth, noCache},优先使用子路由的值 -export function metaExtend(routes, parentMeta) { - const keys = ['noAuth', 'noCache'] - routes.forEach(route => { - if (parentMeta) { - Object.keys(parentMeta).forEach(key => { - const value = parentMeta[key] - if (keys.includes(key) && !isEmpty(value)) { - if (!route.meta) { - route.meta = {[key]: value} - } - else if (isEmpty(route.meta[key])) { - route.meta[key] = value - } - } - }) - } - route.children && metaExtend(route.children, route.meta) - }) -} - -//将require.context导出的对象处理为数组 -export function context2array(context) { - return context.keys().reduce((modules, modulePath) => { - const value = context(modulePath).default - Array.isArray(value) ? modules.push(...value) : modules.push(value) - return modules - }, []) -} diff --git a/vue/template/src/store/index.js b/vue/template/src/store/index.js deleted file mode 100644 index 3a43b85..0000000 --- a/vue/template/src/store/index.js +++ /dev/null @@ -1,18 +0,0 @@ -import Vue from 'vue' -import Vuex from 'vuex' - -Vue.use(Vuex) - -const modulesFiles = require.context('./module', true, /\.js$/) - -// you do not need `import app from './modules/app'` -// it will auto require all vuex module from modules file -const modules = modulesFiles.keys().reduce((modules, modulePath) => { - // set './app.js' => 'app' - const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1') - const value = modulesFiles(modulePath) - modules[moduleName] = value.default - return modules -}, {}) - -export default new Vuex.Store({modules}) diff --git a/vue/template/src/store/module/resource.js b/vue/template/src/store/module/resource.js deleted file mode 100644 index 0b5e631..0000000 --- a/vue/template/src/store/module/resource.js +++ /dev/null @@ -1,105 +0,0 @@ -import path from 'path' -import {appMutations} from "el-admin-layout" -import {addDynamicRoutes} from '@/router' -import {getDynamicRoutes} from '@/router/define' -import {metaExtend} from "@/router/util" -import {isEmpty, deepClone} from "@/util" -import {needAuth, auth} from "@/util/auth" //此处存在循环引用? -import {shakeTree} from "@/util/tree" -import {isExternal} from "@/util/validate" - -const state = { - //判断权限是否已经初始化 - init: false -} - -const mutations = { - init(state, sign) { - state.init = sign - } -} - -const actions = { - init({state, commit}) { - return new Promise(resolve => { - const routes = getDynamicRoutes() - - metaExtend(routes) - - //动态添加路由,这里不需要进行权限过滤 - //可能存在多次调用的情况,所以仅在第一次调用时添加进vue-router - !state.init && addDynamicRoutes(routes) - - //生成经过权限过滤后的菜单,并传递给layout的store - appMutations.menus(getAuthorizedMenus(routes)) - - //设置初始化完成的标志 - commit('init', true) - - resolve() - }) - } -} - -//获取经过权限控制后的菜单 -function getAuthorizedMenus(menus) { - menus = deepClone(menus) - - //删除不显示的菜单(没有children且没有meta.title) - function clean(menus) { - for (let i = menus.length - 1; i >= 0; i--) { - const {children = [], meta: {title, alwaysShow, hidden} = {}} = menus[i] - - if (hidden) { - menus.splice(i, 1) - continue - } - - if (children.length === 0) { - if (isEmpty(title)) { - menus.splice(i, 1) - } - continue - } - - clean(children) - - if (children.length === 0 && !alwaysShow) { - menus.splice(i, 1) - } - - //移除类似首页那样的无标题父级节点 - if (isEmpty(title)) { - menus.splice(i, 1, ...children) - } - } - } - - //菜单添加全路径 - function addFullPath(routes, basePath = '/') { - routes.forEach(route => { - //外链保持原样 - route.fullPath = isExternal(route.path) ? route.path : path.resolve(basePath, route.path) - route.children && addFullPath(route.children, route.fullPath) - }) - } - - clean(menus) - addFullPath(menus) - - return shakeTree(menus, i => { - //非叶子节点时,当定义了children属性却没有子节点时移除 - if (i.children && i.children.length === 0) { - return false - } - - return !needAuth(i) || auth(i.fullPath) - }) -} - -export default { - namespaced: true, - state, - mutations, - actions -} diff --git a/vue/template/src/store/module/user.js b/vue/template/src/store/module/user.js deleted file mode 100644 index 4551931..0000000 --- a/vue/template/src/store/module/user.js +++ /dev/null @@ -1,65 +0,0 @@ -import {createMutations} from "@/store/util" -import {emptyOrDefault} from "@/util" -import {getUser, setUser} from "@/util/storage" -import {tagsViewMutations} from "el-admin-layout" - -//刷新时从本地存储中获取用户信息 -const user = getUser() - -const state = { - //是否在退出的过程中,避免重复弹框 - prepareLogout: false, - - /*用户基本信息*/ - id: emptyOrDefault(user.id, null), - name: emptyOrDefault(user.name), - avatar: emptyOrDefault(user.avatar), - admin: emptyOrDefault(user.admin, false), - token: emptyOrDefault(user.token), - resources: emptyOrDefault(user.resources, {}) -} - -const mutations = createMutations(state, true) - -const actions = { - login({commit, dispatch}, userInfo) { - const {username, password} = userInfo - - const user = {id: 1, admin: true, name: username, avatar: null, token: 'token'} - - commit('$all', user) - setUser(user) - - return Promise.resolve() - }, - - logout({commit, state, dispatch}) { - if (state.prepareLogout) return Promise.reject() - - commit('prepareLogout', true) - - return Promise.all([ - dispatch('removeUser'), - tagsViewMutations.delAllTagAndCache() - ]) - .then(() => window.location.reload()) - .finally(() => commit('prepareLogout', false)) - }, - - //刷新本地存储中保存的用户数据 - refresh({state}) { - setUser(state) - }, - - removeUser({commit}) { - commit('$all', {resources: {}}) - setUser() - } -} - -export default { - namespaced: true, - state, - mutations, - actions -} diff --git a/vue/template/src/store/util.js b/vue/template/src/store/util.js deleted file mode 100644 index 72267f5..0000000 --- a/vue/template/src/store/util.js +++ /dev/null @@ -1,18 +0,0 @@ -import {getInitialValue} from "@/util" - -//vuex中根据state批量生成对应的mutation -export function createMutations(state, all = false) { - const keys = Object.keys(state) - const obj = {} - keys.forEach(key => { - obj[key] = (s, v) => s[key] = v - }) - if (all) { - obj['$all'] = (s, v) => { - keys.forEach(key => { - s[key] = v && v[key] || getInitialValue(s[key]) - }) - } - } - return obj -} diff --git a/vue/template/src/util/auth.js b/vue/template/src/util/auth.js deleted file mode 100644 index 800a4c6..0000000 --- a/vue/template/src/util/auth.js +++ /dev/null @@ -1,39 +0,0 @@ -import store from '@/store' -import {isEmpty} from "@/util" - -/** - * 判断是否需要鉴权,需要则返回true - * 以下情况不需要鉴权:①无meta、②是redirect、③没有名称、④设置了noAuth=true - * - * @param route vue-router的routeConfig或项目中说明的路由配置项 - * @return {boolean} - */ -export function needAuth(route) { - const {path, meta} = route - - if (!meta || path.startsWith('/redirect')) return false - - if (isEmpty(meta.title) && isEmpty(meta.dynamicTitle)) return false - - return meta.noAuth !== true -} - -/** - * 接口权限判断,有权限则返回true - * 调用时需要保证用户已经登录成功 - * - * @param path {string} 接口路径 - * @return {boolean} - */ -export function auth(path) { - return true -} - -/** - * 判断是否已登录,已登录则返回true - * - * @return {boolean} - */ -export function isLogin() { - return !isEmpty(store.state.user.token) -} diff --git a/vue/template/src/util/index.js b/vue/template/src/util/index.js deleted file mode 100644 index 2034d42..0000000 --- a/vue/template/src/util/index.js +++ /dev/null @@ -1,64 +0,0 @@ -import {isEmpty, getInitialValue, debounce, deepClone} from "el-admin-layout/src/util" - -export {isEmpty, getInitialValue, debounce, deepClone} - -/** - * 当传入空值时,返回默认值 - * - * @param v 传入值 - * @param defaultValue 当传入值为空值(使用{@link #isEmpty}判断)时,返回的值 - * @return {string|*} - */ -export function emptyOrDefault(v, defaultValue = '') { - return isEmpty(v) ? defaultValue : v -} - -/** - * 字符串替换全部 - * - * @param str 原字符串 - * @param substr 被替换的字符串 - * @param replacement 替换的字符串 - * @return {string} - */ -export function replaceAll(str, substr, replacement) { - if (str == null) return str - - return str.replace(new RegExp(substr, 'gm'), replacement) -} - -/** - * 将source合并到target中 - * 仅对target中存在的键进行合并 - * 仅当遇到对象值时进行递归 - * - * @param target - * @param source - */ -export function mergeObj(target, source) { - if (isEmpty(target, source)) return - - for (const key of Object.keys(target)) { - if (!(key in source)) continue - - //数组类型直接赋值,不做深拷贝 - if (Array.isArray(target[key])) { - target[key] = source[key] || [] - continue - } - - //number类型不考虑NaN - if (typeof target[key] === 'number') { - target[key] = source[key] || 0 - continue - } - - //非空对象递归处理 - if (target[key] !== null && typeof target[key] === 'object') { - mergeObj(target[key], source[key]) - continue - } - - target[key] = source[key] - } -} diff --git a/vue/template/src/util/message.js b/vue/template/src/util/message.js deleted file mode 100644 index d4c5df4..0000000 --- a/vue/template/src/util/message.js +++ /dev/null @@ -1,22 +0,0 @@ -import Message from '@ele/component/Message' -import {MessageBox} from 'element-ui' - -export function elSuccess(message = '操作成功') { - Message.success({ - message, - dangerouslyUseHTMLString: true - }) -} - -export function elConfirm(msg = '确认进行该操作?', ignoreReject = true) { - const promise = MessageBox.confirm(msg, { - type: 'warning', - cancelButtonClass: 'is-plain' - }) - - if (ignoreReject) { - promise.catch(() => ({})) - } - - return promise -} diff --git a/vue/template/src/util/secret.js b/vue/template/src/util/secret.js deleted file mode 100644 index 9911616..0000000 --- a/vue/template/src/util/secret.js +++ /dev/null @@ -1,31 +0,0 @@ -import pako from 'pako' - -/** - * 解压字符串 - * - * @param b64Data {string} base64编码的字符串 - * @return {string} - */ -export function unzip(b64Data) { - let strData = window.atob(b64Data) - // Convert binary string to character-number array - const charData = strData.split('').map(x => x.charCodeAt(0)) - // Turn number array into byte-array - const binData = new Uint8Array(charData) - // unzip - const data = pako.inflate(binData) - // Convert gunzipped byteArray back to ascii string: - strData = String.fromCharCode.apply(null, new Uint16Array(data)) - return decodeURIComponent(strData) -} - -/** - * 压缩字符串 - * - * @param str {string} - * @return {string} - */ -export function zip(str) { - const binaryString = pako.gzip(encodeURIComponent(str), {to: 'string'}) - return window.btoa(binaryString) -} diff --git a/vue/template/src/util/storage.js b/vue/template/src/util/storage.js deleted file mode 100644 index e74758d..0000000 --- a/vue/template/src/util/storage.js +++ /dev/null @@ -1,132 +0,0 @@ -import {storage} from "@/config" -import {isEmpty} from "@/util" -import {unzip, zip} from "@/util/secret" - -const {keyPrefix, zip: defaultUseZip} = storage -const sessionUserKey = 'SESS-USER' -const localPersonalSettingsKey = 'LOCAL-PERSONAL-SETTINGS' -const sessionTagsViewKey = 'SESS-TAGS-VIEW' - -/** - * 读取本地存储 - * @param key {string} 键名,自动加上统一前缀 - * @param storage {Storage} window.sessionStorage或window.localStorage - * @param useZip {boolean} 是否启用了压缩 - * @return {*|undefined} - */ -export function get(key, storage = window.sessionStorage, useZip = defaultUseZip) { - let obj = storage.getItem(`${keyPrefix}${key}`) - if (isEmpty(obj)) return undefined - try { - obj = JSON.parse(useZip ? unzip(obj) : obj) - } - catch (e) { - console.error(`获取本地存储[${key}]失败`, e) - obj = undefined - } - return obj -} - -/** - * 写入本地存储 - * @param key {string} 键名,自动加上统一前缀 - * @param obj 需要写入本地存储的js对象 - * @param storage {Storage} window.sessionStorage或window.localStorage - * @param useZip {boolean} 是否启用了压缩 - */ -export function set(key, obj, storage = window.sessionStorage, useZip = defaultUseZip) { - const item = useZip ? zip(JSON.stringify(obj)) : JSON.stringify(obj) - storage.setItem(`${keyPrefix}${key}`, item) -} - -/** - * 根据指定键名,移除本地存储对应项 - * @param key {string} 键名,自动加上统一前缀 - * @param storage {Storage} window.sessionStorage或window.localStorage - */ -export function remove(key, storage = window.sessionStorage) { - storage.removeItem(`${keyPrefix}${key}`) -} - -/** - * 获取用户信息,获取失败时会清除用户信息并返回一个空对象 - * - * @return {object} - */ -export function getUser() { - let user = get(sessionUserKey) - if (isEmpty(user)) { - user = {} - removeUser() - } - return user -} - -/** - * 将用户信息持久化到sessionStorage,传入空值时将清除用户信息 - * - * @param user - */ -export function setUser(user) { - isEmpty(user) ? removeUser() : set(sessionUserKey, user) -} - -/** - * 获取用户个性设置,获取失败时会清除设置信息并返回一个空对象 - * - * @return {object} - */ -export function getLocalPersonalSettings() { - let settings = get(localPersonalSettingsKey, window.localStorage) - if (isEmpty(settings)) { - settings = {} - removeLocalPersonalSettings() - } - return settings -} - -/** - * 将用户个性设置持久化到localStorage,传入空值时将清除设置信息 - * - * @param settings - */ -export function setLocalPersonalSettings(settings) { - isEmpty(settings) - ? removeLocalPersonalSettings() - : set(localPersonalSettingsKey, settings, window.localStorage) -} - -/** - * 获取持久化后的页签,获取失败时会清除持久化数据并返回一个空数组 - * - * @return {array} - */ -export function getTagsView() { - let tagsView = get(sessionTagsViewKey) - if (isEmpty(tagsView)) { - tagsView = [] - removeTagsView() - } - return tagsView -} - -/** - * 将页签持久化到sessionStorage,传入空值时将清除页签信息 - * - * @param tagsView - */ -export function setTagsView(tagsView) { - isEmpty(tagsView) ? removeTagsView() : set(sessionTagsViewKey, tagsView) -} - -function removeUser() { - remove(sessionUserKey) -} - -function removeLocalPersonalSettings() { - remove(localPersonalSettingsKey, window.localStorage) -} - -function removeTagsView() { - remove(sessionTagsViewKey) -} diff --git a/vue/template/src/util/tree.js b/vue/template/src/util/tree.js deleted file mode 100644 index 29e0797..0000000 --- a/vue/template/src/util/tree.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * 根据判断函数裁剪树,当节点不满足predicate且无下级节点时将被裁剪 - * 此方法会改变原数组的children属性! - * - * @param tree {array} 原始树 - * @param predicate {function} 返回false时移除该节点,传入当前节点 - * @param childrenKey {string} 节点中代表子节点数组含义的字段名称,比如[{ch:[...]}]就是'ch' - * @return {array} 经过裁剪后的树 - */ -export function shakeTree(tree, predicate = () => true, childrenKey = 'children') { - if (!tree) return undefined - - return tree.filter(data => { - const children = shakeTree(data[childrenKey], predicate, childrenKey) - - if (children) { - data[childrenKey] = children - } - - return predicate(data) || children && children.length > 0 - }) -} diff --git a/vue/template/src/util/validate.js b/vue/template/src/util/validate.js deleted file mode 100644 index eb14b00..0000000 --- a/vue/template/src/util/validate.js +++ /dev/null @@ -1,7 +0,0 @@ -export function isString(str) { - return typeof str === 'string' || str instanceof String -} - -export function isExternal(path) { - return /^(https?:|mailto:|tel:)/.test(path) -} diff --git a/vue/template/src/view/_app/403.vue b/vue/template/src/view/_app/403.vue deleted file mode 100644 index 32f5238..0000000 --- a/vue/template/src/view/_app/403.vue +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/vue/template/src/view/_app/404.vue b/vue/template/src/view/_app/404.vue deleted file mode 100644 index 36052fd..0000000 --- a/vue/template/src/view/_app/404.vue +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/vue/template/src/view/_app/500.vue b/vue/template/src/view/_app/500.vue deleted file mode 100644 index 4c26f02..0000000 --- a/vue/template/src/view/_app/500.vue +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/vue/template/src/view/_app/login/LoginForm.vue b/vue/template/src/view/_app/login/LoginForm.vue deleted file mode 100644 index 2dd5a86..0000000 --- a/vue/template/src/view/_app/login/LoginForm.vue +++ /dev/null @@ -1,133 +0,0 @@ - - - diff --git a/vue/template/src/view/_app/login/RegisterForm.vue b/vue/template/src/view/_app/login/RegisterForm.vue deleted file mode 100644 index 2a478b6..0000000 --- a/vue/template/src/view/_app/login/RegisterForm.vue +++ /dev/null @@ -1,116 +0,0 @@ - - - diff --git a/vue/template/src/view/_app/login/index.vue b/vue/template/src/view/_app/login/index.vue deleted file mode 100644 index 5743357..0000000 --- a/vue/template/src/view/_app/login/index.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - - - diff --git a/vue/template/src/view/_app/login/style.scss b/vue/template/src/view/_app/login/style.scss deleted file mode 100644 index 7898681..0000000 --- a/vue/template/src/view/_app/login/style.scss +++ /dev/null @@ -1,103 +0,0 @@ -@import "~@/asset/style/var"; - -.login-page { - $background-color: #2d3a4b; - - display: flex; - flex-direction: column; - height: 100%; - overflow: auto; - - canvas { - position: absolute; - height: 100%; - width: 100%; - z-index: -1; - background-color: $background-color; - } - - .login-container { - flex: 1; - padding: 32px 35px; - text-align: center; - width: 520px; - max-width: 100%; - margin: 0 auto; - - .title { - padding-top: 120px; - margin-bottom: 40px; - cursor: pointer; - font-size: 26px; - color: #ffffff; - font-weight: bold; - position: relative; - - .set-animation { - position: absolute; - top: 115px; - font-size: 18px; - right: 10px; - cursor: pointer; - } - } - - .svg-container { - padding: 6px 5px 6px 0; - color: $--color-text-secondary; - vertical-align: middle; - display: inline-block; - } - - .show-pwd { - position: absolute; - right: 10px; - top: 7px; - font-size: 16px; - color: $--color-text-secondary; - cursor: pointer; - user-select: none; - } - - .el-input { - display: inline-block; - height: 47px; - width: 85%; - - input { - background-color: transparent; - border: 0; - -webkit-appearance: none; - border-radius: 0; - padding: 12px 5px 12px 15px; - color: #ffffff; - height: 47px; - } - } - - .el-form-item { - border: 1px solid rgba(255, 255, 255, 0.1); - border-radius: 5px; - background-color: rgba(0, 0, 0, 0.1); - margin-bottom: 22px; - } - - .submit-btn { - width: 100%; - } - - .other-ways { - color: #ffffff; - font-size: 14px; - - svg { - cursor: pointer; - margin-left: 10px; - - &:hover { - color: $--color-primary; - } - } - } - } -} diff --git a/vue/template/src/view/_app/redirect.vue b/vue/template/src/view/_app/redirect.vue deleted file mode 100644 index 55c36e2..0000000 --- a/vue/template/src/view/_app/redirect.vue +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/vue/template/src/view/_common/ExceptionPage/index.vue b/vue/template/src/view/_common/ExceptionPage/index.vue deleted file mode 100644 index b102e6d..0000000 --- a/vue/template/src/view/_common/ExceptionPage/index.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - diff --git a/vue/template/src/view/_common/ExceptionPage/style.scss b/vue/template/src/view/_common/ExceptionPage/style.scss deleted file mode 100644 index 982983e..0000000 --- a/vue/template/src/view/_common/ExceptionPage/style.scss +++ /dev/null @@ -1,47 +0,0 @@ -@import "~@/asset/style/var"; -@import "~@/asset/style/mixin.scss"; - -.exception { - width: 100%; - height: 80%; - display: flex; - align-items: center; - justify-content: center; - text-align: center; - - img { - height: 360px; - max-width: 430px; - padding-right: 52px; - } - - .content { - h1 { - color: $--color-text-primary; - font-size: 72px; - font-weight: 600; - line-height: 72px; - margin-bottom: 24px; - } - - .desc { - color: $--color-text-secondary; - font-size: 20px; - line-height: 28px; - margin-bottom: 16px; - } - } -} - -@include mobile{ - .exception { - height: 100%; - flex-direction: column; - - img { - height: 40%; - max-width: 80%; - padding-right: unset; - } - } -} diff --git a/vue/template/src/view/_common/SkeletonPage/index.vue b/vue/template/src/view/_common/SkeletonPage/index.vue deleted file mode 100644 index 0a1dd81..0000000 --- a/vue/template/src/view/_common/SkeletonPage/index.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/vue/template/src/view/_common/SkeletonPage/style.scss b/vue/template/src/view/_common/SkeletonPage/style.scss deleted file mode 100644 index 59b2b9e..0000000 --- a/vue/template/src/view/_common/SkeletonPage/style.scss +++ /dev/null @@ -1,46 +0,0 @@ -@import "~el-admin-layout/src/style/var"; - -.skeleton-page-wrapper { - margin: $page-view-margin; -} - -.skeleton-page { - width: 100%; - display: table; - - & + & { - margin-top: 20px; - } - - &__header, - &__content { - display: table-cell; - } - - &__header { - padding-top: 2px; - padding-right: 16px; - vertical-align: top; - } - - &__content { - width: 100%; - - > .q-skeleton { - width: 50%; - } - - .skeleton-page__paragraph { - margin-top: 28px; - padding: 0; - - .q-skeleton:last-child:not(:first-child):not(:nth-child(2)) { - width: 61%; - } - - .q-skeleton + .q-skeleton { - margin-top: 16px; - } - } - } -} diff --git a/vue/template/src/view/admin/index/indexPage.vue b/vue/template/src/view/admin/index/indexPage.vue deleted file mode 100644 index 36e7372..0000000 --- a/vue/template/src/view/admin/index/indexPage.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/vue/template/src/view/example/component/skeletonPage.vue b/vue/template/src/view/example/component/skeletonPage.vue deleted file mode 100644 index 1419cb3..0000000 --- a/vue/template/src/view/example/component/skeletonPage.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - - diff --git a/vue/template/src/view/example/globalMethod/messagePage.vue b/vue/template/src/view/example/globalMethod/messagePage.vue deleted file mode 100644 index b57d91a..0000000 --- a/vue/template/src/view/example/globalMethod/messagePage.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/vue/template/src/view/example/icon/element-icon.js b/vue/template/src/view/example/icon/element-icon.js deleted file mode 100644 index b3fcd96..0000000 --- a/vue/template/src/view/example/icon/element-icon.js +++ /dev/null @@ -1,15 +0,0 @@ -const originHtml = `
  • el-icon-platform-eleme
  • el-icon-eleme
  • el-icon-delete-solid
  • el-icon-delete
  • el-icon-s-tools
  • el-icon-setting
  • el-icon-user-solid
  • el-icon-user
  • el-icon-phone
  • el-icon-phone-outline
  • el-icon-more
  • el-icon-more-outline
  • el-icon-star-on
  • el-icon-star-off
  • el-icon-s-goods
  • el-icon-goods
  • el-icon-warning
  • el-icon-warning-outline
  • el-icon-question
  • el-icon-info
  • el-icon-remove
  • el-icon-circle-plus
  • el-icon-success
  • el-icon-error
  • el-icon-zoom-in
  • el-icon-zoom-out
  • el-icon-remove-outline
  • el-icon-circle-plus-outline
  • el-icon-circle-check
  • el-icon-circle-close
  • el-icon-s-help
  • el-icon-help
  • el-icon-minus
  • el-icon-plus
  • el-icon-check
  • el-icon-close
  • el-icon-picture
  • el-icon-picture-outline
  • el-icon-picture-outline-round
  • el-icon-upload
  • el-icon-upload2
  • el-icon-download
  • el-icon-camera-solid
  • el-icon-camera
  • el-icon-video-camera-solid
  • el-icon-video-camera
  • el-icon-message-solid
  • el-icon-bell
  • el-icon-s-cooperation
  • el-icon-s-order
  • el-icon-s-platform
  • el-icon-s-fold
  • el-icon-s-unfold
  • el-icon-s-operation
  • el-icon-s-promotion
  • el-icon-s-home
  • el-icon-s-release
  • el-icon-s-ticket
  • el-icon-s-management
  • el-icon-s-open
  • el-icon-s-shop
  • el-icon-s-marketing
  • el-icon-s-flag
  • el-icon-s-comment
  • el-icon-s-finance
  • el-icon-s-claim
  • el-icon-s-custom
  • el-icon-s-opportunity
  • el-icon-s-data
  • el-icon-s-check
  • el-icon-s-grid
  • el-icon-menu
  • el-icon-share
  • el-icon-d-caret
  • el-icon-caret-left
  • el-icon-caret-right
  • el-icon-caret-bottom
  • el-icon-caret-top
  • el-icon-bottom-left
  • el-icon-bottom-right
  • el-icon-back
  • el-icon-right
  • el-icon-bottom
  • el-icon-top
  • el-icon-top-left
  • el-icon-top-right
  • el-icon-arrow-left
  • el-icon-arrow-right
  • el-icon-arrow-down
  • el-icon-arrow-up
  • el-icon-d-arrow-left
  • el-icon-d-arrow-right
  • el-icon-video-pause
  • el-icon-video-play
  • el-icon-refresh
  • el-icon-refresh-right
  • el-icon-refresh-left
  • el-icon-finished
  • el-icon-sort
  • el-icon-sort-up
  • el-icon-sort-down
  • el-icon-rank
  • el-icon-loading
  • el-icon-view
  • el-icon-c-scale-to-original
  • el-icon-date
  • el-icon-edit
  • el-icon-edit-outline
  • el-icon-folder
  • el-icon-folder-opened
  • el-icon-folder-add
  • el-icon-folder-remove
  • el-icon-folder-delete
  • el-icon-folder-checked
  • el-icon-tickets
  • el-icon-document-remove
  • el-icon-document-delete
  • el-icon-document-copy
  • el-icon-document-checked
  • el-icon-document
  • el-icon-document-add
  • el-icon-printer
  • el-icon-paperclip
  • el-icon-takeaway-box
  • el-icon-search
  • el-icon-monitor
  • el-icon-attract
  • el-icon-mobile
  • el-icon-scissors
  • el-icon-umbrella
  • el-icon-headset
  • el-icon-brush
  • el-icon-mouse
  • el-icon-coordinate
  • el-icon-magic-stick
  • el-icon-reading
  • el-icon-data-line
  • el-icon-data-board
  • el-icon-pie-chart
  • el-icon-data-analysis
  • el-icon-collection-tag
  • el-icon-film
  • el-icon-suitcase
  • el-icon-suitcase-1
  • el-icon-receiving
  • el-icon-collection
  • el-icon-files
  • el-icon-notebook-1
  • el-icon-notebook-2
  • el-icon-toilet-paper
  • el-icon-office-building
  • el-icon-school
  • el-icon-table-lamp
  • el-icon-house
  • el-icon-no-smoking
  • el-icon-smoking
  • el-icon-shopping-cart-full
  • el-icon-shopping-cart-1
  • el-icon-shopping-cart-2
  • el-icon-shopping-bag-1
  • el-icon-shopping-bag-2
  • el-icon-sold-out
  • el-icon-sell
  • el-icon-present
  • el-icon-box
  • el-icon-bank-card
  • el-icon-money
  • el-icon-coin
  • el-icon-wallet
  • el-icon-discount
  • el-icon-price-tag
  • el-icon-news
  • el-icon-guide
  • el-icon-male
  • el-icon-female
  • el-icon-thumb
  • el-icon-cpu
  • el-icon-link
  • el-icon-connection
  • el-icon-open
  • el-icon-turn-off
  • el-icon-set-up
  • el-icon-chat-round
  • el-icon-chat-line-round
  • el-icon-chat-square
  • el-icon-chat-dot-round
  • el-icon-chat-dot-square
  • el-icon-chat-line-square
  • el-icon-message
  • el-icon-postcard
  • el-icon-position
  • el-icon-turn-off-microphone
  • el-icon-microphone
  • el-icon-close-notification
  • el-icon-bangzhu
  • el-icon-time
  • el-icon-odometer
  • el-icon-crop
  • el-icon-aim
  • el-icon-switch-button
  • el-icon-full-screen
  • el-icon-copy-document
  • el-icon-mic
  • el-icon-stopwatch
  • el-icon-medal-1
  • el-icon-medal
  • el-icon-trophy
  • el-icon-trophy-1
  • el-icon-first-aid-kit
  • el-icon-discover
  • el-icon-place
  • el-icon-location
  • el-icon-location-outline
  • el-icon-location-information
  • el-icon-add-location
  • el-icon-delete-location
  • el-icon-map-location
  • el-icon-alarm-clock
  • el-icon-timer
  • el-icon-watch-1
  • el-icon-watch
  • el-icon-lock
  • el-icon-unlock
  • el-icon-key
  • el-icon-service
  • el-icon-mobile-phone
  • el-icon-bicycle
  • el-icon-truck
  • el-icon-ship
  • el-icon-basketball
  • el-icon-football
  • el-icon-soccer
  • el-icon-baseball
  • el-icon-wind-power
  • el-icon-light-rain
  • el-icon-lightning
  • el-icon-heavy-rain
  • el-icon-sunrise
  • el-icon-sunrise-1
  • el-icon-sunset
  • el-icon-sunny
  • el-icon-cloudy
  • el-icon-partly-cloudy
  • el-icon-cloudy-and-sunny
  • el-icon-moon
  • el-icon-moon-night
  • el-icon-dish
  • el-icon-dish-1
  • el-icon-food
  • el-icon-chicken
  • el-icon-fork-spoon
  • el-icon-knife-fork
  • el-icon-burger
  • el-icon-tableware
  • el-icon-sugar
  • el-icon-dessert
  • el-icon-ice-cream
  • el-icon-hot-water
  • el-icon-water-cup
  • el-icon-coffee-cup
  • el-icon-cold-drink
  • el-icon-goblet
  • el-icon-goblet-full
  • el-icon-goblet-square
  • el-icon-goblet-square-full
  • el-icon-refrigerator
  • el-icon-grape
  • el-icon-watermelon
  • el-icon-cherry
  • el-icon-apple
  • el-icon-pear
  • el-icon-orange
  • el-icon-coffee
  • el-icon-ice-tea
  • el-icon-ice-drink
  • el-icon-milk-tea
  • el-icon-potato-strips
  • el-icon-lollipop
  • el-icon-ice-cream-square
  • el-icon-ice-cream-round
` - -function transfer(html) { - let parent = document.createElement('span') - parent.innerHTML = html - let child = parent.childNodes[0] - let list = child.getElementsByTagName('i') - let result = [] - for (let i = 0; i < list.length; i++) { - result[i] = list[i].className - } - return result -} - -export default transfer(originHtml) diff --git a/vue/template/src/view/example/icon/indexPage.vue b/vue/template/src/view/example/icon/indexPage.vue deleted file mode 100644 index d4403f7..0000000 --- a/vue/template/src/view/example/icon/indexPage.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - - - diff --git a/vue/template/src/view/example/test/cache/detailPage.vue b/vue/template/src/view/example/test/cache/detailPage.vue deleted file mode 100644 index 3e1959e..0000000 --- a/vue/template/src/view/example/test/cache/detailPage.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/vue/template/vue.config.js b/vue/template/vue.config.js deleted file mode 100644 index e724b9b..0000000 --- a/vue/template/vue.config.js +++ /dev/null @@ -1,55 +0,0 @@ -'use strict' -const path = require('path') -const settings = require('./src/config') - -function resolve(dir) { - return path.join(__dirname, dir) -} - -// All configuration item explanations can be find in https://cli.vuejs.org/config/ -module.exports = { - publicPath: settings.contextPath, - outputDir: 'dist', - assetsDir: 'static', - runtimeCompiler: true, - lintOnSave: false, - productionSourceMap: settings.isDev, - transpileDependencies: ['el-admin-layout'], - devServer: { - port: process.env.port || 8079, - contentBasePublicPath: settings.contextPath, - open: true, - overlay: { - warnings: true, - errors: true - } - }, - configureWebpack: { - name: settings.title, - resolve: { - alias: { - '@': resolve('src'), - '@ele': resolve('element-ui-personal') - } - } - }, - chainWebpack(config) { - config.plugins.delete('preload') - config.plugins.delete('prefetch') - - // set svg-sprite-loader - config.module - .rule('svg') - .exclude.add(resolve('src/asset/icon')) - .end() - config.module - .rule('icons') - .test(/\.svg$/) - .include.add(resolve('src/asset/icon')) - .end() - .use('svg-sprite-loader') - .loader('svg-sprite-loader') - .options({symbolId: 'icon-[name]'}) - .end() - } -}