diff --git a/README.md b/README.md deleted file mode 100644 index 626ccef8..00000000 --- a/README.md +++ /dev/null @@ -1,281 +0,0 @@ - - -

Yi框架

-

一套与SqlSugar一样爽的.Net6开源框架

-

集大成者,终究轮子

- -[English](README-en.md) | 简体中文 - -![sdk](https://img.shields.io/badge/sdk-6.0.1-d.svg)![License MIT](https://img.shields.io/badge/license-Apache-blue.svg?style=flat-square) - -**** -### 简介: -**中文:意框架**(和他的名字一样“简易”,同时接入Java的Ruoyi Vue3.0前端) - -模块分化较多,可根据业务自行引用或抛弃,集大成者,大而全乎,也许你能从中学习到一些独特见解 - -正在持续更进业务模块,已接入ruoyi - -**英文:YiFramework** - -Yi框架-一套与SqlSugar一样爽的.Net6低代码开源框架。 -与Sqlsugar理念一致,以用户体验出发。 -架构干净整洁、无业务代码、采用微软风格原生框架封装、CodeFrist+配套自研文件模板代码生成器 开发。 -适合.Net6学习、Sqlsugar学习 、项目二次开发。 -集大成者,终究轮子 - -Yi框架最新版本标签:`v1.2.1`,具体版本可以查看标签迭代 - -(项目与Sqlsugar同步更新,但这作者老杰哥代码天天爆肝到凌晨两点,我们也尽量会跟上他的脚步。更新频繁,所以可watching持续关注。) - -————这不仅仅是一个程序,更是一个艺术品,面向艺术的开发! - -**分支**: - -(本项目由EFCore版本历经3年不断迭代至Sqlsugar版本,现EFcore版本已弃用,目前sqlsugar已带业务功能) - -**SqlSugar**:.Net6 DDD领域驱动设计 简单分层微服务架构 - -- Yi.Framework.Net6:.NetCore 6 意框架 (后端) - -- Yi.Vue3.X.RuoYi:Vue3 RuoYi前端框架 (前端后台) - - (你没有听错,已经接入java流行指数最高最火爆的框架之一,与其他框架不同,Yi框架后端为完全重制版,并非为ruoyi java模仿版) - -- Yi.Vue3.x.Vant:Vue3 移动端前端框架 (前端前台)持续迭代 - -**SqlSugar-Dev**:为sqlsugar分支的实时开发版本 - -~~**ec**: EFcore完整电商项目~~ - -**** - -### 演示地址: - -废话少说直接上地址,**请不要**更改里面的数据 - -API服务:[yi.ccnetcore.com](http://yi.ccnetcore.com) 管理员账号:cc 、 123456 - -网关地址:~~[gate.ccnetcore.com/swagger](http://gate.ccnetcore.com/swagger)~~ - -~~WebFirst开发:所有代码生成器已经配置完成,无需任何操作数据库及任何代码,只需要网页表格上点点点即可~~ - -代码自动生成: - -![代码生成](Readme/%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90.gif) - -### 支持: - -- [x] 完全支持单体应用架构 -- [x] 完全支持分布式应用架构 -- [x] 完全支持微服务架构 -- [ ] 即将支持网格服务架构(我们将在后续版本加入dapr) - -**** -### 软件架构: - -**架构**:后端.NET6(Asp.NetCore 6)、WebFirst代码生成器~~与.NET5(Asp.NetCore 5)、前端Vue(2.0)~~ - -**关系型数据库**:mysql、sql server、sqlite、oracle(正在兼容中) - -**操作系统**:Windows、Linux - -**身份验证**:JWT、IdentityServer4 - -**组件**:SqlSugar、Autofac、Castle、Swagger、Log4Net、Redis、RabbitMq、ES、Quartz.net、~~T4~~ - -**分布式**:CAP、Lock - -**微服务**:Consul、Ocelot、IdentityService、Apollo、Docker、Jenkins、Nginx、K8s、ELK、Polly - -**封装**:Json处理模块,滑动验证码模块,base64图片处理模块,异常捕捉模块、邮件处理模块、linq封装模块、随机数模块、统一接口模块、基于策略的jwt验证、过滤器、数据库连接、跨域、初始化种子数据、Base32、Console输出、日期处理、文件传输、html筛选、http请求、ip过滤、md5加密、Rsa加密、序列化、雪花算法、字符串处理、编码处理、地址处理、xml处理、心跳检查。。。 - -**** -

业务支持模块

- -RABC权限管理系统(正在更新) -(大部分ruoyi功能,采用ruoyi前端) -- 用户管理 -- 角色管理 -- 菜单管理 -- 部门管理 -- 岗位管理 -- 字典管理 -- 参数管理 -- 用户在线 -- 操作日志 -- 登录日志 -- 等等 - -ERP进销存系统(正在更新) -- 供货商管理 -- 等等 - -BBS论坛系统(持续迭代) -- 文章管理 -- 评论管理 -- 等等 - -SHOP电商系统(持续迭代) -- SPU管理 -- SKU管理 -- 商品规格 -- 商品分类 -- 等等 - - -![输入图片说明](Readme/%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86.png) - -![输入图片说明](Readme/%E8%8F%9C%E5%8D%95%E7%AE%A1%E7%90%86.png) - -### 框架支持模块: - -大致如图: - -![image](https://user-images.githubusercontent.com/68722157/142923071-2fa524eb-e833-4143-a926-51566e56e889.png) -![image](https://user-images.githubusercontent.com/68722157/142923150-ebe1b538-c3fc-42dd-bea8-83e10e0f819a.png) -![image](https://user-images.githubusercontent.com/68722157/142923529-e4fbb2f6-def1-4702-b9da-5adbd22f0a2f.png) - -(删除线代表已实现功能还未迁移过来) -- [x] 支持大致`DDD领域驱动设计`进行分层,支持微服务扩展 -- [x] 支持采用`异步`开发awit/async -- [x] 支持数据库主从`读写分离` -- [x] 支持功能替换,无需改动代码,只需配置`json文件`进行装配即可 -- [x] 支持`Aop封装`,FilterAop、IocAop、LogAop、SqlAop -- [x] 支持`Log4Net日志`记录,自动生成至bin目录下的logs文件夹 -- [x] 支持`DbSeed数据库种子数据`接入 -- [x] 支持主流`数据库随意切换`,Mysql/Sqlite/Sqlserver/Oracle -- [x] 支持上海杰哥官方`SqlSugar ORM`封装 -- [x] 支持新版`SwaggerWebAPI`,jwt身份认证接入 -- [x] 支持`Cors`跨域 -- [x] 支持`AutoFac`自动映射依赖注入 -- [x] 支持`consul`服务器注册与发现 -- [x] 支持`健康检查` -- [x] 支持`RabbitMQ`消息队列 -- [x] 支持`Redis`多级缓存 -- [x] 支持`MemoryCache`多级缓存 -- [x] 支持`Ocelot`网关,路由、服务聚合、服务发现、认证、鉴权、限流、熔断、缓存、Header头传递 -- [x] 支持`Apollo`全局配置中心; -- [x] 支持`docker`镜像制作 -- [x] 支持`Quartz.net`任务调度,实现任意接口被调度 -- [x] 支持`ThumbnailSharp`缩略图封装 -- [x] 支持`ELK`,log4net+kafka+es+logstach+kibana -- [x] 支持`IdentityService4`授权中心 -- [x] 支持`Es`分词查询 -- [x] 支持多级`缓存` -- [x] 支持`CAP`分布式事务,mysql+rabbitMq -- [x] 支持`Docker+k8s`部署 -- [x] 支持`Jenkins+CI/CD` -- [x] 支持`AutoMapper`模块映射 -- [x] 支持`微信支付`模块 -- [x] 支持`单表多租户`常用功能 -- [x] 支持`逻辑删除`常用功能 -- [x] 支持`操作日志`常用功能 -- [x] 支持`自动分表` -- [x] 支持`数据权限` -- [x] 支持`CodeFrist`快速构建数据库 -- [x] 支持自研文件版`代码生成器`快速构建通用代码 -- [x] 支持完整`Dto`模式 -- [x] 支持 太多了忘了 - - -**** -### 目录结构: - -![image](https://s1.ax1x.com/2022/04/09/LCTleH.png) -![image](https://s1.ax1x.com/2022/04/24/L4qlSs.png) -![image](https://s1.ax1x.com/2022/04/24/L4q1ln.png) - -我们大致依照DDD领域驱动设计分层 - -分层如此清晰!什么?还感觉太复杂了?用户只需关注Api、Service其他都是轮子啊! - -- BackGround:后台进程(通常使用消息队列进行消费任务) -- Test:测试(单元测试) -- Domain:领域层(Dto、服务接口层、模型层、仓储层、服务层) -- Infrastructure:基础实例层(通用工具层、核心层、定时任务Job、国际化、Web扩展层) -- Module:模块层(其他模块,可按需进行引入,例如微信支付、代码生成) -- MicroServiceInstance:服务层(微服务) - -**** -### 安装教程: - -我们将在之后更新教程手册! - -后端 -1. 下载全部源码,默认使用sqlite数据库,已经生成 -2. 直接点击sln文件运行即可,没有任何其他依赖 - -前端 -1. 下载全部源码,npm i 安装依赖 -2. 使用npm run dev进行运行 - - -**** -### 使用说明: - -~~1. 导入使用仓库中的WebFirst数据库~~ -~~2. 使用WebFirst添加实体、同步实体、修改模板生成路径并生成方案~~ - - 没了,恭喜你已经成功完成了项目,并且已经具备大部分通用场景业务 -是不是一个字?爽! -到此为止,你无需写任何一个代码! - -**爽点**: - -新人,看这里,项目下载之后直接可以启动,无任何依赖,之后你可以查看`Test控制器`,迫不及待的快来爽一爽! - -我们将使用说明转移至我们的官方论坛中,正在制作中,尽情期待! - -**** -### 感谢: - -**大力支持**: Eleven神、Sqlsugar上海杰哥、Gerry、哲学的老张 - -[橙子]https://ccnetcore.com - -[lzw]https://github.com/yeslode - -[朝夕教育]https://www.zhaoxiedu.net - -[Sqlsugar]https://www.donet5.com/Home/Doc - -[RuYiAdmin]https://gitee.com/pang-mingjun/RuYiAdmin - -[ZrAdminNetCore]https://gitee.com/izory/ZrAdminNetCore - -**** -### 联系我们: - -作者QQ:`454313500`,2029年之前作者24小时在线,时刻保持活跃更新。 - -QQ交流群:官方一群(已满)、官方二群(已满)、官方三群:`786308927`(加作者QQ后同意) - -联系作者,这里人人都是顾问 - -官方网址:正在建设 - -**** -### FQA: - -问1:为什么不采用EFcore? - -答1:别问,问就是Sqlsugar,和本框架一样爽! - -问2:以后会持续更新下去吗? - -答2:一定会的,我们的标题是 一个和Sqlsugar一样爽的.Net6开源框架 ,只要Sqlsugar在,我们将一直更新下去。 - -问3:这个框架的针对人群是哪些人?适合所有人吗? - -答3:并不是适合所有人,应该算适合需要有一定基础的开发人员,当然,如果你是大神,你完全可以将这个框架二次开发! - -问4:花如此多的精力制作这个框架,是为了什么?是为了赚钱吗?和目前主流的abp等框架比,又有什么意义呢? - -答4:我们与Sqlsugar作者理念一致,我们是从用户角度出发,框架是为用户服务,与ABP复杂上手理念完全是相反的。 - -问5:为何不出版一个详细的说明书呢? - -答5:暂时不会了,之后可能会,代码都是基于Asp.NetCore框架,适用于新手不用造轮子,整个框架较为简单,阅读源码后,基本能自定义改造使用了,过难也已经封装完毕,别忘了,其意义是为了开发更加简易!建议添加作者好友,这里人人都是顾问。 - -我大抵要厌倦了负重前行。 diff --git a/Readme/代码生成.gif b/Readme/代码生成.gif deleted file mode 100644 index 1a81643e..00000000 Binary files a/Readme/代码生成.gif and /dev/null differ diff --git a/Readme/用户管理.png b/Readme/用户管理.png deleted file mode 100644 index b870e6ed..00000000 Binary files a/Readme/用户管理.png and /dev/null differ diff --git a/Readme/菜单管理.png b/Readme/菜单管理.png deleted file mode 100644 index 55e0425c..00000000 Binary files a/Readme/菜单管理.png and /dev/null differ diff --git a/Yi.Framework.Net6/.dockerignore b/Yi.Framework.Net6/.dockerignore deleted file mode 100644 index 3729ff0c..00000000 --- a/Yi.Framework.Net6/.dockerignore +++ /dev/null @@ -1,25 +0,0 @@ -**/.classpath -**/.dockerignore -**/.env -**/.git -**/.gitignore -**/.project -**/.settings -**/.toolstarget -**/.vs -**/.vscode -**/*.*proj.user -**/*.dbmdl -**/*.jfm -**/azds.yaml -**/bin -**/charts -**/docker-compose* -**/Dockerfile* -**/node_modules -**/npm-debug.log -**/obj -**/secrets.dev.yaml -**/values.dev.yaml -LICENSE -README.md \ No newline at end of file diff --git a/Yi.Framework.Net6/.editorconfig b/Yi.Framework.Net6/.editorconfig deleted file mode 100644 index 4de968e1..00000000 --- a/Yi.Framework.Net6/.editorconfig +++ /dev/null @@ -1,4 +0,0 @@ -[*.cs] - -# SYSLIB0014: 类型或成员已过时 -dotnet_diagnostic.SYSLIB0014.severity = none diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/Log4net.config b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/Log4net.config deleted file mode 100644 index 958c7e78..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/Log4net.config +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml deleted file mode 100644 index 7024d905..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml +++ /dev/null @@ -1,928 +0,0 @@ - - - - Yi.Framework.ApiMicroservice - - - - - Json To Sql 类比模式,通用模型 - - - - - - 主键查询 - - - - - - - 列表查询 - - - - - - 条件分页查询 - - - - - - - 添加 - - - - - - - 修改 - - - - - - - 列表删除 - - - - - - - 下载模板 - - - - - - 导出数据 - - - - - - 导入数据 - - - - - - Json To Sql 类比模式,通用模型 - - - - - - 主键查询 - - - - - - - 全部列表查询 - - - - - - 添加 - - - - - - - 修改 - - - - - - - 列表删除 - - - - - - - Json To Sql 类比模式,通用模型 - - - - - - 主键查询 - - - - - - - 全部列表查询 - - - - - - 列表删除 - - - - - - - 点赞操作 - - - - - - - 文章控制器 - - - - - 动态条件分页查询 - - - - - - - - 添加 - - - - - - - 获取文章的全部一级评论 - - - - - - 获取一级评论详情 - - - - - - - 回复文章或回复评论 - - - - - - 分页查 - - - - - - 单查 - - - - - - 增 - - - - - - - 更 - - - - - - - - 删 - - - - - - - 分页查 - - - - - - 单查 - - - - - - 增 - - - - - - - 更 - - - - - - - - 删 - - - - - - - 分页查 - - - - - - 单查 - - - - - - 增 - - - - - - - 更 - - - - - - - - 删 - - - - - - - 分页查 - - - - - - 单查 - - - - - - 增 - - - - - - - 更 - - - - - - - - 删 - - - - - - - 分页查 - - - - - - 单查 - - - - - - 全查 - - - - - - 增 - - - - - - - 更 - - - - - - - - 删 - - - - - - - 分页查 - - - - - - 单查 - - - - - - 增 - - - - - - - 更 - - - - - - - - 删 - - - - - - - 账户管理 - - - - - 重置管理员CC的密码 - - - - - - 没啥说,登录 - - - - - - - 没啥说,注册 - - - - - - - 没啥说,登出 - - - - - - 通过已登录的用户获取用户信息 - - - - - - 获取当前登录用户的前端路由 - - - - - - 自己更新密码 - - - - - - - 验证码 - - - - - - 动态条件分页查询 - - - - - - - - 动态条件查询 - - - - - - - 添加 - - - - - - - 更新 - - - - - - - 根据角色id获取该角色下全部部门 - - - - - - - 动态条件分页查询 - - - - - - - - 动态条件分页查询 - - - - - - - - 根据字典类别获取字典信息 - - - - - - - 文件 - - - - - 文件上传下载 - - - - - - - - 文件下载,只需用文件code即可,可选择是否为缩略图 - - - - - - - - 多文件上传,type可空,默认上传至File文件夹下,swagger返回雪花id精度是有问题的,同时如果时图片类型,还需要进行缩略图制作 - - 文件类型,可空 - 多文件表单 - 描述 - - - - - 一键同步图片到缩略图 - - - - - - 自动分表,日志添加 - - - - - - 查询近20年与21年的日志表 - - - - - - 动态条件分页查询 - - - - - - - - 菜单管理 - - - - - 动态条件查询全部 - - - - - - - 插入 - - - - - - - 更新 - - - - - - - 得到树形菜单 - - - - - - 根据角色id获取该角色下全部菜单 - - - - - - - 在线管理 - - - - - 动态条件获取当前在线用户 - - - - - - - - 强制退出用户 - - - - - - - 动态条件分页查询 - - - - - - - - 动态条件分页查询 - - - - - - - - 角色管理 - - - - - 动态条件分页查询 - - - - - - 给多用户设置多角色 - - - - - - - 添加角色包含菜单 - - - - - - - 更新角色信息 - - - - - - 更改角色状态 - - - - - - - - 更改角色数据权限 - - - - - - 删除 - - - - - - - 用户管理 - - - - - 动态条件分页查询 - - - - - - - - - 更改用户状态 - - - - - - - - 给多用户设置多角色 - - - - - - - 通过用户id得到用户信息关联部门、岗位、角色 - - - - - - - 更新用户信息 - - - - - - - 更新个人中心信息 - - - - - - - 添加用户 - - - - - - - 重置密码 - - - - - - - 动态条件分页查询 - - - - - - 动态条件分页查询 - - - - - - 测试控制器 - - - - - 依赖注入,优雅写法 - - - - - - - - - - - - - - swagger跳转 - - - - - - 仓储上下文对象测试 - - - - - - 工作单元测试,使用sqlsugar内置 - - - - - - 执行Sql返回 - - - - - - 国际化测试 - - - - - - 权限测试 - - - - - - 策略授权测试 - - - - - - 异步事务测试 - - - - - - 极爽导航属性 - - - - - - 启动一个定时任务 - - - - - - 停止任务 - - - - - - job异常处理 - - - - - - 树形结构构建测试 - - - - - - 授权测试 - - - - - - 清空数据库 - - - - - - 种子数据 - - - - - - 操作日志测试 - - - - - - - Signalr实时推送测试 - - - - - - - 缩略图测试,需要生成前及生成后的路径 - - - - - - 缓存测试 - - - - - - 自定义日志 - - - - - - 属性注入测试 - - - - - - 获取当前用户信息测试 - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/configuration.json b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/configuration.json deleted file mode 100644 index 4431edcd..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/configuration.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "apollo": { - "AppId": "ApiMicroservice", - "Env": "DEV", - "MetaServer": "http://[xxxx]:18080", - "ConfigServer": [ "http://[xxxx]:18080" ] - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/BBS/AgreeController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/BBS/AgreeController.cs deleted file mode 100644 index e76c7a02..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/BBS/AgreeController.cs +++ /dev/null @@ -1,53 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using Org.BouncyCastle.Asn1.IsisMtt.X509; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Attribute; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.BBS; -using Yi.Framework.Model.BBS.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class AgreeController : ControllerBase - { - [Autowired] - public IAgreeService? _iAgreeService { get; set; } - [Autowired] - public IArticleService? _iArticleService { get; set; } - [Autowired] - public ILogger? _logger { get; set; } - - /// - /// 点赞操作 - /// - /// - /// - [HttpGet] - public async Task Operate(long articleId) - { - long userId = HttpContext.GetUserIdInfo(); - if (await _iAgreeService!.OperateAsync(articleId, userId)) - { - return Result.Success("点赞成功"); - - } - else - { - return Result.Success("已点赞,取消点赞").StatusFalse(); - } - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/BBS/ArticleController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/BBS/ArticleController.cs deleted file mode 100644 index 59194929..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/BBS/ArticleController.cs +++ /dev/null @@ -1,64 +0,0 @@ -using AutoMapper; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.Base.Vo; -using Yi.Framework.Interface; -using Yi.Framework.Interface.BBS; -using Yi.Framework.Model.BBS.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - /// - /// 文章控制器 - /// - [ApiController] - [Route("api/[controller]/[action]")] - public class ArticleController : BaseSimpleCrudController - { - private IArticleService _iArticleService; - private IMapper _mapper; - public ArticleController(ILogger logger, IArticleService iArticleService, IMapper mapper) : base(logger, iArticleService) - { - _iArticleService = iArticleService; - _mapper = mapper; - } - - /// - /// 动态条件分页查询 - /// - /// - /// - /// - [HttpGet] - public async Task PageList([FromQuery] ArticleEntity entity, [FromQuery] PageParModel page) - { - var pageData = await _iArticleService.SelctPageList(entity, page); - return Result.Success().SetData(new PageModel() { Data = _mapper.Map>(pageData.Data), Total = pageData.Total }); - } - - /// - /// 添加 - /// - /// - /// - public override Task Add(ArticleEntity entity) - { - //如果标题为空,默认为内容的前20个字符 - entity.Title = string.IsNullOrEmpty(entity.Title) ? - (entity.Content?.Length > 20 ? entity.Content.Substring(0, 20) : entity.Content) : - entity.Title; - entity.UserId = HttpContext.GetUserIdInfo(); - return base.Add(entity); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/BBS/CommentController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/BBS/CommentController.cs deleted file mode 100644 index 523b6748..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/BBS/CommentController.cs +++ /dev/null @@ -1,67 +0,0 @@ -using AutoMapper; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.Base.Vo; -using Yi.Framework.Interface; -using Yi.Framework.Interface.BBS; -using Yi.Framework.Model.BBS.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class CommentController : BaseSimpleCrudController - { - private ICommentService _iCommentService; - private IMapper _mapper; - public CommentController(ILogger logger, ICommentService iCommentService, IMapper mapper) : base(logger, iCommentService) - { - _iCommentService = iCommentService; - _mapper = mapper; - } - - /// - /// 获取文章的全部一级评论 - /// - /// - [HttpGet] - [Route("{articleId}")] - public async Task GetListByArticleId(long articleId) - { - //一级评论被回复的用户id为空 - var data = await _repository._DbQueryable.Where(u => u.ParentId == 0 && u.ArticleId == articleId).Includes(u => u.CreateUserInfo).OrderByDescending(u=>u.CreateTime).ToListAsync(); - return Result.Success().SetData(_mapper.Map>(data)); - } - - /// - /// 获取一级评论详情 - /// - /// - /// - public override async Task GetById([FromRoute] long id) - { - var data = await _repository._DbQueryable.Includes(u => u.CreateUserInfo).Includes(u => u.UserInfo).FirstAsync(u => u.Id == id); - return Result.Success().SetData(_mapper.Map(data)); - } - - /// - /// 回复文章或回复评论 - /// - /// - [HttpPost] - public override async Task Add(CommentEntity comment) - { - return Result.Success().SetStatus(await _iCommentService.AddAsync(comment)); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Base/BaseCrudController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Base/BaseCrudController.cs deleted file mode 100644 index 5d196a9d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Base/BaseCrudController.cs +++ /dev/null @@ -1,93 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Localization; -using Yi.Framework.Common.Helper; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Language; -using Yi.Framework.Model.Base.Query; -using Yi.Framework.Repository; -using Yi.Framework.WebCore.AttributeExtend; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - /// - /// Json To Sql 类比模式,通用模型 - /// - /// - [ApiController] - public class BaseCrudController : BaseExcelController where T : class,new() - { - protected readonly ILogger _logger; - protected IBaseService _baseService; - public BaseCrudController(ILogger logger, IBaseService iBaseService):base(iBaseService._repository) - { - _logger = logger; - _baseService = iBaseService; - } - - /// - /// 主键查询 - /// - /// - /// - [HttpGet] - public virtual async Task GetById(long id) - { - return Result.Success().SetData(await _repository.GetByIdAsync(id)); - } - - /// - /// 列表查询 - /// - /// - [HttpPost] - public virtual async Task GetList(QueryCondition queryCondition) - { - return Result.Success().SetData(await _repository.GetListAsync(queryCondition)); - } - - /// - /// 条件分页查询 - /// - /// - /// - [HttpPost] - public virtual async Task PageList(QueryPageCondition queryCondition) - { - return Result.Success().SetData(await _repository.CommonPageAsync(queryCondition)); - } - - /// - /// 添加 - /// - /// - /// - [HttpPost] - public virtual async Task Add(T entity) - { - return Result.Success().SetData(await _repository.InsertReturnSnowflakeIdAsync(entity)); - } - - /// - /// 修改 - /// - /// - /// - [HttpPut] - public virtual async Task Update(T entity) - { - return Result.Success().SetStatus(await _repository.UpdateIgnoreNullAsync(entity)); - } - - /// - /// 列表删除 - /// - /// - /// - [HttpDelete] - public virtual async Task DeleteList(List ids) - { - return Result.Success().SetStatus(await _repository.DeleteByIdAsync(ids.ToDynamicArray())); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Base/BaseExcelController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Base/BaseExcelController.cs deleted file mode 100644 index 1d246613..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Base/BaseExcelController.cs +++ /dev/null @@ -1,74 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Localization; -using Yi.Framework.Common.Const; -using Yi.Framework.Common.Enum; -using Yi.Framework.Common.Helper; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Language; -using Yi.Framework.Repository; -using Yi.Framework.WebCore.AttributeExtend; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - public class BaseExcelController : ControllerBase where T : class, new() - { - protected IRepository _repository; - public BaseExcelController(IRepository repository) - { - _repository = repository; - } - /// - /// 下载模板 - /// - /// - [HttpGet] - [AllowAnonymous] - public IActionResult Template() - { - List users = new(); - var fileName = typeof(T).Name + PathConst.DataTemplate; - var path = ExcelHelper.DownloadImportTemplate(users, fileName, Path.Combine(PathConst.wwwroot, PathEnum.Excel.ToString())); - var file = System.IO.File.OpenRead(path); - return File(file, "text/plain", $"{DateTime.Now.ToString("yyyyMMddHHmmssffff") + fileName }.xlsx"); - } - - - /// - /// 导出数据 - /// - /// - [HttpGet] - [AllowAnonymous] - public async Task Export() - { - var users = await _repository.GetListAsync(); - var fileName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + nameof(T) + PathConst.DataExport; - var path = ExcelHelper.ExportExcel(users, fileName, Path.Combine(PathConst.wwwroot, PathEnum.Temp.ToString())); - var file = System.IO.File.OpenRead(path); - return File(file, "text/plain", $"{ fileName }.xlsx"); - } - - - /// - /// 导入数据 - /// - /// - [HttpPost] - [AllowAnonymous] - public async Task Import([FromForm(Name = "file")]IFormFile formFile) - { - List datas = ExcelHelper.ImportData(formFile.OpenReadStream()); - - //全量删除在重新插入 - var res = await _repository.UseTranAsync(async () => - { - await _repository.DeleteAsync(u => true); - await _repository.InsertRangeAsync(datas); - }); - return Result.Success().SetStatus(res); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Base/BaseSimpleCrudController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Base/BaseSimpleCrudController.cs deleted file mode 100644 index 7cdb6814..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Base/BaseSimpleCrudController.cs +++ /dev/null @@ -1,83 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Localization; -using Yi.Framework.Common.Helper; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Language; -using Yi.Framework.Repository; -using Yi.Framework.WebCore.AttributeExtend; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - /// - /// Json To Sql 类比模式,通用模型 - /// - /// - [ApiController] - public class BaseSimpleCrudController : BaseExcelController where T : class, new() - { - protected readonly ILogger _logger; - protected IBaseService _baseService; - public BaseSimpleCrudController(ILogger logger, IBaseService iBaseService):base(iBaseService._repository) - { - _logger = logger; - _baseService = iBaseService; - } - - /// - /// 主键查询 - /// - /// - /// - [Route("{id}")] - [HttpGet] - public virtual async Task GetById([FromRoute]long id) - { - return Result.Success().SetData(await _repository.GetByIdAsync(id)); - } - - /// - /// 全部列表查询 - /// - /// - [HttpGet] - public virtual async Task GetList() - { - return Result.Success().SetData(await _repository.GetListAsync()); - } - - /// - /// 添加 - /// - /// - /// - [HttpPost] - public virtual async Task Add(T entity) - { - return Result.Success().SetData(await _repository.InsertReturnSnowflakeIdAsync(entity)); - } - - - /// - /// 修改 - /// - /// - /// - [HttpPut] - public virtual async Task Update(T entity) - { - return Result.Success().SetStatus(await _repository.UpdateIgnoreNullAsync(entity)); - } - - /// - /// 列表删除 - /// - /// - /// - [HttpDelete] - public virtual async Task DelList(List ids) - { - return Result.Success().SetStatus(await _repository.DeleteByIdsAsync(ids.ToDynamicArray())); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Base/BaseSimpleRdController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Base/BaseSimpleRdController.cs deleted file mode 100644 index 3f98aadf..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Base/BaseSimpleRdController.cs +++ /dev/null @@ -1,60 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Localization; -using Yi.Framework.Common.Helper; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Language; -using Yi.Framework.Repository; -using Yi.Framework.WebCore.AttributeExtend; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - /// - /// Json To Sql 类比模式,通用模型 - /// - /// - [ApiController] - public class BaseSimpleRdController : BaseExcelController where T : class, new() - { - protected readonly ILogger _logger; - protected IBaseService _baseService; - public BaseSimpleRdController(ILogger logger, IBaseService iBaseService):base(iBaseService._repository) - { - _logger = logger; - _baseService = iBaseService; - } - - /// - /// 主键查询 - /// - /// - /// - [Route("{id}")] - [HttpGet] - public virtual async Task GetById([FromRoute]long id) - { - return Result.Success().SetData(await _repository.GetByIdAsync(id)); - } - - /// - /// 全部列表查询 - /// - /// - [HttpGet] - public virtual async Task GetList() - { - return Result.Success().SetData(await _repository.GetListAsync()); - } - - /// - /// 列表删除 - /// - /// - /// - [HttpDelete] - public virtual async Task DelList(List ids) - { - return Result.Success().SetStatus(await _repository.DeleteByIdsAsync(ids.ToDynamicArray())); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/MaterialController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/MaterialController.cs deleted file mode 100644 index c1ca9d68..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/MaterialController.cs +++ /dev/null @@ -1,81 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Material; -using Yi.Framework.Interface.ERP; - -namespace Yi.Framework.ApiMicroservice.Controllers.ERP -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class MaterialController : ControllerBase - { - private readonly ILogger _logger; - private readonly IMaterialService _materialService; - public MaterialController(ILogger logger, IMaterialService materialService) - { - _logger = logger; - _materialService = materialService; - } - - /// - /// 分页查 - /// - /// - [HttpGet] - public async Task PageList([FromQuery] MaterialCreateUpdateInput input, [FromQuery] PageParModel page) - { - var result = await _materialService.PageListAsync(input, page); - return Result.Success().SetData(result); - } - - /// - /// 单查 - /// - /// - [HttpGet] - [Route("{id}")] - public async Task GetById(long id) - { - var result = await _materialService.GetByIdAsync(id); - return Result.Success().SetData(result); - } - - /// - /// 增 - /// - /// - /// - [HttpPost] - public async Task Create(MaterialCreateUpdateInput input) - { - var result = await _materialService.CreateAsync(input); - return Result.Success().SetData(result); - } - - /// - /// 更 - /// - /// - /// - /// - [HttpPut] - [Route("{id}")] - public async Task Update(long id, MaterialCreateUpdateInput input) - { - var result = await _materialService.UpdateAsync(id, input); - return Result.Success().SetData(result); - } - - /// - /// 删 - /// - /// - /// - [HttpDelete] - public async Task Del(List ids) - { - await _materialService.DeleteAsync(ids); - return Result.Success(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/PurchaseController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/PurchaseController.cs deleted file mode 100644 index 985c356e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/PurchaseController.cs +++ /dev/null @@ -1,83 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Yi.Framework.Common.Abstract; -using Yi.Framework.Common.Attribute; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Purchase; -using Yi.Framework.Interface.ERP; - -namespace Yi.Framework.ApiMicroservice.Controllers.ERP -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class PurchaseController : ControllerBase - { - private readonly ILogger _logger; - private readonly IPurchaseService _purchaseService; - public PurchaseController(ILogger logger, IPurchaseService purchaseService) - { - _logger = logger; - _purchaseService = purchaseService; - } - - /// - /// 分页查 - /// - /// - [HttpGet] - public async Task PageList([FromQuery] PurchaseGetListInput input, [FromQuery] PageParModel page) - { - var result = await _purchaseService.PageListAsync(input, page); - return Result.Success().SetData(result); - } - - /// - /// 单查 - /// - /// - [HttpGet] - [Route("{id}")] - public async Task GetById(long id) - { - var result = await _purchaseService.GetByIdAsync(id); - return Result.Success().SetData(result); - } - - /// - /// 增 - /// - /// - /// - [HttpPost] - public async Task Create(PurchaseCreateInput input) - { - var result = await _purchaseService.CreateAsync(input); - return Result.Success().SetData(result); - } - - /// - /// 更 - /// - /// - /// - /// - [HttpPut] - [Route("{id}")] - public async Task Update(long id, PurchaseUpdateInput input) - { - var result = await _purchaseService.UpdateAsync(id, input); - return Result.Success().SetData(result); - } - - /// - /// 删 - /// - /// - /// - [HttpDelete] - public async Task Del(List ids) - { - await _purchaseService.DeleteAsync(ids); - return Result.Success(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/PurchaseDetailsController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/PurchaseDetailsController.cs deleted file mode 100644 index b1b5dd45..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/PurchaseDetailsController.cs +++ /dev/null @@ -1,81 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.PurchaseDetails; -using Yi.Framework.Interface.ERP; - -namespace Yi.Framework.ApiMicroservice.Controllers.ERP -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class PurchaseDetailsController : ControllerBase - { - private readonly ILogger _logger; - private readonly IPurchaseDetailsService _purchaseDetailsService; - public PurchaseDetailsController(ILogger logger, IPurchaseDetailsService purchaseDetailsService) - { - _logger = logger; - _purchaseDetailsService = purchaseDetailsService; - } - - /// - /// 分页查 - /// - /// - [HttpGet] - public async Task PageList([FromQuery] PurchaseDetailsCreateUpdateInput input, [FromQuery] PageParModel page) - { - var result = await _purchaseDetailsService.PageListAsync(input, page); - return Result.Success().SetData(result); - } - - /// - /// 单查 - /// - /// - [HttpGet] - [Route("{id}")] - public async Task GetById(long id) - { - var result = await _purchaseDetailsService.GetByIdAsync(id); - return Result.Success().SetData(result); - } - - /// - /// 增 - /// - /// - /// - [HttpPost] - public async Task Create(PurchaseDetailsCreateUpdateInput input) - { - var result = await _purchaseDetailsService.CreateAsync(input); - return Result.Success().SetData(result); - } - - /// - /// 更 - /// - /// - /// - /// - [HttpPut] - [Route("{id}")] - public async Task Update(long id, PurchaseDetailsCreateUpdateInput input) - { - var result = await _purchaseDetailsService.UpdateAsync(id, input); - return Result.Success().SetData(result); - } - - /// - /// 删 - /// - /// - /// - [HttpDelete] - public async Task Del(List ids) - { - await _purchaseDetailsService.DeleteAsync(ids); - return Result.Success(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/SupplierController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/SupplierController.cs deleted file mode 100644 index 1a10baf5..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/SupplierController.cs +++ /dev/null @@ -1,81 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Supplier; -using Yi.Framework.Interface.ERP; - -namespace Yi.Framework.ApiMicroservice.Controllers.ERP -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class SupplierController : ControllerBase - { - private readonly ILogger _logger; - private readonly ISupplierService _supplierService; - public SupplierController(ILogger logger, ISupplierService supplierService) - { - _logger = logger; - _supplierService = supplierService; - } - - /// - /// 分页查 - /// - /// - [HttpGet] - public async Task PageList([FromQuery] SupplierCreateUpdateInput input, [FromQuery] PageParModel page) - { - var result = await _supplierService.PageListAsync(input, page); - return Result.Success().SetData(result); - } - - /// - /// 单查 - /// - /// - [HttpGet] - [Route("{id}")] - public async Task GetById(long id) - { - var result = await _supplierService.GetByIdAsync(id); - return Result.Success().SetData(result); - } - - /// - /// 增 - /// - /// - /// - [HttpPost] - public async Task Create(SupplierCreateUpdateInput input) - { - var result = await _supplierService.CreateAsync(input); - return Result.Success().SetData(result); - } - - /// - /// 更 - /// - /// - /// - /// - [HttpPut] - [Route("{id}")] - public async Task Update(long id, SupplierCreateUpdateInput input) - { - var result = await _supplierService.UpdateAsync(id, input); - return Result.Success().SetData(result); - } - - /// - /// 删 - /// - /// - /// - [HttpDelete] - public async Task Del(List ids) - { - await _supplierService.DeleteAsync(ids); - return Result.Success(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/UnitController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/UnitController.cs deleted file mode 100644 index c8180bab..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/UnitController.cs +++ /dev/null @@ -1,92 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Unit; -using Yi.Framework.Interface.ERP; - -namespace Yi.Framework.ApiMicroservice.Controllers.ERP -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class UnitController : ControllerBase - { - private readonly ILogger _logger; - private readonly IUnitService _unitService; - public UnitController(ILogger logger, IUnitService unitService) - { - _logger = logger; - _unitService = unitService; - } - - /// - /// 分页查 - /// - /// - [HttpGet] - public async Task PageList([FromQuery] UnitCreateUpdateInput input, [FromQuery] PageParModel page) - { - var result = await _unitService.PageListAsync(input, page); - return Result.Success().SetData(result); - } - - /// - /// 单查 - /// - /// - [HttpGet] - [Route("{id}")] - public async Task GetById(long id) - { - var result = await _unitService.GetByIdAsync(id); - return Result.Success().SetData(result); - } - - /// - /// 全查 - /// - /// - [HttpGet] - public async Task GetList() - { - var result = await _unitService.GetListAsync(); - return Result.Success().SetData(result); - } - - /// - /// 增 - /// - /// - /// - [HttpPost] - public async Task Create(UnitCreateUpdateInput input) - { - var result = await _unitService.CreateAsync(input); - return Result.Success().SetData(result); - } - - /// - /// 更 - /// - /// - /// - /// - [HttpPut] - [Route("{id}")] - public async Task Update(long id, UnitCreateUpdateInput input) - { - var result = await _unitService.UpdateAsync(id, input); - return Result.Success().SetData(result); - } - - /// - /// 删 - /// - /// - /// - [HttpDelete] - public async Task Del(List ids) - { - await _unitService.DeleteAsync(ids); - return Result.Success(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/WarehouseController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/WarehouseController.cs deleted file mode 100644 index 56cd4964..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ERP/WarehouseController.cs +++ /dev/null @@ -1,81 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Warehouse; -using Yi.Framework.Interface.ERP; - -namespace Yi.Framework.ApiMicroservice.Controllers.ERP -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class WarehouseController : ControllerBase - { - private readonly ILogger _logger; - private readonly IWarehouseService _warehouseService; - public WarehouseController(ILogger logger, IWarehouseService warehouseService) - { - _logger = logger; - _warehouseService = warehouseService; - } - - /// - /// 分页查 - /// - /// - [HttpGet] - public async Task PageList([FromQuery] WarehouseCreateUpdateInput input, [FromQuery] PageParModel page) - { - var result = await _warehouseService.PageListAsync(input, page); - return Result.Success().SetData(result); - } - - /// - /// 单查 - /// - /// - [HttpGet] - [Route("{id}")] - public async Task GetById(long id) - { - var result = await _warehouseService.GetByIdAsync(id); - return Result.Success().SetData(result); - } - - /// - /// 增 - /// - /// - /// - [HttpPost] - public async Task Create(WarehouseCreateUpdateInput input) - { - var result = await _warehouseService.CreateAsync(input); - return Result.Success().SetData(result); - } - - /// - /// 更 - /// - /// - /// - /// - [HttpPut] - [Route("{id}")] - public async Task Update(long id, WarehouseCreateUpdateInput input) - { - var result = await _warehouseService.UpdateAsync(id, input); - return Result.Success().SetData(result); - } - - /// - /// 删 - /// - /// - /// - [HttpDelete] - public async Task Del(List ids) - { - await _warehouseService.DeleteAsync(ids); - return Result.Success(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/AccountController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/AccountController.cs deleted file mode 100644 index c08f0a85..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/AccountController.cs +++ /dev/null @@ -1,242 +0,0 @@ -using Hei.Captcha; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Const; -using Yi.Framework.Common.Enum; -using Yi.Framework.Common.Helper; -using Yi.Framework.Common.Models; -using Yi.Framework.Core; -using Yi.Framework.Core.Cache; -using Yi.Framework.DtoModel.Base.Dto; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - /// - /// 账户管理 - /// - [ApiController] - [Authorize] - [Route("api/[controller]/[action]")] - public class AccountController : ControllerBase - { - private IUserService _iUserService; - private JwtInvoker _jwtInvoker; - private ILogger _logger; - private SecurityCodeHelper _securityCode; - private IRepository _repository; - private CacheInvoker _cacheDb; - public AccountController(ILogger logger, - IUserService iUserService, - JwtInvoker jwtInvoker, - SecurityCodeHelper securityCode, - CacheInvoker cacheInvoker) - { - _iUserService = iUserService; - _jwtInvoker = jwtInvoker; - _logger = logger; - _securityCode = securityCode; - _repository = iUserService._repository; - _cacheDb = cacheInvoker; - } - - /// - /// 重置管理员CC的密码 - /// - /// - [HttpGet] - [AllowAnonymous] - public async Task RestCC() - { - var user = await _iUserService._repository.GetFirstAsync(u => u.UserName == "cc"); - user.Password = "123456"; - user.BuildPassword(); - await _iUserService._repository.UpdateIgnoreNullAsync(user); - return Result.Success(); - } - - /// - /// 没啥说,登录 - /// - /// - /// - [AllowAnonymous] - [HttpPost] - public async Task Login(LoginDto loginDto) - { - //跳过,需要redis缓存获取uuid与code的关系,进行比较即可 - //先效验验证码和UUID - //登录还需要进行登录日志的落库 - - //先进行验证码的效验 - - var code = _cacheDb.Get($"Yi:Captcha:{loginDto.Uuid}"); - //判断是否开启二维码效验 - if (GobalModel.LoginCodeEnable) - { - if (code != loginDto.Code) - { - return Result.Error("验证码错误!"); - } - } - - - var loginInfo = HttpContext.GetLoginLogInfo(); - - loginInfo.LoginUser = loginDto.UserName; - loginInfo.LogMsg = "登录成功!"; - - - var loginLogRepository = _repository.ChangeRepository>(); - UserEntity user = new(); - - //这里其实可以返回Dto - if (await _iUserService.Login(loginDto.UserName, loginDto.Password, o => user = o)) - { - //根据用户id获取改用户的完整信息 - var userRoleMenu = await _iUserService.GetUserAllInfo(user.Id); - - //如果该用户没有任何一个菜单,或者没有任何一个角色,无意义的登录 - if (userRoleMenu.PermissionCodes.Count == 0) - { - return Result.Error("登录禁用!该用户分配无任何权限,无意义登录!"); - } - - - //将该用户的完整信息缓存一份至缓存,后续需要完整用户信息,只需通过token中的id从缓存中获取即可 - - //先制作token - var token = _jwtInvoker.GetAccessToken(userRoleMenu.User, userRoleMenu.Menus); - - //需要注意,缓存用户信息时间应大于或等于token过期时间 - _cacheDb.Set($"Yi:UserInfo:{user.Id}", userRoleMenu, _jwtInvoker.GetTokenExpiration()); - - - await loginLogRepository.InsertReturnSnowflakeIdAsync(loginInfo); - return Result.Success(loginInfo.LogMsg).SetData(new { token }); - } - loginInfo.LogMsg = "登录失败!用户名或者密码错误!"; - await loginLogRepository.InsertReturnSnowflakeIdAsync(loginInfo); - return Result.Error(loginInfo.LogMsg); - } - - - - /// - /// 没啥说,注册 - /// - /// - /// - [AllowAnonymous] - [HttpPost] - public async Task Register(RegisterDto registerDto) - { - UserEntity user = new(); - if (await _iUserService.Register(WebCore.Mapper.MapperHelper.Map(registerDto), o => user = o)) - { - return Result.Success("注册成功!").SetData(user); - } - return Result.SuccessError("注册失败!用户名已存在!"); - } - - /// - /// 没啥说,登出 - /// - /// - [HttpPost] - [AllowAnonymous] - public Result Logout() - { - return Result.Success("安全登出成功!"); - } - - /// - /// 通过已登录的用户获取用户信息 - /// - /// - [HttpGet] - public Result GetUserAllInfo() - { - //通过鉴权jwt获取到用户的id - var userId = HttpContext.GetUserIdInfo(); - //此处从缓存中获取即可 - var data = _cacheDb.Get($"Yi:UserInfo:{userId}"); - //var data = await _iUserService.GetUserAllInfo(userId); - //系统用户数据被重置,老前端访问重新授权 - if (data is null) - { - return Result.UnAuthorize(); - } - - data.Menus.Clear(); - return Result.Success().SetData(data); - } - - /// - /// 获取当前登录用户的前端路由 - /// - /// - [HttpGet] - public async Task GetRouterInfo() - { - var userId = HttpContext.GetUserIdInfo(); - var data = await _iUserService.GetUserAllInfo(userId); - var menus = data.Menus.ToList(); - - //为超级管理员直接给全部路由 - if (SystemConst.Admin.Equals(data.User.UserName)) - { - menus = await _iUserService._repository.ChangeRepository>().GetListAsync(); - } - //将后端菜单转换成前端路由,组件级别需要过滤 - List routers = MenuEntity.RouterBuild(menus); - return Result.Success().SetData(routers); - } - - - /// - /// 自己更新密码 - /// - /// - /// - [HttpPut] - public async Task UpdatePassword(UpdatePasswordDto dto) - { - long userId = HttpContext.GetUserIdInfo(); - - if (await _iUserService.UpdatePassword(dto, userId)) - { - return Result.Success(); - } - return Result.Error("更新失败!"); - } - - /// - /// 验证码 - /// - /// - [AllowAnonymous] - [HttpGet] - public Result CaptchaImage() - { - var uuid = Guid.NewGuid(); - var code = _securityCode.GetRandomEnDigitalText(4); - //将uuid与code,Redis缓存中心化保存起来,登录根据uuid比对即可 - //10分钟过期 - _cacheDb.Set($"Yi:Captcha:{uuid}", code, new TimeSpan(0, 10, 0)); - var imgbyte = _securityCode.GetEnDigitalCodeByte(code); - return Result.Success().SetData(new { uuid = uuid, img = imgbyte }); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/ConfigController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/ConfigController.cs deleted file mode 100644 index 4242c75f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/ConfigController.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class ConfigController : BaseSimpleCrudController - { - private IConfigService _iConfigService; - public ConfigController(ILogger logger, IConfigService iConfigService) : base(logger, iConfigService) - { - _iConfigService = iConfigService; - } - - /// - /// 动态条件分页查询 - /// - /// - /// - /// - [HttpGet] - public async Task PageList([FromQuery] ConfigEntity dic, [FromQuery] PageParModel page) - { - return Result.Success().SetData(await _iConfigService.SelctPageList(dic, page)); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/DeptController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/DeptController.cs deleted file mode 100644 index 99eebdfb..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/DeptController.cs +++ /dev/null @@ -1,73 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class DeptController : BaseSimpleCrudController - { - private IDeptService _iDeptService; - public DeptController(ILogger logger, IDeptService iDeptService) : base(logger, iDeptService) - { - _iDeptService = iDeptService; - } - - /// - /// 动态条件查询 - /// - /// - /// - [HttpGet] - public async Task SelctGetList([FromQuery] DeptEntity dept) - { - return Result.Success().SetData(await _iDeptService.SelctGetList(dept)); - } - - - /// - /// 添加 - /// - /// - /// - public override async Task Add(DeptEntity entity) - { - return await base.Add(entity); - } - - /// - /// 更新 - /// - /// - /// - public override async Task Update(DeptEntity entity) - { - return await base.Update(entity); - } - - /// - /// 根据角色id获取该角色下全部部门 - /// - /// - /// - [HttpGet] - [Route("{id}")] - public async Task GetListByRoleId(long id) - { - return Result.Success().SetData(await _iDeptService.GetListByRoleId(id)); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/DictionaryController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/DictionaryController.cs deleted file mode 100644 index 4f915135..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/DictionaryController.cs +++ /dev/null @@ -1,43 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Helper; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class DictionaryController :BaseSimpleCrudController - { - private IDictionaryService _iDictionaryService; - public DictionaryController(ILogger logger, IDictionaryService iDictionaryService):base(logger, iDictionaryService) - { - _iDictionaryService = iDictionaryService; - } - - /// - /// 动态条件分页查询 - /// - /// - /// - /// - [HttpGet] - public async Task PageList([FromQuery] DictionaryEntity dic, [FromQuery] PageParModel page) - { - return Result.Success().SetData(await _iDictionaryService.SelctPageList(dic, page)); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/DictionaryInfoController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/DictionaryInfoController.cs deleted file mode 100644 index 34c429dc..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/DictionaryInfoController.cs +++ /dev/null @@ -1,55 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Helper; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class DictionaryInfoController:BaseSimpleCrudController - { - private IDictionaryInfoService _iDictionaryInfoService; - public DictionaryInfoController(ILogger logger, IDictionaryInfoService iDictionaryInfoService):base(logger, iDictionaryInfoService) - { - _iDictionaryInfoService = iDictionaryInfoService; - } - - /// - /// 动态条件分页查询 - /// - /// - /// - /// - [HttpGet] - public async Task PageList([FromQuery] DictionaryInfoEntity dicInfo, [FromQuery] PageParModel page) - { - return Result.Success().SetData(await _iDictionaryInfoService.SelctPageList(dicInfo, page)); - } - - /// - /// 根据字典类别获取字典信息 - /// - /// - /// - [HttpGet] - [Route("{type}")] - public async Task GetListByType([FromRoute] string type) - { - return Result.Success().SetData(await _iDictionaryInfoService._repository.GetListAsync(u=>u.DictType==type&&u.IsDeleted==false)); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/FileController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/FileController.cs deleted file mode 100644 index 44cd33a4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/FileController.cs +++ /dev/null @@ -1,242 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Hosting; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Const; -using Yi.Framework.Common.Enum; -using Yi.Framework.Common.Helper; -using Yi.Framework.Common.Models; -using Yi.Framework.Core; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.WebCore; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - /// - /// 文件 - /// - [Route("api/[controller]/[action]")] - [ApiController] - public class FileController : ControllerBase - { - private IFileService _iFileService; - private readonly IHostEnvironment _env; - private ThumbnailSharpInvoer _thumbnailSharpInvoer; - - /// - /// 文件上传下载 - /// - /// - /// - /// - public FileController(IFileService iFileService, IHostEnvironment env, ThumbnailSharpInvoer thumbnailSharpInvoer) - { - _iFileService = iFileService; - _env = env; - _thumbnailSharpInvoer = thumbnailSharpInvoer; - } - - /// - /// 文件下载,只需用文件code即可,可选择是否为缩略图 - /// - /// - /// - /// - [Route("/api/file/{code}/{isThumbnail?}")] - [HttpGet] - public async Task Get(long code, bool? isThumbnail) - { - var file = await _iFileService._repository.GetByIdAsync(code); - if (file is null) - { - return new NotFoundResult(); - } - try - { - //如果为缩略图 - if (isThumbnail is true) - { - file.FilePath = PathEnum.Thumbnail.ToString(); - } - //路径为: 文件路径/文件id+文件扩展名 - var path = Path.Combine($"{PathConst.wwwroot}/{file.FilePath}", file.Id.ToString() + Path.GetExtension(file.FileName)); - var stream = System.IO.File.OpenRead(path); - var MimeType = Common.Helper.MimeHelper.GetMimeMapping(file.FileName!); - return File(stream, MimeType, file.FileName); - } - catch - { - return new NotFoundResult(); - } - } - - /// - /// 多文件上传,type可空,默认上传至File文件夹下,swagger返回雪花id精度是有问题的,同时如果时图片类型,还需要进行缩略图制作 - /// - /// 文件类型,可空 - /// 多文件表单 - /// 描述 - /// - [Route("/api/file/Upload/{type?}")] - [HttpPost] - public async Task Upload([FromRoute] string? type, [FromForm] IFormFileCollection file, [FromQuery] string? remark) - { - type = type ?? PathEnum.File.ToString(); - - type = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(type.ToLower()); - if (!Enum.IsDefined(typeof(PathEnum), type)) - { - //后续类型可从字典表中获取 - return Result.Error("上传失败!文件类型不支持!"); - } - - - if (file.Count() == 0) - { - return Result.Error("未选择文件"); - } - //批量插入 - List datas = new(); - - //返回的codes - List codes = new(); - try - { - foreach (var f in file) - { - FileEntity data = new(); - data.Id = SnowFlakeSingle.Instance.NextId(); - data.FileSize = ((decimal)f.Length) / 1024; - data.FileName = f.FileName; - data.FileType = Common.Helper.MimeHelper.GetMimeMapping(f.FileName); - data.FilePath = type; - data.Remark = remark; - data.IsDeleted = false; - - //落盘文件,文件名为雪花id+自己的扩展名 - string filename = data.Id.ToString() + Path.GetExtension(f.FileName); - string typePath = $"{PathConst.wwwroot}/{type}"; - if (!Directory.Exists(typePath)) - { - Directory.CreateDirectory(typePath); - } - - //生成文件 - using (var stream = new FileStream(Path.Combine(typePath, filename), FileMode.CreateNew, FileAccess.ReadWrite)) - { - await f.CopyToAsync(stream); - - //如果是图片类型,还需要生成缩略图,当然,如果图片很小,直接复制过去即可 - if (PathEnum.Image.ToString().Equals(type)) - { - string thumbnailPath = $"{PathConst.wwwroot}/{PathEnum.Thumbnail}"; - if (!Directory.Exists(thumbnailPath)) - { - Directory.CreateDirectory(thumbnailPath); - } - //保存至缩略图路径 - byte[] result=null!; - try - { - result = _thumbnailSharpInvoer.CreateThumbnailBytes(thumbnailSize: 300, - imageStream: stream, - imageFormat: Format.Jpeg); - } - catch - { - result = new byte[stream.Length]; - stream.Read(result, 0, result.Length); - // 设置当前流的位置为流的开始 - stream.Seek(0, SeekOrigin.Begin); - } - finally - { - - await System.IO.File.WriteAllBytesAsync(Path.Combine(thumbnailPath, filename), result); - } - } - - - }; - - //将文件信息添加到数据库 - datas.Add(data); - codes.Add(data.Id); - } - return Result.Success().SetData(codes).SetStatus(await _iFileService._repository.InsertRangeAsync(datas)); - } - catch - { - return Result.Error(); - } - } - - /// - /// 一键同步图片到缩略图 - /// - /// - [HttpGet] - public async Task ThumbnailSync() - { - string typePath = $"{PathConst.wwwroot}/{PathEnum.Image}"; - string thumbnailPath = $"{PathConst.wwwroot}/{PathEnum.Thumbnail}"; - List fileNames = FileHelper.GetAllFileNames(typePath); - foreach (var filename in fileNames) - { - if (System.IO.File.Exists(Path.Combine(thumbnailPath, filename))) - { - //如果缩略图存在,直接跳过 - continue; - } - if (!Directory.Exists(typePath)) - { - Directory.CreateDirectory(typePath); - } - - - using (var stream = new FileStream(Path.Combine(typePath, filename), FileMode.Open, FileAccess.ReadWrite)) - { - byte[] result=null!; - try - { - - //保存至缩略图路径 - result = _thumbnailSharpInvoer.CreateThumbnailBytes(thumbnailSize: 300, - imageStream: stream, - imageFormat: Format.Jpeg); - - if (!Directory.Exists(thumbnailPath)) - { - Directory.CreateDirectory(thumbnailPath); - } - - - } - catch - { - result = new byte[stream.Length]; - stream.Read(result, 0, result.Length); - // 设置当前流的位置为流的开始 - stream.Seek(0, SeekOrigin.Begin); - - ////如果当前文件同步失败,就跳转到下一个 - } - finally { - - await System.IO.File.WriteAllBytesAsync(Path.Combine(thumbnailPath, filename), result); - } - } - - } - return Result.Success(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/LogController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/LogController.cs deleted file mode 100644 index 92aff1ef..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/LogController.cs +++ /dev/null @@ -1,56 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class LogController : ControllerBase - { - private ILogService _iLogService; - //大量日志,将采用自动分表形式,默认1年分一次表 - public LogController(ILogger logger, ILogService iLogService) - { - _iLogService = iLogService; - } - - /// - /// 自动分表,日志添加 - /// - /// - [HttpPost] - public async Task Add() - { - Random random = new Random(); - var logList = new List() { - new LogEntity() { CreateTime = Convert.ToDateTime("2019-12-1"), Message = "jack"+random.Next() } , - new LogEntity() { CreateTime = Convert.ToDateTime("2022-02-1"), Message = "jack"+random.Next() }, - new LogEntity() { CreateTime = Convert.ToDateTime("2020-02-1"), Message = "jack"+random.Next() }, - new LogEntity() { CreateTime = Convert.ToDateTime("2021-12-1"), Message = "jack"+random.Next() } }; - return Result.Success().SetData(await _iLogService.AddListTest(logList)); - } - - /// - /// 查询近20年与21年的日志表 - /// - /// - [HttpGet] - public async Task GetList() - { - return Result.Success().SetData(await _iLogService.GetListTest()); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/LoginLogController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/LoginLogController.cs deleted file mode 100644 index 294559d4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/LoginLogController.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class LoginLogController : BaseSimpleCrudController - { - private ILoginLogService _iLoginLogService; - public LoginLogController(ILogger logger, ILoginLogService iLoginLogService) : base(logger, iLoginLogService) - { - _iLoginLogService = iLoginLogService; - } - - /// - /// 动态条件分页查询 - /// - /// - /// - /// - [HttpGet] - public async Task PageList([FromQuery] LoginLogEntity loginLog, [FromQuery] PageParModel page) - { - return Result.Success().SetData(await _iLoginLogService.SelctPageList(loginLog, page)); - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/MenuController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/MenuController.cs deleted file mode 100644 index 148b24df..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/MenuController.cs +++ /dev/null @@ -1,95 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - /// - /// 菜单管理 - /// - [ApiController] - [Route("api/[controller]/[action]")] - public class MenuController: BaseSimpleRdController - { - private IMenuService _iMenuService; - public MenuController(ILogger logger, IMenuService iMenuService):base(logger,iMenuService) - { - _iMenuService = iMenuService; - } - - - /// - /// 动态条件查询全部 - /// - /// - /// - [HttpGet] - [Permission("system:menu:query")] - public async Task SelctGetList([FromQuery] MenuEntity menu) - { - return Result.Success().SetData(await _iMenuService.SelctGetList(menu)); - } - - /// - /// 插入 - /// - /// - /// - [HttpPost] - [Permission("system:menu:add")] - public async Task Add(MenuEntity menu) - { - return Result.Success().SetData(await _iMenuService._repository.InsertReturnSnowflakeIdAsync(menu)); - } - - /// - /// 更新 - /// - /// - /// - [HttpPut] - [Permission("system:menu:edit")] - public async Task Update(MenuEntity menu) - { - //注意,这里如果是主目录,还需要判断/,需要以/开头 - return Result.Success().SetData(await _iMenuService._repository.UpdateIgnoreNullAsync(menu)); - } - - - /// - /// 得到树形菜单 - /// - /// - [HttpGet] - [Permission("system:menu:query")] - public async Task GetMenuTree() - { - return Result.Success().SetData(await _iMenuService.GetMenuTreeAsync()); - } - - /// - /// 根据角色id获取该角色下全部菜单 - /// - /// - /// - [HttpGet] - [Route("{id}")] - [Permission("system:menu:query")] - public async Task GetListByRoleId(long id) - { - return Result.Success().SetData(await _iMenuService.GetListByRoleId(id)); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/OnlineController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/OnlineController.cs deleted file mode 100644 index 4012d81f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/OnlineController.cs +++ /dev/null @@ -1,83 +0,0 @@ -using Hei.Captcha; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.SignalR; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Const; -using Yi.Framework.Common.Enum; -using Yi.Framework.Common.Helper; -using Yi.Framework.Common.Models; -using Yi.Framework.Core; -using Yi.Framework.DtoModel; -using Yi.Framework.Interface; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; -using Yi.Framework.WebCore.SignalRHub; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - /// - /// 在线管理 - /// - [ApiController] - [Authorize] - [Route("api/[controller]/[action]")] - public class OnlineController : ControllerBase - { - private ILogger _logger; - private IHubContext _hub; - public OnlineController(ILogger logger, IHubContext hub) - { - _logger = logger; - _hub = hub; - } - - /// - /// 动态条件获取当前在线用户 - /// - /// - /// - /// - [HttpGet] - public Result PageList([FromQuery] OnlineUser online, [FromQuery] PageParModel page) - { - var data = MainHub.clientUsers; - IEnumerable dataWhere = data.AsEnumerable(); - - if (!string.IsNullOrEmpty(online.Ipaddr)) - { - dataWhere = dataWhere.Where((u) => u.Ipaddr!.Contains(online.Ipaddr)); - } - if (!string.IsNullOrEmpty(online.UserName)) - { - dataWhere = dataWhere.Where((u) => u.UserName!.Contains(online.UserName)); - } - return Result.Success().SetData(new PageModel>() { Total = data.Count, Data = dataWhere.ToList() }); - } - - - /// - /// 强制退出用户 - /// - /// - /// - [HttpDelete] - [Route("{connnectionId}")] - public async Task ForceOut(string connnectionId) - { - if (MainHub.clientUsers.Exists(u => u.ConnnectionId == connnectionId)) - { - //前端接受到这个事件后,触发前端自动退出 - await _hub.Clients.Client(connnectionId).SendAsync(HubTypeEnum.forceOut.ToString(),"你已被强制退出!"); - return Result.Success(); - } - return Result.Error("操作失败!未发现该连接!"); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/OperationLogController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/OperationLogController.cs deleted file mode 100644 index 47dd2ea4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/OperationLogController.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class OperationLogController : BaseSimpleCrudController - { - private IOperationLogService _iOperationLogService; - public OperationLogController(ILogger logger, IOperationLogService iOperationLogService) : base(logger, iOperationLogService) - { - _iOperationLogService = iOperationLogService; - } - /// - /// 动态条件分页查询 - /// - /// - /// - /// - [HttpGet] - public async Task PageList([FromQuery] OperationLogEntity operationLog, [FromQuery] PageParModel page) - { - return Result.Success().SetData(await _iOperationLogService.SelctPageList(operationLog, page)); - } - - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/PostController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/PostController.cs deleted file mode 100644 index be7d7232..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/PostController.cs +++ /dev/null @@ -1,53 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class PostController : BaseSimpleCrudController - { - private IPostService _iPostService; - public PostController(ILogger logger, IPostService iPostService) : base(logger, iPostService) - { - _iPostService = iPostService; - } - - /// - /// 动态条件分页查询 - /// - /// - /// - /// - [HttpGet] - public async Task PageList([FromQuery] PostEntity post, [FromQuery] PageParModel page) - { - return Result.Success().SetData(await _iPostService.SelctPageList(post, page)); - } - - - - public override async Task Add(PostEntity entity) - { - return await base.Add(entity); - } - - public override async Task Update(PostEntity entity) - { - return await base.Update(entity); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/RoleController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/RoleController.cs deleted file mode 100644 index eab8bb62..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/RoleController.cs +++ /dev/null @@ -1,118 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.Base.Dto; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - /// - /// 角色管理 - /// - [ApiController] - [Route("api/[controller]/[action]")] - public class RoleController : BaseSimpleRdController - { - private IRoleService _iRoleService; - public RoleController(ILogger logger, IRoleService iRoleService) : base(logger, iRoleService) - { - _iRoleService = iRoleService; - } - - /// - /// 动态条件分页查询 - /// - /// - [Permission("system:role:query")] - [HttpGet] - public async Task PageList([FromQuery] RoleEntity role, [FromQuery] PageParModel page) - { - return Result.Success().SetData(await _iRoleService.SelctPageList(role, page)); - } - - - /// - /// 给多用户设置多角色 - /// - /// - /// - [HttpPut] - [Permission("system:role:edit")] - public async Task GiveRoleSetMenu(GiveRoleSetMenuDto giveRoleSetMenuDto) - { - return Result.Success().SetStatus(await _iRoleService.GiveRoleSetMenu(giveRoleSetMenuDto.RoleIds, giveRoleSetMenuDto.MenuIds)); - } - - - /// - /// 添加角色包含菜单 - /// - /// - /// - [Permission("system:role:add")] - [HttpPost] - public async Task Add(RoleInfoDto roleDto) - { - return Result.Success().SetData(await _iRoleService.AddInfo(roleDto)); - } - - /// - /// 更新角色信息 - /// - /// - [Permission("system:role:edit")] - [HttpPut] - public async Task Update(RoleInfoDto roleDto) - { - return Result.Success().SetStatus(await _iRoleService.UpdateInfo(roleDto)); - } - - /// - /// 更改角色状态 - /// - /// - /// - /// - [Permission("system:role:edit")] - [HttpPut] - public async Task UpdateStatus(long roleId, bool isDel) - { - return Result.Success().SetData(await _iRoleService._repository.UpdateIgnoreNullAsync(new RoleEntity() { Id = roleId, IsDeleted = isDel })); - } - - /// - ///更改角色数据权限 - /// - /// - [Permission("system:role:edit")] - [HttpPut] - public async Task UpdateDataScpoce(RoleInfoDto roleDto) - { - return Result.Success().SetStatus(await _iRoleService.UpdateDataScpoce(roleDto)); - } - - /// - /// 删除 - /// - /// - /// - [Permission("system:role:remove")] - [HttpDelete] - public override async Task DelList(List ids) - { - return await base.DelList(ids); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/UserController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/UserController.cs deleted file mode 100644 index 0d01cd52..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RABC/UserController.cs +++ /dev/null @@ -1,174 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Attribute; -using Yi.Framework.Common.Const; -using Yi.Framework.Common.Enum; -using Yi.Framework.Common.Helper; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.Base.Dto; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - /// - /// 用户管理 - /// - [ApiController] - [Authorize] - [Route("api/[controller]/[action]")] - public class UserController : BaseSimpleRdController - { - private IUserService _iUserService; - - public UserController(ILogger logger, IUserService iUserService) : base(logger, iUserService) - { - _iUserService = iUserService; - - } - - /// - /// 动态条件分页查询 - /// - /// - /// - /// - /// - [HttpGet] - [Permission("system:user:query")] - public async Task PageList([FromQuery] UserEntity user, [FromQuery] PageParModel page, [FromQuery] long? deptId) - { - return Result.Success().SetData(await _iUserService.SelctPageList(user, page, deptId)); - } - - /// - /// 更改用户状态 - /// - /// - /// - /// - [HttpPut] - [Permission("system:user:edit")] - [Log("用户模块", OperEnum.Update)] - public async Task UpdateStatus(long userId, bool isDel) - { - return Result.Success().SetData(await _repository.UpdateIgnoreNullAsync(new UserEntity() { Id = userId, IsDeleted = isDel })); - } - - /// - /// 给多用户设置多角色 - /// - /// - /// - [HttpPut] - [Permission("system:user:edit")] - [Log("用户模块", OperEnum.Update)] - public async Task GiveUserSetRole(GiveUserSetRoleDto giveUserSetRoleDto) - { - return Result.Success().SetStatus(await _iUserService.GiveUserSetRole(giveUserSetRoleDto.UserIds, giveUserSetRoleDto.RoleIds)); - } - - - /// - /// 通过用户id得到用户信息关联部门、岗位、角色 - /// - /// - /// - [HttpGet] - [Route("{id}")] - [Permission("system:user:query")] - public override async Task GetById([FromRoute] long id) - { - return Result.Success().SetData(await _iUserService.GetInfoById(id)); - } - - /// - /// 更新用户信息 - /// - /// - /// - [HttpPut] - [Permission("system:user:edit")] - [Log("用户模块", OperEnum.Update)] - public async Task Update(UserInfoDto userDto) - { - if (await _repository.IsAnyAsync(u => userDto.User!.UserName!.Equals(u.UserName) && !userDto.User.Id.Equals(u.Id))) - { - return Result.Error("用户名已存在,修改失败!"); - } - return Result.Success().SetStatus(await _iUserService.UpdateInfo(userDto)); - } - - - /// - /// 更新个人中心信息 - /// - /// - /// - [HttpPut] - [Permission("system:user:edit")] - [Log("用户模块", OperEnum.Update)] - public async Task UpdateProfile(UserInfoDto userDto) - { - //修改需要赋值上主键哦 - userDto.User!.Id = HttpContext.GetUserIdInfo(); - return Result.Success().SetStatus(await _iUserService.UpdateProfile(userDto)); - } - - /// - /// 添加用户 - /// - /// - /// - [HttpPost] - [Permission("system:user:add")] - [Log("用户模块", OperEnum.Insert)] - public async Task Add(UserInfoDto userDto) - { - if (string.IsNullOrEmpty(userDto?.User?.Password)) - { - return Result.Error("密码为空,添加失败!"); - } - if (await _repository.IsAnyAsync(u => userDto.User.UserName!.Equals(u.UserName))) - { - return Result.Error("用户已经存在,添加失败!"); - } - - return Result.Success().SetStatus(await _iUserService.AddInfo(userDto)); - } - - /// - /// 重置密码 - /// - /// - /// - [HttpPut] - [Permission("system:user:edit")] - [Log("用户模块", OperEnum.Update)] - public async Task RestPassword(UserEntity user) - { - return Result.Success().SetStatus(await _iUserService.RestPassword(user.Id, user.Password)); - } - [Permission("system:user:query")] - public override Task GetList() - { - return base.GetList(); - } - [Permission("system:user:remove")] - [Log("用户模块", OperEnum.Delete)] - public override Task DelList(List ids) - { - return base.DelList(ids); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/CategoryController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/CategoryController.cs deleted file mode 100644 index 93a6f9bb..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/CategoryController.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.SHOP; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class CategoryController : BaseCrudController - { - private ICategoryService _iCategoryService; - public CategoryController(ILogger logger, ICategoryService iCategoryService) : base(logger, iCategoryService) - { - _iCategoryService = iCategoryService; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SkuController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SkuController.cs deleted file mode 100644 index bfa4284c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SkuController.cs +++ /dev/null @@ -1,115 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Enum; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.SHOP; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class SkuController : BaseSimpleCrudController - { - private ISkuService _iSkuService; - public SkuController(ILogger logger, ISkuService iSkuService) : base(logger, iSkuService) - { - _iSkuService = iSkuService; - } - - /// - /// 动态条件分页查询 - /// - /// - [HttpGet] - public async Task PageList([FromQuery] SkuEntity eneity, [FromQuery] PageParModel page) - { - return Result.Success().SetData(await _iSkuService.SelctPageList(eneity, page)); - } - - - - - //数据测试 - [HttpGet] - public async Task Test(OperEnum operEnum) - { - switch (operEnum) - { - case OperEnum.Insert: - List spus = new(); - var sku1 = new SkuEntity() - { - Id = 1, - Stock = 100, - IsDeleted = false, - SpuId = 1, - Price = 1000, - SpecsSkuAllInfo = new List { - new SpecsSkuAllInfoModel { SpecsGroupName="内存",SpecsName="1GB" } , - new SpecsSkuAllInfoModel { SpecsGroupName="颜色",SpecsName= "红" } }, - }; - var sku2 = new SkuEntity() - { - Id = 2, - Stock = 100, - IsDeleted = false, - SpuId = 1, - Price = 4000, - SpecsSkuAllInfo = new List { - new SpecsSkuAllInfoModel { SpecsGroupName="内存",SpecsName="2GB" } , - new SpecsSkuAllInfoModel { SpecsGroupName="颜色",SpecsName= "绿" } }, - }; - - - var sku3 = new SkuEntity() - { - Id = 3, - Stock = 100, - IsDeleted = false, - SpuId = 2, - Price = 2000, - SpecsSkuAllInfo = new List { - new SpecsSkuAllInfoModel { SpecsGroupName="内存",SpecsName="3GB" } , - new SpecsSkuAllInfoModel { SpecsGroupName="颜色",SpecsName= "红" } }, - }; - var sku4 = new SkuEntity() - { - Id = 4, - Stock = 100, - IsDeleted = false, - SpuId = 2, - Price = 1000, - SpecsSkuAllInfo = new List { - new SpecsSkuAllInfoModel { SpecsGroupName="内存",SpecsName="2GB" } , - new SpecsSkuAllInfoModel { SpecsGroupName="颜色",SpecsName= "蓝" } }, - }; - spus.Add(sku1); - spus.Add(sku2); - spus.Add(sku3); - spus.Add(sku4); - await _iSkuService._repository.InsertRangeAsync(spus); - break; - - case OperEnum.Delete: - await _iSkuService._repository.DeleteAsync((u)=>true); - break; - default: - break; - } - - - return Result.Success(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpecsController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpecsController.cs deleted file mode 100644 index 3607e9ea..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpecsController.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.SHOP; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class SpecsController : BaseCrudController - { - private ISpecsService _iSpecsService; - public SpecsController(ILogger logger, ISpecsService iSpecsService) : base(logger, iSpecsService) - { - _iSpecsService = iSpecsService; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpecsGroupController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpecsGroupController.cs deleted file mode 100644 index 3a2a196b..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpecsGroupController.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.SHOP; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class SpecsGroupController : BaseCrudController - { - private ISpecsGroupService _iSpecsGroupService; - public SpecsGroupController(ILogger logger, ISpecsGroupService iSpecsGroupService) : base(logger, iSpecsGroupService) - { - _iSpecsGroupService = iSpecsGroupService; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpuController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpuController.cs deleted file mode 100644 index 0bbcb69a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpuController.cs +++ /dev/null @@ -1,96 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Enum; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.SHOP; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class SpuController : BaseSimpleCrudController - { - private ISpuService _iSpuService; - public SpuController(ILogger logger, ISpuService iSpuService) : base(logger, iSpuService) - { - _iSpuService = iSpuService; - } - - /// - /// 动态条件分页查询 - /// - /// - [HttpGet] - public async Task PageList([FromQuery] SpuEntity eneity, [FromQuery] PageParModel page) - { - return Result.Success().SetData(await _iSpuService.SelctPageList(eneity, page)); - } - - [Route("{id}")] - [HttpGet] - public override async Task GetById([FromRoute] long id) - { - return Result.Success().SetData(await _repository._DbQueryable.Includes(u=>u.Skus).SingleAsync(u=>u.Id.Equals(id))); - } - - - - - //数据测试 - [HttpGet] - public async Task Test(OperEnum operEnum) - { - switch (operEnum) - { - case OperEnum.Insert: - List spus = new(); - var spu1 = new SpuEntity() - { - Id = 1, - SpuName = "华为mate40 5G手机", - IsDeleted = false, - Details = "华为手机就是牛", - Price = "1000-2000", - SpecsSpuAllInfo = new List { - new SpecsSpuAllInfoModel { SpecsGroupName="内存",SpecsNames=new List { "1GB","2GB","3GB"} } , - new SpecsSpuAllInfoModel { SpecsGroupName="颜色",SpecsNames=new List { "红","蓝","绿"} } }, - }; - var spu2 = new SpuEntity() - { - Id = 2, - SpuName = "小米888 8G手机", - IsDeleted = false, - Details = "小米手机就是牛", - Price = "2000-3000", - SpecsSpuAllInfo = new List { - new SpecsSpuAllInfoModel { SpecsGroupName="内存",SpecsNames=new List { "1GB","2GB","3GB"} } , - new SpecsSpuAllInfoModel { SpecsGroupName="颜色",SpecsNames=new List { "红","蓝","绿"} } }, - }; - spus.Add(spu1); - spus.Add(spu2); - await _iSpuService._repository.InsertRangeAsync(spus); - break; - - case OperEnum.Delete: - await _iSpuService._repository.DeleteAsync((u) => true); - break; - default: - break; - } - - - return Result.Success(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/TestController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/TestController.cs deleted file mode 100644 index 33e47ccd..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/TestController.cs +++ /dev/null @@ -1,423 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.SignalR; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Localization; -using Microsoft.Extensions.Logging; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Abstract; -using Yi.Framework.Common.Attribute; -using Yi.Framework.Common.Const; -using Yi.Framework.Common.Models; -using Yi.Framework.Core; -using Yi.Framework.Core.Cache; -using Yi.Framework.Core.Quartz; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Job; -using Yi.Framework.Language; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.AuthorizationPolicy; -using Yi.Framework.WebCore.DbExtend; -using Yi.Framework.WebCore.SignalRHub; - -namespace Yi.Framework.ApiMicroservice.Controllers -{ - /// - /// 测试控制器 - /// - [ApiController] - [Route("api/[controller]/[action]")] - public class TestController : ControllerBase - { - private IStringLocalizer _local; - private IUserService _iUserService; - private IRoleService _iRoleService; - private QuartzInvoker _quartzInvoker; - private IHubContext _hub; - private ThumbnailSharpInvoer _thumbnailSharpInvoer; - private CacheInvoker _cacheDb; - private ILogger _logger; - ISugarUnitOfWork _unitOfWork; - [Autowired] - private ICurrentUser _currentUser { get; set; } - - [Autowired] - public CacheInvoker CacheInvoker { get; set; } - //你可以依赖注入服务层各各接口,也可以注入其他仓储层,怎么爽怎么来! - /// - /// 依赖注入,优雅写法 - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - public TestController(IHubContext hub, - ILogger logger, - IRoleService iRoleService, - IUserService iUserService, - IStringLocalizer local, - QuartzInvoker quartzInvoker, - ThumbnailSharpInvoer thumbnailSharpInvoer, - CacheInvoker cacheInvoker, - ISugarUnitOfWork unitOfWork - ) => - - (_logger, _iUserService, _iRoleService, _quartzInvoker, _hub, _local, _thumbnailSharpInvoer, _cacheDb, _unitOfWork) = - - (logger, iUserService, iRoleService, quartzInvoker, hub, local, thumbnailSharpInvoer, cacheInvoker, unitOfWork); - - - /// - /// swagger跳转 - /// - /// - [HttpGet] - [Route("/")] - public IActionResult Swagger() - { - return Redirect("/Swagger"); - } - - /// - /// 仓储上下文对象测试 - /// - /// - [HttpGet] - // 特点:化繁为简!意框架仓储代理上下文对象,用起来就是爽,但最好按规范来爽! - // 规范:控制器严禁使用DB上下文对象,其它怎么爽怎么来! - public async Task DbTest() - { - //非常好,使用UserService的特有方法 - await _iUserService.DbTest(); - - //非常好,依赖注入使用其他Service的特有方法 - await _iRoleService.DbTest(); - - //很核理,使用仓储的通用方法 - await _iUserService._repository.GetListAsync(); - - //挺不错,依赖注入其他仓储 - await _iRoleService._repository.GetListAsync(); - - //还行,直接切换其他仓储,怎么爽怎么来 - await _iUserService._repository.ChangeRepository>().GetListAsync(); - - //最好不要在控制器直接操作Db对象 - await _iUserService._repository._Db.Queryable().ToListAsync(); - await _iUserService._repository._DbQueryable.ToListAsync(); - - return Result.Success().SetData(await _iUserService.DbTest()); - } - - /// - /// 工作单元测试,使用sqlsugar内置 - /// - /// - [HttpGet] - - public async Task UnitOfWorkTest() - { - var data = await _iRoleService._repository._DbQueryable.ToListAsync(); - using (var uow = _unitOfWork.CreateContext()) - { - var res = await _iRoleService._repository.InsertReturnSnowflakeIdAsync(new RoleEntity { RoleName = "测试", RoleCode = "tt" }); - throw new ApplicationException("测试uow"); - } - } - - /// - /// 执行Sql返回 - /// - /// - [HttpGet] - //简单语句不推荐使用sql! - public async Task SqlTest() - { - return Result.Success().SetData(await _iUserService._repository.UseSqlAsync("select * from User")); - } - - /// - /// 国际化测试 - /// - /// - [HttpGet] - //根据浏览器语言设置来切换输出 - public Result LocalTest() - { - return Result.Success().SetData(_local["succeed"]); - } - - /// - /// 权限测试 - /// - /// - [HttpGet] - [Permission("user:get:test")] - public Result PermissionTest() - { - return Result.Success(); - } - - /// - /// 策略授权测试 - /// - /// - [HttpGet] - [Authorize(PolicyName.Sid)] - public Result AuthTest() - { - return Result.Success(); - } - - /// - /// 异步事务测试 - /// - /// - [HttpGet] - //注册一个用户获取它的信息之后再更新它,但是这个年龄可能会报错 - //如果一个事务中有任何一个错误,将会把所有执行过的操作进行回滚,确保数据的原子性 - public async Task TranTest() - { - UserEntity user = new() { UserName = $"杰哥{DateTime.Now}", Password = "5201314", Age = 99 }; - - var res = await _iUserService._repository.UseTranAsync(async () => - { - await _iUserService.Register(user, (o) => user = o); - user.Age = 18 / (new Random().Next(0, 2)); - await _iUserService._repository.UpdateAsync(user); - }); - if (res) - { - return Result.Success("执行成功!"); - } - else - { - return Result.Error("发生错误,插入已回滚!"); - } - - } - - /// - /// 极爽导航属性 - /// - /// - [HttpGet] - //Sqlsugar精髓之一!必学!最新版本 - public async Task IncludeTest() - { - return Result.Success().SetData(await _iUserService.GetListInRole()); - } - - /// - /// 启动一个定时任务 - /// - /// - [HttpGet] - //每5秒访问一次百度,可查看控制台 - public async Task JobTest() - { - Dictionary data = new Dictionary() - { - {JobConst.method,"get" }, - {JobConst.url,"https://www.baidu.com" } - }; - await _quartzInvoker.StartAsync("*/5 * * * * ?", "HttpJob", jobName: "test", jobGroup: "my", data: data); - return Result.Success(); - } - - /// - /// 停止任务 - /// - /// - [HttpPut] - public async Task StopJob() - { - await _quartzInvoker.StopAsync(new Quartz.JobKey("test", "my")); - return Result.Success("http://localhost:19001/hangfire"); - } - - /// - /// job异常处理 - /// - /// - [HttpGet] - public async Task ErrorJob() - { - await _quartzInvoker.StartAsync("*/5 * * * * ?", "ErrorJob"); - return Result.Success(); - } - - /// - /// 树形结构构建测试 - /// - /// - [HttpGet] - public Result TreeTest() - { - List vueRouterModels = new() - { - new VueRouterModel { Id = 1, OrderNum = 1, ParentId = 0, Name = "001" }, - new VueRouterModel { Id = 2, OrderNum = 1, ParentId = 1, Name = "001001" }, - new VueRouterModel { Id = 3, OrderNum = 1, ParentId = 1, Name = "001002" } - }; - var treeData = Common.Helper.TreeHelper.SetTree(vueRouterModels); - return Result.Success().SetData(treeData); - } - - /// - /// 授权测试 - /// - /// - [Authorize] - [HttpGet] - public Result AuthorizeTest() - { - return Result.Success(); - } - - - /// - /// 清空数据库 - /// - /// - [HttpGet] - public async Task ClearDb() - { - var rep = _iUserService._repository; - return Result.Success().SetStatus(await rep.UseTranAsync(async () => - { - await rep.DeleteAsync(u => true); - await rep.ChangeRepository>().DeleteAsync(u => true); - await rep.ChangeRepository>().DeleteAsync(u => true); - await rep.ChangeRepository>().DeleteAsync(u => true); - await rep.ChangeRepository>().DeleteAsync(u => true); - await rep.ChangeRepository>().DeleteAsync(u => true); - await rep.ChangeRepository>().DeleteAsync(u => true); - await rep.ChangeRepository>().DeleteAsync(u => true); - await rep.ChangeRepository>().DeleteAsync(u => true); - await rep.ChangeRepository>().DeleteAsync(u => true); - })); - - } - - - /// - /// 种子数据 - /// - /// - [HttpGet] - public Result SeedDb() - { - var rep = _iUserService._repository; - return Result.Success().SetStatus(DbSeedExtend.DataInvoer(rep._Db)); - } - - /// - /// 操作日志测试 - /// - /// - /// - [HttpPost] - [Log("测试模块", Common.Enum.OperEnum.Insert)] - public Result LogTest(List par) - { - return Result.Success().SetData(par); - } - - /// - /// Signalr实时推送测试 - /// - /// - /// - [HttpGet] - public async Task SignalrTest(int msg) - { - await _hub.Clients.All.SendAsync("onlineNum", msg); - return Result.Success("向所有连接客户端发送一个消息"); - } - //job任务与公告管理 - - /// - /// 缩略图测试,需要生成前及生成后的路径 - /// - /// - [HttpGet] - public Result ThumbnailTest() - { - try - { - var path = @"D:\App\test11.jpg"; - var result = _thumbnailSharpInvoer.CreateThumbnailBytes(thumbnailSize: 300, - imageStream: new FileStream(path, FileMode.Open, FileAccess.ReadWrite), - imageFormat: Format.Jpeg); - System.IO.File.WriteAllBytes(@"D:\App\test222.jpg", result); - } - catch (Exception ex) - { - return Result.Error(ex.Message); - } - return Result.Success(); - } - - /// - /// 缓存测试 - /// - /// - [HttpGet] - public Result CacheDBTest() - { - var key = "Yi:Test"; - var item = "你好世界"; - _cacheDb.Set(key, item); - - var data = _cacheDb.Get(key); - return Result.Success().SetData(data); - } - - /// - /// 自定义日志 - /// - /// - [HttpGet] - public Result CustomLogTest() - { - _logger.LogWarning("输出一条日志"); - return Result.Success(); - } - - /// - /// 属性注入测试 - /// - /// - [HttpGet] - public Result PropertyTest() - { - return Result.Success().SetStatus(CacheInvoker is not null); - } - - /// - /// 获取当前用户信息测试 - /// - /// - [HttpGet] - [Authorize] - public Result CurrentUserTest() - { - var per = _currentUser.Permission; - return Result.Success().SetData(per); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Program.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Program.cs deleted file mode 100644 index 1c3c5501..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Program.cs +++ /dev/null @@ -1,255 +0,0 @@ -global using System; -using Autofac.Extensions.DependencyInjection; -using Yi.Framework.WebCore.BuilderExtend; -using Yi.Framework.Core; -using Yi.Framework.WebCore.MiddlewareExtend; -using Autofac; -using Yi.Framework.Common.Models; -using Yi.Framework.Language; -using Microsoft.Extensions.Localization; -using Yi.Framework.WebCore.AttributeExtend; -using Yi.Framework.WebCore.SignalRHub; -using Hei.Captcha; -using Microsoft.Extensions.DependencyInjection; -using Yi.Framework.WebCore.DbExtend; -using IPTools.Core; -using Yi.Framework.WebCore.LogExtend; -using Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.AspNetCore.Mvc.Controllers; -using Yi.Framework.WebCore.AutoFacExtend; -using AspectCore.Extensions.DependencyInjection; -using AspectCore.Extensions.Hosting; -using Yi.Framework.WebCore.AspNetCoreExtensions; -using Yi.Framework.WebCore.CommonExtend; - -var builder = WebApplication.CreateBuilder(args); -builder.Configuration.AddCommandLine(args); -builder.WebHost.UseUrls(builder.Configuration.GetValue("StartUrl")); -builder.Host.ConfigureAppConfiguration((hostBuilderContext, configurationBuilder) => - { - configurationBuilder.AddCommandLine(args); - configurationBuilder.AddJsonFileService(); - #region - //Apollo - #endregion - configurationBuilder.AddApolloService("Yi"); - }); - -builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()); -builder.Host.ConfigureContainer(containerBuilder => -{ - #region - //Moduleע - #endregion - containerBuilder.RegisterModule(); - #region - //עģ - #endregion - containerBuilder.RegisterModule(); - #region - //ʹAppServiceŵĽԶע,ִʹøַʽԶע - #endregion - containerBuilder.AddAutoIocService("Yi.Framework.Repository", "Yi.Framework.Service"); -}); - -////ע룬mvcģתӸioc -builder.Services.Replace(ServiceDescriptor.Transient()); - -builder.Host.ConfigureLogging(loggingBuilder => - { - loggingBuilder.AddFilter("System", Microsoft.Extensions.Logging.LogLevel.Warning); - loggingBuilder.AddFilter("Microsoft", Microsoft.Extensions.Logging.LogLevel.Warning); - loggingBuilder.AddLog4Net("./Config/Log4net.config"); - //Զ־ - //loggingBuilder.AddCustomLogger(); - }); -#region -// -//builder.Host.ConfigureWebHostDefaults(webBuilder => -// { -// //webBuilder.UseStartup(); -// }); -#endregion -//----------------------------------------------------------------------------------------------------------- -#region -//Ioc -#endregion -builder.Services.AddIocService(builder.Configuration); -#region -//Sqlsugarע,ǷȨ޹ܣ߻ -#endregion -builder.Services.AddSqlsugarServer(DbFiterExtend.Data); -#region -//Quartz -#endregion -builder.Services.AddQuartzService(); -#region -//AutoMapperע -#endregion -builder.Services.AddAutoMapperService(); -#region -//+ -#endregion -builder.Services.AddControllers(optios => -{ - //עȫ - optios.Filters.Add(); -}).AddJsonFileService(); -#region -//Ȩ޹ -#endregion -//Ȩ -builder.Services.AddSingleton(); -//־ -builder.Services.AddSingleton(); -#region -//Swagger -#endregion -builder.Services.AddSwaggerService(); -#region -// -#endregion -builder.Services.AddCorsService(); -#region -//JwtȨ -#endregion -builder.Services.AddJwtService(); -#region -//Ȩ -#endregion -builder.Services.AddAuthorizationService(); -#region -//Redis -#endregion -builder.Services.AddCacheService(); -#region -//RabbitMQ -#endregion -builder.Services.AddRabbitMQService(); -#region -//ElasticSeach -#endregion -builder.Services.AddElasticSeachService(); -#region -//ŷ -#endregion -builder.Services.AddSMSService(); -#region -//CAP -#endregion -builder.Services.AddCAPService(); -#region -//ʻ -#endregion -builder.Services.AddLocalizerService(); -#region -//signalR -#endregion -builder.Services.AddSignalR(); -#region -//֤ -#endregion -builder.Services.AddHeiCaptcha(); -#region -//Http -#endregion -builder.Services.AddHttpContextAccessor(); -#region -//ͼSystem.DrawinglinuҪ֧ -#endregion -builder.Services.AddSingleton(); - -#region -//ӵǰûϢʹ -#endregion -builder.Services.AddCurrentUserServer(); - -#region -//ȫóʼֵ -#endregion -GobalModel.SqlLogEnable = Appsettings.appBool("SqlLog_Enable"); -GobalModel.LoginCodeEnable = Appsettings.appBool("LoginCode_Enable"); -//----------------------------------------------------------------------------------------------------------- -var app = builder.Build(); -#region -// -#endregion -ServiceLocator.Instance = app.Services; -//if (app.Environment.IsDevelopment()) -{ - #region - //ҳע - #endregion - app.UseDeveloperExceptionPage(); - app.UseSwaggerService(); -} -#region -//ץȡע -#endregion -app.UseErrorHandlingService(); - -#region -//̬ļע -#endregion -app.UseStaticFiles(); -#region -//Թʻע -#endregion -app.UseLocalizerService(); - -#region -//body -#endregion -app.UseHttpBodyService(); -#region -//HttpsRedirectionע -#endregion -app.UseHttpsRedirection(); -#region -//·ע -#endregion -app.UseRouting(); -#region -//ע -#endregion -app.UseCorsService(); -#region -//ע -#endregion -app.UseHealthCheckService(); -#region -//Ȩע -#endregion -app.UseAuthentication(); -#region -//Ȩע -#endregion -app.UseAuthorization(); -#region -//ӵǰûϢʹ -#endregion -app.UseCurrentUserServer(); -#region -//Consulע -#endregion -app.UseConsulService(); - -#region -//ݿע -#endregion -app.UseDbSeedInitService(); -#region -//redisע -#endregion -app.UseRedisSeedInitService(); - -app.UseEndpoints(endpoints => -{ - #region - //SignalR - #endregion - endpoints.MapHub("/api/hub/main"); - endpoints.MapControllers(); -}); -//׼Ӷ⻧ -app.Run(); \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Yi.Framework.ApiMicroservice.csproj b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Yi.Framework.ApiMicroservice.csproj deleted file mode 100644 index 79db2747..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Yi.Framework.ApiMicroservice.csproj +++ /dev/null @@ -1,52 +0,0 @@ - - - - net6.0 - enable - enable - f5ce4739-9524-4330-9aea-cfcdb41501de - Linux - - - - ./Config/SwaggerDoc.xml - 1701;1702;CS1591;CS8618 - - - - - - - - - - - - - - - - - - - - Always - - - - - - Always - - - Always - - - Always - - - Always - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/appsettings.Production.json b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/appsettings.Production.json deleted file mode 100644 index 76127ea8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/appsettings.Production.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - //程序启动地址,*代表全部网口 - "StartUrl": "http://*:19001", - - //默认日志打印过滤 - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - - //运行全部主机 - "AllowedHosts": "*", - - //【全局配置开启】 - //Sql语句日志是否打印 - "SqlLog_Enable": false, - //登录二维码是否打印 - "LoginCode_Enable": false, - - //【数据库配置】 - //多数据库主从复制是否开启 - "MutiDB_Enabled": false, - //数据库CodeFirst是否开启 - "DbCodeFirst_Enabled": true, - //数据库种子数据是否开启 - "DbSeed_Enabled": true, - //数据库列表 - "DbList": [ "Sqlite", "Mysql", "Sqlserver", "Oracle" ], - //数据库类型选择 - "DbSelect": "Sqlite", - //数据库连接地址,支持读写分离 - "DbConn": { - "WriteUrl": "DataSource=yi-sqlsugar-dev.db", - "ReadUrl": [ - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]", - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]", - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]" - ] - }, - - - //【缓存配置】 - //缓存列表 - "CacheList": [ "Redis", "MemoryCache" ], - //选择缓存 - "CacheSelect": "MemoryCache", - //缓存种子数据是否开启 - "CacheSeed_Enabled": false, - - - //【中间件开启】 - //Consul是否开启 - "Consul_Enabled": false, - //健康检查是否开启 - "HealthCheck_Enabled": false, - //跨域开放是否开启 - "Cors_Enabled": true, - //Apollo是否开启 - "Apollo_Enabled": false, - //RabbitMQ是否开启 - "RabbitMQ_Enabled": false, - //Kafka是否开启 - "Kafka_Enabled": false, - //ElasticSeach是否开启 - "ElasticSeach_Enabled": false, - //短信发送是否开启 - "SMS_Enabled": false, - //分布式CAP是否开启 - "CAP_Enabled": false, - //分布式CAP面板是否开启 - "CAPDashboard_Enabled": false, - - - //【中间件配置】 - //jwt授权内容,公钥私钥转移到目录下的pem文件 - "JwtAuthorize": { - "Issuer": "cc", - "Audience": "cc", - "PolicyName": "permission", - "DefaultScheme": "Bearer", - "IsHttps": false, - "Expiration": 300, - "ReExpiration": 3000 - }, - //Redis地址配置 - "RedisConnOptions": { - "Host": "[]", - "Prot": 6379, - "DB": 1, - "Password": "[]" - }, - //RabbitMq地址配置 - "RabbitConn": { - "HostName": "[]", - "UserName": "[]", - "Password": "[]", - "Port": 5672 - }, - //ElasticSeach地址配置 - "ElasticSeachConn": { - "Url": "[]", - "IndexName": "[]", - "UserName": "[]", - "PassWord": "[]." - }, - //Kafka地址配置 - "KafkaOptions": { - "BrokerList": "[]:9092", - "TopicName": "kafkalog" - }, - //Consul地址配置 - "ConsulClientOption": { - "IP": "[]", - "Port": "8500", - "Datacenter": "dc1" - }, - //Consul注册本机配置 - "ConsulRegisterOption": { - "IP": "[]", - "Port": "[]", - "GroupName": "ApiMicroservice", - "HealthCheckUrl": "/Health", - "Interval": 10, - "Timeout": 5, - "DeregisterCriticalServiceAfter": 60, - "Tag": "13" - }, - //阿里云短信配置 - "SMS": { - "ID": "[]", - "Secret": "[]", - "Sign": "[]", - "Template": "[]" - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/appsettings.Staging.json b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/appsettings.Staging.json deleted file mode 100644 index 76127ea8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/appsettings.Staging.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - //程序启动地址,*代表全部网口 - "StartUrl": "http://*:19001", - - //默认日志打印过滤 - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - - //运行全部主机 - "AllowedHosts": "*", - - //【全局配置开启】 - //Sql语句日志是否打印 - "SqlLog_Enable": false, - //登录二维码是否打印 - "LoginCode_Enable": false, - - //【数据库配置】 - //多数据库主从复制是否开启 - "MutiDB_Enabled": false, - //数据库CodeFirst是否开启 - "DbCodeFirst_Enabled": true, - //数据库种子数据是否开启 - "DbSeed_Enabled": true, - //数据库列表 - "DbList": [ "Sqlite", "Mysql", "Sqlserver", "Oracle" ], - //数据库类型选择 - "DbSelect": "Sqlite", - //数据库连接地址,支持读写分离 - "DbConn": { - "WriteUrl": "DataSource=yi-sqlsugar-dev.db", - "ReadUrl": [ - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]", - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]", - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]" - ] - }, - - - //【缓存配置】 - //缓存列表 - "CacheList": [ "Redis", "MemoryCache" ], - //选择缓存 - "CacheSelect": "MemoryCache", - //缓存种子数据是否开启 - "CacheSeed_Enabled": false, - - - //【中间件开启】 - //Consul是否开启 - "Consul_Enabled": false, - //健康检查是否开启 - "HealthCheck_Enabled": false, - //跨域开放是否开启 - "Cors_Enabled": true, - //Apollo是否开启 - "Apollo_Enabled": false, - //RabbitMQ是否开启 - "RabbitMQ_Enabled": false, - //Kafka是否开启 - "Kafka_Enabled": false, - //ElasticSeach是否开启 - "ElasticSeach_Enabled": false, - //短信发送是否开启 - "SMS_Enabled": false, - //分布式CAP是否开启 - "CAP_Enabled": false, - //分布式CAP面板是否开启 - "CAPDashboard_Enabled": false, - - - //【中间件配置】 - //jwt授权内容,公钥私钥转移到目录下的pem文件 - "JwtAuthorize": { - "Issuer": "cc", - "Audience": "cc", - "PolicyName": "permission", - "DefaultScheme": "Bearer", - "IsHttps": false, - "Expiration": 300, - "ReExpiration": 3000 - }, - //Redis地址配置 - "RedisConnOptions": { - "Host": "[]", - "Prot": 6379, - "DB": 1, - "Password": "[]" - }, - //RabbitMq地址配置 - "RabbitConn": { - "HostName": "[]", - "UserName": "[]", - "Password": "[]", - "Port": 5672 - }, - //ElasticSeach地址配置 - "ElasticSeachConn": { - "Url": "[]", - "IndexName": "[]", - "UserName": "[]", - "PassWord": "[]." - }, - //Kafka地址配置 - "KafkaOptions": { - "BrokerList": "[]:9092", - "TopicName": "kafkalog" - }, - //Consul地址配置 - "ConsulClientOption": { - "IP": "[]", - "Port": "8500", - "Datacenter": "dc1" - }, - //Consul注册本机配置 - "ConsulRegisterOption": { - "IP": "[]", - "Port": "[]", - "GroupName": "ApiMicroservice", - "HealthCheckUrl": "/Health", - "Interval": 10, - "Timeout": 5, - "DeregisterCriticalServiceAfter": 60, - "Tag": "13" - }, - //阿里云短信配置 - "SMS": { - "ID": "[]", - "Secret": "[]", - "Sign": "[]", - "Template": "[]" - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/appsettings.json b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/appsettings.json deleted file mode 100644 index e65abda4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/appsettings.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - //程序启动地址,*代表全部网口 - "StartUrl": "http://*:19001", - - //默认日志打印过滤 - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - - //运行全部主机 - "AllowedHosts": "*", - - //【全局配置开启】 - //Sql语句日志是否打印 - "SqlLog_Enable": false, - //登录二维码是否打印 - "LoginCode_Enable": false, - - //【数据库配置】 - //多数据库主从复制是否开启 - "MutiDB_Enabled": false, - //数据库CodeFirst是否开启 - "DbCodeFirst_Enabled": true, - //数据库种子数据是否开启 - "DbSeed_Enabled": true, - //数据库列表 - "DbList": [ "Sqlite", "Mysql", "Sqlserver", "Oracle" ], - //数据库类型选择 - "DbSelect": "Sqlite", - //数据库连接地址,支持读写分离 - "DbConn": { - "WriteUrl": "DataSource=yi-sqlsugar-dev.db", - "ReadUrl": [ - "DataSource=[xxxx]",//sqlite - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]", //mysql - "Data Source=[xxxx];Initial Catalog=[xxxx];User ID=[xxxx];password=[xxxx]" //sqlserver - ] - }, - - - //【缓存配置】 - //缓存列表 - "CacheList": [ "Redis", "MemoryCache" ], - //选择缓存 - "CacheSelect": "MemoryCache", - //缓存种子数据是否开启 - "CacheSeed_Enabled": false, - - - //【中间件开启】 - //Consul是否开启 - "Consul_Enabled": false, - //健康检查是否开启 - "HealthCheck_Enabled": false, - //跨域开放是否开启 - "Cors_Enabled": true, - //Apollo是否开启 - "Apollo_Enabled": false, - //RabbitMQ是否开启 - "RabbitMQ_Enabled": false, - //Kafka是否开启 - "Kafka_Enabled": false, - //ElasticSeach是否开启 - "ElasticSeach_Enabled": false, - //短信发送是否开启 - "SMS_Enabled": false, - //分布式CAP是否开启 - "CAP_Enabled": false, - //分布式CAP面板是否开启 - "CAPDashboard_Enabled": false, - - - //【中间件配置】 - //jwt授权内容,公钥私钥转移到目录下的pem文件 - "JwtAuthorize": { - "Issuer": "cc", - "Audience": "cc", - "PolicyName": "permission", - "DefaultScheme": "Bearer", - "IsHttps": false, - "Expiration": 300, - "ReExpiration": 3000 - }, - //Redis地址配置 - "RedisConnOptions": { - "Host": "[]", - "Prot": 6379, - "DB": 1, - "Password": "[]" - }, - //RabbitMq地址配置 - "RabbitConn": { - "HostName": "[]", - "UserName": "[]", - "Password": "[]", - "Port": 5672 - }, - //ElasticSeach地址配置 - "ElasticSeachConn": { - "Url": "[]", - "IndexName": "[]", - "UserName": "[]", - "PassWord": "[]." - }, - //Kafka地址配置 - "KafkaOptions": { - "BrokerList": "[]:9092", - "TopicName": "kafkalog" - }, - //Consul地址配置 - "ConsulClientOption": { - "IP": "[]", - "Port": "8500", - "Datacenter": "dc1" - }, - //Consul注册本机配置 - "ConsulRegisterOption": { - "IP": "[]", - "Port": "[]", - "GroupName": "ApiMicroservice", - "HealthCheckUrl": "/Health", - "Interval": 10, - "Timeout": 5, - "DeregisterCriticalServiceAfter": 60, - "Tag": "13" - }, - //阿里云短信配置 - "SMS": { - "ID": "[]", - "Secret": "[]", - "Sign": "[]", - "Template": "[]" - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/ip2region.db b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/ip2region.db deleted file mode 100644 index 0fc60e6c..00000000 Binary files a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/ip2region.db and /dev/null differ diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/key.pem b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/key.pem deleted file mode 100644 index 3314ab6e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC7VJTUt9Us8cKj -MzEfYyjiWA4R4/M2bS1GB4t7NXp98C3SC6dVMvDuictGeurT8jNbvJZHtCSuYEvu -NMoSfm76oqFvAp8Gy0iz5sxjZmSnXyCdPEovGhLa0VzMaQ8s+CLOyS56YyCFGeJZ -qgtzJ6GR3eqoYSW9b9UMvkBpZODSctWSNGj3P7jRFDO5VoTwCQAWbFnOjDfH5Ulg -p2PKSQnSJP3AJLQNFNe7br1XbrhV//eO+t51mIpGSDCUv3E0DDFcWDTH9cXDTTlR -ZVEiR2BwpZOOkE/Z0/BVnhZYL71oZV34bKfWjQIt6V/isSMahdsAASACp4ZTGtwi -VuNd9tybAgMBAAECggEBAKTmjaS6tkK8BlPXClTQ2vpz/N6uxDeS35mXpqasqskV -laAidgg/sWqpjXDbXr93otIMLlWsM+X0CqMDgSXKejLS2jx4GDjI1ZTXg++0AMJ8 -sJ74pWzVDOfmCEQ/7wXs3+cbnXhKriO8Z036q92Qc1+N87SI38nkGa0ABH9CN83H -mQqt4fB7UdHzuIRe/me2PGhIq5ZBzj6h3BpoPGzEP+x3l9YmK8t/1cN0pqI+dQwY -dgfGjackLu/2qH80MCF7IyQaseZUOJyKrCLtSD/Iixv/hzDEUPfOCjFDgTpzf3cw -ta8+oE4wHCo1iI1/4TlPkwmXx4qSXtmw4aQPz7IDQvECgYEA8KNThCO2gsC2I9PQ -DM/8Cw0O983WCDY+oi+7JPiNAJwv5DYBqEZB1QYdj06YD16XlC/HAZMsMku1na2T -N0driwenQQWzoev3g2S7gRDoS/FCJSI3jJ+kjgtaA7Qmzlgk1TxODN+G1H91HW7t -0l7VnL27IWyYo2qRRK3jzxqUiPUCgYEAx0oQs2reBQGMVZnApD1jeq7n4MvNLcPv -t8b/eU9iUv6Y4Mj0Suo/AU8lYZXm8ubbqAlwz2VSVunD2tOplHyMUrtCtObAfVDU -AhCndKaA9gApgfb3xw1IKbuQ1u4IF1FJl3VtumfQn//LiH1B3rXhcdyo3/vIttEk -48RakUKClU8CgYEAzV7W3COOlDDcQd935DdtKBFRAPRPAlspQUnzMi5eSHMD/ISL -DY5IiQHbIH83D4bvXq0X7qQoSBSNP7Dvv3HYuqMhf0DaegrlBuJllFVVq9qPVRnK -xt1Il2HgxOBvbhOT+9in1BzA+YJ99UzC85O0Qz06A+CmtHEy4aZ2kj5hHjECgYEA -mNS4+A8Fkss8Js1RieK2LniBxMgmYml3pfVLKGnzmng7H2+cwPLhPIzIuwytXywh -2bzbsYEfYx3EoEVgMEpPhoarQnYPukrJO4gwE2o5Te6T5mJSZGlQJQj9q4ZB2Dfz -et6INsK0oG8XVGXSpQvQh3RUYekCZQkBBFcpqWpbIEsCgYAnM3DQf3FJoSnXaMhr -VBIovic5l0xFkEHskAjFTevO86Fsz1C2aSeRKSqGFoOQ0tmJzBEs1R6KqnHInicD -TQrKhArgLXX4v3CddjfTRJkFWDbE/CkvKZNOrcf1nhaGCPspRJj2KUkj1Fhl9Cnc -dn/RsYEONbwQSjIfMPkvxF+8HQ== ------END PRIVATE KEY----- \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/public.pem b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/public.pem deleted file mode 100644 index 1c9b622d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/public.pem +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCozMxH2Mo -4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0/IzW7yWR7QkrmBL7jTKEn5u -+qKhbwKfBstIs+bMY2Zkp18gnTxKLxoS2tFczGkPLPgizskuemMghRniWaoLcyeh -kd3qqGElvW/VDL5AaWTg0nLVkjRo9z+40RQzuVaE8AkAFmxZzow3x+VJYKdjykkJ -0iT9wCS0DRTXu269V264Vf/3jvredZiKRkgwlL9xNAwxXFg0x/XFw005UWVRIkdg -cKWTjpBP2dPwVZ4WWC+9aGVd+Gyn1o0CLelf4rEjGoXbAAEgAqeGUxrcIlbjXfbc -mwIDAQAB ------END PUBLIC KEY----- \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/wwwroot/Image/0.jpg b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/wwwroot/Image/0.jpg deleted file mode 100644 index 57c1f446..00000000 Binary files a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/wwwroot/Image/0.jpg and /dev/null differ diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/wwwroot/Image/sm.png b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/wwwroot/Image/sm.png deleted file mode 100644 index d532bc24..00000000 Binary files a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/wwwroot/Image/sm.png and /dev/null differ diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/wwwroot/Thumbnail/0.jpg b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/wwwroot/Thumbnail/0.jpg deleted file mode 100644 index 446af2c8..00000000 Binary files a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/wwwroot/Thumbnail/0.jpg and /dev/null differ diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/wwwroot/Thumbnail/sm.png b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/wwwroot/Thumbnail/sm.png deleted file mode 100644 index ed2ac9c2..00000000 Binary files a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/wwwroot/Thumbnail/sm.png and /dev/null differ diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db deleted file mode 100644 index 548aad63..00000000 Binary files a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db and /dev/null differ diff --git a/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Controllers/WeatherForecastController.cs b/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Controllers/WeatherForecastController.cs deleted file mode 100644 index 3eeeea74..00000000 --- a/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Controllers/WeatherForecastController.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.AuthenticationCenter.Controllers -{ - [ApiController] - [Route("[controller]")] - public class WeatherForecastController : ControllerBase - { - private static readonly string[] Summaries = new[] - { - "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" - }; - - private readonly ILogger _logger; - - public WeatherForecastController(ILogger logger) - { - _logger = logger; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Program.cs b/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Program.cs deleted file mode 100644 index e75b3a47..00000000 --- a/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Program.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.AuthenticationCenter -{ - public class Program - { - public static void Main(string[] args) - { - CreateHostBuilder(args).Build().Run(); - } - - public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - }); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Startup.cs b/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Startup.cs deleted file mode 100644 index 6c28a88d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Startup.cs +++ /dev/null @@ -1,59 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.HttpsPolicy; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using Microsoft.OpenApi.Models; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.AuthenticationCenter -{ - public class Startup - { - public Startup(IConfiguration configuration) - { - Configuration = configuration; - } - - public IConfiguration Configuration { get; } - - // This method gets called by the runtime. Use this method to add services to the container. - public void ConfigureServices(IServiceCollection services) - { - - services.AddControllers(); - services.AddSwaggerGen(c => - { - c.SwaggerDoc("v1", new OpenApiInfo { Title = "Yi.Framework.AuthenticationCenter", Version = "v1" }); - }); - } - - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IWebHostEnvironment env) - { - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - app.UseSwagger(); - app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "Yi.Framework.AuthenticationCenter v1")); - } - - app.UseHttpsRedirection(); - - app.UseRouting(); - - app.UseAuthorization(); - - app.UseEndpoints(endpoints => - { - endpoints.MapControllers(); - }); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Abstract/ICurrentUser.cs b/Yi.Framework.Net6/Yi.Framework.Common/Abstract/ICurrentUser.cs deleted file mode 100644 index 0c3b6870..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Abstract/ICurrentUser.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Abstract -{ - public interface ICurrentUser - { - public bool IsAuthenticated { get; set; } - public long Id { get; set; } - - public string UserName { get; set; } - - public Guid? TenantId { get; set; } - - public string Email { get; set; } - - public bool EmailVerified { get; set; } - - public string PhoneNumber { get; set; } - - public bool PhoneNumberVerified { get; set; } - - public string[]? Roles { get; set; } - - public string[]? Permission { get; set; } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Attribute/AppServiceAttribute.cs b/Yi.Framework.Net6/Yi.Framework.Common/Attribute/AppServiceAttribute.cs deleted file mode 100644 index 949ef20e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Attribute/AppServiceAttribute.cs +++ /dev/null @@ -1,30 +0,0 @@ - -using System; - -namespace Yi.Framework.Common.Attribute -{ - /// - /// 参考地址:https://www.cnblogs.com/kelelipeng/p/10643556.html - /// 1、[AppService]:自动去找接口,如果存在就是接口,如果不存在就是本身 - /// 2、[AppService(ServiceType = typeof(注册抽象或者接口或者本身))],手动去注册,放type即可 - /// - [AttributeUsage(AttributeTargets.Class, Inherited = false)] - public class AppServiceAttribute : System.Attribute - { - /// - /// 服务声明周期 - /// 不给默认值的话注册的是作用域 - /// - public LifeTime ServiceLifetime { get; set; } = LifeTime.Scoped; - /// - /// 指定服务类型 - /// - public Type? ServiceType { get; set; } - - } - - public enum LifeTime - { - Transient, Scoped, Singleton - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Attribute/AutowiredAttribute.cs b/Yi.Framework.Net6/Yi.Framework.Common/Attribute/AutowiredAttribute.cs deleted file mode 100644 index ec89d56f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Attribute/AutowiredAttribute.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Attribute -{ - [AttributeUsage(AttributeTargets.Property)] - public class AutowiredAttribute : System.Attribute - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Attribute/LogAttribute.cs b/Yi.Framework.Net6/Yi.Framework.Common/Attribute/LogAttribute.cs deleted file mode 100644 index 58a3571a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Attribute/LogAttribute.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Microsoft.AspNetCore.Mvc.Filters; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using Yi.Framework.Common.Const; -using Yi.Framework.Common.Enum; - -namespace Yi.Framework.Common.Attribute -{ - [AttributeUsage(AttributeTargets.Method)] - public class LogAttribute : System.Attribute - { - /// - /// 操作类型 - /// - public OperEnum OperType { get; set; } - - /// - /// 日志标题(模块) - /// - public string Title { get; set; } - - /// - /// 是否保存请求数据 - /// - public bool IsSaveRequestData { get; set; } = true; - - /// - /// 是否保存返回数据 - /// - public bool IsSaveResponseData { get; set; } = true; - - public LogAttribute(string title, OperEnum operationType) - { - this.Title = title; - this.OperType = operationType; - } - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Base/NullValue.cs b/Yi.Framework.Net6/Yi.Framework.Common/Base/NullValue.cs deleted file mode 100644 index de62622e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Base/NullValue.cs +++ /dev/null @@ -1,434 +0,0 @@ -using System; - -namespace Yi.Framework.Common.Base -{ - #region 无值定义 - - /// - /// 无值定义 - /// - public class NullValue - { - /// - /// 唯一识别型的默认无值 - /// - public static readonly Guid Guid = Guid.Empty; - - /// - /// 日期时间的默认无值 - /// - /// 解决C#DateTime最小值是SQL 2005不允许的范围内 - public static readonly DateTime DateTime = DateTime.Parse("1753-1-1 12:00:01"); - - /// - /// JavaScript日期时间的默认无值 - /// - /// - public static readonly DateTime JavaScriptDateTime = DateTime.Parse("1970-1-1 00:00:00"); - - #region 数字类型 - - /// - /// 短整数的默认无值 - /// - public const short ShortInterger = -1;//short.MinValue; - - /// - /// 整数的默认无值 - /// - public const int Interger = -1;//int.MinValue; - - /// - /// 长整数的默认无值 - /// - public const long LongInterger = -1;//long.MinValue; - - /// - /// Decimal数的默认无值 - /// - public const decimal Decimal = -1;//decimal.MinValue; - - /// - /// Float数的默认无值 - /// - public const float Float = -1;//float.MinValue; - - /// - /// Double数的默认无值 - /// - public const double Double = -1;//double.MinValue; - - /// - /// Byte数的默认无值 - /// - public const byte Byte = byte.MinValue; - - /// - /// SByte数的默认无值 - /// - public const sbyte SByte = sbyte.MinValue; - - #endregion - - /// - /// 字串的默认无值 - /// - public static readonly string String = string.Empty; - - /// - /// 一般对象的判断 - /// - public const object Object = null; - } - - #endregion - - #region 无值的扩展方法 - - /// - /// 无值的扩展方法 - /// - public static class NullValueExtensions - { - #region 一般类型 - - - - public static Guid TryToGuid(this string guid) - { - if (Guid.TryParse(guid, out var guid1)) - { - return guid1; - } - return Guid.Empty; - - } - - public static string TryStringNull(this string value) - { - return value == null ? "" : value; - - } - - /// - /// Object类型无值判断 - /// - /// 待判断对象 - /// 是否为空(true--真,false--假) - public static bool IsNull(this object value) - { - if (value == null || value == NullValue.Object) - { - return true; - } - - return false; - } - - /// - /// Object类型有值判断 - /// - /// 待判断对象 - /// 是否不为空(true--真,false--假) - public static bool IsNotNull(this object value) - { - return !value.IsNull(); - } - public static bool IsGuidNotNull(this Guid? value) - { - return !value.IsGuidNull(); - } - public static bool IsGuidNull(this Guid? value) - { - if (value == null || value == Guid.Empty) - { - return true; - } - - return false; - } - /// - /// String类型无值判断 - /// - /// 待判断对象 - /// 是否为空(true--真,false--假) - public static bool IsNull(this string value) - { - if (string.IsNullOrEmpty(value) || string.IsNullOrWhiteSpace(value)) - { - return true; - } - - return false; - } - - /// - /// String类型有值判断 - /// - /// 待判断对象 - /// 是否不为空(true--真,false--假) - public static bool IsNotNull(this string value) - { - return !value.IsNull(); - } - - /// - /// Guid类型无值判断 - /// - /// 待判断对象 - /// 是否为空(true--真,false--假) - public static bool IsNull(this Guid value) - { - if (value == NullValue.Guid) - { - return true; - } - - return false; - } - - /// - /// Guid类型有值判断 - /// - /// 待判断对象 - /// 是否不为空(true--真,false--假) - public static bool IsNotNull(this Guid value) - { - return !value.IsNull(); - } - - #region 数字类型 - - /// - /// ShortInterger类型无值判断 - /// - /// 待判断对象 - /// 是否为空(true--真,false--假) - public static bool IsNull(this short value) - { - if (value == NullValue.ShortInterger) - { - return true; - } - - return false; - } - - /// - /// ShortInterger类型有值判断 - /// - /// 待判断对象 - /// 是否不为空(true--真,false--假) - public static bool IsNotNull(this short value) - { - return !value.IsNull(); - } - - /// - /// Interger类型无值判断 - /// - /// 待判断对象 - /// 是否为空(true--真,false--假) - public static bool IsNull(this int value) - { - if (value == NullValue.Interger) - { - return true; - } - - return false; - } - - /// - /// Interger类型有值判断 - /// - /// 待判断对象 - /// 是否不为空(true--真,false--假) - public static bool IsNotNull(this int value) - { - return !value.IsNull(); - } - - /// - /// LongInterger类型无值判断 - /// - /// 待判断对象 - /// 是否为空(true--真,false--假) - public static bool IsNull(this long value) - { - if (value == NullValue.LongInterger) - { - return true; - } - - return false; - } - - /// - /// LongInterger类型有值判断 - /// - /// 待判断对象 - /// 是否不为空(true--真,false--假) - public static bool IsNotNull(this long value) - { - return !value.IsNull(); - } - - /// - /// Decimal类型无值判断 - /// - /// 待判断对象 - /// 是否为空(true--真,false--假) - public static bool IsNull(this decimal value) - { - if (value == NullValue.Decimal) - { - return true; - } - - return false; - } - - /// - /// Decimal类型有值判断 - /// - /// 待判断对象 - /// 是否不为空(true--真,false--假) - public static bool IsNotNull(this decimal value) - { - return !value.IsNull(); - } - - /// - /// Float类型无值判断 - /// - /// 待判断对象 - /// 是否为空(true--真,false--假) - public static bool IsNull(this float value) - { - if (value == NullValue.Float) - { - return true; - } - - return false; - } - - /// - /// Float类型有值判断 - /// - /// 待判断对象 - /// 是否不为空(true--真,false--假) - public static bool IsNotNull(this float value) - { - return !value.IsNull(); - } - - /// - /// Double类型无值判断 - /// - /// 待判断对象 - /// 是否为空(true--真,false--假) - public static bool IsNull(this double value) - { - if (value == NullValue.Double) - { - return true; - } - - return false; - } - - /// - /// Double类型有值判断 - /// - /// 待判断对象 - /// 是否不为空(true--真,false--假) - public static bool IsNotNull(this double value) - { - return !value.IsNull(); - } - - /// - /// Byte类型无值判断 - /// - /// 待判断对象 - /// 是否为空(true--真,false--假) - public static bool IsNull(this byte value) - { - if (value == NullValue.Byte) - { - return true; - } - - return false; - } - - /// - /// Byte类型有值判断 - /// - /// 待判断对象 - /// 是否不为空(true--真,false--假) - public static bool IsNotNull(this byte value) - { - return !value.IsNull(); - } - - /// - /// SByte类型无值判断 - /// - /// 待判断对象 - /// 是否为空(true--真,false--假) - public static bool IsNull(this sbyte value) - { - if (value == NullValue.SByte) - { - return true; - } - - return false; - } - - /// - /// SByte类型有值判断 - /// - /// 待判断对象 - /// 是否不为空(true--真,false--假) - public static bool IsNotNull(this sbyte value) - { - return !value.IsNull(); - } - - #endregion - - /// - /// DateTime类型无值判断 - /// - /// 待判断对象 - /// 是否为空(true--真,false--假) - public static bool IsNull(this DateTime value) - { - if (value == DateTime.MinValue || value <= NullValue.DateTime || value == NullValue.JavaScriptDateTime) - { - return true; - } - - return false; - } - - /// - /// DateTime类型有值判断 - /// - /// 待判断对象 - /// 是否不为空(true--真,false--假) - public static bool IsNotNull(this DateTime value) - { - return !value.IsNull(); - } - - #endregion - } - - #endregion - -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Const/DbConst.cs b/Yi.Framework.Net6/Yi.Framework.Common/Const/DbConst.cs deleted file mode 100644 index 99950713..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Const/DbConst.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Const -{ - public class DbConst - { - public const string Mysql = "Mysql"; - public const string Sqlite = "Sqlite"; - public const string Sqlserver = "Sqlserver"; - public const string Oracle = "Oracle"; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Const/JobConst.cs b/Yi.Framework.Net6/Yi.Framework.Common/Const/JobConst.cs deleted file mode 100644 index ce81cb0a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Const/JobConst.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Const -{ - public class JobConst - { - - public const string url = nameof(url); - - public const string method = nameof(method); - } - -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Const/JwtConst.cs b/Yi.Framework.Net6/Yi.Framework.Common/Const/JwtConst.cs deleted file mode 100644 index 7ea25ea2..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Const/JwtConst.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Yi.Framework.Common.Const -{ - public class JwtConst - { - public const string SecurityKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDI2a2EJ7m872v0afyoSDJT2o1+SitIeJSWtLJU8/Wz2m7gStexajkeD+Lka6DSTy8gt9UwfgVQo6uKjVLG5Ex7PiGOODVqAEghBuS7JzIYU5RvI543nNDAPfnJsas96mSA7L/mD7RTE2drj6hf3oZjJpMPZUQI/B1Qjb5H3K3PNwIDAQAB"; - public const string Domain = "https://localhost:44329"; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Const/PathConst.cs b/Yi.Framework.Net6/Yi.Framework.Common/Const/PathConst.cs deleted file mode 100644 index 4c00102a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Const/PathConst.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Const -{ - public class PathConst - { - public const string wwwroot = "wwwroot"; - public const string DataTemplate = "_DataTemplate"; - public const string DataExport = "_DataExport"; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Const/RabbitConst.cs b/Yi.Framework.Net6/Yi.Framework.Common/Const/RabbitConst.cs deleted file mode 100644 index cb7f294e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Const/RabbitConst.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Const -{ - public class RabbitConst - { - private const string prefix = "Yi.Framework."; - public const string SMS_Exchange = prefix+"SMS.Exchange"; - public const string SMS_Queue_Send = prefix+ "SMS.Queue.Send"; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Const/RedisConst.cs b/Yi.Framework.Net6/Yi.Framework.Common/Const/RedisConst.cs deleted file mode 100644 index 13d1fa87..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Const/RedisConst.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Const -{ - public class RedisConst - { - /// - /// 前缀 - /// - public const string key = "YiFramework:data"; - - public const string keyCode = "YiFramework:code"; - - public const string userMenusApi = "YiFramework:userMenusApi"; - ///// - ///// 初始化角色名 - ///// - //public const string InitRole_key = nameof(InitRole_key); - - ///// - ///// 标题名 - ///// - //public const string Title_key = nameof(Title_key); - - ///// - ///// 图片列表名 - ///// - //public const string ImageList_key = nameof(ImageList_key); - - //public static Dictionary stringData = new Dictionary() - //{ - // {prefix+nameof(InitRole_key), "普通用户"}, - // {prefix+nameof(Title_key), "YiFramework"}, - //}; - - //public static Dictionary> listData = new Dictionary>() - //{ - // {prefix+nameof(ImageList_key), new List(){"图片地址1", "图片地址2", "图片地址3", "图片地址4" } } - //}; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Const/SystemConst.cs b/Yi.Framework.Net6/Yi.Framework.Common/Const/SystemConst.cs deleted file mode 100644 index 1cc4c6d1..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Const/SystemConst.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Const -{ - public class SystemConst - { - public const string Admin = "cc"; - public const string AdminRolesCode = "admin"; - public const string AdminPermissionCode = "*:*:*"; - public const string PermissionClaim = "permission"; - public const string UserName = "userName"; - public const string DeptId = "deptId"; - public const string TenantId = "tenantId"; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Enum/AgrFlagEnum.cs b/Yi.Framework.Net6/Yi.Framework.Common/Enum/AgrFlagEnum.cs deleted file mode 100644 index 1a22bf81..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Enum/AgrFlagEnum.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Yi.Framework.Common.Enum -{ - public enum AgrFlagEnum - { - wait = 0, - Agree = 1 - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Enum/DataScopeEnum.cs b/Yi.Framework.Net6/Yi.Framework.Common/Enum/DataScopeEnum.cs deleted file mode 100644 index 12641d45..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Enum/DataScopeEnum.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Enum -{ - public enum DataScopeEnum - { - ALL = 0, - CUSTOM = 1, - DEPT = 2, - DEPT_FOLLOW = 3, - USER = 4 - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Enum/DelFlagEnum.cs b/Yi.Framework.Net6/Yi.Framework.Common/Enum/DelFlagEnum.cs deleted file mode 100644 index 7433fec5..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Enum/DelFlagEnum.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Yi.Framework.Common.Enum -{ - public enum DelFlagEnum - { - Normal=0, - Deleted=1 - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Enum/HubTypeEnum.cs b/Yi.Framework.Net6/Yi.Framework.Common/Enum/HubTypeEnum.cs deleted file mode 100644 index e31558f2..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Enum/HubTypeEnum.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Enum -{ - public enum HubTypeEnum - { - /// - /// 在线总数 - /// - onlineNum, - - /// - /// 强制退出 - /// - forceOut - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Enum/MenuTypeEnum.cs b/Yi.Framework.Net6/Yi.Framework.Common/Enum/MenuTypeEnum.cs deleted file mode 100644 index d1998e63..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Enum/MenuTypeEnum.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Yi.Framework.Common.Enum -{ - public enum MenuTypeEnum - { - Catalogue=0, //目录 - Menu=1, //菜单 - Component = 2//组件 - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Enum/OperEnum.cs b/Yi.Framework.Net6/Yi.Framework.Common/Enum/OperEnum.cs deleted file mode 100644 index ecfd535a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Enum/OperEnum.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Enum -{ - public enum OperEnum - { - Insert=1, - Update=2, - Delete=3, - Auth=4, - Export=5, - Import=6, - ForcedOut = 7, - GenerateCode=8, - ClearData=9 - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Enum/PathEnum.cs b/Yi.Framework.Net6/Yi.Framework.Common/Enum/PathEnum.cs deleted file mode 100644 index 49927991..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Enum/PathEnum.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Enum -{ - public enum PathEnum - { - Excel, - File, - Image, - Thumbnail, - Temp - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Enum/ResultCodeEnum.cs b/Yi.Framework.Net6/Yi.Framework.Common/Enum/ResultCodeEnum.cs deleted file mode 100644 index c3fdd7fb..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Enum/ResultCodeEnum.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Enum -{ - public enum ResultCodeEnum - { - /// - /// 操作成功。 - /// - Success = 200, - - /// - /// 操作不成功 - /// - NotSuccess = 500, - - /// - /// 无权限 - /// - NoPermission = 401, - - /// - /// Access过期 - /// - AccessTokenExpire = 1001, - - /// - /// Refresh过期 - /// - RefreshTokenExpire = 1002, - - /// - /// 没有角色登录 - /// - NoRoleLogin = 1003, - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Enum/ShowFlagEnum.cs b/Yi.Framework.Net6/Yi.Framework.Common/Enum/ShowFlagEnum.cs deleted file mode 100644 index cbd8ea1b..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Enum/ShowFlagEnum.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Enum -{ - public enum ShowFlagEnum - { - NoShow=0, - Show=1 - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Enum/StateEnum.cs b/Yi.Framework.Net6/Yi.Framework.Common/Enum/StateEnum.cs deleted file mode 100644 index 3ef63873..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Enum/StateEnum.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Enum -{ - public enum StateEnum - { - Normal=0, - Disable=1 - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Enum/TopFlagEnum.cs b/Yi.Framework.Net6/Yi.Framework.Common/Enum/TopFlagEnum.cs deleted file mode 100644 index a9e05013..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Enum/TopFlagEnum.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Enum -{ - public enum TopFlagEnum - { - Children=0, - Top=1 - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Enum/WriteAndReadEnum.cs b/Yi.Framework.Net6/Yi.Framework.Common/Enum/WriteAndReadEnum.cs deleted file mode 100644 index c67de196..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Enum/WriteAndReadEnum.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Yi.Framework.Common.Enum -{ - public enum WriteAndReadEnum - { - Write, //主库操作 - Read //从库操作 - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/BusinessException.cs b/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/BusinessException.cs deleted file mode 100644 index 3d0d77ae..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/BusinessException.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Runtime.Serialization; -using Microsoft.Extensions.Logging; -using Yi.Framework.Common.Enum; - -namespace Yi.Framework.Common.Exceptions; - -[Serializable] -public class BusinessException : Exception, - IHasErrorCode, - IHasErrorDetails, - IHasLogLevel -{ - public ResultCodeEnum Code { get; set; } - - public string? Details { get; set; } - - public LogLevel LogLevel { get; set; } - - public BusinessException( - ResultCodeEnum code = ResultCodeEnum.NotSuccess, - string? message = null, - string? details = null, - Exception? innerException = null, - LogLevel logLevel = LogLevel.Warning) - : base(message, innerException) - { - Code = code; - Details = details; - LogLevel = logLevel; - } - - /// - /// 序列化参数的构造函数 - /// - public BusinessException(SerializationInfo serializationInfo, StreamingContext context) - : base(serializationInfo, context) - { - - } - - public BusinessException WithData(string name, object value) - { - Data[name] = value; - return this; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/ExceptionExtensions.cs b/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/ExceptionExtensions.cs deleted file mode 100644 index 29e7296d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/ExceptionExtensions.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Runtime.ExceptionServices; -using Microsoft.Extensions.Logging; -using Yi.Framework.Common.Enum; - -namespace Yi.Framework.Common.Exceptions; - -/// -/// չ -/// -public static class ExceptionExtensions -{ - /// - /// ʹ ٴ׳쳣 - /// - /// Exception to be re-thrown - public static void ReThrow(this Exception exception) - { - ExceptionDispatchInfo.Capture(exception).Throw(); - } - - /// - /// ȡ쳣е־ȼ - /// - /// - /// - /// - public static LogLevel GetLogLevel(this Exception exception, LogLevel defaultLevel = LogLevel.Error) - { - return (exception as IHasLogLevel)?.LogLevel ?? defaultLevel; - } - /// - /// ȡ쳣е־ - /// - /// - /// - /// - public static ResultCodeEnum GetLogErrorCode(this Exception exception, ResultCodeEnum defaultCode = ResultCodeEnum.NotSuccess) - { - return (exception as IHasErrorCode)?.Code ?? defaultCode; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/IHasErrorCode.cs b/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/IHasErrorCode.cs deleted file mode 100644 index 74efb4c9..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/IHasErrorCode.cs +++ /dev/null @@ -1,8 +0,0 @@ -using Yi.Framework.Common.Enum; - -namespace Yi.Framework.Common.Exceptions; - -public interface IHasErrorCode -{ - ResultCodeEnum Code { get; } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/IHasErrorDetails.cs b/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/IHasErrorDetails.cs deleted file mode 100644 index 77a5a37c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/IHasErrorDetails.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Yi.Framework.Common.Exceptions; - -public interface IHasErrorDetails -{ - string? Details { get; } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/IHasLogLevel.cs b/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/IHasLogLevel.cs deleted file mode 100644 index 7c273baa..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/IHasLogLevel.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Microsoft.Extensions.Logging; - -namespace Yi.Framework.Common.Exceptions; - -/// -/// ԵĽӿ -/// -public interface IHasLogLevel -{ - /// - /// Log severity. - /// - LogLevel LogLevel { get; set; } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/UserFriendlyException.cs b/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/UserFriendlyException.cs deleted file mode 100644 index 258f8f74..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Exceptions/UserFriendlyException.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.Runtime.Serialization; -using Microsoft.Extensions.Logging; -using Yi.Framework.Common.Enum; - -namespace Yi.Framework.Common.Exceptions; - -/// -/// ûѺ쳣 -/// -[Serializable] -public class UserFriendlyException : BusinessException -{ - public UserFriendlyException( - string message, - ResultCodeEnum code = ResultCodeEnum.NotSuccess, - string? details = null, - Exception? innerException = null, - LogLevel logLevel = LogLevel.Warning) - : base( - code, - message, - details, - innerException, - logLevel) - { - Details = details; - } - - /// - /// лĹ캯 - /// - public UserFriendlyException(SerializationInfo serializationInfo, StreamingContext context) - : base(serializationInfo, context) - { - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/AssemblyHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/AssemblyHelper.cs deleted file mode 100644 index 003928c7..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/AssemblyHelper.cs +++ /dev/null @@ -1,42 +0,0 @@ -using AutoMapper; -using AutoMapper.Internal; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Helper -{ - public class AssemblyHelper - { - public static List GetClass(string assemblyFile, string? className = null, string? spaceName = null) - { - Assembly assembly = Assembly.Load(assemblyFile); - return assembly.GetTypes().Where(m => m.IsClass - && className == null ? true : m.Name == className - && spaceName == null ? true : m.Namespace == spaceName - ).ToList(); - } - - public static List GetClassByBaseClassesAndInterfaces(string assemblyFile, Type type) - { - Assembly assembly = Assembly.Load(assemblyFile); - - List resList = new List(); - - List typeList = assembly.GetTypes().Where(m => m.IsClass).ToList(); - foreach (var t in typeList) - { - var data = t.BaseClassesAndInterfaces(); - if (data.Contains(type)) - { - resList.Add(t); - } - - } - return resList; - } - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/Base32Helper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/Base32Helper.cs deleted file mode 100644 index 3d422caa..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/Base32Helper.cs +++ /dev/null @@ -1,101 +0,0 @@ -using System; -using System.Text; - -namespace Yi.Framework.Common.Helper -{ - public sealed class Base32Helper - { - - // the valid chars for the encoding - private static string ValidChars = "QAZ2WSX3" + "EDC4RFV5" + "TGB6YHN7" + "UJM8K9LP"; - - /// - /// Converts an array of bytes to a Base32-k string. - /// - public static string ToString(byte[] bytes) - { - StringBuilder sb = new StringBuilder(); // holds the base32 chars - byte index; - int hi = 5; - int currentByte = 0; - - while (currentByte < bytes.Length) - { - // do we need to use the next byte? - if (hi > 8) - { - // get the last piece from the current byte, shift it to the right - // and increment the byte counter - index = (byte)(bytes[currentByte++] >> (hi - 5)); - if (currentByte != bytes.Length) - { - // if we are not at the end, get the first piece from - // the next byte, clear it and shift it to the left - index = (byte)(((byte)(bytes[currentByte] << (16 - hi)) >> 3) | index); - } - - hi -= 3; - } - else if (hi == 8) - { - index = (byte)(bytes[currentByte++] >> 3); - hi -= 3; - } - else - { - - // simply get the stuff from the current byte - index = (byte)((byte)(bytes[currentByte] << (8 - hi)) >> 3); - hi += 5; - } - - sb.Append(ValidChars[index]); - } - - return sb.ToString(); - } - - - /// - /// Converts a Base32-k string into an array of bytes. - /// - /// - /// Input string s contains invalid Base32-k characters. - /// - public static byte[] FromBase32String(string str) - { - int numBytes = str.Length * 5 / 8; - byte[] bytes = new Byte[numBytes]; - - // all UPPERCASE chars - str = str.ToUpper(); - - int bit_buffer; - int currentCharIndex; - int bits_in_buffer; - - if (str.Length < 3) - { - bytes[0] = (byte)(ValidChars.IndexOf(str[0]) | ValidChars.IndexOf(str[1]) << 5); - return bytes; - } - - bit_buffer = (ValidChars.IndexOf(str[0]) | ValidChars.IndexOf(str[1]) << 5); - bits_in_buffer = 10; - currentCharIndex = 2; - for (int i = 0; i < bytes.Length; i++) - { - bytes[i] = (byte)bit_buffer; - bit_buffer >>= 8; - bits_in_buffer -= 8; - while (bits_in_buffer < 8 && currentCharIndex < str.Length) - { - bit_buffer |= ValidChars.IndexOf(str[currentCharIndex++]) << bits_in_buffer; - bits_in_buffer += 5; - } - } - - return bytes; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/ConsoleHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/ConsoleHelper.cs deleted file mode 100644 index 50a9688f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/ConsoleHelper.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; - -namespace Yi.Framework.Common.Helper -{ - public static class ConsoleHelper - { - public static void WriteColorLine(string str, ConsoleColor color) - { - ConsoleColor currentForeColor = Console.ForegroundColor; - Console.ForegroundColor = color; - Console.WriteLine(str); - Console.ForegroundColor = currentForeColor; - } - - /// - /// 打印错误信息 - /// - /// 待打印的字符串 - /// 想要打印的颜色 - public static void WriteErrorLine(this string str, ConsoleColor color = ConsoleColor.Red) - { - WriteColorLine(str, color); - } - - /// - /// 打印警告信息 - /// - /// 待打印的字符串 - /// 想要打印的颜色 - public static void WriteWarningLine(this string str, ConsoleColor color = ConsoleColor.Yellow) - { - WriteColorLine(str, color); - } - /// - /// 打印正常信息 - /// - /// 待打印的字符串 - /// 想要打印的颜色 - public static void WriteInfoLine(this string str, ConsoleColor color = ConsoleColor.White) - { - WriteColorLine(str, color); - } - /// - /// 打印成功的信息 - /// - /// 待打印的字符串 - /// 想要打印的颜色 - public static void WriteSuccessLine(this string str, ConsoleColor color = ConsoleColor.Green) - { - WriteColorLine(str, color); - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/DateHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/DateHelper.cs deleted file mode 100644 index 0e31e4c7..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/DateHelper.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; - -namespace Yi.Framework.Common.Helper -{ - public class DateHelper - { - public static DateTime StampToDateTime(string time) - { - time = time.Substring(0, 10); - double timestamp = Convert.ToInt64(time); - System.DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0); - dateTime = dateTime.AddSeconds(timestamp).ToLocalTime(); - return dateTime; - } - - public static string TimeSubTract(DateTime time1,DateTime time2) - { - TimeSpan subTract = time1.Subtract(time2); - return $"{subTract.Days} 天 {subTract.Hours} 时 {subTract.Minutes} 分 "; - } - /// - /// 时间戳转本地时间-时间戳精确到秒 - /// - public static DateTime ToLocalTimeDateBySeconds(long unix) - { - var dto = DateTimeOffset.FromUnixTimeSeconds(unix); - return dto.ToLocalTime().DateTime; - } - - /// - /// 时间转时间戳Unix-时间戳精确到秒 - /// - public static long ToUnixTimestampBySeconds(DateTime dt) - { - DateTimeOffset dto = new DateTimeOffset(dt); - return dto.ToUnixTimeSeconds(); - } - - - /// - /// 时间戳转本地时间-时间戳精确到毫秒 - /// - public static DateTime ToLocalTimeDateByMilliseconds(long unix) - { - var dto = DateTimeOffset.FromUnixTimeMilliseconds(unix); - return dto.ToLocalTime().DateTime; - } - - /// - /// 时间转时间戳Unix-时间戳精确到毫秒 - /// - public static long ToUnixTimestampByMilliseconds(DateTime dt) - { - DateTimeOffset dto = new DateTimeOffset(dt); - return dto.ToUnixTimeMilliseconds(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/DistinctHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/DistinctHelper.cs deleted file mode 100644 index 0d531e99..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/DistinctHelper.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Helper -{ - public class Compare : IEqualityComparer - { - private Func _getField; - public Compare(Func getfield) - { - this._getField = getfield; - } - public bool Equals(T? x, T? y) - { - return EqualityComparer.Default.Equals(_getField(x!), _getField(y!)); - } - - public int GetHashCode(T obj) - { - return EqualityComparer.Default.GetHashCode(this._getField(obj)!); - } - } - public static class DistinctHelper - { - /// - /// 自定义Distinct扩展方法 - /// - /// 要去重的对象类 - /// 自定义去重的字段类型 - /// 要去重的对象 - /// 获取自定义去重字段的委托 - /// - public static IEnumerable DistinctNew(this IEnumerable source, Func getfield) - { - return source.Distinct(new Compare(getfield)); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/EmailHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/EmailHelper.cs deleted file mode 100644 index b750054f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/EmailHelper.cs +++ /dev/null @@ -1,125 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Net.Mail; -using System.Net.Sockets; -using System.Text; - -namespace Yi.Framework.Common.Helper -{ - public class EmailHelper - { - public static string fromMail { get; set; } = string.Empty; - public static string pwdMail { get; set; } = string.Empty; - public static string senderMail { get; set; } = string.Empty; - public static string subjectMail { get; set; } = string.Empty; - public static void Init(string fromMail,string pwdMail,string senderMail, string subjectMail) - { - EmailHelper.fromMail = fromMail; - EmailHelper.pwdMail = pwdMail; - EmailHelper.senderMail = senderMail; - EmailHelper.subjectMail = subjectMail; - } - - public static bool sendMail(string body, string toMail) - { - try - { - - //string fromMail = "454313500@qq.com"; - //string pwdMail = "yvjioburildgbhdf"; - MailMessage message = new MailMessage(); - //设置发件人,发件人需要与设置的邮件发送服务器的邮箱一致 - System.Net.Mail.MailAddress fromAddr = new System.Net.Mail.MailAddress(fromMail, EmailHelper.senderMail); - message.From = fromAddr; - - //设置收件人,可添加多个,添加方法与下面的一样 - message.To.Add(toMail); - - - //设置邮件标题 - message.Subject = EmailHelper.subjectMail; - - //设置邮件内容 - message.Body = body; - - //设置邮件发送服务器,服务器根据你使用的邮箱而不同,可以到相应的 邮箱管理后台查看,下面是QQ的 - System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("smtp.qq.com", 25) - ; - //设置发送人的邮箱账号和密码,POP3/SMTP服务要开启, 密码要是POP3/SMTP等服务的授权码 - client.Credentials = new System.Net.NetworkCredential(fromMail, pwdMail);//vtirsfsthwuadjfe fhszmpegwoqnecja - - //启用ssl,也就是安全发送 - client.EnableSsl = true; - - //发送邮件 - client.Send(message); - - return true; - } - catch - { - return false; - } - - } - - public static void 接受邮件() - { - using (TcpClient client = new TcpClient("pop.qq.com", 110)) - using (NetworkStream n = client.GetStream()) - { - GetEmail.ReadLine(n); // Read the welcome message. - GetEmail.SendCommand(n, "USER 1040079213@qq.com"); - GetEmail.SendCommand(n, "PASS odfaizoqdiupbfgi"); - GetEmail.SendCommand(n, "LIST"); // Retrieve message IDs - List messageIDs = new List(); - while (true) - { - string line = GetEmail.ReadLine(n); // e.g., "11876" - if (line == ".") break; - messageIDs.Add(int.Parse(line.Split(' ')[0])); // Message ID - } - foreach (int id in messageIDs) // Retrieve each message. - { - GetEmail.SendCommand(n, "RETR " + id); - string randomFile = Guid.NewGuid().ToString() + ".eml"; - using (StreamWriter writer = File.CreateText(randomFile)) - while (true) - { - string line = GetEmail.ReadLine(n); // Read next line of message. - if (line == ".") break; // Single dot = end of message. - if (line == "..") line = "."; // "Escape out" double dot. - writer.WriteLine(line); // Write to output file. - } - GetEmail.SendCommand(n, "DELE " + id); // Delete message off server. - } - GetEmail.SendCommand(n, "QUIT"); - } - } - } - //接受邮件pop - public class GetEmail - { - public static void SendCommand(Stream stream, string line) - { - byte[] data = Encoding.UTF8.GetBytes(line + "\r\n"); - stream.Write(data, 0, data.Length); - string response = ReadLine(stream); - if (!response.StartsWith("+OK")) - throw new Exception("POP Error: " + response); - } - public static string ReadLine(Stream s) - { - List lineBuffer = new List(); - while (true) - { - int b = s.ReadByte(); - if (b == 10 || b < 0) break; - if (b != 13) lineBuffer.Add((byte)b); - } - return Encoding.UTF8.GetString(lineBuffer.ToArray()); - } - } -} - diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/ExcelHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/ExcelHelper.cs deleted file mode 100644 index 6ab6340f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/ExcelHelper.cs +++ /dev/null @@ -1,237 +0,0 @@ -using OfficeOpenXml; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; - - - -/// -/// 此处来源于ZrAdmin -/// -namespace Yi.Framework.Common.Helper -{ - public class ExcelHelper - { - /// - /// 导出Excel - /// - /// - /// - /// - /// - public static string ExportExcel(List list, string fileName,string path,string sheetName= "default") - { - string sFileName = $"{fileName}.xlsx"; - string newFileName = Path.Combine(path, sFileName); - //调试模式需要加上 - ExcelPackage.LicenseContext = LicenseContext.NonCommercial; - Directory.CreateDirectory(Path.GetDirectoryName(newFileName)!); - using (ExcelPackage package = new(new FileInfo(newFileName))) - { - // 添加worksheet - ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(sheetName); - //单元格自动适应大小 - worksheet.Cells.Style.ShrinkToFit = true; - //全部字段导出 - worksheet.Cells.LoadFromCollection(list, true, OfficeOpenXml.Table.TableStyles.Light13); - package.Save(); - } - - return newFileName; - } - - /// - /// 下载导入模板 - /// - /// - /// - /// - /// 下载文件名 - /// - public static string DownloadImportTemplate(List list, string fileName,string path) - { - string sFileName = $"{fileName}.xlsx"; - string newFileName = Path.Combine(path, sFileName); - - //如果文件存在,直接返回即可 - if (File.Exists(newFileName)) - { - return newFileName; - } - //调试模式需要加上 - ExcelPackage.LicenseContext = LicenseContext.NonCommercial; - if (!Directory.Exists(newFileName)) - { - Directory.CreateDirectory(Path.GetDirectoryName(newFileName)!); - } - - - Stream stream = new FileStream(newFileName, FileMode.OpenOrCreate); - using (ExcelPackage package = new(new FileInfo(newFileName))) - { - // 添加worksheet - ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(fileName); - //单元格自动适应大小 - worksheet.Cells.Style.ShrinkToFit = true; - //全部字段导出 - worksheet.Cells.LoadFromCollection(list, true, OfficeOpenXml.Table.TableStyles.Light13); - package.SaveAs(stream); - } - stream.Dispose(); - - return newFileName; - } - - - - - /// - /// 导入数据 - /// - /// - /// - public static List ImportData(Stream stream) where T : new() - { - using ExcelPackage package = new(stream); - ExcelPackage.LicenseContext = LicenseContext.NonCommercial; - ExcelWorksheet worksheet = package.Workbook.Worksheets[0];//读取第1个sheet - //获取表格的列数和行数 - - int colStart = worksheet.Dimension.Start.Column; - int colEnd = worksheet.Dimension.End.Column; - int rowStart = worksheet.Dimension.Start.Row; - int rowEnd = worksheet.Dimension.End.Row; - //int rowCount = worksheet.Dimension.Rows; - //int ColCount = worksheet.Dimension.Columns; - - List resultList = new(); - List propertyInfos = new();// new(typeof(T).GetProperties()); - Dictionary dictHeader = new(); - for (int i = colStart; i < colEnd; i++) - { - var name = worksheet.Cells[rowStart, i].Value.ToString(); - dictHeader[name!] = i; - - PropertyInfo propertyInfo = MapPropertyInfo(name!); - if (propertyInfo != null) - { - propertyInfos.Add(propertyInfo); - } - } - for (int row = rowStart + 1; row <= rowEnd; row++) - { - T result = new(); - - foreach (PropertyInfo p in propertyInfos) - { - try - { - ExcelRange cell = worksheet.Cells[row, dictHeader[p.Name]]; - if (cell.Value == null) - { - continue; - } - switch (p.PropertyType.Name.ToLower()) - { - case "string": - p.SetValue(result, cell.GetValue()); - break; - case "int16": - p.SetValue(result, cell.GetValue()); break; - case "int32": - p.SetValue(result, cell.GetValue()); break; - case "int64": - p.SetValue(result, cell.GetValue()); break; - case "decimal": - p.SetValue(result, cell.GetValue()); - break; - case "double": - p.SetValue(result, cell.GetValue()); break; - case "datetime": - p.SetValue(result, cell.GetValue()); break; - case "boolean": - p.SetValue(result, cell.GetValue()); break; - case "char": - p.SetValue(result, cell.GetValue()); break; - default: - break; - } - } - catch (KeyNotFoundException ex) - { - Console.WriteLine("未找到该列将继续循环," + ex.Message); - continue; - } - } - resultList.Add(result); - } - - return resultList.ToList(); - } - - /// - /// 查找Excel列名对应的实体属性 - /// - /// - /// - private static PropertyInfo MapPropertyInfo(string columnName) - { - PropertyInfo[] propertyList = GetProperties(typeof(T)); - PropertyInfo propertyInfo = propertyList.Where(p => p.Name == columnName).FirstOrDefault()!; - if (propertyInfo != null) - { - return propertyInfo; - } - else - { - foreach (PropertyInfo tempPropertyInfo in propertyList) - { - System.ComponentModel.DescriptionAttribute[] attributes = (System.ComponentModel.DescriptionAttribute[])tempPropertyInfo.GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), false); - if (attributes.Length > 0) - { - if (attributes[0].Description == columnName) - { - return tempPropertyInfo; - } - } - } - } - return null!; - } - - /// - /// 得到类里面的属性集合 - /// - /// - /// - /// - private static PropertyInfo[] GetProperties(Type type, string[] columns = null!) - { - PropertyInfo[] properties = null!; - properties = type.GetProperties(); - - if (columns != null && columns.Length > 0) - { - // 按columns顺序返回属性 - var columnPropertyList = new List(); - foreach (var column in columns) - { - var columnProperty = properties.Where(p => p.Name == column).FirstOrDefault(); - if (columnProperty != null) - { - columnPropertyList.Add(columnProperty); - } - } - return columnPropertyList.ToArray(); - } - else - { - return properties; - } - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/FileHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/FileHelper.cs deleted file mode 100644 index 7ae1c0c4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/FileHelper.cs +++ /dev/null @@ -1,490 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; - -namespace Yi.Framework.Common.Helper -{ - public class FileHelper : IDisposable - { - - private bool _alreadyDispose = false; - - - - #region 构造函数 - public FileHelper() - { - // - // TODO: 在此处添加构造函数逻辑 - // - } - ~FileHelper() - { - Dispose(); ; - } - - protected virtual void Dispose(bool isDisposing) - { - if (_alreadyDispose) return; - _alreadyDispose = true; - } - #endregion - - #region IDisposable 成员 - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - #endregion - - #region 取得文件后缀名 - /**************************************** - * 函数名称:GetPostfixStr - * 功能说明:取得文件后缀名 - * 参 数:filename:文件名称 - * 调用示列: - * string filename = "aaa.aspx"; - * string s = EC.FileObj.GetPostfixStr(filename); - *****************************************/ - /// - /// 取后缀名 - /// - /// 文件名 - /// .gif|.html格式 - public static string GetPostfixStr(string filename) - { - int start = filename.LastIndexOf("."); - int length = filename.Length; - string postfix = filename.Substring(start, length - start); - return postfix; - } - #endregion - - #region 根据文件大小获取指定前缀的可用文件名 - /// - /// 根据文件大小获取指定前缀的可用文件名 - /// - /// 文件夹 - /// 文件前缀 - /// 文件大小(1m) - /// 文件后缀(.log) - /// 可用文件名 - //public static string GetAvailableFileWithPrefixOrderSize(string folderPath, string prefix, int size = 1 * 1024 * 1024, string ext = ".log") - //{ - // var allFiles = new DirectoryInfo(folderPath); - // var selectFiles = allFiles.GetFiles().Where(fi => fi.Name.ToLower().Contains(prefix.ToLower()) && fi.Extension.ToLower() == ext.ToLower() && fi.Length < size).OrderByDescending(d=>d.Name).ToList(); - - // if (selectFiles.Count > 0) - // { - // return selectFiles.FirstOrDefault().FullName; - // } - - // return Path.Combine(folderPath, $@"{prefix}_{DateTime.Now.DateToTimeStamp()}.log"); - //} - //public static string GetAvailableFileNameWithPrefixOrderSize(string _contentRoot, string prefix, int size = 1 * 1024 * 1024, string ext = ".log") - //{ - // var folderPath = Path.Combine(_contentRoot, "Log"); - // if (!Directory.Exists(folderPath)) - // { - // Directory.CreateDirectory(folderPath); - // } - - // var allFiles = new DirectoryInfo(folderPath); - // var selectFiles = allFiles.GetFiles().Where(fi => fi.Name.ToLower().Contains(prefix.ToLower()) && fi.Extension.ToLower() == ext.ToLower() && fi.Length < size).OrderByDescending(d => d.Name).ToList(); - - // if (selectFiles.Count > 0) - // { - // return selectFiles.FirstOrDefault().Name.Replace(".log",""); - // } - - // return $@"{prefix}_{DateTime.Now.DateToTimeStamp()}"; - //} - #endregion - - #region 写文件 - /**************************************** - * 函数名称:WriteFile - * 功能说明:写文件,会覆盖掉以前的内容 - * 参 数:Path:文件路径,Strings:文本内容 - * 调用示列: - * string Path = Server.MapPath("Default2.aspx"); - * string Strings = "这是我写的内容啊"; - * EC.FileObj.WriteFile(Path,Strings); - *****************************************/ - /// - /// 写文件 - /// - /// 文件路径 - /// 文件内容 - public static void WriteFile(string Path, string Strings) - { - if (!File.Exists(Path)) - { - FileStream f = File.Create(Path); - f.Close(); - } - StreamWriter f2 = new StreamWriter(Path, false, System.Text.Encoding.GetEncoding("gb2312")); - f2.Write(Strings); - f2.Close(); - f2.Dispose(); - } - - /// - /// 写文件 - /// - /// 文件路径 - /// 文件内容 - /// 编码格式 - public static void WriteFile(string Path, string Strings, Encoding encode) - { - if (!File.Exists(Path)) - { - FileStream f = File.Create(Path); - f.Close(); - } - StreamWriter f2 = new StreamWriter(Path, false, encode); - f2.Write(Strings); - f2.Close(); - f2.Dispose(); - } - #endregion - - #region 读文件 - /**************************************** - * 函数名称:ReadFile - * 功能说明:读取文本内容 - * 参 数:Path:文件路径 - * 调用示列: - * string Path = Server.MapPath("Default2.aspx"); - * string s = EC.FileObj.ReadFile(Path); - *****************************************/ - /// - /// 读文件 - /// - /// 文件路径 - /// - public static string ReadFile(string Path) - { - string s = ""; - if (!File.Exists(Path)) - s = "不存在相应的目录"; - else - { - StreamReader f2 = new StreamReader(Path, System.Text.Encoding.GetEncoding("gb2312")); - s = f2.ReadToEnd(); - f2.Close(); - f2.Dispose(); - } - - return s; - } - - /// - /// 读文件 - /// - /// 文件路径 - /// 编码格式 - /// - public static string ReadFile(string Path, Encoding encode) - { - string s = ""; - if (!File.Exists(Path)) - s = "不存在相应的目录"; - else - { - StreamReader f2 = new StreamReader(Path, encode); - s = f2.ReadToEnd(); - f2.Close(); - f2.Dispose(); - } - - return s; - } - #endregion - - #region 追加文件 - /**************************************** - * 函数名称:FileAdd - * 功能说明:追加文件内容 - * 参 数:Path:文件路径,strings:内容 - * 调用示列: - * string Path = Server.MapPath("Default2.aspx"); - * string Strings = "新追加内容"; - * EC.FileObj.FileAdd(Path, Strings); - *****************************************/ - /// - /// 追加文件 - /// - /// 文件路径 - /// 内容 - public static void FileAdd(string Path, string strings) - { - StreamWriter sw = File.AppendText(Path); - sw.Write(strings); - sw.Flush(); - sw.Close(); - } - #endregion - - #region 拷贝文件 - /**************************************** - * 函数名称:FileCoppy - * 功能说明:拷贝文件 - * 参 数:OrignFile:原始文件,NewFile:新文件路径 - * 调用示列: - * string orignFile = Server.MapPath("Default2.aspx"); - * string NewFile = Server.MapPath("Default3.aspx"); - * EC.FileObj.FileCoppy(OrignFile, NewFile); - *****************************************/ - /// - /// 拷贝文件 - /// - /// 原始文件 - /// 新文件路径 - public static void FileCoppy(string orignFile, string NewFile) - { - File.Copy(orignFile, NewFile, true); - } - - #endregion - - #region 删除文件 - /**************************************** - * 函数名称:FileDel - * 功能说明:删除文件 - * 参 数:Path:文件路径 - * 调用示列: - * string Path = Server.MapPath("Default3.aspx"); - * EC.FileObj.FileDel(Path); - *****************************************/ - /// - /// 删除文件 - /// - /// 路径 - public static void FileDel(string Path) - { - File.Delete(Path); - } - #endregion - - #region 移动文件 - /**************************************** - * 函数名称:FileMove - * 功能说明:移动文件 - * 参 数:OrignFile:原始路径,NewFile:新文件路径 - * 调用示列: - * string orignFile = Server.MapPath("../说明.txt"); - * string NewFile = Server.MapPath("http://www.cnblogs.com/说明.txt"); - * EC.FileObj.FileMove(OrignFile, NewFile); - *****************************************/ - /// - /// 移动文件 - /// - /// 原始路径 - /// 新路径 - public static void FileMove(string orignFile, string NewFile) - { - File.Move(orignFile, NewFile); - } - #endregion - - #region 在当前目录下创建目录 - /**************************************** - * 函数名称:FolderCreate - * 功能说明:在当前目录下创建目录 - * 参 数:OrignFolder:当前目录,NewFloder:新目录 - * 调用示列: - * string orignFolder = Server.MapPath("test/"); - * string NewFloder = "new"; - * EC.FileObj.FolderCreate(OrignFolder, NewFloder); - *****************************************/ - /// - /// 在当前目录下创建目录 - /// - /// 当前目录 - /// 新目录 - public static void FolderCreate(string orignFolder, string NewFloder) - { - Directory.SetCurrentDirectory(orignFolder); - Directory.CreateDirectory(NewFloder); - } - #endregion - - #region 递归删除文件夹目录及文件 - /**************************************** - * 函数名称:DeleteFolder - * 功能说明:递归删除文件夹目录及文件 - * 参 数:dir:文件夹路径 - * 调用示列: - * string dir = Server.MapPath("test/"); - * EC.FileObj.DeleteFolder(dir); - *****************************************/ - /// - /// 递归删除文件夹目录及文件 - /// - /// - /// - public static void DeleteFolder(string dir) - { - if (Directory.Exists(dir)) //如果存在这个文件夹删除之 - { - foreach (string d in Directory.GetFileSystemEntries(dir)) - { - if (File.Exists(d)) - File.Delete(d); //直接删除其中的文件 - else - DeleteFolder(d); //递归删除子文件夹 - } - Directory.Delete(dir); //删除已空文件夹 - } - - } - #endregion - - #region 将指定文件夹下面的所有内容copy到目标文件夹下面 果目标文件夹为只读属性就会报错。 - /**************************************** - * 函数名称:CopyDir - * 功能说明:将指定文件夹下面的所有内容copy到目标文件夹下面 果目标文件夹为只读属性就会报错。 - * 参 数:srcPath:原始路径,aimPath:目标文件夹 - * 调用示列: - * string srcPath = Server.MapPath("test/"); - * string aimPath = Server.MapPath("test1/"); - * EC.FileObj.CopyDir(srcPath,aimPath); - *****************************************/ - /// - /// 指定文件夹下面的所有内容copy到目标文件夹下面 - /// - /// 原始路径 - /// 目标文件夹 - public static void CopyDir(string srcPath, string aimPath) - { - try - { - // 检查目标目录是否以目录分割字符结束如果不是则添加之 - if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar) - aimPath += Path.DirectorySeparatorChar; - // 判断目标目录是否存在如果不存在则新建之 - if (!Directory.Exists(aimPath)) - Directory.CreateDirectory(aimPath); - // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组 - //如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法 - //string[] fileList = Directory.GetFiles(srcPath); - string[] fileList = Directory.GetFileSystemEntries(srcPath); - //遍历所有的文件和目录 - foreach (string file in fileList) - { - //先当作目录处理如果存在这个目录就递归Copy该目录下面的文件 - - if (Directory.Exists(file)) - CopyDir(file, aimPath + Path.GetFileName(file)); - //否则直接Copy文件 - else - File.Copy(file, aimPath + Path.GetFileName(file), true); - } - - } - catch (Exception ee) - { - throw new Exception(ee.ToString()); - } - } - #endregion - - /// - /// 获取目录下全部文件名 - /// - /// - /// - /// - public static List GetAllFileNames(string path, string pattern = "*") - { - List folder = new DirectoryInfo(path).GetFiles(pattern).ToList(); - - return folder.Select(x => x.Name).ToList(); - } - /// - /// 文件内容替换 - /// - public static string FileContentReplace(string path, string oldStr, string newStr) - { - var content = File.ReadAllText(path); - - if (content.Contains(oldStr)) - { - File.Delete(path); - File.WriteAllText(path, content.Replace(oldStr, newStr)); - } - - return path; - } - /// - /// 文件名称 - /// - public static string FileNameReplace(string path, string oldStr, string newStr) - { - string fileName = Path.GetFileName(path); - if (!fileName.Contains(oldStr)) - { - return path; - } - - string? directoryName = Path.GetDirectoryName(path); - string newFileName = fileName.Replace(oldStr, newStr); - string newPath = Path.Combine(directoryName ?? "", newFileName); - File.Move(path, newPath); - - return newPath; - } - /// - /// 目录名替换 - /// - public static string DirectoryNameReplace(string path, string oldStr, string newStr) - { - string fileName = Path.GetFileName(path); - if (!fileName.Contains(oldStr)) - { - return path; - } - - string? directoryName = Path.GetDirectoryName(path); - string newFileName = fileName.Replace(oldStr, newStr); - string newPath = Path.Combine(directoryName ?? "", newFileName); - Directory.Move(path, newPath); - return newPath; - } - - /// - /// 全部信息递归替换 - /// - /// - /// - /// - public static void AllInfoReplace(string dirPath, string oldStr, string newStr) - { - var path = DirectoryNameReplace(dirPath, oldStr, newStr); - var dirInfo = new DirectoryInfo(path); - var files = dirInfo.GetFiles(); - var dirs = dirInfo.GetDirectories(); - if (files.Length > 0) - { - foreach (var f in files) - { - FileContentReplace(f.FullName, oldStr, newStr); - FileNameReplace(f.FullName, oldStr, newStr); - } - } - if (dirs.Length > 0) - { - foreach (var d in dirs) - { - AllInfoReplace(d.FullName, oldStr, newStr); - } - } - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/HtmlHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/HtmlHelper.cs deleted file mode 100644 index 1e1e0086..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/HtmlHelper.cs +++ /dev/null @@ -1,24 +0,0 @@ -namespace Yi.Framework.Common.Helper -{ - public static class HtmlHelper - { - #region 去除富文本中的HTML标签 - /// - /// 去除富文本中的HTML标签 - /// - /// - /// - /// - public static string ReplaceHtmlTag(string html, int length = 0) - { - string strText = System.Text.RegularExpressions.Regex.Replace(html, "<[^>]+>", ""); - strText = System.Text.RegularExpressions.Regex.Replace(strText, "&[^;]+;", ""); - - if (length > 0 && strText.Length > length) - return strText.Substring(0, length); - - return strText; - } - #endregion - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/HttpHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/HttpHelper.cs deleted file mode 100644 index 94e244ca..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/HttpHelper.cs +++ /dev/null @@ -1,122 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Net.Mime; -using System.Text; -using System.Text.Json; -using System.Text.RegularExpressions; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Helper -{ - public static class HttpHelper - { - - public static HttpClient Client { get; set; } = new HttpClient(); - - public static async Task Get(string url) - { - return await Client.GetStringAsync(url); - } - - public static async Task GetIO(string url) - { - return await Client.GetStreamAsync(url); - } - - - public static async Task Post(string url, object? item = null, Dictionary? head = null) - { - - using StringContent json = new(JsonSerializer.Serialize(item), Encoding.UTF8, MediaTypeNames.Application.Json); - - - if (head is not null) - { - foreach (var d in head) - { - json.Headers.Add(d.Key, d.Value); - } - } - - var httpResponse = await Client.PostAsync(url, json); - - httpResponse.EnsureSuccessStatusCode(); - - var content = httpResponse.Content; - - return await content.ReadAsStringAsync(); - } - - -// public static string HttpGet(string Url, string postDataStr="") -// { -//#pragma warning disable SYSLIB0014 // 类型或成员已过时 -// HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr); -//#pragma warning restore SYSLIB0014 // 类型或成员已过时 -// request.Method = "GET"; -// request.ContentType = "text/html;charset=UTF-8"; - -// HttpWebResponse response = (HttpWebResponse)request.GetResponse(); -// Stream myResponseStream = response.GetResponseStream(); -// StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); -// string retString = myStreamReader.ReadToEnd(); -// myStreamReader.Close(); -// myResponseStream.Close(); - -// return retString; -// } - -// public static bool HttpIOGet(string Url, string file, string postDataStr="") -// { -// HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr); -// request.Method = "GET"; -// request.ContentType = "text/html;charset=UTF-8"; - -// HttpWebResponse response = (HttpWebResponse)request.GetResponse(); -// Stream myResponseStream = response.GetResponseStream(); -// FileStream writer = new FileStream(file, FileMode.OpenOrCreate, FileAccess.Write); -// byte[] buffer = new byte[1024]; -// int c; -// while ((c = myResponseStream.Read(buffer, 0, buffer.Length)) > 0) -// { -// writer.Write(buffer, 0, c); -// } -// writer.Close(); -// myResponseStream.Close(); - -// return true; -// } - -// public static string HttpPost(string Url, string postDataStr="") -// { -// CookieContainer cookie = new CookieContainer(); -//#pragma warning disable SYSLIB0014 // 类型或成员已过时 -// HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); -//#pragma warning restore SYSLIB0014 // 类型或成员已过时 -// request.Method = "POST"; -// request.ContentType = "application/x-www-form-urlencoded"; -// request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr); -// request.CookieContainer = cookie; - -// Stream myRequestStream = request.GetRequestStream(); -// StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312")); -// myStreamWriter.Write(postDataStr); -// myStreamWriter.Close(); - -// HttpWebResponse response = (HttpWebResponse)request.GetResponse(); - -// response.Cookies = cookie.GetCookies(response.ResponseUri); -// Stream myResponseStream = response.GetResponseStream(); -// StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); -// string retString = myStreamReader.ReadToEnd(); -// myStreamReader.Close(); -// myResponseStream.Close(); - -// return retString; -// } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/IdHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/IdHelper.cs deleted file mode 100644 index 8e09d66c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/IdHelper.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Helper -{ - public static class IdHelper - { - public static dynamic[] ToDynamicArray(this IEnumerable ids) - { - return ids.Select(id => (dynamic)id).ToArray(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/IpHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/IpHelper.cs deleted file mode 100644 index 700be7b5..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/IpHelper.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.Linq; -using System.Net; -using System.Net.NetworkInformation; -using System.Net.Sockets; - -namespace Yi.Framework.Common.Helper -{ - public class IpHelper - { - /// - /// 获取当前IP地址 - /// - /// - /// - public static string GetCurrentIp(string preferredNetworks) - { - var instanceIp = "127.0.0.1"; - - try - { - // 获取可用网卡 - var nics = NetworkInterface.GetAllNetworkInterfaces()?.Where(network => network.OperationalStatus == OperationalStatus.Up); - - // 获取所有可用网卡IP信息 - var ipCollection = nics?.Select(x => x.GetIPProperties())?.SelectMany(x => x.UnicastAddresses); - - if (ipCollection is null) - { - return instanceIp; - } - - foreach (var ipadd in ipCollection) - { - if (!IPAddress.IsLoopback(ipadd.Address) && ipadd.Address.AddressFamily == AddressFamily.InterNetwork) - { - if (string.IsNullOrEmpty(preferredNetworks)) - { - instanceIp = ipadd.Address.ToString(); - break; - } - - if (!ipadd.Address.ToString().StartsWith(preferredNetworks)) continue; - instanceIp = ipadd.Address.ToString(); - break; - } - } - } - catch - { - // ignored - } - - return instanceIp; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/JsonHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/JsonHelper.cs deleted file mode 100644 index 6ceefa24..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/JsonHelper.cs +++ /dev/null @@ -1,509 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text.Json; - -namespace Yi.Framework.Common.Helper -{ - public class JsonHelper - { - - - public static string ObjToStr(T obj) - { - return Newtonsoft.Json.JsonConvert.SerializeObject(obj); - } - - public static T StrToObj(string str) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject(str)!; - } - /// - /// 转换对象为JSON格式数据 - /// - /// - /// 对象 - /// 字符格式的JSON数据 - public static string GetJSON(object obj) - { - string result = String.Empty; - try - { - JsonSerializer.Serialize(""); - System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = - new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T)); - using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) - { - serializer.WriteObject(ms, obj); - result = System.Text.Encoding.UTF8.GetString(ms.ToArray()); - } - } - catch (Exception) - { - throw; - } - return result; - } - /// - /// 转换List的数据为JSON格式 - /// - /// - /// 列表值 - /// JSON格式数据 - public string JSON(List vals) - { - System.Text.StringBuilder st = new System.Text.StringBuilder(); - try - { - System.Runtime.Serialization.Json.DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T)); - - foreach (T city in vals) - { - using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) - { - s.WriteObject(ms, city); - st.Append(System.Text.Encoding.UTF8.GetString(ms.ToArray())); - } - } - } - catch (Exception) - { - } - - return st.ToString(); - } - /// - /// JSON格式字符转换为T类型的对象 - /// - /// - /// - /// - public static T ParseFormByJson(string jsonStr) - { - T obj = Activator.CreateInstance(); - using (System.IO.MemoryStream ms = - new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonStr))) - { - System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = - new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T)); - return (T)serializer.ReadObject(ms)!; - } - } - - public string JSON1(List vals) - { - System.Text.StringBuilder st = new System.Text.StringBuilder(); - try - { - System.Runtime.Serialization.Json.DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(SendData)); - - foreach (SendData city in vals) - { - using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) - { - s.WriteObject(ms, city); - st.Append(System.Text.Encoding.UTF8.GetString(ms.ToArray())); - } - } - } - catch (Exception) - { - } - - return st.ToString(); - } - - private static bool IsJsonStart(ref string json) - { - if (!string.IsNullOrEmpty(json)) - { - json = json.Trim('\r', '\n', ' '); - if (json.Length > 1) - { - char s = json[0]; - char e = json[json.Length - 1]; - return (s == '{' && e == '}') || (s == '[' && e == ']'); - } - } - return false; - } - public static bool IsJson(string json) - { - int errIndex; - return IsJson(json, out errIndex); - } - public static bool IsJson(string json, out int errIndex) - { - errIndex = 0; - if (IsJsonStart(ref json)) - { - CharState cs = new CharState(); - char c; - for (int i = 0; i < json.Length; i++) - { - c = json[i]; - if (SetCharState(c, ref cs) && cs.childrenStart)//设置关键符号状态。 - { - string item = json.Substring(i); - int err; - int length = GetValueLength(item, true, out err); - cs.childrenStart = false; - if (err > 0) - { - errIndex = i + err; - return false; - } - i = i + length - 1; - } - if (cs.isError) - { - errIndex = i; - return false; - } - } - - return !cs.arrayStart && !cs.jsonStart; - } - return false; - } - - /// - /// 获取值的长度(当Json值嵌套以"{"或"["开头时) - /// - private static int GetValueLength(string json, bool breakOnErr, out int errIndex) - { - errIndex = 0; - int len = 0; - if (!string.IsNullOrEmpty(json)) - { - CharState cs = new CharState(); - char c; - for (int i = 0; i < json.Length; i++) - { - c = json[i]; - if (!SetCharState(c, ref cs))//设置关键符号状态。 - { - if (!cs.jsonStart && !cs.arrayStart)//json结束,又不是数组,则退出。 - { - break; - } - } - else if (cs.childrenStart)//正常字符,值状态下。 - { - int length = GetValueLength(json.Substring(i), breakOnErr, out errIndex);//递归子值,返回一个长度。。。 - cs.childrenStart = false; - cs.valueStart = 0; - //cs.state = 0; - i = i + length - 1; - } - if (breakOnErr && cs.isError) - { - errIndex = i; - return i; - } - if (!cs.jsonStart && !cs.arrayStart)//记录当前结束位置。 - { - len = i + 1;//长度比索引+1 - break; - } - } - } - return len; - } - - /// - /// 设置字符状态(返回true则为关键词,返回false则当为普通字符处理) - /// - private static bool SetCharState(char c, ref CharState cs) - { - cs.CheckIsError(c); - switch (c) - { - case '{'://[{ "[{A}]":[{"[{B}]":3,"m":"C"}]}] - #region 大括号 - if (cs.keyStart <= 0 && cs.valueStart <= 0) - { - cs.keyStart = 0; - cs.valueStart = 0; - if (cs.jsonStart && cs.state == 1) - { - cs.childrenStart = true; - } - else - { - cs.state = 0; - } - cs.jsonStart = true;//开始。 - return true; - } - #endregion - break; - case '}': - #region 大括号结束 - if (cs.keyStart <= 0 && cs.valueStart < 2 && cs.jsonStart) - { - cs.jsonStart = false;//正常结束。 - cs.state = 0; - cs.keyStart = 0; - cs.valueStart = 0; - cs.setDicValue = true; - return true; - } - // cs.isError = !cs.jsonStart && cs.state == 0; - #endregion - break; - case '[': - #region 中括号开始 - if (!cs.jsonStart) - { - cs.arrayStart = true; - return true; - } - else if (cs.jsonStart && cs.state == 1) - { - cs.childrenStart = true; - return true; - } - #endregion - break; - case ']': - #region 中括号结束 - if (cs.arrayStart && !cs.jsonStart && cs.keyStart <= 2 && cs.valueStart <= 0)//[{},333]//这样结束。 - { - cs.keyStart = 0; - cs.valueStart = 0; - cs.arrayStart = false; - return true; - } - #endregion - break; - case '"': - case '\'': - #region 引号 - if (cs.jsonStart || cs.arrayStart) - { - if (cs.state == 0)//key阶段,有可能是数组["aa",{}] - { - if (cs.keyStart <= 0) - { - cs.keyStart = (c == '"' ? 3 : 2); - return true; - } - else if ((cs.keyStart == 2 && c == '\'') || (cs.keyStart == 3 && c == '"')) - { - if (!cs.escapeChar) - { - cs.keyStart = -1; - return true; - } - else - { - cs.escapeChar = false; - } - } - } - else if (cs.state == 1 && cs.jsonStart)//值阶段必须是Json开始了。 - { - if (cs.valueStart <= 0) - { - cs.valueStart = (c == '"' ? 3 : 2); - return true; - } - else if ((cs.valueStart == 2 && c == '\'') || (cs.valueStart == 3 && c == '"')) - { - if (!cs.escapeChar) - { - cs.valueStart = -1; - return true; - } - else - { - cs.escapeChar = false; - } - } - - } - } - #endregion - break; - case ':': - #region 冒号 - if (cs.jsonStart && cs.keyStart < 2 && cs.valueStart < 2 && cs.state == 0) - { - if (cs.keyStart == 1) - { - cs.keyStart = -1; - } - cs.state = 1; - return true; - } - // cs.isError = !cs.jsonStart || (cs.keyStart < 2 && cs.valueStart < 2 && cs.state == 1); - #endregion - break; - case ',': - #region 逗号 //["aa",{aa:12,}] - - if (cs.jsonStart) - { - if (cs.keyStart < 2 && cs.valueStart < 2 && cs.state == 1) - { - cs.state = 0; - cs.keyStart = 0; - cs.valueStart = 0; - //if (cs.valueStart == 1) - //{ - // cs.valueStart = 0; - //} - cs.setDicValue = true; - return true; - } - } - else if (cs.arrayStart && cs.keyStart <= 2) - { - cs.keyStart = 0; - //if (cs.keyStart == 1) - //{ - // cs.keyStart = -1; - //} - return true; - } - #endregion - break; - case ' ': - case '\r': - case '\n'://[ "a",\r\n{} ] - case '\0': - case '\t': - if (cs.keyStart <= 0 && cs.valueStart <= 0) //cs.jsonStart && - { - return true;//跳过空格。 - } - break; - default: //值开头。。 - if (c == '\\') //转义符号 - { - if (cs.escapeChar) - { - cs.escapeChar = false; - } - else - { - cs.escapeChar = true; - return true; - } - } - else - { - cs.escapeChar = false; - } - if (cs.jsonStart || cs.arrayStart) // Json 或数组开始了。 - { - if (cs.keyStart <= 0 && cs.state == 0) - { - cs.keyStart = 1;//无引号的 - } - else if (cs.valueStart <= 0 && cs.state == 1 && cs.jsonStart)//只有Json开始才有值。 - { - cs.valueStart = 1;//无引号的 - } - } - break; - } - return false; - } - } - /// - /// 字符状态 - /// - public class CharState - { - internal bool jsonStart = false;//以 "{"开始了... - internal bool setDicValue = false;// 可以设置字典值了。 - internal bool escapeChar = false;//以"\"转义符号开始了 - /// - /// 数组开始【仅第一开头才算】,值嵌套的以【childrenStart】来标识。 - /// - internal bool arrayStart = false;//以"[" 符号开始了 - internal bool childrenStart = false;//子级嵌套开始了。 - /// - /// 【0 初始状态,或 遇到“,”逗号】;【1 遇到“:”冒号】 - /// - internal int state = 0; - - /// - /// 【-1 取值结束】【0 未开始】【1 无引号开始】【2 单引号开始】【3 双引号开始】 - /// - internal int keyStart = 0; - /// - /// 【-1 取值结束】【0 未开始】【1 无引号开始】【2 单引号开始】【3 双引号开始】 - /// - internal int valueStart = 0; - internal bool isError = false;//是否语法错误。 - - internal void CheckIsError(char c)//只当成一级处理(因为GetLength会递归到每一个子项处理) - { - if (keyStart > 1 || valueStart > 1) - { - return; - } - //示例 ["aa",{"bbbb":123,"fff","ddd"}] - switch (c) - { - case '{'://[{ "[{A}]":[{"[{B}]":3,"m":"C"}]}] - isError = jsonStart && state == 0;//重复开始错误 同时不是值处理。 - break; - case '}': - isError = !jsonStart || (keyStart != 0 && state == 0);//重复结束错误 或者 提前结束{"aa"}。正常的有{} - break; - case '[': - isError = arrayStart && state == 0;//重复开始错误 - break; - case ']': - isError = !arrayStart || jsonStart;//重复开始错误 或者 Json 未结束 - break; - case '"': - case '\'': - isError = !(jsonStart || arrayStart); //json 或数组开始。 - if (!isError) - { - //重复开始 [""",{"" "}] - isError = (state == 0 && keyStart == -1) || (state == 1 && valueStart == -1); - } - if (!isError && arrayStart && !jsonStart && c == '\'')//['aa',{}] - { - isError = true; - } - break; - case ':': - isError = !jsonStart || state == 1;//重复出现。 - break; - case ',': - isError = !(jsonStart || arrayStart); //json 或数组开始。 - if (!isError) - { - if (jsonStart) - { - isError = state == 0 || (state == 1 && valueStart > 1);//重复出现。 - } - else if (arrayStart)//["aa,] [,] [{},{}] - { - isError = keyStart == 0 && !setDicValue; - } - } - break; - case ' ': - case '\r': - case '\n'://[ "a",\r\n{} ] - case '\0': - case '\t': - break; - default: //值开头。。 - isError = (!jsonStart && !arrayStart) || (state == 0 && keyStart == -1) || (valueStart == -1 && state == 1);// - break; - } - //if (isError) - //{ - - //} - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/MD5Hepler.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/MD5Hepler.cs deleted file mode 100644 index e050c8b8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/MD5Hepler.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; -using System.IO; -using System.Security.Cryptography; -using System.Text; - -namespace Yi.Framework.Common.Helper -{ - public class MD5Helper - { - /// - /// 生成PasswordSalt - /// - /// 返回string - public static string GenerateSalt() - { - byte[] buf = new byte[16]; -#pragma warning disable SYSLIB0023 // 类型或成员已过时 - (new RNGCryptoServiceProvider()).GetBytes(buf); -#pragma warning restore SYSLIB0023 // 类型或成员已过时 - return Convert.ToBase64String(buf); - } - - /// - /// 加密密码 - /// - /// 密码 - /// 加密类型 - /// PasswordSalt - /// 加密后的密码 - public static string SHA2Encode(string pass, string salt, int passwordFormat = 1) - { - if (passwordFormat == 0) // MembershipPasswordFormat.Clear - return pass; - - byte[] bIn = Encoding.Unicode.GetBytes(pass); - byte[] bSalt = Convert.FromBase64String(salt); - byte[] bAll = new byte[bSalt.Length + bIn.Length]; - byte[]? bRet = null; - - Buffer.BlockCopy(bSalt, 0, bAll, 0, bSalt.Length); - Buffer.BlockCopy(bIn, 0, bAll, bSalt.Length, bIn.Length); - -#pragma warning disable SYSLIB0021 // 类型或成员已过时 - var s = SHA512Managed.Create(); -#pragma warning restore SYSLIB0021 // 类型或成员已过时 - bRet = s.ComputeHash(bAll); - - return ConvertEx.ToUrlBase64String(bRet); - } - } - public class ConvertEx - { - static readonly char[] padding = { '=' }; - public static string ToUrlBase64String(byte[] inArray) - { - var str = Convert.ToBase64String(inArray); - str = str.TrimEnd(padding).Replace('+', '-').Replace('/', '_'); - - return str; - } - - public static byte[] FromUrlBase64String(string s) - { - string incoming = s.Replace('_', '/').Replace('-', '+'); - switch (s.Length % 4) - { - case 2: incoming += "=="; break; - case 3: incoming += "="; break; - } - byte[] bytes = Convert.FromBase64String(incoming); - - return bytes; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/MimeHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/MimeHelper.cs deleted file mode 100644 index 3c72676e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/MimeHelper.cs +++ /dev/null @@ -1,244 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Helper -{ - public static class MimeHelper - { - // 通过自己定义一个静态类 - // 将所有的Content Type都扔进去吧 - // 调用的时候直接调用静态方法即可。 - - private static Hashtable _mimeMappingTable; - - private static void AddMimeMapping(string extension, string MimeType) - { - MimeHelper._mimeMappingTable.Add(extension, MimeType); - } - - public static string GetMimeMapping(string FileName) - { - string text = null!; - int num = FileName.LastIndexOf('.'); - if (0 < num && num > FileName.LastIndexOf('\\')) - { - text = (string)MimeHelper._mimeMappingTable[FileName.Substring(num)]!; - } - if (text == null) - { - text = (string)MimeHelper._mimeMappingTable[".*"]!; - } - return text; - } - - static MimeHelper() - { - MimeHelper._mimeMappingTable = new Hashtable(190, StringComparer.CurrentCultureIgnoreCase); - MimeHelper.AddMimeMapping(".323", "text/h323"); - MimeHelper.AddMimeMapping(".asx", "video/x-ms-asf"); - MimeHelper.AddMimeMapping(".acx", "application/internet-property-stream"); - MimeHelper.AddMimeMapping(".ai", "application/postscript"); - MimeHelper.AddMimeMapping(".aif", "audio/x-aiff"); - MimeHelper.AddMimeMapping(".aiff", "audio/aiff"); - MimeHelper.AddMimeMapping(".axs", "application/olescript"); - MimeHelper.AddMimeMapping(".aifc", "audio/aiff"); - MimeHelper.AddMimeMapping(".asr", "video/x-ms-asf"); - MimeHelper.AddMimeMapping(".avi", "video/x-msvideo"); - MimeHelper.AddMimeMapping(".asf", "video/x-ms-asf"); - MimeHelper.AddMimeMapping(".au", "audio/basic"); - MimeHelper.AddMimeMapping(".application", "application/x-ms-application"); - MimeHelper.AddMimeMapping(".bin", "application/octet-stream"); - MimeHelper.AddMimeMapping(".bas", "text/plain"); - MimeHelper.AddMimeMapping(".bcpio", "application/x-bcpio"); - MimeHelper.AddMimeMapping(".bmp", "image/bmp"); - MimeHelper.AddMimeMapping(".cdf", "application/x-cdf"); - MimeHelper.AddMimeMapping(".cat", "application/vndms-pkiseccat"); - MimeHelper.AddMimeMapping(".crt", "application/x-x509-ca-cert"); - MimeHelper.AddMimeMapping(".c", "text/plain"); - MimeHelper.AddMimeMapping(".css", "text/css"); - MimeHelper.AddMimeMapping(".cer", "application/x-x509-ca-cert"); - MimeHelper.AddMimeMapping(".crl", "application/pkix-crl"); - MimeHelper.AddMimeMapping(".cmx", "image/x-cmx"); - MimeHelper.AddMimeMapping(".csh", "application/x-csh"); - MimeHelper.AddMimeMapping(".cod", "image/cis-cod"); - MimeHelper.AddMimeMapping(".cpio", "application/x-cpio"); - MimeHelper.AddMimeMapping(".clp", "application/x-msclip"); - MimeHelper.AddMimeMapping(".crd", "application/x-mscardfile"); - MimeHelper.AddMimeMapping(".deploy", "application/octet-stream"); - MimeHelper.AddMimeMapping(".dll", "application/x-msdownload"); - MimeHelper.AddMimeMapping(".dot", "application/msword"); - MimeHelper.AddMimeMapping(".doc", "application/msword"); - MimeHelper.AddMimeMapping(".dvi", "application/x-dvi"); - MimeHelper.AddMimeMapping(".dir", "application/x-director"); - MimeHelper.AddMimeMapping(".dxr", "application/x-director"); - MimeHelper.AddMimeMapping(".der", "application/x-x509-ca-cert"); - MimeHelper.AddMimeMapping(".dib", "image/bmp"); - MimeHelper.AddMimeMapping(".dcr", "application/x-director"); - MimeHelper.AddMimeMapping(".disco", "text/xml"); - MimeHelper.AddMimeMapping(".exe", "application/octet-stream"); - MimeHelper.AddMimeMapping(".etx", "text/x-setext"); - MimeHelper.AddMimeMapping(".evy", "application/envoy"); - MimeHelper.AddMimeMapping(".eml", "message/rfc822"); - MimeHelper.AddMimeMapping(".eps", "application/postscript"); - MimeHelper.AddMimeMapping(".flr", "x-world/x-vrml"); - MimeHelper.AddMimeMapping(".fif", "application/fractals"); - MimeHelper.AddMimeMapping(".gtar", "application/x-gtar"); - MimeHelper.AddMimeMapping(".gif", "image/gif"); - MimeHelper.AddMimeMapping(".gz", "application/x-gzip"); - MimeHelper.AddMimeMapping(".hta", "application/hta"); - MimeHelper.AddMimeMapping(".htc", "text/x-component"); - MimeHelper.AddMimeMapping(".htt", "text/webviewhtml"); - MimeHelper.AddMimeMapping(".h", "text/plain"); - MimeHelper.AddMimeMapping(".hdf", "application/x-hdf"); - MimeHelper.AddMimeMapping(".hlp", "application/winhlp"); - MimeHelper.AddMimeMapping(".html", "text/html"); - MimeHelper.AddMimeMapping(".htm", "text/html"); - MimeHelper.AddMimeMapping(".hqx", "application/mac-binhex40"); - MimeHelper.AddMimeMapping(".isp", "application/x-internet-signup"); - MimeHelper.AddMimeMapping(".iii", "application/x-iphone"); - MimeHelper.AddMimeMapping(".ief", "image/ief"); - MimeHelper.AddMimeMapping(".ivf", "video/x-ivf"); - MimeHelper.AddMimeMapping(".ins", "application/x-internet-signup"); - MimeHelper.AddMimeMapping(".ico", "image/x-icon"); - MimeHelper.AddMimeMapping(".jpg", "image/jpeg"); - MimeHelper.AddMimeMapping(".jfif", "image/pjpeg"); - MimeHelper.AddMimeMapping(".jpe", "image/jpeg"); - MimeHelper.AddMimeMapping(".jpeg", "image/jpeg"); - MimeHelper.AddMimeMapping(".js", "application/x-javascript"); - MimeHelper.AddMimeMapping(".lsx", "video/x-la-asf"); - MimeHelper.AddMimeMapping(".latex", "application/x-latex"); - MimeHelper.AddMimeMapping(".lsf", "video/x-la-asf"); - MimeHelper.AddMimeMapping(".manifest", "application/x-ms-manifest"); - MimeHelper.AddMimeMapping(".mhtml", "message/rfc822"); - MimeHelper.AddMimeMapping(".mny", "application/x-msmoney"); - MimeHelper.AddMimeMapping(".mht", "message/rfc822"); - MimeHelper.AddMimeMapping(".mid", "audio/mid"); - MimeHelper.AddMimeMapping(".mpv2", "video/mpeg"); - MimeHelper.AddMimeMapping(".man", "application/x-troff-man"); - MimeHelper.AddMimeMapping(".mvb", "application/x-msmediaview"); - MimeHelper.AddMimeMapping(".mpeg", "video/mpeg"); - MimeHelper.AddMimeMapping(".m3u", "audio/x-mpegurl"); - MimeHelper.AddMimeMapping(".mdb", "application/x-msaccess"); - MimeHelper.AddMimeMapping(".mpp", "application/vnd.ms-project"); - MimeHelper.AddMimeMapping(".m1v", "video/mpeg"); - MimeHelper.AddMimeMapping(".mpa", "video/mpeg"); - MimeHelper.AddMimeMapping(".me", "application/x-troff-me"); - MimeHelper.AddMimeMapping(".m13", "application/x-msmediaview"); - MimeHelper.AddMimeMapping(".movie", "video/x-sgi-movie"); - MimeHelper.AddMimeMapping(".m14", "application/x-msmediaview"); - MimeHelper.AddMimeMapping(".mpe", "video/mpeg"); - MimeHelper.AddMimeMapping(".mp2", "video/mpeg"); - MimeHelper.AddMimeMapping(".mov", "video/quicktime"); - MimeHelper.AddMimeMapping(".mp3", "audio/mpeg"); - MimeHelper.AddMimeMapping(".mpg", "video/mpeg"); - MimeHelper.AddMimeMapping(".ms", "application/x-troff-ms"); - MimeHelper.AddMimeMapping(".nc", "application/x-netcdf"); - MimeHelper.AddMimeMapping(".nws", "message/rfc822"); - MimeHelper.AddMimeMapping(".oda", "application/oda"); - MimeHelper.AddMimeMapping(".ods", "application/oleobject"); - MimeHelper.AddMimeMapping(".pmc", "application/x-perfmon"); - MimeHelper.AddMimeMapping(".p7r", "application/x-pkcs7-certreqresp"); - MimeHelper.AddMimeMapping(".p7b", "application/x-pkcs7-certificates"); - MimeHelper.AddMimeMapping(".p7s", "application/pkcs7-signature"); - MimeHelper.AddMimeMapping(".pmw", "application/x-perfmon"); - MimeHelper.AddMimeMapping(".ps", "application/postscript"); - MimeHelper.AddMimeMapping(".p7c", "application/pkcs7-mime"); - MimeHelper.AddMimeMapping(".pbm", "image/x-portable-bitmap"); - MimeHelper.AddMimeMapping(".ppm", "image/x-portable-pixmap"); - MimeHelper.AddMimeMapping(".pub", "application/x-mspublisher"); - MimeHelper.AddMimeMapping(".pnm", "image/x-portable-anymap"); - MimeHelper.AddMimeMapping(".png", "image/png"); - MimeHelper.AddMimeMapping(".pml", "application/x-perfmon"); - MimeHelper.AddMimeMapping(".p10", "application/pkcs10"); - MimeHelper.AddMimeMapping(".pfx", "application/x-pkcs12"); - MimeHelper.AddMimeMapping(".p12", "application/x-pkcs12"); - MimeHelper.AddMimeMapping(".pdf", "application/pdf"); - MimeHelper.AddMimeMapping(".pps", "application/vnd.ms-powerpoint"); - MimeHelper.AddMimeMapping(".p7m", "application/pkcs7-mime"); - MimeHelper.AddMimeMapping(".pko", "application/vndms-pkipko"); - MimeHelper.AddMimeMapping(".ppt", "application/vnd.ms-powerpoint"); - MimeHelper.AddMimeMapping(".pmr", "application/x-perfmon"); - MimeHelper.AddMimeMapping(".pma", "application/x-perfmon"); - MimeHelper.AddMimeMapping(".pot", "application/vnd.ms-powerpoint"); - MimeHelper.AddMimeMapping(".prf", "application/pics-rules"); - MimeHelper.AddMimeMapping(".pgm", "image/x-portable-graymap"); - MimeHelper.AddMimeMapping(".qt", "video/quicktime"); - MimeHelper.AddMimeMapping(".ra", "audio/x-pn-realaudio"); - MimeHelper.AddMimeMapping(".rgb", "image/x-rgb"); - MimeHelper.AddMimeMapping(".ram", "audio/x-pn-realaudio"); - MimeHelper.AddMimeMapping(".rmi", "audio/mid"); - MimeHelper.AddMimeMapping(".ras", "image/x-cmu-raster"); - MimeHelper.AddMimeMapping(".roff", "application/x-troff"); - MimeHelper.AddMimeMapping(".rtf", "application/rtf"); - MimeHelper.AddMimeMapping(".rtx", "text/richtext"); - MimeHelper.AddMimeMapping(".sv4crc", "application/x-sv4crc"); - MimeHelper.AddMimeMapping(".spc", "application/x-pkcs7-certificates"); - MimeHelper.AddMimeMapping(".setreg", "application/set-registration-initiation"); - MimeHelper.AddMimeMapping(".snd", "audio/basic"); - MimeHelper.AddMimeMapping(".stl", "application/vndms-pkistl"); - MimeHelper.AddMimeMapping(".setpay", "application/set-payment-initiation"); - MimeHelper.AddMimeMapping(".stm", "text/html"); - MimeHelper.AddMimeMapping(".shar", "application/x-shar"); - MimeHelper.AddMimeMapping(".sh", "application/x-sh"); - MimeHelper.AddMimeMapping(".sit", "application/x-stuffit"); - MimeHelper.AddMimeMapping(".spl", "application/futuresplash"); - MimeHelper.AddMimeMapping(".sct", "text/scriptlet"); - MimeHelper.AddMimeMapping(".scd", "application/x-msschedule"); - MimeHelper.AddMimeMapping(".sst", "application/vndms-pkicertstore"); - MimeHelper.AddMimeMapping(".src", "application/x-wais-source"); - MimeHelper.AddMimeMapping(".sv4cpio", "application/x-sv4cpio"); - MimeHelper.AddMimeMapping(".tex", "application/x-tex"); - MimeHelper.AddMimeMapping(".tgz", "application/x-compressed"); - MimeHelper.AddMimeMapping(".t", "application/x-troff"); - MimeHelper.AddMimeMapping(".tar", "application/x-tar"); - MimeHelper.AddMimeMapping(".tr", "application/x-troff"); - MimeHelper.AddMimeMapping(".tif", "image/tiff"); - MimeHelper.AddMimeMapping(".txt", "text/plain"); - MimeHelper.AddMimeMapping(".texinfo", "application/x-texinfo"); - MimeHelper.AddMimeMapping(".trm", "application/x-msterminal"); - MimeHelper.AddMimeMapping(".tiff", "image/tiff"); - MimeHelper.AddMimeMapping(".tcl", "application/x-tcl"); - MimeHelper.AddMimeMapping(".texi", "application/x-texinfo"); - MimeHelper.AddMimeMapping(".tsv", "text/tab-separated-values"); - MimeHelper.AddMimeMapping(".ustar", "application/x-ustar"); - MimeHelper.AddMimeMapping(".uls", "text/iuls"); - MimeHelper.AddMimeMapping(".vcf", "text/x-vcard"); - MimeHelper.AddMimeMapping(".wps", "application/vnd.ms-works"); - MimeHelper.AddMimeMapping(".wav", "audio/wav"); - MimeHelper.AddMimeMapping(".wrz", "x-world/x-vrml"); - MimeHelper.AddMimeMapping(".wri", "application/x-mswrite"); - MimeHelper.AddMimeMapping(".wks", "application/vnd.ms-works"); - MimeHelper.AddMimeMapping(".wmf", "application/x-msmetafile"); - MimeHelper.AddMimeMapping(".wcm", "application/vnd.ms-works"); - MimeHelper.AddMimeMapping(".wrl", "x-world/x-vrml"); - MimeHelper.AddMimeMapping(".wdb", "application/vnd.ms-works"); - MimeHelper.AddMimeMapping(".wsdl", "text/xml"); - MimeHelper.AddMimeMapping(".xap", "application/x-silverlight-app"); - MimeHelper.AddMimeMapping(".xml", "text/xml"); - MimeHelper.AddMimeMapping(".xlm", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xaf", "x-world/x-vrml"); - MimeHelper.AddMimeMapping(".xla", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xls", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xlsx", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xof", "x-world/x-vrml"); - MimeHelper.AddMimeMapping(".xlt", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xlc", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xsl", "text/xml"); - MimeHelper.AddMimeMapping(".xbm", "image/x-xbitmap"); - MimeHelper.AddMimeMapping(".xlw", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xpm", "image/x-xpixmap"); - MimeHelper.AddMimeMapping(".xwd", "image/x-xwindowdump"); - MimeHelper.AddMimeMapping(".xsd", "text/xml"); - MimeHelper.AddMimeMapping(".z", "application/x-compress"); - MimeHelper.AddMimeMapping(".zip", "application/x-zip-compressed"); - MimeHelper.AddMimeMapping(".*", "application/octet-stream"); - } - } - - - -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/RSAFileHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/RSAFileHelper.cs deleted file mode 100644 index 62c4d028..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/RSAFileHelper.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Security.Cryptography; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Helper -{ - public class RSAFileHelper - { - public static RSA GetKey() - { - return GetRSA("key.pem"); - } - public static RSA GetPublicKey() - { - return GetRSA("public.pem"); - } - - private static RSA GetRSA(string fileName) - { - string rootPath = Directory.GetCurrentDirectory(); - string filePath = Path.Combine(rootPath, fileName); - if (!System.IO.File.Exists(filePath)) - throw new Exception("文件不存在"); - string key = System.IO.File.ReadAllText(filePath); - var rsa = RSA.Create(); - rsa.ImportFromPem(key.AsSpan()); - return rsa; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/RSAHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/RSAHelper.cs deleted file mode 100644 index 0501f3dd..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/RSAHelper.cs +++ /dev/null @@ -1,390 +0,0 @@ -using System; -using System.IO; -using System.Security.Cryptography; -using System.Text; - -namespace Yi.Framework.Common.Helper -{ - /// - /// RSA加解密 使用OpenSSL的公钥加密/私钥解密 - /// 公私钥请使用openssl生成 - /// - public class RSAHelper - { - public readonly RSA? _privateKeyRsaProvider; - public readonly RSA? _publicKeyRsaProvider; - private readonly HashAlgorithmName _hashAlgorithmName; - private readonly Encoding _encoding; - - /// - /// 实例化RSAHelper - /// - /// 加密算法类型 RSA SHA1;RSA2 SHA256 密钥长度至少为2048 - /// 编码类型 - /// 私钥 - /// 公钥 - public RSAHelper(RSAType rsaType, Encoding encoding, string privateKey, string? publicKey = null) - { - _encoding = encoding; - if (!string.IsNullOrEmpty(privateKey)) - { - _privateKeyRsaProvider = CreateRsaProviderFromPrivateKey(privateKey); - } - - if (!string.IsNullOrEmpty(publicKey)) - { - _publicKeyRsaProvider = CreateRsaProviderFromPublicKey(publicKey); - } - - _hashAlgorithmName = rsaType == RSAType.RSA ? HashAlgorithmName.SHA1 : HashAlgorithmName.SHA256; - } - - #region 使用私钥签名 - - /// - /// 使用私钥签名 - /// - /// 原始数据 - /// - public string Sign(string data) - { - byte[] dataBytes = _encoding.GetBytes(data); - - var signatureBytes = _privateKeyRsaProvider!.SignData(dataBytes, _hashAlgorithmName, RSASignaturePadding.Pkcs1); - - return Convert.ToBase64String(signatureBytes); - } - - #endregion - - #region 使用公钥验签 - - /// - /// 使用公钥验签 - /// - /// 原始数据 - /// 签名 - /// - public bool Verify(string data, string sign) - { - byte[] dataBytes = _encoding.GetBytes(data); - byte[] signBytes = Convert.FromBase64String(sign); - - var verify = _publicKeyRsaProvider!.VerifyData(dataBytes, signBytes, _hashAlgorithmName, RSASignaturePadding.Pkcs1); - - return verify; - } - - #endregion - - #region 解密 - /// - /// 私钥解密(原) - /// - /// 解密字符串(base64) - /// - - //public string Decrypt(string cipherText) - //{ - // if (_privateKeyRsaProvider == null) - // { - // throw new Exception("_privateKeyRsaProvider is null"); - // } - // return _encoding.GetString(_privateKeyRsaProvider.Decrypt(Convert.FromBase64String(cipherText), RSAEncryptionPadding.Pkcs1)); - //} - /// - /// 私钥解密(支持大量数据) - /// - /// - /// - public string Decrypt(string cipherText) - { - if (_privateKeyRsaProvider == null) - { - throw new Exception("_privateKeyRsaProvider is null"); - } - var bufferSize = (_privateKeyRsaProvider.KeySize / 8); - byte[] buffer = new byte[bufferSize];//待解密块 - using (MemoryStream msInput = new MemoryStream(Convert.FromBase64String(cipherText))) - { - using (MemoryStream msOutput = new MemoryStream()) - { - int readLen; while ((readLen = msInput.Read(buffer, 0, bufferSize)) > 0) - { - byte[] dataToEnc = new byte[readLen]; - Array.Copy(buffer, 0, dataToEnc, 0, readLen); byte[] encData = _privateKeyRsaProvider.Decrypt(dataToEnc, RSAEncryptionPadding.Pkcs1); - msOutput.Write(encData, 0, encData.Length); - } - byte[] result = msOutput.ToArray(); - return _encoding.GetString(result); - } - } - } - - #endregion - - #region 加密 - - /// - /// 公钥加密(原) - /// - /// - /// - //public string Encrypt(string text) - //{ - // if (_publicKeyRsaProvider == null) - // { - // throw new Exception("_publicKeyRsaProvider is null"); - // } - // return Convert.ToBase64String(_publicKeyRsaProvider.Encrypt(Encoding.UTF8.GetBytes(text), RSAEncryptionPadding.Pkcs1)); - //} - /// - /// 公钥加密(支持大量数据) - /// - /// - /// - public string Encrypt(string text) - { - if (_publicKeyRsaProvider == null) - { - throw new Exception("_publicKeyRsaProvider is null"); - } - var bufferSize = (_publicKeyRsaProvider.KeySize / 8 - 11); - byte[] buffer = new byte[bufferSize];//待加密块 - - using (MemoryStream msInput = new MemoryStream(_encoding.GetBytes(text))) - { - using (MemoryStream msOutput = new MemoryStream()) - { - int readLen; while ((readLen = msInput.Read(buffer, 0, bufferSize)) > 0) - { - byte[] dataToEnc = new byte[readLen]; - Array.Copy(buffer, 0, dataToEnc, 0, readLen); byte[] encData = _publicKeyRsaProvider.Encrypt(dataToEnc, RSAEncryptionPadding.Pkcs1); - msOutput.Write(encData, 0, encData.Length); - } - byte[] result = msOutput.ToArray(); - return Convert.ToBase64String(result); - } - } - } - - #endregion - - #region 使用私钥创建RSA实例 - /// - /// 使用私钥创建RSA实例 - /// - /// - /// - private RSA CreateRsaProviderFromPrivateKey(string privateKey) - { - var privateKeyBits = Convert.FromBase64String(privateKey); - - var rsa = RSA.Create(); - var rsaParameters = new RSAParameters(); - - using (BinaryReader binr = new BinaryReader(new MemoryStream(privateKeyBits))) - { - byte bt = 0; - ushort twobytes = 0; - twobytes = binr.ReadUInt16(); - if (twobytes == 0x8130) - binr.ReadByte(); - else if (twobytes == 0x8230) - binr.ReadInt16(); - else - throw new Exception("Unexpected value read binr.ReadUInt16()"); - - twobytes = binr.ReadUInt16(); - if (twobytes != 0x0102) - throw new Exception("Unexpected version"); - - bt = binr.ReadByte(); - if (bt != 0x00) - throw new Exception("Unexpected value read binr.ReadByte()"); - - rsaParameters.Modulus = binr.ReadBytes(GetIntegerSize(binr)); - rsaParameters.Exponent = binr.ReadBytes(GetIntegerSize(binr)); - rsaParameters.D = binr.ReadBytes(GetIntegerSize(binr)); - rsaParameters.P = binr.ReadBytes(GetIntegerSize(binr)); - rsaParameters.Q = binr.ReadBytes(GetIntegerSize(binr)); - rsaParameters.DP = binr.ReadBytes(GetIntegerSize(binr)); - rsaParameters.DQ = binr.ReadBytes(GetIntegerSize(binr)); - rsaParameters.InverseQ = binr.ReadBytes(GetIntegerSize(binr)); - } - - rsa.ImportParameters(rsaParameters); - return rsa; - } - - #endregion - - #region 使用公钥创建RSA实例 - /// - /// 使用公钥创建RSA实例 - /// - /// - /// - public RSA? CreateRsaProviderFromPublicKey(string publicKeyString) - { - // encoded OID sequence for PKCS #1 rsaEncryption szOID_RSA_RSA = "1.2.840.113549.1.1.1" - byte[] seqOid = { 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00 }; - byte[] seq = new byte[15]; - - var x509Key = Convert.FromBase64String(publicKeyString); - - // --------- Set up stream to read the asn.1 encoded SubjectPublicKeyInfo blob ------ - using (MemoryStream mem = new MemoryStream(x509Key)) - { - using (BinaryReader binr = new BinaryReader(mem)) //wrap Memory Stream with BinaryReader for easy reading - { - byte bt = 0; - ushort twobytes = 0; - - twobytes = binr.ReadUInt16(); - if (twobytes == 0x8130) //data read as little endian order (actual data order for Sequence is 30 81) - binr.ReadByte(); //advance 1 byte - else if (twobytes == 0x8230) - binr.ReadInt16(); //advance 2 bytes - else - return null; - - seq = binr.ReadBytes(15); //read the Sequence OID - if (!CompareBytearrays(seq, seqOid)) //make sure Sequence for OID is correct - return null; - - twobytes = binr.ReadUInt16(); - if (twobytes == 0x8103) //data read as little endian order (actual data order for Bit String is 03 81) - binr.ReadByte(); //advance 1 byte - else if (twobytes == 0x8203) - binr.ReadInt16(); //advance 2 bytes - else - return null; - - bt = binr.ReadByte(); - if (bt != 0x00) //expect null byte next - return null; - - twobytes = binr.ReadUInt16(); - if (twobytes == 0x8130) //data read as little endian order (actual data order for Sequence is 30 81) - binr.ReadByte(); //advance 1 byte - else if (twobytes == 0x8230) - binr.ReadInt16(); //advance 2 bytes - else - return null; - - twobytes = binr.ReadUInt16(); - byte lowbyte = 0x00; - byte highbyte = 0x00; - - if (twobytes == 0x8102) //data read as little endian order (actual data order for Integer is 02 81) - lowbyte = binr.ReadByte(); // read next bytes which is bytes in modulus - else if (twobytes == 0x8202) - { - highbyte = binr.ReadByte(); //advance 2 bytes - lowbyte = binr.ReadByte(); - } - else - return null; - byte[] modint = { lowbyte, highbyte, 0x00, 0x00 }; //reverse byte order since asn.1 key uses big endian order - int modsize = BitConverter.ToInt32(modint, 0); - - int firstbyte = binr.PeekChar(); - if (firstbyte == 0x00) - { //if first byte (highest order) of modulus is zero, don't include it - binr.ReadByte(); //skip this null byte - modsize -= 1; //reduce modulus buffer size by 1 - } - - byte[] modulus = binr.ReadBytes(modsize); //read the modulus bytes - - if (binr.ReadByte() != 0x02) //expect an Integer for the exponent data - return null; - int expbytes = (int)binr.ReadByte(); // should only need one byte for actual exponent data (for all useful values) - byte[] exponent = binr.ReadBytes(expbytes); - - // ------- create RSACryptoServiceProvider instance and initialize with public key ----- - var rsa = RSA.Create(); - RSAParameters rsaKeyInfo = new RSAParameters - { - Modulus = modulus, - Exponent = exponent - }; - rsa.ImportParameters(rsaKeyInfo); - - return rsa; - } - - } - } - - #endregion - - #region 导入密钥算法 - - private int GetIntegerSize(BinaryReader binr) - { - byte bt = 0; - int count = 0; - bt = binr.ReadByte(); - if (bt != 0x02) - return 0; - bt = binr.ReadByte(); - - if (bt == 0x81) - count = binr.ReadByte(); - else - if (bt == 0x82) - { - var highbyte = binr.ReadByte(); - var lowbyte = binr.ReadByte(); - byte[] modint = { lowbyte, highbyte, 0x00, 0x00 }; - count = BitConverter.ToInt32(modint, 0); - } - else - { - count = bt; - } - - while (binr.ReadByte() == 0x00) - { - count -= 1; - } - binr.BaseStream.Seek(-1, SeekOrigin.Current); - return count; - } - - private bool CompareBytearrays(byte[] a, byte[] b) - { - if (a.Length != b.Length) - return false; - int i = 0; - foreach (byte c in a) - { - if (c != b[i]) - return false; - i++; - } - return true; - } - - #endregion - - } - - /// - /// RSA算法类型 - /// - public enum RSAType - { - /// - /// SHA1 - /// - RSA = 0, - /// - /// RSA2 密钥长度至少为2048 - /// SHA256 - /// - RSA2 - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/RandomHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/RandomHelper.cs deleted file mode 100644 index 8c5cd40f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/RandomHelper.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Text.RegularExpressions; - -namespace Yi.Framework.Common.Helper -{ - public class RandomHelper - { - public static string replaceBianLiang(string content) - { - content = content.Replace("{当前时间}", DateTime.Now.TimeOfDay.ToString()); - string[] bianliang = new string[] { "{随机字母}", "{随机数字}", "{随机汉字}" }; - Regex r; - int count; - string readstr = ""; - foreach (string str in bianliang) - { - count = (content.Length - content.Replace(str, "").Length) / str.Length; - if (str == "{随机汉字}") readstr = RandChina(count); - if (str == "{随机数字}") readstr = GenerateCheckCodeNum(count); - if (str == "{随机字母}") readstr = GenerateRandomLetter(count); - if (count > readstr.Length) count = readstr.Length; - r = new Regex(str.Replace("{", "\\{").Replace("}", "\\}")); - for (int i = 0; i < count; i++) - { - content = r.Replace(content, readstr.Substring(i, 1), 1); - } - } - return content; - } - - - /// - /// 随机生成字母 - /// - /// - /// - public static string GenerateRandomLetter(int Length) - { - char[] Pattern = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' }; - string result = ""; - int n = Pattern.Length; - Random random = new Random(~unchecked((int)DateTime.Now.Ticks)); - for (int i = 0; i < Length; i++) - { - int rnd = random.Next(0, n); - result += Pattern[rnd]; - } - return result; - } - - /// - /// 随机生成数字 - /// - /// - /// - public static string GenerateCheckCodeNum(int codeCount) - { - int rep = 0; - string str = string.Empty; - long num2 = DateTime.Now.Ticks + rep; - rep++; - Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> rep))); - for (int i = 0; i < codeCount; i++) - { - int num = random.Next(); - str = str + ((char)(0x30 + ((ushort)(num % 10)))).ToString(); - } - return str; - } - - /// - /// 此函数为生成指定数目的汉字 - /// - /// 汉字数目 - /// 所有汉字 - public static string RandChina(int charLen) - { - int area, code;//汉字由区位和码位组成(都为0-94,其中区位16-55为一级汉字区,56-87为二级汉字区,1-9为特殊字符区) - StringBuilder strtem = new StringBuilder(); - Random rand = new Random(); - for (int i = 0; i < charLen; i++) - { - area = rand.Next(16, 88); - if (area == 55)//第55区只有89个字符 - { - code = rand.Next(1, 90); - } - else - { - code = rand.Next(1, 94); - } - strtem.Append(Encoding.GetEncoding("GB2312").GetString(new byte[] { Convert.ToByte(area + 160), Convert.ToByte(code + 160) })); - } - return strtem.ToString(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/SerializeHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/SerializeHelper.cs deleted file mode 100644 index 4370de2c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/SerializeHelper.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Newtonsoft.Json; -using System.Text; - -namespace Yi.Framework.Common.Helper -{ - public class SerializeHelper - { - /// - /// 序列化 - /// - /// - /// - public static byte[] Serialize(object item) - { - var jsonString = JsonConvert.SerializeObject(item); - - return Encoding.UTF8.GetBytes(jsonString); - } - /// - /// 反序列化 - /// - /// - /// - /// - public static TEntity? Deserialize(byte[] value) - { - if (value == null) - { - return default(TEntity); - } - var jsonString = Encoding.UTF8.GetString(value); - return JsonConvert.DeserializeObject(jsonString); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/SnowflakeHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/SnowflakeHelper.cs deleted file mode 100644 index 603acb75..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/SnowflakeHelper.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Helper -{ - public static class SnowflakeHelper - { - public static long Next() - { - SnowflakeTool snowflakeTool = new SnowflakeTool(1); - return snowflakeTool.NextId(); - } - - private class SnowflakeTool - { - //机器ID - private static long nodeId; - private static long twepoch = 687888001020L; //唯一时间,这是一个避免重复的随机量,自行设定不要大于当前时间戳 - private static long sequence = 0L; - private static int workerIdBits = 4; //机器码字节数。4个字节用来保存机器码(定义为Long类型会出现,最大偏移64位,所以左移64位没有意义) - public static long maxWorkerId = -1L ^ -1L << workerIdBits; //最大机器ID - private static int sequenceBits = 10; //计数器字节数,10个字节用来保存计数码 - private static int workerIdShift = sequenceBits; //机器码数据左移位数,就是后面计数器占用的位数 - private static int timestampLeftShift = sequenceBits + workerIdBits; //时间戳左移动位数就是机器码和计数器总字节数 - public static long sequenceMask = -1L ^ -1L << sequenceBits; //一微秒内可以产生计数,如果达到该值则等到下一微妙在进行生成 - private long lastTimestamp = -1L; - - /// - /// 机器码 - /// - /// - public SnowflakeTool(long workerId) - { - if (workerId > maxWorkerId || workerId < 0) - throw new Exception(string.Format("节点id 不能大于 {0} 或者 小于 0 ", workerId)); - SnowflakeTool.nodeId = workerId; - - } - - public long NextId() - { - lock (this) - { - long timestamp = TimeGen(); - if (this.lastTimestamp == timestamp) - { //同一微妙中生成ID - SnowflakeTool.sequence = (SnowflakeTool.sequence + 1) & SnowflakeTool.sequenceMask; //用&运算计算该微秒内产生的计数是否已经到达上限 - if (SnowflakeTool.sequence == 0) - { - //一微妙内产生的ID计数已达上限,等待下一微妙 - timestamp = TillNextMillis(this.lastTimestamp); - } - } - else - { //不同微秒生成ID - SnowflakeTool.sequence = 0; //计数清0 - } - if (timestamp < lastTimestamp) - { //如果当前时间戳比上一次生成ID时时间戳还小,抛出异常,因为不能保证现在生成的ID之前没有生成过 - throw new Exception(string.Format("Clock moved backwards. Refusing to generate id for {0} milliseconds", - this.lastTimestamp - timestamp)); - } - this.lastTimestamp = timestamp; //把当前时间戳保存为最后生成ID的时间戳 - long nextId = (timestamp - twepoch << timestampLeftShift) | SnowflakeTool.nodeId << SnowflakeTool.workerIdShift | SnowflakeTool.sequence; - return nextId; - } - } - - /// - /// 获取下一微秒时间戳 - /// - /// - /// - private long TillNextMillis(long lastTimestamp) - { - long timestamp = TimeGen(); - while (timestamp <= lastTimestamp) - { - timestamp = TimeGen(); - } - return timestamp; - } - - /// - /// 生成当前时间戳 - /// - /// - private long TimeGen() - { - return (long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds; - } - } - } - - -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/StringHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/StringHelper.cs deleted file mode 100644 index e44951d9..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/StringHelper.cs +++ /dev/null @@ -1,111 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; - -namespace Yi.Framework.Common.Helper -{ - public class StringHelper - { - /// - /// 根据分隔符返回前n条数据 - /// - /// 数据内容 - /// 分隔符 - /// 前n条 - /// 是否倒序(默认false) - /// - public static List GetTopDataBySeparator(string content, string separator, int top, bool isDesc = false) - { - if (string.IsNullOrEmpty(content)) - { - return new List() { }; - } - - if (string.IsNullOrEmpty(separator)) - { - throw new ArgumentException("message", nameof(separator)); - } - - var dataArray = content.Split(separator).Where(d => !string.IsNullOrEmpty(d)).ToArray(); - if (isDesc) - { - Array.Reverse(dataArray); - } - - if (top > 0) - { - dataArray = dataArray.Take(top).ToArray(); - } - - return dataArray.ToList(); - } - /// - /// 根据字段拼接get参数 - /// - /// - /// - public static string GetPars(Dictionary dic) - { - - StringBuilder sb = new StringBuilder(); - string? urlPars = null; - bool isEnter = false; - foreach (var item in dic) - { - sb.Append($"{(isEnter ? "&" : "")}{item.Key}={item.Value}"); - isEnter = true; - } - urlPars = sb.ToString(); - return urlPars; - } - /// - /// 根据字段拼接get参数 - /// - /// - /// - public static string GetPars(Dictionary dic) - { - - StringBuilder sb = new StringBuilder(); - string? urlPars = null; - bool isEnter = false; - foreach (var item in dic) - { - sb.Append($"{(isEnter ? "&" : "")}{item.Key}={item.Value}"); - isEnter = true; - } - urlPars = sb.ToString(); - return urlPars; - } - /// - /// 获取一个GUID - /// - /// 格式-默认为N - /// - public static string GetGUID(string format="N") { - return Guid.NewGuid().ToString(format); - } - /// - /// 根据GUID获取19位的唯一数字序列 - /// - /// - public static long GetGuidToLongID() - { - byte[] buffer = Guid.NewGuid().ToByteArray(); - return BitConverter.ToInt64(buffer, 0); - } - /// - /// 获取字符串最后X行 - /// - /// - /// - /// - public static string GetCusLine(string resourceStr, int length) { - string[] arrStr = resourceStr.Split("\r\n"); - return string.Join("", (from q in arrStr select q).Skip(arrStr.Length - length + 1).Take(length).ToArray()); - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/TreeHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/TreeHelper.cs deleted file mode 100644 index fc7cf398..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/TreeHelper.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; - -namespace Yi.Framework.Common.Helper -{ - public static class TreeHelper - { - public static List SetTree(List list, Action action = null!) - { - if (list is not null && list.Count > 0) - { - IList result = new List(); - long pid = list.Min(m => (m as ITreeModel)!.ParentId); - IList t = list.Where(m => (m as ITreeModel)!.ParentId == pid).ToList(); - foreach (T model in t) - { - if (action is not null) - { - action(model); - } - result.Add(model); - var item = (model as ITreeModel); - IList children = list.Where(m => (m as ITreeModel)!.ParentId == item!.Id).ToList(); - if (children.Count > 0) - { - SetTreeChildren(list, children, model, action!); - } - } - return result.OrderByDescending(m => (m as ITreeModel)!.OrderNum).ToList(); - } - return null!; - } - private static void SetTreeChildren(IList list, IList children, T model, Action action = null!) - { - var mm = (model as ITreeModel); - mm!.Children = new List(); - foreach (T item in children) - { - if (action is not null) - { - action(item); - } - mm.Children.Add(item); - var _item = (item as ITreeModel); - IList _children = list.Where(m => (m as ITreeModel)!.ParentId == _item!.Id).ToList(); - if (_children.Count > 0) - { - SetTreeChildren(list, _children, item, action!); - } - } - mm.Children = mm.Children.OrderByDescending(m => (m as ITreeModel)!.OrderNum).ToList(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/UnicodeHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/UnicodeHelper.cs deleted file mode 100644 index d6d96f75..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/UnicodeHelper.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Text; -using System.Text.RegularExpressions; - -namespace Yi.Framework.Common.Helper -{ - public static class UnicodeHelper - { - /// - /// 字符串转Unicode码 - /// - /// The to unicode. - /// Value. - public static string StringToUnicode(string value) - { - byte[] bytes = Encoding.Unicode.GetBytes(value); - StringBuilder stringBuilder = new StringBuilder(); - for (int i = 0; i < bytes.Length; i += 2) - { - // 取两个字符,每个字符都是右对齐。 - stringBuilder.AppendFormat("u{0}{1}", bytes[i + 1].ToString("x").PadLeft(2, '0'), bytes[i].ToString("x").PadLeft(2, '0')); - } - return stringBuilder.ToString(); - } - - /// - /// Unicode转字符串 - /// - /// The to string. - /// Unicode. - public static string UnicodeToString(string unicode) - { - unicode = unicode.Replace("%", "\\"); - - return new Regex(@"\\u([0-9A-F]{4})", RegexOptions.IgnoreCase | RegexOptions.Compiled).Replace( - unicode, x => string.Empty + Convert.ToChar(Convert.ToUInt16(x.Result("$1"), 16))); - - //string resultStr = ""; - //string[] strList = unicode.Split('u'); - //for (int i = 1; i < strList.Length; i++) - //{ - // resultStr += (char)int.Parse(strList[i], System.Globalization.NumberStyles.HexNumber); - //} - //return resultStr; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/UrlHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/UrlHelper.cs deleted file mode 100644 index 6ebd30c0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/UrlHelper.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace Yi.Framework.Common.Helper -{ - public class UrlHelper - { - /// - /// UrlEncode编码 - /// - /// url - /// - public static string UrlEncode(string url) { - return System.Web.HttpUtility.UrlEncode(url, System.Text.Encoding.UTF8); - } - /// - /// UrlEncode解码 - /// - /// 数据 - /// - public static string UrlDecode(string data) - { - return System.Web.HttpUtility.UrlDecode(data, System.Text.Encoding.UTF8); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/XmlHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/XmlHelper.cs deleted file mode 100644 index 538c774a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/XmlHelper.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Xml.Serialization; - -namespace Yi.Framework.Common.Helper -{ - public class XmlHelper - { - /// - /// 转换对象为JSON格式数据 - /// - /// - /// 对象 - /// 字符格式的JSON数据 - public static string? GetXML(object obj) - { - try - { - XmlSerializer xs = new XmlSerializer(typeof(T)); - - using (TextWriter tw = new StringWriter()) - { - xs.Serialize(tw, obj); - return tw.ToString(); - } - } - catch (Exception) - { - return string.Empty; - } - } - - /// - /// Xml格式字符转换为T类型的对象 - /// - /// - /// - /// - public static T ParseFormByXml(string xml,string rootName="root") - { - XmlSerializer serializer = new XmlSerializer(typeof(T), new XmlRootAttribute(rootName)); - StringReader reader = new StringReader(xml); - - T res = (T)serializer.Deserialize(reader)!; - reader.Close(); - reader.Dispose(); - return res; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Helper/ZipHelper.cs b/Yi.Framework.Net6/Yi.Framework.Common/Helper/ZipHelper.cs deleted file mode 100644 index 90f1aa8c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Helper/ZipHelper.cs +++ /dev/null @@ -1,397 +0,0 @@ -/*** -* Title:"基础工具" 项目 -* Title:"基础工具" 项目 -* 主题:压缩包帮助类 -* Description: -* 功能: -* 1、压缩单个文件 -* 2、压缩多个文件 -* 3、压缩多层目录 -* 4、递归遍历目录 -* 5、解压缩一个 zip 文件 -* 6、获取压缩文件中指定类型的文件 -* 7、获取压缩文件中的所有文件 -* Date:2021 -* Version:0.1版本 -* Author:Coffee -* Modify Recoder: -*/ - -using ICSharpCode.SharpZipLib.Zip; -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; - -namespace Yi.Framework.Common.Helper -{ - public class ZipHelper - { - /// - /// 压缩单个文件 - /// - /// 要压缩的文件 - /// 压缩后的文件 - /// 压缩等级 - /// 每次写入大小 - public static void ZipFile(string fileToZip, string zipedFile, int compressionLevel, int blockSize) - { - //如果文件没有找到,则报错 - if (!File.Exists(fileToZip)) - { - throw new FileNotFoundException("指定要压缩的文件: " + fileToZip + " 不存在!"); - } - - using (FileStream ZipFile = File.Create(zipedFile)) - { - using (ZipOutputStream ZipStream = new ZipOutputStream(ZipFile)) - { - using (FileStream StreamToZip = new FileStream(fileToZip, FileMode.Open, FileAccess.Read)) - { - string fileName = fileToZip.Substring(fileToZip.LastIndexOf("\\") + 1); - - ZipEntry ZipEntry = new ZipEntry(fileName); - - ZipStream.PutNextEntry(ZipEntry); - - ZipStream.SetLevel(compressionLevel); - - byte[] buffer = new byte[blockSize]; - - int sizeRead = 0; - - try - { - do - { - sizeRead = StreamToZip.Read(buffer, 0, buffer.Length); - ZipStream.Write(buffer, 0, sizeRead); - } - while (sizeRead > 0); - } - catch - { - - } - - StreamToZip.Close(); - } - - ZipStream.Finish(); - ZipStream.Close(); - } - - ZipFile.Close(); - } - } - - /// - /// 压缩单个文件 - /// - /// 要进行压缩的文件名 - /// 压缩后生成的压缩文件名 - public static void ZipFile(string fileToZip, string zipedFile) - { - //如果文件没有找到,则报错 - if (!File.Exists(fileToZip)) - { - throw new FileNotFoundException("指定要压缩的文件: " + fileToZip + " 不存在!"); - } - - using (FileStream fs = File.OpenRead(fileToZip)) - { - byte[] buffer = new byte[fs.Length]; - fs.Read(buffer, 0, buffer.Length); - fs.Close(); - - using (FileStream ZipFile = File.Create(zipedFile)) - { - using (ZipOutputStream ZipStream = new ZipOutputStream(ZipFile)) - { - string fileName = fileToZip.Substring(fileToZip.LastIndexOf("\\") + 1); - ZipEntry ZipEntry = new ZipEntry(fileName); - ZipStream.PutNextEntry(ZipEntry); - ZipStream.SetLevel(5); - - ZipStream.Write(buffer, 0, buffer.Length); - ZipStream.Finish(); - ZipStream.Close(); - } - } - } - } - - /// - /// 压缩多个文件到指定路径 - /// - /// 压缩到哪个路径 - /// 压缩文件名称 - public static void ZipFile(List sourceFileNames, string zipFileName) - { - //压缩文件打包 - using (ZipOutputStream s = new ZipOutputStream(File.Create(zipFileName))) - { - s.SetLevel(9); - byte[] buffer = new byte[4096]; - foreach (string file in sourceFileNames) - { - if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件 - { - string pPath = ""; - pPath += Path.GetFileName(file); - pPath += "\\"; - ZipSetp(file, s, pPath, sourceFileNames); - } - else // 否则直接压缩文件 - { - - ZipEntry entry = new ZipEntry(Path.GetFileName(file)); - entry.DateTime = DateTime.Now; - s.PutNextEntry(entry); - using (FileStream fs = File.OpenRead(file)) - { - int sourceBytes; - do - { - sourceBytes = fs.Read(buffer, 0, buffer.Length); - s.Write(buffer, 0, sourceBytes); - } while (sourceBytes > 0); - } - } - } - s.Finish(); - s.Close(); - } - } - - - /// - /// 压缩多层目录 - /// - /// 待压缩目录 - /// 压缩后生成的压缩文件名,绝对路径 - public static void ZipFileDirectory(string strDirectory, string zipedFile) - { - using (FileStream ZipFile = File.Create(zipedFile)) - { - using (ZipOutputStream s = new ZipOutputStream(ZipFile)) - { - s.SetLevel(9); - ZipSetp(strDirectory, s, ""); - } - } - } - - /// - /// 压缩多层目录 - /// - /// 待压缩目录 - /// 压缩后生成的压缩文件名,绝对路径 - /// 指定要压缩的文件列表(完全路径) - public static void ZipFileDirectory(string strDirectory, string zipedFile, List files) - { - using (FileStream ZipFile = File.Create(zipedFile)) - { - using (ZipOutputStream s = new ZipOutputStream(ZipFile)) - { - s.SetLevel(9); - ZipSetp(strDirectory, s, "", files); - } - } - } - - /// - /// 递归遍历目录 - /// - /// 需遍历的目录 - /// 压缩输出流对象 - /// The parent path. - /// 需要压缩的文件 - private static void ZipSetp(string strDirectory, ZipOutputStream s, string parentPath, List files = null!) - { - if (strDirectory[strDirectory.Length - 1] != Path.DirectorySeparatorChar) - { - strDirectory += Path.DirectorySeparatorChar; - } - - string[] filenames = Directory.GetFileSystemEntries(strDirectory); - - byte[] buffer = new byte[4096]; - foreach (string file in filenames)// 遍历所有的文件和目录 - { - if (files != null && !files.Contains(file)) - { - continue; - } - if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件 - { - string pPath = parentPath; - pPath += Path.GetFileName(file); - pPath += "\\"; - ZipSetp(file, s, pPath, files!); - } - else // 否则直接压缩文件 - { - //打开压缩文件 - string fileName = parentPath + Path.GetFileName(file); - ZipEntry entry = new ZipEntry(fileName); - - entry.DateTime = DateTime.Now; - - s.PutNextEntry(entry); - using (FileStream fs = File.OpenRead(file)) - { - int sourceBytes; - do - { - sourceBytes = fs.Read(buffer, 0, buffer.Length); - s.Write(buffer, 0, sourceBytes); - } while (sourceBytes > 0); - - } - } - } - } - - /// - /// 解压缩一个 zip 文件。 - /// - /// 压缩文件 - /// 解压目录 - /// zip 文件的密码。 - /// 是否覆盖已存在的文件。 - public static void UnZip(string zipedFile, string strDirectory, bool overWrite, string password) - { - - if (strDirectory == "") - strDirectory = Directory.GetCurrentDirectory(); - if (!strDirectory.EndsWith("\\")) - strDirectory = strDirectory + "\\"; - - using (ZipInputStream s = new ZipInputStream(File.OpenRead(zipedFile))) - { - if (password != null) - { - s.Password = password; - } - ZipEntry theEntry; - - while ((theEntry = s.GetNextEntry()) != null) - { - string directoryName = ""; - string pathToZip = ""; - pathToZip = theEntry.Name; - - if (pathToZip != "") - directoryName = Path.GetDirectoryName(pathToZip) + "\\"; - - string fileName = Path.GetFileName(pathToZip); - - Directory.CreateDirectory(strDirectory + directoryName); - - if (fileName != "") - { - if (File.Exists(strDirectory + directoryName + fileName) && overWrite || !File.Exists(strDirectory + directoryName + fileName)) - { - using (FileStream streamWriter = File.Create(strDirectory + directoryName + fileName)) - { - int size = 2048; - byte[] data = new byte[2048]; - while (true) - { - size = s.Read(data, 0, data.Length); - - if (size > 0) - streamWriter.Write(data, 0, size); - else - break; - } - streamWriter.Close(); - } - } - } - } - - s.Close(); - } - } - - /// - /// 解压缩一个 zip 文件。 - /// - /// 压缩文件 - /// 解压目录 - /// 是否覆盖已存在的文件。 - public static void UnZip(string zipedFile, string strDirectory, bool overWrite) - { - UnZip(zipedFile, strDirectory, overWrite, null!); - } - - /// - /// 解压缩一个 zip 文件。 - /// 覆盖已存在的文件。 - /// - /// 压缩文件 - /// 解压目录 - public static void UnZip(string zipedFile, string strDirectory) - { - UnZip(zipedFile, strDirectory, true); - } - - /// - /// 获取压缩文件中指定类型的文件 - /// - /// 压缩文件 - /// 文件类型(.txt|.exe) - /// 文件名称列表(包含子目录) - public static List GetFiles(string zipedFile, List fileExtension) - { - List files = new List(); - if (!File.Exists(zipedFile)) - { - //return files; - throw new FileNotFoundException(zipedFile); - } - - using (ZipInputStream s = new ZipInputStream(File.OpenRead(zipedFile))) - { - ZipEntry theEntry; - while ((theEntry = s.GetNextEntry()) != null) - { - if (theEntry.IsFile) - { - //Console.WriteLine("Name : {0}", theEntry.Name); - if (fileExtension != null) - { - if (fileExtension.Contains(Path.GetExtension(theEntry.Name))) - { - files.Add(theEntry.Name); - } - } - else - { - files.Add(theEntry.Name); - } - } - } - s.Close(); - } - - return files; - } - - /// - /// 获取压缩文件中的所有文件 - /// - /// 压缩文件 - /// 文件名称列表(包含子目录) - public static List GetFiles(string zipedFile) - { - return GetFiles(zipedFile, null!); - } - - - - }//Class_end - -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Models/GobalModel.cs b/Yi.Framework.Net6/Yi.Framework.Common/Models/GobalModel.cs deleted file mode 100644 index 099cf32f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Models/GobalModel.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Models -{ - public static class GobalModel - { - public static bool SqlLogEnable { get; set; } = true; - - public static bool LoginCodeEnable { get; set; } = true; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Models/ITreeModel.cs b/Yi.Framework.Net6/Yi.Framework.Common/Models/ITreeModel.cs deleted file mode 100644 index fe3e72f3..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Models/ITreeModel.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Models -{ - public interface ITreeModel - { - public long Id { get; set; } - public long ParentId { get; set; } - public int OrderNum { get; set; } - - public List? Children { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Models/JobModel.cs b/Yi.Framework.Net6/Yi.Framework.Common/Models/JobModel.cs deleted file mode 100644 index f831ee46..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Models/JobModel.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Models -{ - public class JobModel - { - public static int visitNum { get; set; } = 0; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Models/LogModel.cs b/Yi.Framework.Net6/Yi.Framework.Common/Models/LogModel.cs deleted file mode 100644 index 40698657..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Models/LogModel.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Models -{ - /// - /// 写入分布式日志需要的字段 - /// - public class LogModel - { - public string OriginalClassName { get; set; } = string.Empty; - public string OriginalMethodName { get; set; } = string.Empty; - public string? Remark { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Models/PageModel.cs b/Yi.Framework.Net6/Yi.Framework.Common/Models/PageModel.cs deleted file mode 100644 index 7f090ade..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Models/PageModel.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Models -{ - - public class PageModel - { - public PageModel() { } - public PageModel(T data,int total) - { - Data = data; - Total = total; - } - public int Total { get; set; } - public T Data { get; set; } = default(T)!; - } - - public class PageModel : PageModel - { - public PageModel() { } - public PageModel(object data, int total) : base(data, total) - { - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Models/PageParModel.cs b/Yi.Framework.Net6/Yi.Framework.Common/Models/PageParModel.cs deleted file mode 100644 index e09fb507..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Models/PageParModel.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Models -{ - - public class PageParModel - { - public int PageNum { get; set; } - public int PageSize { get; set; } - - public DateTime? StartTime {get;set;} - public DateTime? EndTime { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Models/Result.cs b/Yi.Framework.Net6/Yi.Framework.Common/Models/Result.cs deleted file mode 100644 index 5ddd8ff7..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Models/Result.cs +++ /dev/null @@ -1,115 +0,0 @@ -using Microsoft.Extensions.Localization; -using Yi.Framework.Common.Enum; -using Yi.Framework.Language; - -namespace Yi.Framework.Common.Models -{ - public class Result - { - public static IStringLocalizer? _local; - public ResultCodeEnum Code { get; set; } - - public bool Status { get; set; } - public string? Message { get; set; } - public object? Data { get; set; } - public static Result Expire(ResultCodeEnum Code, string msg="") - { - return new Result() { Code = Code, Status=false, Message = Get(msg, "token_expiration") }; - } - public static Result Error(string msg = "") - { - return new Result() { Code = ResultCodeEnum.NotSuccess, Status = false, Message = Get(msg, "fail") }; - } - public static Result Success(string msg = "") - { - return new Result() { Code = ResultCodeEnum.Success, Status = true, Message = Get( msg, "succeed" )}; - } - public static Result SuccessError(string msg = "") - { - return new Result() { Code = ResultCodeEnum.Success, Status = false, Message = Get(msg, "fail") }; - } - - - public static Result UnAuthorize(string msg = "") - { - return new Result() { Code = ResultCodeEnum.NoPermission, Status = false, Message = Get(msg, "unAuthorize") }; - } - public Result SetStatus(bool _Status) - { - if (_Status) - { - this.Code = ResultCodeEnum.Success; - this.Message = "操作成功"; - } - else - { - this.Code = ResultCodeEnum.NotSuccess; - this.Message = "操作失败"; - } - this.Status = _Status; - return this; - } - public Result SetData(object? obj) - { - this.Data = obj; - return this; - } - public Result SetCode(ResultCodeEnum Code) - { - this.Code = Code; - return this; - } - public Result StatusFalse() - { - this.Status = false; - return this; - } - public Result StatusTrue() - { - this.Status = true; - return this; - } - - public static string Get(string msg,string msg2) - { - if (msg=="") - { - if (_local is not null) - { - msg = _local[msg2]; - } - } - return msg; - } - } - public class Result - { - public ResultCodeEnum Code { get; set; } - public string? Message { get; set; } - public T? Data { get; set; } - public static Result Error(string msg = "fail") - { - return new Result() { Code = ResultCodeEnum.NotSuccess, Message = msg }; - } - public static Result Success(string msg = "succeed") - { - return new Result() { Code = ResultCodeEnum.Success, Message = msg }; - } - public static Result UnAuthorize(string msg = "unAuthorize") - { - return new Result() { Code = ResultCodeEnum.NoPermission, Message = msg }; - } - - public Result SetData(T TValue) - { - this.Data = TValue; - return this; - } - - public Result SetCode(ResultCodeEnum Code) - { - this.Code = Code; - return this; - } - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Models/SwaggerModel.cs b/Yi.Framework.Net6/Yi.Framework.Common/Models/SwaggerModel.cs deleted file mode 100644 index 43d8f300..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Models/SwaggerModel.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Models -{ - public class SwaggerModel - { - public SwaggerModel(string url, string name) - { - this.url = url; - this.name = name; - } - public string url { get; set; } - public string name { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Models/VueRouterModel.cs b/Yi.Framework.Net6/Yi.Framework.Common/Models/VueRouterModel.cs deleted file mode 100644 index 3384a985..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Models/VueRouterModel.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.Models -{ - public class VueRouterModel : ITreeModel - { - public long Id { get; set; } - public long ParentId { get; set; } - public int OrderNum { get; set; } - - public string Name { get; set; } = string.Empty; - public string Path { get; set; } = string.Empty; - public bool Hidden { get; set; } - public string Redirect { get; set; } = string.Empty; - public string Component { get; set; } = string.Empty; - public bool AlwaysShow { get; set; } - public Meta Meta { get; set; } = new Meta(); - public List? Children { get; set; } - } - - - public class Meta - { - public string Title { get; set; } = string.Empty; - public string Icon { get; set; } = string.Empty; - public bool NoCache { get; set; } - public string link { get; set; } = string.Empty; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Options/AuthorizationOptions.cs b/Yi.Framework.Net6/Yi.Framework.Common/Options/AuthorizationOptions.cs deleted file mode 100644 index f204dd05..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Options/AuthorizationOptions.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.IOCOptions -{ - public class AuthorizationOptions - { - public string Refresh { get; set; } - public List WhiteList { get; set; } - public List AccountList { get; set; } - public List UserList { get; set; } - - public List TenantList { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Options/ConsulClientOption.cs b/Yi.Framework.Net6/Yi.Framework.Common/Options/ConsulClientOption.cs deleted file mode 100644 index a9cc27a3..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Options/ConsulClientOption.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Yi.Framework.Common.IOCOptions -{ - /// - /// 使用Consul时需要配置 - /// - public class ConsulClientOption - { - public string IP { get; set; } - public int Port { get; set; } - public string Datacenter { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Options/ConsulRegisterOption.cs b/Yi.Framework.Net6/Yi.Framework.Common/Options/ConsulRegisterOption.cs deleted file mode 100644 index a5c4fa6a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Options/ConsulRegisterOption.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.IOCOptions -{ - public class ConsulRegisterOption - { - /// - /// 服务自身IP - /// - public string IP { get; set; } - /// - /// 服务自身Port - /// - public int Port { get; set; } - /// - /// 组名称 - /// - public string GroupName { get; set; } - /// - /// 心跳检查地址 - /// - public string HealthCheckUrl { get; set; } - /// - /// 心跳频率 - /// - public int Interval { get; set; } - /// - /// 心跳超时 - /// - public int Timeout { get; set; } - /// - /// 移除延迟时间 - /// - public int DeregisterCriticalServiceAfter { get; set; } - /// - /// 标签,额外信息,用于权重 - /// - public string Tag { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Options/ElasticSearchOptions.cs b/Yi.Framework.Net6/Yi.Framework.Common/Options/ElasticSearchOptions.cs deleted file mode 100644 index de6c5301..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Options/ElasticSearchOptions.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.IOCOptions -{ - public class ElasticSearchOptions - { - public string Url { get; set; } - public string IndexName { get; set; } - public string UserName { get; set; } - public string PassWord { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Options/JWTTokenOptions.cs b/Yi.Framework.Net6/Yi.Framework.Common/Options/JWTTokenOptions.cs deleted file mode 100644 index 5f4388b8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Options/JWTTokenOptions.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.IOCOptions -{ - public class JWTTokenOptions - { - public string Audience { get; set; } - - public string Issuer { get; set; } - - public string DefaultScheme { get; set; } - public int Expiration { get; set; } - - public int ReExpiration { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Options/KafkaOptions.cs b/Yi.Framework.Net6/Yi.Framework.Common/Options/KafkaOptions.cs deleted file mode 100644 index cfc6955e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Options/KafkaOptions.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.IOCOptions -{ - public class KafkaOptions - { - public string BrokerList { get; set; } - public string TopicName { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Options/RabbitMQOptions.cs b/Yi.Framework.Net6/Yi.Framework.Common/Options/RabbitMQOptions.cs deleted file mode 100644 index bdcb0f13..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Options/RabbitMQOptions.cs +++ /dev/null @@ -1,90 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.IOCOptions -{ - public class RabbitMQOptions - { - ///// - ///// exchange---queue - ///// - //private static Dictionary RabbitMQ_Mapping = new Dictionary(); - //private static readonly object RabbitMQOptions_Lock = new object(); - //public void Init(string exchangeName, string queueName) - //{ - // lock (RabbitMQOptions_Lock) - // { - // RabbitMQ_Mapping[exchangeName] = queueName; - // } - //} - - public string HostName { get; set; } - public string UserName { get; set; } - public string Password { get; set; } - - public int Port { get; set; } - - } - - public class RabbitMQConsumerModel - { - /// - /// 生产者指定,交换机 - /// - public string ExchangeName { get; set; } - /// - /// 自己起的名字 - /// - public string QueueName { get; set; } - } - - public class RabbitMQExchangeQueueName - { - public static readonly string SKUCQRS_Exchange = "Zhaoxi.MSACormmerce.SKUCQRS.Exchange"; - public static readonly string SKUCQRS_Queue_StaticPage = "Zhaoxi.MSACormmerce.SKUCQRS.Queue.StaticPage"; - public static readonly string SKUCQRS_Queue_ESIndex = "Zhaoxi.MSACormmerce.SKUCQRS.Queue.ESIndex"; - - - public static readonly string SKUWarmup_Exchange = "Zhaoxi.MSACormmerce.Warmup.Exchange"; - public static readonly string SKUWarmup_Queue_StaticPage = "Zhaoxi.MSACormmerce.Warmup.Queue.StaticPage"; - public static readonly string SKUWarmup_Queue_ESIndex = "Zhaoxi.MSACormmerce.Warmup.Queue.ESIndex"; - - /// - /// 订单创建后的交换机 - /// - public static readonly string OrderCreate_Exchange = "Zhaoxi.MSACormmerce.OrderCreate.Exchange"; - public static readonly string OrderCreate_Queue_CleanCart = "Zhaoxi.MSACormmerce.OrderCreate.Queue.CleanCart"; - - /// - /// 订单创建后的交换机,支付状态的 - /// - public static readonly string OrderPay_Exchange = "Zhaoxi.MSACormmerce.OrderPay.Exchange"; - public static readonly string OrderPay_Queue_RefreshPay = "Zhaoxi.MSACormmerce.OrderPay.Queue.RefreshPay"; - - /// - /// 创建订单后的延时队列配置 - /// - public static readonly string OrderCreate_Delay_Exchange = "Zhaoxi.MSACormmerce.OrderCreate.DelayExchange"; - public static readonly string OrderCreate_Delay_Queue_CancelOrder = "Zhaoxi.MSACormmerce.OrderCreate.DelayQueue.CancelOrder"; - - /// - /// 秒杀异步的 - /// - public static readonly string Seckill_Exchange = "Zhaoxi.MSACormmerce.Seckill.Exchange"; - public static readonly string Seckill_Order_Queue = "Zhaoxi.MSACormmerce.Seckill.Order.Queue"; - - - /// - /// CAP队列名称 - /// - public const string Order_Stock_Decrease = "RabbitMQ.MySQL.Order-Stock.Decrease"; - public const string Order_Stock_Resume = "RabbitMQ.MySQL.Order-Stock.Resume"; - public const string Stock_Logistics = "RabbitMQ.MySQL.Stock-Logistics"; - - public const string Pay_Order_UpdateStatus = "RabbitMQ.MySQL.Pay_Order.UpdateStatus"; - } - -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Options/RedisConnOptions.cs b/Yi.Framework.Net6/Yi.Framework.Common/Options/RedisConnOptions.cs deleted file mode 100644 index 031509a3..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Options/RedisConnOptions.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.IOCOptions -{ - public class RedisConnOptions - { - public string Host { get; set; } - public int DB { get; set; } = 0; - public int Prot { get; set; } - public string Password { get; set; } - } - - -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Options/SMSOptions.cs b/Yi.Framework.Net6/Yi.Framework.Common/Options/SMSOptions.cs deleted file mode 100644 index c9f36347..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Options/SMSOptions.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.IOCOptions -{ - public class SMSOptions - { - - public string ID { get; set; } - public string Secret { get; set; } - public string Sign { get; set; } - public string Template { get; set; } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Options/SqlConnOptions.cs b/Yi.Framework.Net6/Yi.Framework.Common/Options/SqlConnOptions.cs deleted file mode 100644 index c4646a05..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Options/SqlConnOptions.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Yi.Framework.Common.IOCOptions -{ - public class SqlConnOptions - { - public string WriteUrl { get; set; } = string.Empty; - public List? ReadUrl { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/QueueModel/OrderCreateQueueModel.cs b/Yi.Framework.Net6/Yi.Framework.Common/QueueModel/OrderCreateQueueModel.cs deleted file mode 100644 index b71a1af2..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/QueueModel/OrderCreateQueueModel.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.QueueModel -{ - /// - /// 下单成功后的实体 - /// - public class OrderCreateQueueModel - { - /// - /// 用户Id - /// - public long UserId { get; set; } - /// - /// 订单Id - /// - public long OrderId { get; set; } - /// - /// sku ID 集合 - /// - public List? SkuIdList { get; set; } - - /// - /// 尝试次数 - /// - public int TryTime { get; set; } - - public OrderTypeEnum OrderType { get; set; } - - public enum OrderTypeEnum - { - Normal, - Seckill - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/QueueModel/SKUWarmupQueueModel.cs b/Yi.Framework.Net6/Yi.Framework.Common/QueueModel/SKUWarmupQueueModel.cs deleted file mode 100644 index 80c926cf..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/QueueModel/SKUWarmupQueueModel.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.QueueModel -{ - public class SKUWarmupQueueModel - { - public bool Warmup { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/QueueModel/SMSQueueModel.cs b/Yi.Framework.Net6/Yi.Framework.Common/QueueModel/SMSQueueModel.cs deleted file mode 100644 index 1bcdab4f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/QueueModel/SMSQueueModel.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.QueueModel -{ - public class SMSQueueModel - { - public string? code { get; set; } - public string? phone { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/QueueModel/SPUCQRSQueueModel.cs b/Yi.Framework.Net6/Yi.Framework.Common/QueueModel/SPUCQRSQueueModel.cs deleted file mode 100644 index a9a2efba..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/QueueModel/SPUCQRSQueueModel.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Common.QueueModel -{ - /// - /// 以SPU为单位 - /// - public class SPUCQRSQueueModel - { - public long SpuId { get; set; } - - /// - /// enum SPUCQRSQueueModelType - /// - public int CQRSType { get; set; } - } - - /// - /// 操作类型 - /// - public enum SPUCQRSQueueModelType - { - Insert = 0, - Update = 1, - Delete = 2, - Search = 3 - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Common/Yi.Framework.Common.csproj b/Yi.Framework.Net6/Yi.Framework.Common/Yi.Framework.Common.csproj deleted file mode 100644 index 22079ff5..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Common/Yi.Framework.Common.csproj +++ /dev/null @@ -1,31 +0,0 @@ - - - - net6.0 - enable - - - - 1701;1702;CS8618 - - - - 1701;1702;CS8618 - - - - - - - - - - - - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.Core/Cache/CacheInvoker.cs b/Yi.Framework.Net6/Yi.Framework.Core/Cache/CacheInvoker.cs deleted file mode 100644 index 8eeac052..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/Cache/CacheInvoker.cs +++ /dev/null @@ -1,153 +0,0 @@ -using Microsoft.Extensions.Options; -using System; -using System.Collections; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.IO; -using Yi.Framework.Common.IOCOptions; -using CSRedis; -using static CSRedis.CSRedisClient; - -namespace Yi.Framework.Core.Cache -{ - public abstract class CacheInvoker - { - - public virtual bool Exits(string key) - { - throw new NotImplementedException(); - } - public virtual T Get(string key) - { - throw new NotImplementedException(); - } - - public virtual bool Set(string key, T data, TimeSpan time) - { - throw new NotImplementedException(); - } - - public virtual bool Set(string key, T data) - { - throw new NotImplementedException(); - } - - public virtual long Del(string key) - { - throw new NotImplementedException(); - } - - public virtual bool HSet(string key, string fieId, object data) - { - throw new NotImplementedException(); - } - - public virtual bool HSet(string key, string fieId, object data, TimeSpan time) - { - throw new NotImplementedException(); - } - - public virtual T HGet(string key, string field) - { - throw new NotImplementedException(); - } - - - public virtual long HDel(string key, params string[] par) - { - throw new NotImplementedException(); - } - - public virtual long HLen(string key) - { - throw new NotImplementedException(); - } - - public virtual Dictionary HGetAll(string key) - { - throw new NotImplementedException(); - } - - /// - /// 简单发布 - /// - /// - /// - /// - public virtual long Publish(string channel, string message) - { - throw new NotImplementedException(); - } - - /// - /// 简单订阅:广播,无持久化,需要Publish写入队列 - /// - /// - /// - public virtual SubscribeObject Subscribe(params (string, Action)[] channels) - { - throw new NotImplementedException(); - } - - /// - /// 多端争抢模式订阅,需要Lpush写入队列 - /// - /// - /// - /// - public virtual SubscribeListObject SubscribeList(string listKey, Action onMessage) - { - throw new NotImplementedException(); - } - - /// - /// 多端非争抢模式订阅,需要Lpush写入队列 - /// - /// - /// - /// - /// - public virtual SubscribeListBroadcastObject SubscribeListBroadcast(string listKey, string clientId, Action onMessage) - { - throw new NotImplementedException(); - } - - public virtual bool LSet(string key, long index, object value) - { - throw new NotImplementedException(); - } - - - - /// - /// 列表插入头部 - /// - /// - /// - /// - /// - public virtual long LPush(string key, params T[] value) - { - throw new NotImplementedException(); - } - - /// - /// 列表弹出头部 - /// - /// - /// - /// - public virtual T LPop(string key) - { - throw new NotImplementedException(); - } - - public virtual string[] Keys(string pattern) - { - throw new NotImplementedException(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Core/Cache/MemoryCacheClient.cs b/Yi.Framework.Net6/Yi.Framework.Core/Cache/MemoryCacheClient.cs deleted file mode 100644 index b11d30bd..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/Cache/MemoryCacheClient.cs +++ /dev/null @@ -1,43 +0,0 @@ -using Microsoft.Extensions.Caching.Memory; -using Microsoft.Extensions.Options; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.IOCOptions; - -namespace Yi.Framework.Core.Cache -{ - public class MemoryCacheClient : CacheInvoker - { - private IMemoryCache _client; - public MemoryCacheClient() - { - _client = new MemoryCache(new MemoryCacheOptions()); - } - public override bool Exits(string key) - { - return _client.TryGetValue(key, out var _); - } - public override T Get(string key) - { - return _client.Get(key); - } - public override bool Set(string key, T item) - { - return _client.Set(key, item) is not null; - } - - public override bool Set(string key, T item, TimeSpan time) - { - return _client.Set(key, item, time) is not null; - } - - public override long Del(string key) - { - _client.Remove(key); - return 1; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Core/Cache/RedisCacheClient.cs b/Yi.Framework.Net6/Yi.Framework.Core/Cache/RedisCacheClient.cs deleted file mode 100644 index 98217a9b..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/Cache/RedisCacheClient.cs +++ /dev/null @@ -1,164 +0,0 @@ -using Microsoft.Extensions.Options; -using System; -using System.Collections; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.IO; -using Yi.Framework.Common.IOCOptions; -using CSRedis; -using static CSRedis.CSRedisClient; - -namespace Yi.Framework.Core.Cache -{ - public class RedisCacheClient : CacheInvoker - { - private readonly RedisConnOptions _RedisOptions; - - private CSRedisClient _client; - - public RedisCacheClient(IOptionsMonitor redisConnOptions) - { - this._RedisOptions = redisConnOptions.CurrentValue; - _client = new CSRedisClient($"{_RedisOptions.Host}:{_RedisOptions.Prot},password={_RedisOptions.Password},defaultDatabase ={ _RedisOptions.DB }"); - } - public override bool Exits(string key) - { - return _client.Exists(key); - } - public override T Get(string key) - { - return _client.Get(key); - } - - public override bool Set(string key, T data, TimeSpan time) - { - return _client.Set(key, data, time); - } - - public override bool Set(string key, T data) - { - return _client.Set(key, data); - } - - public override long Del(string key) - { - return _client.Del(key); - } - - public override bool HSet(string key, string fieId, object data) - { - return _client.HSet(key, fieId, data); - } - - public override bool HSet(string key, string fieId, object data, TimeSpan time) - { - var res = _client.HSet(key, fieId, data); - var res2 = _client.Expire(key, time); - return res && res2; - } - - public override T HGet(string key, string field) - { - return _client.HGet(key, field); - } - - - public override long HDel(string key, params string[] par) - { - return _client.HDel(key, par); - } - - public override long HLen(string key) - { - return _client.HLen(key); - } - - public override Dictionary HGetAll(string key) - { - return _client.HGetAll(key); - } - - /// - /// 简单发布 - /// - /// - /// - /// - public override long Publish(string channel, string message) - { - return _client.Publish(channel, message); - } - - /// - /// 简单订阅:广播,无持久化,需要Publish写入队列 - /// - /// - /// - public override SubscribeObject Subscribe(params (string, Action)[] channels) - { - return _client.Subscribe(channels); - } - - /// - /// 多端争抢模式订阅,需要Lpush写入队列 - /// - /// - /// - /// - public override SubscribeListObject SubscribeList(string listKey, Action onMessage) - { - return _client.SubscribeList(listKey, onMessage); - } - - /// - /// 多端非争抢模式订阅,需要Lpush写入队列 - /// - /// - /// - /// - /// - public override SubscribeListBroadcastObject SubscribeListBroadcast(string listKey, string clientId, Action onMessage) - { - return _client.SubscribeListBroadcast(listKey, clientId, onMessage); - } - - public override bool LSet(string key, long index, object value) - { - return _client.LSet(key, index, value); - } - - - - /// - /// 列表插入头部 - /// - /// - /// - /// - /// - public override long LPush(string key, params T[] value) - { - return _client.LPush(key,value); - } - - /// - /// 列表弹出头部 - /// - /// - /// - /// - public override T LPop(string key) - { - return _client.LPop(key); - } - - public override string[] Keys(string pattern) - { - return _client.Keys(pattern); - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Core/Consul/AbstractConsulDispatcher.cs b/Yi.Framework.Net6/Yi.Framework.Core/Consul/AbstractConsulDispatcher.cs deleted file mode 100644 index 47c18d09..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/Consul/AbstractConsulDispatcher.cs +++ /dev/null @@ -1,72 +0,0 @@ -using Consul; -using Microsoft.Extensions.Options; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.IOCOptions; - -namespace Yi.Framework.Core.Consul -{ - public abstract class AbstractConsulDispatcher - { - protected ConsulClientOption _ConsulClientOption = null; - protected KeyValuePair[] _CurrentAgentServiceDictionary = null; - - public AbstractConsulDispatcher(IOptionsMonitor consulClientOption) - { - _ConsulClientOption = consulClientOption.CurrentValue; - } - - /// - /// 负载均衡获取地址 - /// - /// Consul映射后的地址 - /// - public string GetAddress(string mappingUrl) - { - Uri uri = new Uri(mappingUrl); - string serviceName = uri.Host; - string addressPort = ChooseAddress(serviceName); - return $"{uri.Scheme}://{addressPort}{uri.PathAndQuery}"; - } - - protected virtual string ChooseAddress(string serviceName) - { - ConsulClient client = new ConsulClient(c => - { - c.Address = new Uri($"http://{_ConsulClientOption.IP}:{_ConsulClientOption.Port}/"); - c.Datacenter = _ConsulClientOption.Datacenter; - }); - AgentService agentService = null; - //var response = client.Agent.Services().Result.Response; - ////foreach (var item in response) - ////{ - //// Console.WriteLine("***************************************"); - //// Console.WriteLine(item.Key); - //// var service = item.Value; - //// Console.WriteLine($"{service.Address}--{service.Port}--{service.Service}"); - //// Console.WriteLine("***************************************"); - ////} - - //this._CurrentAgentServiceDictionary = response.Where(s => s.Value.Service.Equals(serviceName, StringComparison.OrdinalIgnoreCase)).ToArray(); - - //升级consul实例获取 - var entrys = client.Health.Service(serviceName).Result.Response; - List> serviceList = new List>(); - for (int i = 0; i < entrys.Length; i++) - { - serviceList.Add(new KeyValuePair(i.ToString(), entrys[i].Service)); - } - _CurrentAgentServiceDictionary = serviceList.ToArray(); - - int index = GetIndex(); - agentService = _CurrentAgentServiceDictionary[index].Value; - - return $"{agentService.Address}:{agentService.Port}"; - } - - protected abstract int GetIndex(); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Core/Consul/AverageDispatcher.cs b/Yi.Framework.Net6/Yi.Framework.Core/Consul/AverageDispatcher.cs deleted file mode 100644 index f5c43fb6..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/Consul/AverageDispatcher.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Consul; -using Microsoft.Extensions.Options; -using Yi.Framework.Common.IOCOptions; - -namespace Yi.Framework.Core.Consul -{ - /// - /// 平均 - /// - public class AverageDispatcher : AbstractConsulDispatcher - { - #region Identity - private static int _iTotalCount = 0; - private static int iTotalCount - { - get - { - return _iTotalCount; - } - set - { - _iTotalCount = value >= int.MaxValue ? 0 : value; - } - } - - - public AverageDispatcher(IOptionsMonitor consulClientOption) : base(consulClientOption) - { - } - #endregion - - /// - /// 平均 - /// - /// - protected override int GetIndex() - { - return new Random(iTotalCount++).Next(0, _CurrentAgentServiceDictionary.Length); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Core/Consul/PollingDispatcher.cs b/Yi.Framework.Net6/Yi.Framework.Core/Consul/PollingDispatcher.cs deleted file mode 100644 index 02eb2d36..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/Consul/PollingDispatcher.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Consul; -using Microsoft.Extensions.Options; -using Yi.Framework.Common.IOCOptions; - -namespace Yi.Framework.Core.Consul -{ - /// - /// 轮询 - /// - public class PollingDispatcher : AbstractConsulDispatcher - { - #region Identity - private static int _iTotalCount = 0; - private static int iTotalCount - { - get - { - return _iTotalCount; - } - set - { - _iTotalCount = value >= int.MaxValue ? 0 : value; - } - } - - public PollingDispatcher(IOptionsMonitor consulClientOption) : base(consulClientOption) - { - } - #endregion - - /// - /// 轮询 - /// - /// - /// - protected override int GetIndex() - { - return iTotalCount++ % _CurrentAgentServiceDictionary.Length; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Core/Consul/WeightDispatcher.cs b/Yi.Framework.Net6/Yi.Framework.Core/Consul/WeightDispatcher.cs deleted file mode 100644 index ab399446..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/Consul/WeightDispatcher.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Consul; -using Microsoft.Extensions.Options; -using Yi.Framework.Common.IOCOptions; - -namespace Yi.Framework.Core.Consul -{ - /// - /// 权重 - /// - public class WeightDispatcher : AbstractConsulDispatcher - { - #region Identity - private static int _iTotalCount = 0; - private static int iTotalCount - { - get - { - return _iTotalCount; - } - set - { - _iTotalCount = value >= int.MaxValue ? 0 : value; - } - } - public WeightDispatcher(IOptionsMonitor consulClientOption) : base(consulClientOption) - { - - } - #endregion - - protected override string ChooseAddress(string serviceName) - { - ConsulClient client = new ConsulClient(c => - { - c.Address = new Uri($"http://{_ConsulClientOption.IP}:{_ConsulClientOption.Port}/"); - c.Datacenter = _ConsulClientOption.Datacenter; - }); - AgentService agentService = null; - var response = client.Agent.Services().Result.Response; - - _CurrentAgentServiceDictionary = response.Where(s => s.Value.Service.Equals(serviceName, StringComparison.OrdinalIgnoreCase)).ToArray(); - - - var serviceDictionaryNew = new List(); - foreach (var service in _CurrentAgentServiceDictionary) - { - serviceDictionaryNew.AddRange(Enumerable.Repeat(service.Value, int.TryParse(service.Value.Tags?[0], out int iWeight) ? 1 : iWeight)); - } - int index = new Random(DateTime.Now.Millisecond).Next(0, int.MaxValue) % serviceDictionaryNew.Count; - agentService = serviceDictionaryNew[index]; - - return $"{agentService.Address}:{agentService.Port}"; - } - /// - /// 不需要了 - /// - /// - protected override int GetIndex() - { - throw new NotImplementedException(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Core/ElasticSearchInvoker.cs b/Yi.Framework.Net6/Yi.Framework.Core/ElasticSearchInvoker.cs deleted file mode 100644 index da72e72f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/ElasticSearchInvoker.cs +++ /dev/null @@ -1,53 +0,0 @@ -using Microsoft.Extensions.Options; -using Nest; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.IOCOptions; - -namespace Yi.Framework.Core -{ - public class ElasticSearchInvoker - { - private readonly ElasticSearchOptions _elasticSearchOptions; - - public ElasticSearchInvoker(IOptionsMonitor optionsMonitor) - { - _elasticSearchOptions = optionsMonitor.CurrentValue; - var settings = new ConnectionSettings(new Uri(_elasticSearchOptions.Url)).DefaultIndex(this._elasticSearchOptions.IndexName).BasicAuthentication(this._elasticSearchOptions.UserName, this._elasticSearchOptions.PassWord); ; - Client = new ElasticClient(settings); - } - private ElasticClient Client; - public ElasticClient GetElasticClient() - { - return Client; - } - public void Send(List model) where T : class - { - Client.IndexMany(model); - } - - public void InsertOrUpdata(T model) where T : class - { - Client.IndexDocument(model); - } - - public bool Delete(string id) where T : class - { - - var response = Client.Delete(id); - return response.IsValid; - } - public bool DropIndex(string indexName) - { - return Client.Indices.Delete(Indices.Parse(indexName)).IsValid; - } - public void CreateIndex(string indexName) - { - var settings = new ConnectionSettings(new Uri(_elasticSearchOptions.Url)).DefaultIndex(indexName); - this.Client = new ElasticClient(settings); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Core/JwtInvoker.cs b/Yi.Framework.Net6/Yi.Framework.Core/JwtInvoker.cs deleted file mode 100644 index 58540dc0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/JwtInvoker.cs +++ /dev/null @@ -1,76 +0,0 @@ -using Microsoft.Extensions.Options; -using Microsoft.IdentityModel.JsonWebTokens; -using Microsoft.IdentityModel.Tokens; -using System; -using System.Collections.Generic; -using System.IdentityModel.Tokens.Jwt; -using System.Linq; -using System.Security.Claims; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Const; -using Yi.Framework.Common.IOCOptions; -using Yi.Framework.Model.RABC.Entitys; -using JwtRegisteredClaimNames = Microsoft.IdentityModel.JsonWebTokens.JwtRegisteredClaimNames; - -namespace Yi.Framework.Core -{ - public class JwtInvoker - { - private readonly JWTTokenOptions _JWTTokenOptions; - public JwtInvoker(IOptionsMonitor jwtTokenOptions) - { - this._JWTTokenOptions = jwtTokenOptions.CurrentValue; - } - public string GetRefreshToken(UserEntity user) - { - return this.GetToken(_JWTTokenOptions.ReExpiration, user, null, true); - } - - public TimeSpan GetTokenExpiration() - { - return new TimeSpan(0, _JWTTokenOptions.Expiration, 0); - } - - public string GetAccessToken(UserEntity user, HashSet menus) - { - return this.GetToken(_JWTTokenOptions.Expiration, user, menus); - } - - private string GetToken(int minutes, UserEntity user, HashSet menus, bool isRefresh = false) - { - List claims = new List(); - claims.Add(new Claim(JwtRegisteredClaimNames.Nbf, $"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}")); - claims.Add(new Claim(JwtRegisteredClaimNames.Exp, $"{new DateTimeOffset(DateTime.Now.AddMinutes(minutes)).ToUnixTimeSeconds()}")); - claims.Add(new Claim(JwtRegisteredClaimNames.Sid, user.Id.ToString())); - claims.Add(new Claim(SystemConst.UserName, user.UserName)); - claims.Add(new Claim(SystemConst.DeptId, user.DeptId.ToString())); - //-----------------------------以下从user的权限表中添加权限-----------------------例如: - - foreach (var m in menus) - { - if (!string.IsNullOrEmpty(m.PermissionCode)) - { - claims.Add(new Claim(SystemConst.PermissionClaim, m.PermissionCode.ToString())); - } - } - if (SystemConst.Admin.Equals(user.UserName)) - { - claims.Add(new Claim(SystemConst.PermissionClaim, SystemConst.AdminPermissionCode)); - } - - var creds = new SigningCredentials(new RsaSecurityKey(Common.Helper.RSAFileHelper.GetKey()), SecurityAlgorithms.RsaSha256); - var token = new JwtSecurityToken( - issuer: _JWTTokenOptions.Issuer, - audience: _JWTTokenOptions.Audience, - claims: claims, - expires: DateTime.Now.AddMinutes(minutes), - signingCredentials: creds); - var tokenData = new JwtSecurityTokenHandler().WriteToken(token); - - return tokenData; - - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Core/Quartz/QuartzInvoker.cs b/Yi.Framework.Net6/Yi.Framework.Core/Quartz/QuartzInvoker.cs deleted file mode 100644 index 51cb882d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/Quartz/QuartzInvoker.cs +++ /dev/null @@ -1,213 +0,0 @@ -using Microsoft.Extensions.Logging; -using Quartz; -using Quartz.Impl.Matchers; -using Quartz.Spi; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Helper; -using Yi.Framework.Job; - -namespace Yi.Framework.Core.Quartz -{ - public class QuartzInvoker - { - private readonly ISchedulerFactory _schedulerFactory; - private IScheduler _scheduler; - private ILogger _logger; - private IJobFactory _jobFactory; - - private const string JobDllName = "Yi.Framework.Job"; - public QuartzInvoker(ISchedulerFactory schedulerFactory, ILogger logger, IJobFactory jobFactory) - { - _schedulerFactory = schedulerFactory; - _logger = logger; - _jobFactory = jobFactory; - } - - /// - /// 开始任务 - /// - /// - /// - /// - /// - /// - /// - /// - public async Task StartAsync(string cron, string jobClass, string jobName = "", string jobGroup = "default", long startAtSecondTime = 0, IDictionary data = null) - { - jobName = jobName == "" ? jobClass : jobName; - if (data == null) - { - data = new Dictionary(); - } - JobKey jobKey = new JobKey(jobName, jobGroup); - var myClass = AssemblyHelper.GetClass(JobDllName, jobClass).FirstOrDefault(); - - _scheduler = await _schedulerFactory.GetScheduler(); - _scheduler.JobFactory = _jobFactory; - - //创建一个触发器 - var trigger = TriggerBuilder.Create() - .StartAt(DateTimeOffset.Now.AddSeconds(startAtSecondTime)) - .WithCronSchedule(cron) - .Build(); - //创建任务 - var jobDetail = JobBuilder.Create(myClass) - .UsingJobData(new JobDataMap(data)) - .WithIdentity(jobKey.Name, jobKey.Group) - .Build(); - - //await _scheduler.AddJob(jobDetail,false); - - //await _scheduler.ScheduleJob(trigger); - //将触发器和任务器绑定到调度器中 - await _scheduler.ScheduleJob(jobDetail, trigger); - - //开启调度器 - await _scheduler.Start(); - - _logger.LogWarning($"开始任务:{jobKey.Name},组别:{jobKey.Group}"); - } - - /// - /// 开始任务 - /// - /// - /// - /// - /// - /// - /// - /// - public async Task StartAsync(int milliSecondTime, string jobClass, string jobName = "", string jobGroup = "default", long startAtSecondTime = 0, IDictionary data = null) - { - - jobName = jobName == "" ? jobClass : jobName; - - if (data == null) - { - data = new Dictionary(); - } - JobKey jobKey = new JobKey(jobName, jobGroup); - var myClass = AssemblyHelper.GetClass(JobDllName, jobClass).FirstOrDefault(); - - _scheduler = await _schedulerFactory.GetScheduler(); - _scheduler.JobFactory = _jobFactory; - - //创建一个触发器 - var trigger = TriggerBuilder.Create() - .StartAt(DateTimeOffset.Now.AddSeconds(startAtSecondTime)) - .WithSimpleSchedule(option => - { - option.WithInterval(TimeSpan.FromMilliseconds(milliSecondTime)).RepeatForever(); - }) - - .Build(); - //创建任务 - var jobDetail = JobBuilder.Create(myClass) - .UsingJobData(new JobDataMap(data)) - .WithIdentity(jobKey.Name, jobKey.Group) - .Build(); - - //await _scheduler.AddJob(jobDetail,false); - - //await _scheduler.ScheduleJob(trigger); - //将触发器和任务器绑定到调度器中 - await _scheduler.ScheduleJob(jobDetail, trigger); - - //开启调度器 - await _scheduler.Start(); - - _logger.LogWarning($"开始任务:{jobKey.Name},组别:{jobKey.Group}"); - } - - - /// - /// 暂停任务 - /// - /// - /// - public async Task StopAsync(JobKey jobKey) - { - var _scheduler = await _schedulerFactory.GetScheduler(); - //LogUtil.Debug($"暂停任务{jobKey.Group},{jobKey.Name}"); - await _scheduler.PauseJob(jobKey); - _logger.LogWarning($"暂停任务:{jobKey.Name},组别:{jobKey.Group}"); - } - - - public async Task DeleteAsync(JobKey jobKey) - { - var _scheduler = await _schedulerFactory.GetScheduler(); - //LogUtil.Debug($"暂停任务{jobKey.Group},{jobKey.Name}"); - await _scheduler.DeleteJob(jobKey); - _logger.LogWarning($"删除任务:{jobKey.Name},组别:{jobKey.Group}"); - } - - public async Task ResumeAsync(JobKey jobKey) - { - var _scheduler = await _schedulerFactory.GetScheduler(); - //LogUtil.Debug($"恢复任务{jobKey.Group},{jobKey.Name}"); - await _scheduler.ResumeJob(jobKey); - _logger.LogWarning($"恢复任务:{jobKey.Name},组别:{jobKey.Group}"); - } - - - /// - /// 得到可运行的job列表 - /// - /// - public List GetJobClassList() - { - var myClassList = AssemblyHelper.GetClass("ETX.Job"); - List data = new List(); - myClassList.ForEach(k => data.Add(k.Name)); - return data; - } - - /// - /// 得到现在正在运行的任务列表 - /// - /// - public async Task> getRunJobList() - { - _scheduler = await _schedulerFactory.GetScheduler(); - var groups = await _scheduler.GetJobGroupNames(); - var data = new List(); - foreach (var groupName in groups) - { - foreach (var jobKey in await _scheduler.GetJobKeys(GroupMatcher.GroupEquals(groupName))) - { - string jobName = jobKey.Name; - string jobGroup = jobKey.Group; - data.Add(jobKey); - var triggers = await _scheduler.GetTriggersOfJob(jobKey); - foreach (ITrigger trigger in triggers) - { - ///下一次的执行时间 - var utcTime = trigger.GetNextFireTimeUtc(); - string str = utcTime.ToString(); - //TimeZone.CurrentTimeZone.ToLocalTime(Convert.ToDateTime(str)); - - - } - } - } - - return data; - } - } - - - - public class JobKeyModel - { - public JobKey jobKey { get; set; } - public DateTime? nextTime { get; set; } - } -} - diff --git a/Yi.Framework.Net6/Yi.Framework.Core/RabbitMQInvoker.cs b/Yi.Framework.Net6/Yi.Framework.Core/RabbitMQInvoker.cs deleted file mode 100644 index 9f182b36..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/RabbitMQInvoker.cs +++ /dev/null @@ -1,257 +0,0 @@ -using Microsoft.Extensions.Options; -using RabbitMQ.Client; -using RabbitMQ.Client.Events; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.IOCOptions; - -namespace Yi.Framework.Core -{ - /// - /// 一个Exchange----多个Queue-----弄个缓存映射关系,初始化+支持全新绑定 - /// 全局单例使用 - /// - /// 关系应该是直接配置到RabbitMQ了---程序只是向某个位置写入即可 - /// - /// - /// 全量更新--耗时---阻塞实时更新---换不同的exchange? - /// - public class RabbitMQInvoker - { - #region Identity - private readonly RabbitMQOptions _rabbitMQOptions; - private readonly string _HostName = null; - private readonly string _UserName = null; - private readonly string _Password = null; - private readonly int _Port = 0; - public RabbitMQInvoker(IOptionsMonitor optionsMonitor) : this(optionsMonitor.CurrentValue.HostName, optionsMonitor.CurrentValue.UserName, optionsMonitor.CurrentValue.Password,optionsMonitor.CurrentValue.Port) - { - this._rabbitMQOptions = optionsMonitor.CurrentValue; - } - - public RabbitMQInvoker(string hostName, string userName = "cc", string password = "cc",int port= 5672) - { - this._HostName = hostName; - this._UserName = userName; - this._Password = password; - this._Port = port; - } - #endregion - - #region Init - private static object RabbitMQInvoker_BindQueueLock = new object(); - private static Dictionary RabbitMQInvoker_ExchangeQueue = new Dictionary(); - private void InitBindQueue(RabbitMQConsumerModel rabbitMQConsumerModel) - { - if (!RabbitMQInvoker_ExchangeQueue.ContainsKey($"InitBindQueue_{rabbitMQConsumerModel.ExchangeName}_{rabbitMQConsumerModel.QueueName}")) - { - lock (RabbitMQInvoker_BindQueueLock) - { - if (!RabbitMQInvoker_ExchangeQueue.ContainsKey($"InitBindQueue_{rabbitMQConsumerModel.ExchangeName}_{rabbitMQConsumerModel.QueueName}")) - { - this.InitConnection(); - using (IModel channel = _CurrentConnection.CreateModel()) - { - channel.ExchangeDeclare(exchange: rabbitMQConsumerModel.ExchangeName, type: ExchangeType.Fanout, durable: true, autoDelete: false, arguments: null); - channel.QueueDeclare(queue: rabbitMQConsumerModel.QueueName, durable: true, exclusive: false, autoDelete: false, arguments: null); - channel.QueueBind(queue: rabbitMQConsumerModel.QueueName, exchange: rabbitMQConsumerModel.ExchangeName, routingKey: string.Empty, arguments: null); - } - RabbitMQInvoker_ExchangeQueue[$"InitBindQueue_{rabbitMQConsumerModel.ExchangeName}_{rabbitMQConsumerModel.QueueName}"] = true; - } - } - } - } - /// - /// 必须先声明exchange--检查+初始化 - /// - /// - private void InitExchange(string exchangeName) - { - if (!RabbitMQInvoker_ExchangeQueue.ContainsKey($"InitExchange_{exchangeName}"))//没用api确认 - { - lock (RabbitMQInvoker_BindQueueLock) - { - if (!RabbitMQInvoker_ExchangeQueue.ContainsKey($"InitExchange_{exchangeName}")) - { - this.InitConnection(); - using (IModel channel = _CurrentConnection.CreateModel()) - { - channel.ExchangeDeclare(exchange: exchangeName, type: ExchangeType.Fanout, durable: true, autoDelete: false, arguments: null); - } - RabbitMQInvoker_ExchangeQueue[$"InitExchange_{exchangeName}"] = true; - } - } - } - } - //public void UnBindQueue(string exchangeName, string queueName) - //{ - //} - - private static object RabbitMQInvoker_InitLock = new object(); - private static IConnection _CurrentConnection = null;//链接做成单例重用--channel是新的 - private void InitConnection() - { - //https://blog.csdn.net/weixin_30646315/article/details/99101279 - if (_CurrentConnection == null || !_CurrentConnection.IsOpen) - { - lock (RabbitMQInvoker_InitLock) - { - if (_CurrentConnection == null || !_CurrentConnection.IsOpen) - { - var factory = new ConnectionFactory() - { - HostName = this._HostName, - Password = this._Password, - UserName = this._UserName, - Port=this._Port - - }; - _CurrentConnection = factory.CreateConnection(); - } - } - } - } - #endregion - - /// - /// 只管exchange--- - /// 4种路由类型? - /// - /// Send前完成交换机初始化 - /// - /// - /// 建议Json格式 - public void Send(RabbitMQConsumerModel rabbitMQConsumerModel, string message) - { - this.InitExchange(rabbitMQConsumerModel.ExchangeName); - this.InitBindQueue(rabbitMQConsumerModel); - if (_CurrentConnection == null || !_CurrentConnection.IsOpen) - { - this.InitConnection(); - } - using (var channel = _CurrentConnection.CreateModel())//开辟新的信道通信 - { - try - { - channel.TxSelect();//开启Tx事务---RabbitMQ协议级的事务-----强事务 - - var body = Encoding.UTF8.GetBytes(message); - channel.BasicPublish(exchange: rabbitMQConsumerModel.ExchangeName, - routingKey: string.Empty, - basicProperties: null, - body: body); - channel.TxCommit();//提交 - Console.WriteLine($" [x] Sent {body.Length}"); - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - Console.WriteLine($"【{message}】发送到Broker失败!{ex.Message}"); - channel.TxRollback(); //事务回滚--前面的所有操作就全部作废了。。。。 - } - } - } - - /// - /// 固定无消费队列名字---转移到目标队列---定好时间 - /// - /// - /// - /// - public void SendDelay(string targetExchangeName, string message, int delaySecond) - { - this.InitExchange(targetExchangeName); - - if (_CurrentConnection == null || !_CurrentConnection.IsOpen) - { - this.InitConnection(); - } - using (var channel = _CurrentConnection.CreateModel())//开辟新的信道通信 - { - try - { - string delayExchangeName = "ZhaoxiMSA_DelayExchange"; - - //普通交换器 - channel.ExchangeDeclare(delayExchangeName, "fanout", true, false, null); - //参数设置 - Dictionary args = new Dictionary(); - args.Add("x-message-ttl", delaySecond * 1000);//TTL 毫秒 - args.Add("x-dead-letter-exchange", targetExchangeName);//DLX - args.Add("x-dead-letter-routing-key", "routingkey");//routingKey - channel.QueueDeclare("ZhaoxiMSA_DelayQueue", true, false, false, args); - channel.QueueBind(queue: "ZhaoxiMSA_DelayQueue", - exchange: delayExchangeName, - routingKey: string.Empty, - arguments: null); - - ////DLX--- //死信队列绑定 - //channel.ExchangeDeclare("ZhaoxiMSA_exchange_dlx", "fanout", true, false, null); - //channel.QueueDeclare("ZhaoxiMSA_queue_dlx", true, false, false, null); - //channel.QueueBind("ZhaoxiMSA_queue_dlx", "ZhaoxiMSA_exchange_dlx", "routingkey", null); - - - channel.TxSelect();//开启Tx事务---RabbitMQ协议级的事务-----强事务 - var properties = channel.CreateBasicProperties(); - - var body = Encoding.UTF8.GetBytes(message); - channel.BasicPublish(exchange: delayExchangeName, - routingKey: string.Empty, - basicProperties: properties, - body: body); - channel.TxCommit();//提交 - Console.WriteLine($" [x] Sent {body.Length}"); - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - Console.WriteLine($"【{message}】发送到Broker失败!{ex.Message}"); - channel.TxRollback(); //事务回滚--前面的所有操作就全部作废了。。。。 - } - } - } - - #region Receive - /// - /// 注册处理动作 - /// - /// - /// - public void RegistReciveAction(RabbitMQConsumerModel rabbitMQConsumerMode, Func func) - { - this.InitBindQueue(rabbitMQConsumerMode); - - Task.Run(() => - { - using (var channel = _CurrentConnection.CreateModel()) - { - var consumer = new EventingBasicConsumer(channel); - channel.BasicQos(0, 0, true); - consumer.Received += (sender, ea) => - { - string str = Encoding.UTF8.GetString(ea.Body.ToArray()); - if (func(str)) - { - channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false);//确认已消费 - } - else - { - //channel.BasicReject(deliveryTag: ea.DeliveryTag, requeue: true);//放回队列--重新包装信息,放入其他队列 - } - }; - channel.BasicConsume(queue: rabbitMQConsumerMode.QueueName, - autoAck: false,//不ACK - consumer: consumer); - Console.WriteLine($" Register Consumer To {rabbitMQConsumerMode.ExchangeName}-{rabbitMQConsumerMode.QueueName}"); - //Console.ReadLine(); - Console.WriteLine($" After Register Consumer To {rabbitMQConsumerMode.ExchangeName}-{rabbitMQConsumerMode.QueueName}"); - } - }); - } - #endregion - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Core/SMS/AliyunSMSInvoker.cs b/Yi.Framework.Net6/Yi.Framework.Core/SMS/AliyunSMSInvoker.cs deleted file mode 100644 index eb5bcb4c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/SMS/AliyunSMSInvoker.cs +++ /dev/null @@ -1,46 +0,0 @@ -using Microsoft.Extensions.Options; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.IOCOptions; - -namespace Yi.Framework.Core.SMS -{ - public class AliyunSMSInvoker - { - private IOptionsMonitor _sMSOptions; - public AliyunSMSInvoker(IOptionsMonitor sMSOptions) - { - _sMSOptions = sMSOptions; - } - private static AlibabaCloud.SDK.Dysmsapi20170525.Client CreateClient(string accessKeyId, string accessKeySecret) - { - AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config - { - // 您的AccessKey ID - AccessKeyId = accessKeyId, - // 您的AccessKey Secret - AccessKeySecret = accessKeySecret, - }; - // 访问的域名 - config.Endpoint = "dysmsapi.aliyuncs.com"; - return new AlibabaCloud.SDK.Dysmsapi20170525.Client(config); - } - - public void SendCode(string code,string phone) - { - AlibabaCloud.SDK.Dysmsapi20170525.Client client = CreateClient(_sMSOptions.CurrentValue.ID, _sMSOptions.CurrentValue.Secret); - AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendSmsRequest = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest - { - PhoneNumbers = phone, - SignName = _sMSOptions.CurrentValue.Sign, - TemplateCode = _sMSOptions.CurrentValue.Template, - TemplateParam = "{\"code\":\""+ code + "\"}", - }; - // 复制代码运行请自行打印 API 的返回值 - client.SendSms(sendSmsRequest); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Core/ThumbnailSharpInvoer.cs b/Yi.Framework.Net6/Yi.Framework.Core/ThumbnailSharpInvoer.cs deleted file mode 100644 index 18c1ffa4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/ThumbnailSharpInvoer.cs +++ /dev/null @@ -1,410 +0,0 @@ -/*MIT License - -Copyright(c) 2017 Mirza Ghulam Rasyid - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -using System; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Drawing.Imaging; -using System.IO; -using System.Net.Http; -using System.Threading.Tasks; - -namespace Yi.Framework.Core -{ - /// - /// Image format to use when creating a thumbnail. - /// - public enum Format - { - Jpeg, - Bmp, - Png, - Gif, - Tiff - - } - /// - /// Thumbnail class that holds various methods to create an image thumbnail. - /// - public class ThumbnailSharpInvoer - { - private Bitmap CreateBitmapThumbnail(uint thumbnailSize, string imageFileLocation) - { - Bitmap bitmap = null; - Image image = null; - float actualHeight = default(float); - float actualWidth = default(float); - uint thumbnailHeight = default(uint); - uint thumbnailWidth = default(uint); - try - { - image = Image.FromFile(imageFileLocation); - } - catch - { - if (image != null) - image = null; - } - if (image != null) - { - actualHeight = image.Height; - actualWidth = image.Width; - if (actualHeight > actualWidth) - { - if ((uint)actualHeight <= thumbnailSize) - throw new Exception("Thumbnail size must be less than actual height (portrait image)"); - thumbnailHeight = thumbnailSize; - thumbnailWidth = (uint)((actualWidth / actualHeight) * thumbnailSize); - } - else if (actualWidth > actualHeight) - { - - if ((uint)actualWidth <= thumbnailSize) - throw new Exception("Thumbnail size must be less than actual width (landscape image)"); - thumbnailWidth = thumbnailSize; - thumbnailHeight = (uint)((actualHeight / actualWidth) * thumbnailSize); - } - else - { - if ((uint)actualWidth <= thumbnailSize) - throw new Exception("Thumbnail size must be less than image's size"); - thumbnailWidth = thumbnailSize; - thumbnailHeight = thumbnailSize; - } - try - { - - bitmap = new Bitmap((int)thumbnailWidth, (int)thumbnailHeight); - Graphics resizedImage = Graphics.FromImage(bitmap); - resizedImage.InterpolationMode = InterpolationMode.HighQualityBicubic; - resizedImage.CompositingQuality = CompositingQuality.HighQuality; - resizedImage.SmoothingMode = SmoothingMode.HighQuality; - resizedImage.DrawImage(image, 0, 0, thumbnailWidth, thumbnailHeight); - } - catch - { - if (bitmap != null) - bitmap = null; - } - } - return bitmap; - } - private Bitmap CreateBitmapThumbnail(uint thumbnailSize, Stream imageStream) - { - Bitmap bitmap = null; - Image image = null; - float actualHeight = default(float); - float actualWidth = default(float); - uint thumbnailHeight = default(uint); - uint thumbnailWidth = default(uint); - try - { - image = Image.FromStream(imageStream); - } - catch - { - if (image != null) - image = null; - } - if (image != null) - { - actualHeight = image.Height; - actualWidth = image.Width; - if (actualHeight > actualWidth) - { - if ((uint)actualHeight <= thumbnailSize) - throw new Exception("Thumbnail size must be less than actual height (portrait image)"); - thumbnailHeight = thumbnailSize; - thumbnailWidth = (uint)((actualWidth / actualHeight) * thumbnailSize); - } - else if (actualWidth > actualHeight) - { - - if ((uint)actualWidth <= thumbnailSize) - throw new Exception("Thumbnail size must be less than actual width (landscape image)"); - thumbnailWidth = thumbnailSize; - thumbnailHeight = (uint)((actualHeight / actualWidth) * thumbnailSize); - } - else - { - if ((uint)actualWidth <= thumbnailSize) - throw new Exception("Thumbnail size must be less than image's size"); - thumbnailWidth = thumbnailSize; - thumbnailHeight = thumbnailSize; - } - try - { - bitmap = new Bitmap((int)thumbnailWidth, (int)thumbnailHeight); - Graphics resizedImage = Graphics.FromImage(bitmap); - resizedImage.InterpolationMode = InterpolationMode.HighQualityBicubic; - resizedImage.CompositingQuality = CompositingQuality.HighQuality; - resizedImage.SmoothingMode = SmoothingMode.HighQuality; - resizedImage.DrawImage(image, 0, 0, thumbnailWidth, thumbnailHeight); - } - catch - { - if (bitmap != null) - bitmap = null; - } - } - return bitmap; - } - private ImageFormat GetImageFormat(Format format) - { - switch (format) - { - case Format.Jpeg: - return ImageFormat.Jpeg; - case Format.Bmp: - return ImageFormat.Bmp; - case Format.Png: - return ImageFormat.Png; - case Format.Gif: - return ImageFormat.Gif; - default: - return ImageFormat.Tiff; - } - } - private async Task GetImageStreamFromUrl(Uri urlAddress) - { - Stream result = null; - try - { - byte[] bytes = await GetImageBytesFromUrl(urlAddress); - result = new MemoryStream(bytes); - } - catch - { - result = null; - } - return result; - } - private async Task GetImageBytesFromUrl(Uri urlAddress) - { - byte[] buffer = null; - try - { - using (HttpClient client = new HttpClient()) - { - buffer = await client.GetByteArrayAsync(urlAddress); - } - } - catch - { - buffer = null; - } - return buffer; - } - - /// - /// Create a thumbnail from file and returns as stream. - /// - /// Thumbnail size. For portrait image, thumbnail size must be less than its height. - /// For landscape image, thumbnail size must be less than its width. For the same size image (Proportional), thumbnail size must be less than its width and height. - /// Correct image file location. - /// Image format to use. - /// A thumbnail image as stream. Returns null if it fails. - /// 'imageFileLocation' is null. - /// 'imageFileLocation' does not exist. - public Stream CreateThumbnailStream(uint thumbnailSize, string imageFileLocation, Format imageFormat) - { - if (String.IsNullOrEmpty(imageFileLocation)) - throw new ArgumentNullException(nameof(imageFileLocation), "'imageFileLocation' cannot be null"); - if (!File.Exists(imageFileLocation)) - throw new FileNotFoundException($"'{imageFileLocation}' cannot be found"); - Bitmap bitmap = CreateBitmapThumbnail(thumbnailSize, imageFileLocation); - if (bitmap != null) - { - MemoryStream stream = new MemoryStream(); - bitmap.Save(stream, GetImageFormat(imageFormat)); - stream.Position = 0; - return stream; - } - return null; - } - /// - /// Create a thumbnail from image stream and returns as stream. - /// - /// Thumbnail size. For portrait image, thumbnail size must be less than its height. - /// For landscape image, thumbnail size must be less than its width. For the same size image (Proportional), thumbnail size must be less than its width and height. - /// Valid image stream object. - /// Image format to use. - /// A thumbnail image as stream. Returns null if it fails. - /// 'imageStream' is null. - public Stream CreateThumbnailStream(uint thumbnailSize, Stream imageStream, Format imageFormat) - { - if (imageStream == null) - throw new ArgumentNullException(nameof(imageStream), "'imageStream' cannot be null"); - Bitmap bitmap = CreateBitmapThumbnail(thumbnailSize, imageStream); - if (bitmap != null) - { - MemoryStream stream = new MemoryStream(); - bitmap.Save(stream, GetImageFormat(imageFormat)); - stream.Position = 0; - return stream; - } - return null; - } - /// - /// Create a thumbnail from image in bytes and returns as stream. - /// - /// Thumbnail size. For portrait image, thumbnail size must be less than its height. - /// For landscape image, thumbnail size must be less than its width. For the same size image (Proportional), thumbnail size must be less than its width and height. - /// Valid image bytes array. - /// Image format to use. - /// A thumbnail image as stream. Returns null if it fails. - /// 'imageBytes' is null. - public Stream CreateThumbnailStream(uint thumbnailSize, byte[] imageBytes, Format imageFormat) - { - if (imageBytes == null) - throw new ArgumentNullException(nameof(imageBytes), "'imageStream' cannot be null"); - Bitmap bitmap = CreateBitmapThumbnail(thumbnailSize, new MemoryStream(imageBytes)); - if (bitmap != null) - { - MemoryStream stream = new MemoryStream(); - bitmap.Save(stream, GetImageFormat(imageFormat)); - stream.Position = 0; - return stream; - } - return null; - } - /// - /// Create a thumbnail from file and returns as bytes. - /// - /// Thumbnail size. For portrait image, thumbnail size must be less than its height. - /// For landscape image, thumbnail size must be less than its width. For the same size image (Proportional), thumbnail size must be less than its width and height. - /// Correct image file location. - /// Image format to use. - /// A thumbnail image as bytes. Returns null if it fails. - /// 'imageFileLocation' is null. - /// 'imageFileLocation' does not exist. - public byte[] CreateThumbnailBytes(uint thumbnailSize, string imageFileLocation, Format imageFormat) - { - if (String.IsNullOrEmpty(imageFileLocation)) - throw new ArgumentNullException(nameof(imageFileLocation), "'imageFileLocation' cannot be null"); - if (!File.Exists(imageFileLocation)) - throw new FileNotFoundException($"'{imageFileLocation}' cannot be found"); - Stream stream = CreateThumbnailStream(thumbnailSize, imageFileLocation, imageFormat); - if (stream != null) - { - byte[] streamBytes = new byte[stream.Length]; - stream.Read(streamBytes, 0, streamBytes.Length); - return streamBytes; - } - return null; - } - /// - /// Create a thumbnail from image stream and returns as bytes. - /// - /// Thumbnail size. For portrait image, thumbnail size must be less than its height. - /// For landscape image, thumbnail size must be less than its width. For the same size image (Proportional), thumbnail size must be less than its width and height. - /// Valid image stream object. - /// Image format to use. - /// A thumbnail image as bytes. Returns null if it fails. - /// 'imageStream' is null. - public byte[] CreateThumbnailBytes(uint thumbnailSize, Stream imageStream, Format imageFormat) - { - if (imageStream == null) - throw new ArgumentNullException(nameof(imageStream), "'imageStream' cannot be null"); - - Stream stream = CreateThumbnailStream(thumbnailSize, imageStream, imageFormat); - if (stream != null) - { - byte[] streamBytes = new byte[stream.Length]; - stream.Read(streamBytes, 0, streamBytes.Length); - return streamBytes; - } - return null; - } - /// - /// Create a thumbnail from image in bytes and returns as bytes. - /// - /// Thumbnail size. For portrait image, thumbnail size must be less than its height. - /// For landscape image, thumbnail size must be less than its width. For the same size image (Proportional), thumbnail size must be less than its width and height. - /// Valid image bytes array. - /// Image format to use. - /// A thumbnail image as bytes. Returns null if it fails. - /// 'imageBytes' is null. - public byte[] CreateThumbnailBytes(uint thumbnailSize, byte[] imageBytes, Format imageFormat) - { - if (imageBytes == null) - throw new ArgumentNullException(nameof(imageBytes), "'imageStream' cannot be null"); - Stream stream = CreateThumbnailStream(thumbnailSize, imageBytes, imageFormat); - if (stream != null) - { - byte[] streamBytes = new byte[stream.Length]; - stream.Read(streamBytes, 0, streamBytes.Length); - return streamBytes; - } - return null; - } - - - /// - /// Create a thumbnail from valid image url asynchronously. - /// - /// Thumbnail size. For portrait image, thumbnail size must be less than its height. - /// For landscape image, thumbnail size must be less than its width. For the same size image (Proportional), thumbnail size must be less than its width and height. - /// Valid absolute url address with proper scheme. - /// Image format to use. - /// A thumbnail image as stream. Returns null if it fails. - /// 'urlAddress' is null. - public async Task CreateThumbnailStreamAsync(uint thumbnailSize, Uri urlAddress, Format imageFormat) - { - if (urlAddress == null) - throw new ArgumentNullException(nameof(urlAddress), "'urlAddress' cannot be null"); - Stream result = null; - Stream stream = await GetImageStreamFromUrl(urlAddress); - if (stream != null) - { - result = CreateThumbnailStream(thumbnailSize, stream, imageFormat); - } - return result; - } - - /// - /// Create a thumbnail from valid image url asynchronously. - /// - /// Thumbnail size. For portrait image, thumbnail size must be less than its height. - /// For landscape image, thumbnail size must be less than its width. For the same size image (Proportional), thumbnail size must be less than its width and height. - /// Valid absolute url address with proper scheme. - /// Image format to use. - /// A thumbnail image as bytes. Returns null if it fails. - /// 'urlAddress' is null. - public async Task CreateThumbnailBytesAsync(uint thumbnailSize, Uri urlAddress, Format imageFormat) - { - if (urlAddress == null) - throw new ArgumentNullException(nameof(urlAddress), "'urlAddress' cannot be null"); - byte[] result = null; - byte[] imageBytes = await GetImageBytesFromUrl(urlAddress); - if (imageBytes != null) - { - result = CreateThumbnailBytes(thumbnailSize, imageBytes, imageFormat); - } - return result; - } - - - - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Core/Yi.Framework.Core.csproj b/Yi.Framework.Net6/Yi.Framework.Core/Yi.Framework.Core.csproj deleted file mode 100644 index a28444ff..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Core/Yi.Framework.Core.csproj +++ /dev/null @@ -1,31 +0,0 @@ - - - - net6.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/GiveRoleSetMenuDto.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/GiveRoleSetMenuDto.cs deleted file mode 100644 index cebd105b..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/GiveRoleSetMenuDto.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.Base.Dto -{ - public class GiveRoleSetMenuDto - { - public List? RoleIds { get; set; } - public List? MenuIds { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/GiveUserSetRoleDto.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/GiveUserSetRoleDto.cs deleted file mode 100644 index 07b2f243..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/GiveUserSetRoleDto.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.Base.Dto -{ - public class GiveUserSetRoleDto - { - public List? UserIds { get; set; } - public List? RoleIds { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/LoginDto.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/LoginDto.cs deleted file mode 100644 index 3563756f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/LoginDto.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.Base.Dto -{ - public class LoginDto - { - public string UserName { get; set; }=string.Empty; - public string Password { get; set; } = string.Empty; - - public string? Uuid { get; set; } - - public string? Code { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/RegisterDto.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/RegisterDto.cs deleted file mode 100644 index af6091c3..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/RegisterDto.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.Base.Dto -{ - public class RegisterDto - { - public string UserName { get; set; } = string.Empty; - public string Password { get; set; } = string.Empty; - - public string Name { get; set; } = string.Empty; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/RoleInfoDto.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/RoleInfoDto.cs deleted file mode 100644 index f5538682..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/RoleInfoDto.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.DtoModel.Base.Dto -{ - public class RoleInfoDto - { - public RoleEntity Role { get; set; }=new (); - public List DeptIds { get; set; } = new (); - public List MenuIds { get; set; } = new (); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/UpdatePasswordDto.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/UpdatePasswordDto.cs deleted file mode 100644 index 267e4e80..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/UpdatePasswordDto.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.Base.Dto -{ - public class UpdatePasswordDto - { - public string NewPassword { get; set; }=string.Empty; - public string OldPassword { get; set; } = string.Empty; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/UserInfoDto.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/UserInfoDto.cs deleted file mode 100644 index 39f2f142..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/UserInfoDto.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.DtoModel.Base.Dto -{ - public class UserInfoDto - { - public UserEntity? User { get; set; } - public List? RoleIds { get; set; } - public List? PostIds { get; set; } - public long? DeptId { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/UserRoleMenuDto.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/UserRoleMenuDto.cs deleted file mode 100644 index f86b3365..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Dto/UserRoleMenuDto.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.DtoModel.Base.Dto -{ - public class UserRoleMenuDto - { - public UserEntity User { get; set; } = new(); - public HashSet Roles { get; set; } = new(); - public HashSet Menus { get; set; } = new(); - - public List RoleCodes { get; set; } = new(); - public List PermissionCodes { get; set; } = new(); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Vo/ArticleVo.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Vo/ArticleVo.cs deleted file mode 100644 index 8a80c75d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Vo/ArticleVo.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.Base.Vo -{ - public class ArticleVo - { - public long Id { get; set; } - - public string Title { get; set; } = string.Empty; - - public string Content { get; set; } = string.Empty; - - public long? UserId { get; set; } - - public long? CreateUser { get; set; } - - public DateTime? CreateTime { get; set; } - - public long? ModifyUser { get; set; } - - public DateTime? ModifyTime { get; set; } - - public bool? IsDeleted { get; set; } - - public long? TenantId { get; set; } - - public int? OrderNum { get; set; } - - public string? Remark { get; set; } - public List? Images { get; set; } - - public int? AgreeNum { get; set; } - public UserVo? User { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Vo/CommentVo.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Vo/CommentVo.cs deleted file mode 100644 index d29bb651..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Vo/CommentVo.cs +++ /dev/null @@ -1,61 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.Base.Vo -{ - public class CommentVo - { - public long Id { get; set; } - - /// - /// 评论内容 - /// - public string Content { get; set; }=string.Empty; - /// - /// 点赞数 - /// - public int? AgreeNum { get; set; } - - /// - /// 创建时间 - /// - public DateTime? CreateTime { get; set; } - /// - /// 是否删除 - /// - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - - public int? OrderNum { get; set; } - /// - /// 描述 - /// - - public string? Remark { get; set; } - /// - /// 子评论数 - /// - - public int? CommentNum { get; set; } - - /// - /// 被回复的用户信息 - /// - public UserVo? UserInfo { get; set; } - - /// - /// 创建评论的用户信息 - /// - public UserVo? CreateUserInfo { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Vo/UserVo.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Vo/UserVo.cs deleted file mode 100644 index bee6b72e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/Base/Vo/UserVo.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.Base.Vo -{ - /// - /// 前端只需要这些数据即可 - /// - public class UserVo - { - public string? Name { get; set; } - - public int? Age { get; set; } - - public string? UserName { get; set; } - - public string? Icon { get; set; } - - public string? Nick { get; set; } - - //public string Email { get; set; } - - //public string Ip { get; set; } - - - //public string Address { get; set; } - - //public string Phone { get; set; } - - public string? Introduction { get; set; } - - public int? Sex { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/ConstConfig/MaterialConst.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/ConstConfig/MaterialConst.cs deleted file mode 100644 index 2abffb7e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/ConstConfig/MaterialConst.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.ERP.Material.ConstConfig -{ - public class MaterialConst - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MapperConfig/MaterialProfile.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MapperConfig/MaterialProfile.cs deleted file mode 100644 index d4dd3b97..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MapperConfig/MaterialProfile.cs +++ /dev/null @@ -1,20 +0,0 @@ -using AutoMapper; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.ERP.Entitys; - -namespace Yi.Framework.DtoModel.ERP.Material.MapperConfig -{ - public class SuppliERProfile:Profile - { - public SuppliERProfile() - { - CreateMap(); - CreateMap(); - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialCreateUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialCreateUpdateInput.cs deleted file mode 100644 index 24ad8348..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialCreateUpdateInput.cs +++ /dev/null @@ -1,18 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.Material -{ - public class MaterialCreateUpdateInput : EntityDto - { - public string Code { get; set; }=string.Empty; - public string Name { get; set; }=string.Empty; - public string UnitName { get; set; }=string.Empty; - public string? Remarks { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialGetListInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialGetListInput.cs deleted file mode 100644 index deba3ca4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialGetListInput.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.Material -{ - public class MaterialGetListInput - { - public string Code { get; set; }=string.Empty; - public string Name { get; set; }=string.Empty; - public string UnitName { get; set; }=string.Empty; - public string? Remarks { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialGetListOutput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialGetListOutput.cs deleted file mode 100644 index b5baa527..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Material/MaterialGetListOutput.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.Material -{ - public class MaterialGetListOutput: EntityDto - { - public string Code { get; set; }=string.Empty; - public string Name { get; set; }=string.Empty; - public string UnitName { get; set; }=string.Empty; - public string? Remarks { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/MapperConfig/PurchaseProfile.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/MapperConfig/PurchaseProfile.cs deleted file mode 100644 index a7a21a12..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/MapperConfig/PurchaseProfile.cs +++ /dev/null @@ -1,20 +0,0 @@ -using AutoMapper; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.ERP.Entitys; - -namespace Yi.Framework.DtoModel.ERP.Purchase.MapperConfig -{ - public class SuppliERProfile:Profile - { - public SuppliERProfile() - { - CreateMap(); - CreateMap(); - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseGetListOutput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseGetListOutput.cs deleted file mode 100644 index f7ecdfdf..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/PurchaseGetListOutput.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; -using Yi.Framework.Model.ERP.Entitys; - -namespace Yi.Framework.DtoModel.ERP.Purchase -{ - public class PurchaseGetListOutput: EntityDto - { - public string Code { get; set; } = string.Empty; - public DateTime NeedTime { get; set; } - public string Buyer { get; set; } = string.Empty; - public long TotalMoney { get; set; } - public long PaidMoney { get; set; } - public PurchaseStateEnum PurchaseState { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/ConstConfig/PurchaseDetailsConst.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/ConstConfig/PurchaseDetailsConst.cs deleted file mode 100644 index b8087c84..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/ConstConfig/PurchaseDetailsConst.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.ERP.PurchaseDetails.ConstConfig -{ - public class PurchaseDetailsConst - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/MapperConfig/PurchaseDetailsProfile.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/MapperConfig/PurchaseDetailsProfile.cs deleted file mode 100644 index 488b267c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/MapperConfig/PurchaseDetailsProfile.cs +++ /dev/null @@ -1,20 +0,0 @@ -using AutoMapper; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.ERP.Entitys; - -namespace Yi.Framework.DtoModel.ERP.PurchaseDetails.MapperConfig -{ - public class SuppliERProfile:Profile - { - public SuppliERProfile() - { - CreateMap(); - CreateMap(); - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/PurchaseDetailsCreateUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/PurchaseDetailsCreateUpdateInput.cs deleted file mode 100644 index c81d02dc..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/PurchaseDetailsCreateUpdateInput.cs +++ /dev/null @@ -1,20 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.PurchaseDetails -{ - public class PurchaseDetailsCreateUpdateInput : EntityDto - { - public string MaterialName { get; set; }=string.Empty; - public string MaterialUnit { get; set; }=string.Empty ; - public float UnitPrice { get; set; } - public long TotalNumber { get; set; } - public long CompleteNumber { get; set; } - public string? Remarks { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/PurchaseDetailsGetListInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/PurchaseDetailsGetListInput.cs deleted file mode 100644 index 0b2a7b6d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/PurchaseDetailsGetListInput.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.PurchaseDetails -{ - public class PurchaseDetailsGetListInput - { - public string MaterialName { get; set; }=string.Empty; - public string MaterialUnit { get; set; }=string.Empty ; - public float UnitPrice { get; set; } - public long TotalNumber { get; set; } - public long CompleteNumber { get; set; } - public string? Remarks { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/PurchaseDetailsGetListOutput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/PurchaseDetailsGetListOutput.cs deleted file mode 100644 index 8fc101ba..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/PurchaseDetails/PurchaseDetailsGetListOutput.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.PurchaseDetails -{ - public class PurchaseDetailsGetListOutput: EntityDto - { - public string MaterialName { get; set; }=string.Empty; - public string MaterialUnit { get; set; }=string.Empty ; - public float UnitPrice { get; set; } - public long TotalNumber { get; set; } - public long CompleteNumber { get; set; } - public string? Remarks { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/SupplierGetListInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/SupplierGetListInput.cs deleted file mode 100644 index a7d7bbaa..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Supplier/SupplierGetListInput.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.Supplier -{ - public class SupplierGetListInput - { - public string Code { get; set; } = string.Empty; - public string Name { get; set; }= string.Empty; - public string? Address { get; set; } - public long? Phone { get; set; } - public string? Fax { get; set; } - public string? Email { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/ConstConfig/UnitConst.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/ConstConfig/UnitConst.cs deleted file mode 100644 index f322d640..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/ConstConfig/UnitConst.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.ERP.Unit.ConstConfig -{ - public class UnitConst - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/MapperConfig/UnitProfile.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/MapperConfig/UnitProfile.cs deleted file mode 100644 index d4c74ff8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/MapperConfig/UnitProfile.cs +++ /dev/null @@ -1,20 +0,0 @@ -using AutoMapper; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.ERP.Entitys; - -namespace Yi.Framework.DtoModel.ERP.Unit.MapperConfig -{ - public class SuppliERProfile:Profile - { - public SuppliERProfile() - { - CreateMap(); - CreateMap(); - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitCreateUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitCreateUpdateInput.cs deleted file mode 100644 index ac91855c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitCreateUpdateInput.cs +++ /dev/null @@ -1,17 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.Unit -{ - public class UnitCreateUpdateInput : EntityDto - { - public string Code { get; set; }=string.Empty; - public string Name { get; set; }=string.Empty; - public string? Remarks { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitGetListInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitGetListInput.cs deleted file mode 100644 index 577f47c8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitGetListInput.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.Unit -{ - public class UnitGetListInput - { - public string Code { get; set; }=string.Empty; - public string Name { get; set; }=string.Empty; - public string? Remarks { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitGetListOutput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitGetListOutput.cs deleted file mode 100644 index ee9a58d6..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Unit/UnitGetListOutput.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.Unit -{ - public class UnitGetListOutput: EntityDto - { - public string Code { get; set; }=string.Empty; - public string Name { get; set; }=string.Empty; - public string? Remarks { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/ConstConfig/WarehouseConst.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/ConstConfig/WarehouseConst.cs deleted file mode 100644 index de97cf03..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/ConstConfig/WarehouseConst.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.ERP.Warehouse.ConstConfig -{ - public class WarehouseConst - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/MapperConfig/WarehouseProfile.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/MapperConfig/WarehouseProfile.cs deleted file mode 100644 index c282a68e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/MapperConfig/WarehouseProfile.cs +++ /dev/null @@ -1,20 +0,0 @@ -using AutoMapper; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.ERP.Entitys; - -namespace Yi.Framework.DtoModel.ERP.Warehouse.MapperConfig -{ - public class SuppliERProfile:Profile - { - public SuppliERProfile() - { - CreateMap(); - CreateMap(); - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseCreateUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseCreateUpdateInput.cs deleted file mode 100644 index 5d38fee9..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseCreateUpdateInput.cs +++ /dev/null @@ -1,19 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Enum; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.Warehouse -{ - public class WarehouseCreateUpdateInput : EntityDto - { - public string Code { get; set; }=string.Empty; - public string Name { get; set; }=string.Empty ; - public string? Remarks { get; set; } - public StateEnum State { get; set; } = StateEnum.Normal; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseGetListInput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseGetListInput.cs deleted file mode 100644 index 982e4b3c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseGetListInput.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Enum; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.Warehouse -{ - public class WarehouseGetListInput - { - public string Code { get; set; }=string.Empty; - public string Name { get; set; }=string.Empty ; - public string? Remarks { get; set; } - public StateEnum State { get; set; } = StateEnum.Normal; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseGetListOutput.cs b/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseGetListOutput.cs deleted file mode 100644 index 0aac115e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Warehouse/WarehouseGetListOutput.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Enum; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.Warehouse -{ - public class WarehouseGetListOutput: EntityDto - { - public string Code { get; set; }=string.Empty; - public string Name { get; set; }=string.Empty ; - public string? Remarks { get; set; } - public StateEnum State { get; set; } = StateEnum.Normal; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/Yi.Framework.DTOModel.csproj b/Yi.Framework.Net6/Yi.Framework.DTOModel/Yi.Framework.DTOModel.csproj deleted file mode 100644 index 52794c21..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/Yi.Framework.DTOModel.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - net6.0 - enable - - - - - - - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseCreateInput.cs b/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseCreateInput.cs deleted file mode 100644 index 8317359a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseCreateInput.cs +++ /dev/null @@ -1,21 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.DtoModel.ERP.PurchaseDetails; -using Yi.Framework.Model.Base; -using Yi.Framework.Model.ERP.Entitys; - -namespace Yi.Framework.DtoModel.ERP.Purchase -{ - public class PurchaseCreateInput - { - public string Code { get; set; } = string.Empty; - public DateTime? NeedTime { get; set; } - public string Buyer { get; set; } = string.Empty; - - public List? PurchaseDetails { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseGetListInput.cs b/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseGetListInput.cs deleted file mode 100644 index f67afb2e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseGetListInput.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; -using Yi.Framework.Model.ERP.Entitys; - -namespace Yi.Framework.DtoModel.ERP.Purchase -{ - public class PurchaseGetListInput - { - public string? Code { get; set; } - public DateTime? NeedTime { get; set; } - public string? Buyer { get; set; } - public PurchaseStateEnum? PurchaseState { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseUpdateInput.cs deleted file mode 100644 index 88f05610..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Purchase/PurchaseUpdateInput.cs +++ /dev/null @@ -1,21 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; -using Yi.Framework.Model.ERP.Entitys; - -namespace Yi.Framework.DtoModel.ERP.Purchase -{ - public class PurchaseUpdateInput : EntityDto - { - public string? Code { get; set; } - public DateTime NeedTime { get; set; } - public string? Buyer { get; set; } - public long TotalMoney { get; set; } - public long PaidMoney { get; set; } - public PurchaseStateEnum PurchaseState { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Supplier/ConstConfig/SupplierConst.cs b/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Supplier/ConstConfig/SupplierConst.cs deleted file mode 100644 index a923042a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Supplier/ConstConfig/SupplierConst.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.ERP.Supplier.ConstConfig -{ - public class SupplierConst - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Supplier/MapperConfig/SupplierProfile.cs b/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Supplier/MapperConfig/SupplierProfile.cs deleted file mode 100644 index decb6804..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Supplier/MapperConfig/SupplierProfile.cs +++ /dev/null @@ -1,20 +0,0 @@ -using AutoMapper; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.ERP.Entitys; - -namespace Yi.Framework.DtoModel.ERP.Supplier.MapperConfig -{ - public class SupplierProfile:Profile - { - public SupplierProfile() - { - CreateMap(); - CreateMap(); - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Supplier/SupplierCreateUpdateInput.cs b/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Supplier/SupplierCreateUpdateInput.cs deleted file mode 100644 index 440bfa7f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Supplier/SupplierCreateUpdateInput.cs +++ /dev/null @@ -1,20 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.Supplier -{ - public class SupplierCreateUpdateInput : EntityDto - { - public string Code { get; set; } = string.Empty; - public string Name { get; set; }= string.Empty; - public string? Address { get; set; } - public long? Phone { get; set; } - public string? Fax { get; set; } - public string? Email { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Supplier/SupplierGetListOutput.cs b/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Supplier/SupplierGetListOutput.cs deleted file mode 100644 index 188373e7..00000000 --- a/Yi.Framework.Net6/Yi.Framework.DtoModel/ERP/Supplier/SupplierGetListOutput.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.ERP.Supplier -{ - public class SupplierGetListOutput: EntityDto - { - public string Code { get; set; } = string.Empty; - public string Name { get; set; }= string.Empty; - public string? Address { get; set; } - public long? Phone { get; set; } - public string? Fax { get; set; } - public string? Email { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/BBS/IAgreeService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/BBS/IAgreeService.cs deleted file mode 100644 index 23f34823..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/BBS/IAgreeService.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.BBS.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.BBS -{ - public partial interface IAgreeService : IBaseService - { - Task OperateAsync(long articleOrCommentId, long userId); - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/BBS/IArticleService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/BBS/IArticleService.cs deleted file mode 100644 index ade0e8f8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/BBS/IArticleService.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.BBS.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.BBS -{ - public partial interface IArticleService:IBaseService - { - Task>> SelctPageList(ArticleEntity eneity, PageParModel page); - } - -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/BBS/ICommentService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/BBS/ICommentService.cs deleted file mode 100644 index e822ffff..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/BBS/ICommentService.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Threading.Tasks; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.BBS.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.BBS -{ - public partial interface ICommentService:IBaseService - { - Task AddAsync(CommentEntity comment); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/IApplicationService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/IApplicationService.cs deleted file mode 100644 index 510ea025..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/IApplicationService.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Interface.Base.Crud -{ - public interface IApplicationService - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/ICreateAppService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/ICreateAppService.cs deleted file mode 100644 index 3f1c80dc..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/ICreateAppService.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Interface.Base.Crud -{ - public interface ICreateAppService: ICreateAppService - { - - } - - - public interface ICreateAppService : IApplicationService - { - Task CreateAsync(TCreateInputDto dto); - - Task CreateAsync(IEnumerable dtos); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/ICreateUpdateAppService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/ICreateUpdateAppService.cs deleted file mode 100644 index 67e89268..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/ICreateUpdateAppService.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Interface.Base.Crud -{ - public interface ICreateUpdateAppService - : ICreateUpdateAppService - { - - } - - public interface ICreateUpdateAppService - : ICreateUpdateAppService - { - - } - - public interface ICreateUpdateAppService - : ICreateAppService, - IUpdateAppService - { - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/ICrudAppService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/ICrudAppService.cs deleted file mode 100644 index a32fb218..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/ICrudAppService.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Interface.Base.Crud -{ - public interface ICrudAppService - : ICrudAppService - { - - } - - public interface ICrudAppService - : ICrudAppService - { - - } - - public interface ICrudAppService - : ICrudAppService - { - - } - - public interface ICrudAppService - : IReadOnlyAppService, - ICreateUpdateAppService, - IDeleteAppService - { - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/IDeleteAppService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/IDeleteAppService.cs deleted file mode 100644 index 2db68eb6..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/IDeleteAppService.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Interface.Base.Crud -{ - public interface IDeleteAppService : IApplicationService - { - Task DeleteAsync(IEnumerable ids); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/IReadOnlyAppService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/IReadOnlyAppService.cs deleted file mode 100644 index b6aa1461..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/IReadOnlyAppService.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Linq.Expressions; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Interface.Base.Crud -{ - - public interface IReadOnlyAppService : IReadOnlyAppService - { - } - - public interface IReadOnlyAppService : IApplicationService - { - /// - /// 根据Id获取数据 - /// - /// - /// - Task GetByIdAsync(TKey id); - - /// - /// 获取全部 - /// - /// - Task> GetListAsync(); - - /// - /// 根据url参数查询 - /// - /// - /// - //Task> GetByUrl(List input = null); - } - -} - diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/IUpdateAppService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/IUpdateAppService.cs deleted file mode 100644 index f1c943e1..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/Base/Crud/IUpdateAppService.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Interface.Base.Crud -{ - public interface IUpdateAppService - : IUpdateAppService - { - - } - public interface IUpdateAppService : IApplicationService - { - Task UpdateAsync(TKey id, TUpdateInputDto dto); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/Base/IBaseService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/Base/IBaseService.cs deleted file mode 100644 index c7a5cab5..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/Base/IBaseService.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.Base -{ - public interface IBaseService where T : class, new() - { - public IRepository _repository { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IMaterialService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IMaterialService.cs deleted file mode 100644 index db55544e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IMaterialService.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Material; -using Yi.Framework.Interface.Base.Crud; - -namespace Yi.Framework.Interface.ERP -{ - public interface IMaterialService : ICrudAppService - { - Task>> PageListAsync(MaterialCreateUpdateInput input, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IPurchaseDetailsService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IPurchaseDetailsService.cs deleted file mode 100644 index d0ef37a7..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IPurchaseDetailsService.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.PurchaseDetails; -using Yi.Framework.Interface.Base.Crud; - -namespace Yi.Framework.Interface.ERP -{ - public interface IPurchaseDetailsService : ICrudAppService - { - Task>> PageListAsync(PurchaseDetailsCreateUpdateInput input, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IPurchaseService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IPurchaseService.cs deleted file mode 100644 index 008898d6..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IPurchaseService.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Purchase; -using Yi.Framework.Interface.Base.Crud; - -namespace Yi.Framework.Interface.ERP -{ - public interface IPurchaseService : ICrudAppService - { - Task>> PageListAsync(PurchaseGetListInput input, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/ISupplierService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/ISupplierService.cs deleted file mode 100644 index a9a62ebd..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/ISupplierService.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Supplier; -using Yi.Framework.Interface.Base.Crud; - -namespace Yi.Framework.Interface.ERP -{ - public interface ISupplierService : ICrudAppService - { - Task>> PageListAsync(SupplierCreateUpdateInput input, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IUnitService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IUnitService.cs deleted file mode 100644 index 5293cef4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IUnitService.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Unit; -using Yi.Framework.Interface.Base.Crud; - -namespace Yi.Framework.Interface.ERP -{ - public interface IUnitService : ICrudAppService - { - Task>> PageListAsync(UnitCreateUpdateInput input, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IWarehouseService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IWarehouseService.cs deleted file mode 100644 index 95365e6b..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/ERP/IWarehouseService.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Warehouse; -using Yi.Framework.Interface.Base.Crud; - -namespace Yi.Framework.Interface.ERP -{ - public interface IWarehouseService : ICrudAppService - { - Task>> PageListAsync(WarehouseCreateUpdateInput input, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IConfigService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IConfigService.cs deleted file mode 100644 index d5ef2a2a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IConfigService.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IConfigService:IBaseService - { - Task>> SelctPageList(ConfigEntity config, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IDeptService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IDeptService.cs deleted file mode 100644 index 34bd8c84..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IDeptService.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IDeptService:IBaseService - { - /// - /// 动态条件查询 - /// - /// - /// - Task> SelctGetList(DeptEntity dept); - - - /// - /// 根据角色id获取该角色的部门权限 - /// - /// - /// - Task> GetListByRoleId(long roleId); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IDictionaryInfoService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IDictionaryInfoService.cs deleted file mode 100644 index 38acce88..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IDictionaryInfoService.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IDictionaryInfoService:IBaseService - { - Task>> SelctPageList(DictionaryInfoEntity dicInfo, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IDictionaryService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IDictionaryService.cs deleted file mode 100644 index 88808e4c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IDictionaryService.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IDictionaryService:IBaseService - { - /// - /// 动态条件分页查询 - /// - /// - /// - /// - Task>> SelctPageList(DictionaryEntity dic, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IFileService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IFileService.cs deleted file mode 100644 index 1a4f7389..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IFileService.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IFileService : IBaseService - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/ILogService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/ILogService.cs deleted file mode 100644 index 691da556..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/ILogService.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface ILogService:IBaseService - { - Task> AddListTest(List logEntities); - Task> GetListTest(); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/ILoginLogService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/ILoginLogService.cs deleted file mode 100644 index ea903b91..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/ILoginLogService.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface ILoginLogService : IBaseService - { - Task>> SelctPageList(LoginLogEntity loginLog, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IMenuService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IMenuService.cs deleted file mode 100644 index ef35fc19..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IMenuService.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IMenuService:IBaseService - { - Task> GetMenuTreeAsync(); - Task> SelctGetList(MenuEntity menu); - - /// - /// 获取该角色id下的所有菜单 - /// - /// - /// - Task> GetListByRoleId(long roleId); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IOperationLogService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IOperationLogService.cs deleted file mode 100644 index 95c53a39..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IOperationLogService.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IOperationLogService : IBaseService - { - Task>> SelctPageList(OperationLogEntity operationLog, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IPostService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IPostService.cs deleted file mode 100644 index cc8dbd79..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IPostService.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IPostService:IBaseService - { - /// - /// 动态条件分页查询 - /// - /// - /// - /// - Task>> SelctPageList(PostEntity post, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IRoleDeptService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IRoleDeptService.cs deleted file mode 100644 index 9e3d8079..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IRoleDeptService.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IRoleDeptService : IBaseService - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IRoleMenuService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IRoleMenuService.cs deleted file mode 100644 index f6a896c4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IRoleMenuService.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IRoleMenuService : IBaseService - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IRoleService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IRoleService.cs deleted file mode 100644 index f1c05ff0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IRoleService.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.Base.Dto; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IRoleService:IBaseService - { - /// - /// DbTest - /// - /// - Task> DbTest(); - - - - /// - /// 通过角色id获取角色实体包含菜单 - /// - /// - /// - Task GetInMenuByRoleId(long roleId); - - /// - /// 给角色设置菜单,多角色,多菜单 - /// - /// - /// - /// - Task GiveRoleSetMenu(List roleIds, List menuIds); - - /// - /// 动态条件分页查询 - /// - /// - /// - /// - Task>> SelctPageList(RoleEntity role, PageParModel page); - - /// - /// 添加角色关联菜单 - /// - /// - /// - Task AddInfo(RoleInfoDto roleDto); - - - /// - /// 更新角色关联菜单 - /// - /// - /// - Task UpdateInfo(RoleInfoDto roleDto); - - /// - /// 给角色设置部门 - /// - /// - /// - /// - Task GiveRoleSetDept(List roleIds, List deptIds); - - /// - /// 更新角色数据权限 - /// - /// - /// - Task UpdateDataScpoce(RoleInfoDto roleDto); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/ITenantService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/ITenantService.cs deleted file mode 100644 index 1972e2f2..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/ITenantService.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface ITenantService : IBaseService - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IUserPostService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IUserPostService.cs deleted file mode 100644 index 8a31e780..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IUserPostService.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IUserPostService : IBaseService - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IUserRoleService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IUserRoleService.cs deleted file mode 100644 index ae464cd1..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IUserRoleService.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IUserRoleService : IBaseService - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IUserService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IUserService.cs deleted file mode 100644 index 5f58cb20..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/RABC/IUserService.cs +++ /dev/null @@ -1,129 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using System; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.DtoModel.Base.Dto; - -namespace Yi.Framework.Interface.RABC -{ - public partial interface IUserService:IBaseService - { - - /// - /// 关联角色测试 - /// - /// - Task> GetListInRole(); - - /// - /// 测试仓储的上下文对象 - /// - /// - Task> DbTest(); - - /// - /// 登录方法 - /// - /// - /// - /// - /// - Task Login(string userName, string password, Action userAction = null); - - /// - /// 注册方法 - /// - /// - /// - /// - Task Register(UserEntity userEntity, Action userAction = null); - - /// - /// 导航属性关联角色、部门、岗位 - /// - /// - Task GetInfoById(long userId); - - /// - /// 给用户设置角色,多用户,多角色 - /// - /// - /// - /// - Task GiveUserSetRole(List userIds, List roleIds); - - /// - /// 判断用户名是否存在,如果存在可返回该用户 - /// - /// - /// - /// - Task Exist(string userName, Action userAction = null); - - /// - /// 获取当前登录用户的所有信息 - /// - /// - /// - Task GetUserAllInfo(long userId); - - /// - /// 动态条件分页查询 - /// - /// - /// - /// - Task>> SelctPageList(UserEntity user, PageParModel page, long? deptId); - - - /// - /// 更新用户信息 - /// - /// - /// - Task UpdateInfo(UserInfoDto userDto); - - /// - /// 添加用户信息 - /// - /// - /// - Task AddInfo(UserInfoDto userDto); - - /// - /// 重置密码 - /// - /// - /// - /// - Task RestPassword(long userId, string password); - - - /// - /// 给用户设置岗位 - /// - /// - /// - /// - Task GiveUserSetPost(List userIds, List postIds); - - - /// - /// 更新密码 - /// - /// - /// - /// - Task UpdatePassword(UpdatePasswordDto dto, long userId); - - /// - /// 个人中心信息更新 - /// - /// - /// - Task UpdateProfile(UserInfoDto userDto); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ICategoryService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ICategoryService.cs deleted file mode 100644 index 0155f9ae..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ICategoryService.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.SHOP -{ - public partial interface ICategoryService : IBaseService - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ISkuService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ISkuService.cs deleted file mode 100644 index 9790870a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ISkuService.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.SHOP -{ - public partial interface ISkuService:IBaseService - { - /// - /// 动态条件分页查询 - /// - /// - /// - /// - Task>> SelctPageList(SkuEntity entity, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ISpecsGroupService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ISpecsGroupService.cs deleted file mode 100644 index 526a8ef1..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ISpecsGroupService.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.SHOP -{ - public partial interface ISpecsGroupService : IBaseService - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ISpecsService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ISpecsService.cs deleted file mode 100644 index b61c723a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ISpecsService.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.SHOP -{ - public partial interface ISpecsService : IBaseService - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ISpuService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ISpuService.cs deleted file mode 100644 index 7dc30937..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/SHOP/ISpuService.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface.Base; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; - -namespace Yi.Framework.Interface.SHOP -{ - public partial interface ISpuService:IBaseService - { - /// - /// 动态条件分页查询 - /// - /// - /// - /// - Task>> SelctPageList(SpuEntity entity, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/Yi - Backup (1).Framework.Interface.csproj b/Yi.Framework.Net6/Yi.Framework.Interface/Yi - Backup (1).Framework.Interface.csproj deleted file mode 100644 index 498021a8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/Yi - Backup (1).Framework.Interface.csproj +++ /dev/null @@ -1,43 +0,0 @@ - - - - net6.0 - - - - - - - - - True - True - T4Iservice.tt - - - - - - - - - - - T4Iservice.cs - TextTemplatingFileGenerator - - - - - - - - - - True - True - T4IService.tt - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/Yi - Backup (2).Framework.Interface.csproj b/Yi.Framework.Net6/Yi.Framework.Interface/Yi - Backup (2).Framework.Interface.csproj deleted file mode 100644 index 4748d76c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/Yi - Backup (2).Framework.Interface.csproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - net6.0 - - - - - - - - - - - - - - - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/Yi - Backup.Framework.Interface.csproj b/Yi.Framework.Net6/Yi.Framework.Interface/Yi - Backup.Framework.Interface.csproj deleted file mode 100644 index 289ee267..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/Yi - Backup.Framework.Interface.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - net5.0 - - - - - - - - - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/Yi.Framework.Interface.csproj b/Yi.Framework.Net6/Yi.Framework.Interface/Yi.Framework.Interface.csproj deleted file mode 100644 index ad969a84..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Interface/Yi.Framework.Interface.csproj +++ /dev/null @@ -1,35 +0,0 @@ - - - - net6.0 - - - - - - - - - - - - - - T4Iservice.cs - TextTemplatingFileGenerator - - - - - - - - - - True - True - T4IService.tt - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.Language/LocalLanguage.cs b/Yi.Framework.Net6/Yi.Framework.Language/LocalLanguage.cs deleted file mode 100644 index b8ffbe5e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Language/LocalLanguage.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Yi.Framework.Language -{ - public class LocalLanguage - { - - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Language/LocalLanguage.en.resx b/Yi.Framework.Net6/Yi.Framework.Language/LocalLanguage.en.resx deleted file mode 100644 index 212b1e32..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Language/LocalLanguage.en.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Internal interaction error - - - fail - - - Login failed, please check your user name and password - - - Login successful - - - Logout successful - - - The current menu already exists - - - Login failed! The user does not have any roles - - - Original password error - - - The current role already exists - - - success - - - Refreshtoken expired, refresh failed! - - - Token expiration - - - Accesstoken and refreshtoken are refreshed successfully! - - - Unauthorized - - - User changed - - - user does not exist - - - User already registered - - \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Language/LocalLanguage.zh.resx b/Yi.Framework.Net6/Yi.Framework.Language/LocalLanguage.zh.resx deleted file mode 100644 index e18b038c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Language/LocalLanguage.zh.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 内部交互错误 - - - 失败 - - - 登录失败,请检查你的用户名与密码 - - - 登录成功 - - - 登出成功 - - - 当前菜单已存在 - - - 登录失败!该用户未拥有任何角色 - - - 原密码错误 - - - 当前角色已存在 - - - 成功 - - - RefreshToken过期,刷新失败! - - - 令牌过期 - - - AccessToken, RefreshToken刷新成功! - - - 未授权 - - - 用户已更改 - - - 用户不存在 - - - 用户已经注册 - - \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Model/BBS/Entitys/AgreeEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/BBS/Entitys/AgreeEntity.cs deleted file mode 100644 index ce03e86f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/BBS/Entitys/AgreeEntity.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; - -namespace Yi.Framework.Model.BBS.Entitys -{ - /// - /// 点赞表 - /// - [SugarTable("Agree")] - public partial class AgreeEntity - { - public AgreeEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 用户id - /// - [SugarColumn(ColumnName = "UserId")] - public long? UserId { get; set; } - /// - /// 文章或评论id - /// - [SugarColumn(ColumnName = "ArticleOrCommentId")] - public long? ArticleOrCommentId { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/BBS/Entitys/ArticleEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/BBS/Entitys/ArticleEntity.cs deleted file mode 100644 index 40c87ee7..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/BBS/Entitys/ArticleEntity.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.Model.BBS.Entitys -{ - /// - /// 文章表 - /// - [SugarTable("Article")] - public partial class ArticleEntity : IBaseModelEntity - { - public ArticleEntity() - { - CreateTime = DateTime.Now; - AgreeNum = 0; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 文章标题 - /// - [SugarColumn(ColumnName = "Title")] - public string? Title { get; set; } - /// - /// 文章内容 - /// - [SugarColumn(ColumnName = "Content")] - public string? Content { get; set; } - /// - /// 用户id - /// - [SugarColumn(ColumnName = "UserId")] - public long? UserId { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - /// - /// 图片列表 - /// - [SugarColumn(ColumnName = "Images", IsJson = true)] - public List? Images { get; set; } - /// - /// 点赞数量 - /// - [SugarColumn(ColumnName = "AgreeNum")] - public int AgreeNum { get; set; } - - [Navigate(NavigateType.OneToOne, nameof(UserId))] - public UserEntity? User { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/BBS/Entitys/CommentEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/BBS/Entitys/CommentEntity.cs deleted file mode 100644 index 83e168da..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/BBS/Entitys/CommentEntity.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.Model.BBS.Entitys -{ - /// - /// 评论表 - /// - [SugarTable("Comment")] - public partial class CommentEntity : IBaseModelEntity - { - public CommentEntity() - { - CreateTime = DateTime.Now; - AgreeNum = 0; - CommentNum = 0; - ParentId = 0; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 文章id - /// - [SugarColumn(ColumnName = "ArticleId")] - public long? ArticleId { get; set; } - /// - /// 被回复用户id - /// - [SugarColumn(ColumnName = "UserId")] - public long? UserId { get; set; } - /// - /// 评论内容 - /// - [SugarColumn(ColumnName = "Content")] - public string? Content { get; set; } - /// - /// 点赞数 - /// - [SugarColumn(ColumnName = "AgreeNum")] - public int? AgreeNum { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - /// - /// 子评论数 - /// - [SugarColumn(ColumnName = "CommentNum")] - public int? CommentNum { get; set; } - /// - /// 父级评论id - /// - [SugarColumn(ColumnName = "ParentId")] - public long? ParentId { get; set; } - - /// - /// 被回复的用户信息 - /// - [Navigate(NavigateType.OneToOne, nameof(UserId), nameof(UserEntity.Id))] - public UserEntity? UserInfo { get; set; } - - /// - /// 创建评论的用户信息 - /// - [Navigate(NavigateType.OneToOne, nameof(CreateUser), nameof(UserEntity.Id))] - public UserEntity? CreateUserInfo { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Base/Entity.cs b/Yi.Framework.Net6/Yi.Framework.Model/Base/Entity.cs deleted file mode 100644 index 6775a079..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Base/Entity.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Model.Base -{ - public class Entity : IEntity - { - public Key Id { get; set; }=default(Key)!; - - public object[] GetKeys() - { - throw new NotImplementedException(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Base/EntityDto.cs b/Yi.Framework.Net6/Yi.Framework.Model/Base/EntityDto.cs deleted file mode 100644 index 0c02ac0c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Base/EntityDto.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Model.Base -{ - [Serializable] - public abstract class EntityDto : EntityDto, IEntityDto, IEntityDto - { - // - // 摘要: - // Id of the entity. - public TKey? Id { get; set; } - - public override string ToString() - { - return $"[DTO: {GetType().Name}] Id = {Id}"; - } - } - - [Serializable] - public abstract class EntityDto : IEntityDto - { - public override string ToString() - { - return "[DTO: " + GetType().Name + "]"; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Base/IBaseModelEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/Base/IBaseModelEntity.cs deleted file mode 100644 index fe3d657c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Base/IBaseModelEntity.cs +++ /dev/null @@ -1,23 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Model.Base -{ - public interface IBaseModelEntity - { - public long Id { get; set; } - - public long? CreateUser { get; set; } - - public long? ModifyUser { get; set; } - - public DateTime? CreateTime { get; set; } - - public DateTime? ModifyTime { get; set; } - public bool? IsDeleted { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Base/IEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/Base/IEntity.cs deleted file mode 100644 index a4937365..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Base/IEntity.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Model.Base -{ - /// - /// Defines an entity. It's primary key may not be "Id" or it may have a composite primary key. - /// Use where possible for better integration to repositories and other structures in the framework. - /// - public interface IEntity - { - /// - /// Returns an array of ordered keys for this entity. - /// - /// - //object[] GetKeys(); - } - - /// - /// Defines an entity with a single primary key with "Id" property. - /// - /// Type of the primary key of the entity - public interface IEntity : IEntity - { - /// - /// Unique identifier for this entity. - /// - TKey Id { get; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Base/IEntityDto.cs b/Yi.Framework.Net6/Yi.Framework.Model/Base/IEntityDto.cs deleted file mode 100644 index 7ca28db0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Base/IEntityDto.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Model.Base -{ - public interface IEntityDto - { - - } - - public interface IEntityDto : IEntityDto - { - TKey? Id { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Base/IMultiTenant.cs b/Yi.Framework.Net6/Yi.Framework.Model/Base/IMultiTenant.cs deleted file mode 100644 index 022ad20e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Base/IMultiTenant.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Model.Base -{ - public interface IMultiTenant - { - Guid? TenantId { get; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Base/Query/QueryCondition.cs b/Yi.Framework.Net6/Yi.Framework.Model/Base/Query/QueryCondition.cs deleted file mode 100644 index 43efb4a8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Base/Query/QueryCondition.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Model.Base.Query -{ - public class QueryPageCondition - { - public int Index { get; set; } - public int Size { get; set; } - - public List Parameters { get; set; } = new List(); - public List OrderBys { get; set; } = new List(); - - public bool IsAsc { get; set; } = false; - } - - public class QueryCondition - { - public List Parameters { get; set; } = new List(); - public List OrderBys { get; set; } = new List(); - - public bool IsAsc { get; set; } = false; - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Base/Query/QueryParameter.cs b/Yi.Framework.Net6/Yi.Framework.Model/Base/Query/QueryParameter.cs deleted file mode 100644 index 9a4b4385..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Base/Query/QueryParameter.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Newtonsoft.Json; -using Newtonsoft.Json.Converters; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Model.Base.Query -{ - public class QueryParameter - { - public string? Key { get; set; } - public string? Value { get; set; } - [JsonConverter(typeof(StringEnumConverter))] - public ConditionalType Type { get; set; } = ConditionalType.Like; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Base/Query/QueryParametersExtensions.cs b/Yi.Framework.Net6/Yi.Framework.Model/Base/Query/QueryParametersExtensions.cs deleted file mode 100644 index dfb1cfdb..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Base/Query/QueryParametersExtensions.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Model.Base.Query -{ - public static class QueryParametersExtensions - { - - //public static QueryParameters SetParameters(this QueryParameters queryParameters, Dictionary dic, bool IsTenant = true) - //{ - // //var httpcontext = ServiceLocator.Instance.GetService().HttpContext; - // queryParameters.OrderBys = new List { "CreateTime" }; - // foreach (var p in dic) - // { - // QueryParameter qp = null; - // if (p.Key == "IsDeleted" || p.Key == "Id") - // { - // qp = new QueryParameter() { FieldName = p.Key, FieldValue = p.Value, ConditionalType = ConditionalType.Equal }; - - // } - // else - // { - // qp = new QueryParameter() { FieldName = p.Key, FieldValue = p.Value }; - - // } - // queryParameters.Parameters.Add(qp); - // } - // if (IsTenant) - // { - // //if (httpcontext.Request.Headers["TenantLevel"].ToString() == "0") - // //{ - // // queryParameters.Parameters.Add(new QueryParameter() { ConditionalType = ConditionalType.Equal, FieldName = "TenantId", FieldValue = httpcontext.Request.Headers["TenantId"].ToString() }); - // //} - // } - - // return queryParameters; - //} - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/MaterialEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/MaterialEntity.cs deleted file mode 100644 index 7c46f9e6..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/MaterialEntity.cs +++ /dev/null @@ -1,50 +0,0 @@ -using Newtonsoft.Json; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.ERP.Entitys -{ - /// - /// 物料定义 - /// - [SugarTable("Material")] - public class MaterialEntity : IEntity, IMultiTenant - { - /// - /// 主键 - /// - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(IsPrimaryKey = true)] - public long Id { get; set; } - - /// - /// 租户id - /// - public Guid? TenantId { get; set; } - - /// - /// 物料编码 - /// - public string Code { get; set; }=string.Empty; - - /// - /// 物料名称 - /// - public string Name { get; set; }=string.Empty; - - /// - /// 物料单位 - /// - public string UnitName { get; set; }=string.Empty; - - /// - /// 备注 - /// - public string? Remarks { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseDetailsEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseDetailsEntity.cs deleted file mode 100644 index d5adaeb9..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseDetailsEntity.cs +++ /dev/null @@ -1,69 +0,0 @@ -using Newtonsoft.Json; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.ERP.Entitys -{ - /// - /// 采购订单子表 - /// - [SugarTable("PurchaseDetail")] - public class PurchaseDetailsEntity : IEntity, IMultiTenant - { - /// - /// 主键 - /// - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(IsPrimaryKey = true)] - public long Id { get; set; } - - /// - /// 租户id - /// - public Guid? TenantId { get; set; } - - /// - /// 采购单id - /// - public long PurchaseId { get; set; } - - /// - /// 物料id - /// - public long MaterialId { get; set; } - - - /// - /// 物料名称 - /// - public string MaterialName { get; set; }=string.Empty; - - /// - /// 物料单位 - /// - public string MaterialUnit { get; set; }=string.Empty ; - - - /// - /// 单价 - /// - public float UnitPrice { get; set; } - /// - /// 总数量 - /// - public long TotalNumber { get; set; } - /// - /// 已完成数量 - /// - public long CompleteNumber { get; set; } - /// - /// 备注 - /// - public string? Remarks { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseEntity.cs deleted file mode 100644 index cce541b0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/PurchaseEntity.cs +++ /dev/null @@ -1,69 +0,0 @@ -using Newtonsoft.Json; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.ERP.Entitys -{ - /// - /// 采购订单 - /// - [SugarTable("Purchase")] - public class PurchaseEntity : IEntity, IMultiTenant - { - /// - /// 主键 - /// - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(IsPrimaryKey = true)] - public long Id { get; set; } - - /// - /// 租户id - /// - public Guid? TenantId { get; set; } - - /// - /// 采购单号 - /// - public string Code { get; set; }=string.Empty; - - /// - /// 需求时间 - /// - public DateTime? NeedTime { get; set; } - - /// - /// 采购员 - /// - public string? Buyer { get; set; } - - /// - /// 总共金额 - /// - public float TotalMoney { get; set; } - - /// - /// 已支付金额 - /// - public float PaidMoney { get; set; } - - /// - /// 采购状态 - /// - public PurchaseStateEnum PurchaseState { get; set; } = PurchaseStateEnum.Build; - - } - - public enum PurchaseStateEnum - { - Build=0,//新建 - Run=1,//进行中 - Complete=2,//已完成 - End=3//已结束 - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/SupplierEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/SupplierEntity.cs deleted file mode 100644 index 4e77c121..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/SupplierEntity.cs +++ /dev/null @@ -1,58 +0,0 @@ -using Newtonsoft.Json; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.ERP.Entitys -{ - /// - /// 供应商 - /// - [SugarTable("Supplier")] - public class SupplierEntity : IEntity, IMultiTenant - { - /// - /// 主键 - /// - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(IsPrimaryKey = true)] - public long Id { get; set; } - - /// - /// 租户id - /// - public Guid? TenantId { get; set; } - - /// - /// 供应商编码 - /// - public string Code { get; set; } = string.Empty; - - /// - /// 供应商名称 - /// - public string Name { get; set; }= string.Empty; - - /// - /// 供应商地址 - /// - public string? Address { get; set; } - - /// - /// 电话 - /// - public long? Phone { get; set; } - /// - /// 传真 - /// - public string? Fax { get; set; } - /// - /// 邮箱 - /// - public string? Email { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/UnitEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/UnitEntity.cs deleted file mode 100644 index 9acd4091..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/UnitEntity.cs +++ /dev/null @@ -1,45 +0,0 @@ -using Newtonsoft.Json; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.ERP.Entitys -{ - /// - /// 单位定义 - /// - [SugarTable("Unit")] - public class UnitEntity : IEntity, IMultiTenant - { - /// - /// 主键 - /// - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(IsPrimaryKey = true)] - public long Id { get; set; } - - /// - /// 租户id - /// - public Guid? TenantId { get; set; } - - /// - /// 单位编码 - /// - public string Code { get; set; }=string.Empty; - - /// - /// 单位名称 - /// - public string Name { get; set; }=string.Empty; - - /// - /// 备注 - /// - public string? Remarks { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/WarehouseEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/WarehouseEntity.cs deleted file mode 100644 index 1e3dc902..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/ERP/Entitys/WarehouseEntity.cs +++ /dev/null @@ -1,51 +0,0 @@ -using Newtonsoft.Json; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Enum; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.ERP.Entitys -{ - /// - /// 仓库定义 - /// - [SugarTable("Warehouse")] - public class WarehouseEntity : IEntity, IMultiTenant - { - /// - /// 主键 - /// - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(IsPrimaryKey = true)] - public long Id { get; set; } - - /// - /// 租户id - /// - public Guid? TenantId { get; set; } - - /// - /// 仓库编码 - /// - public string Code { get; set; }=string.Empty; - - /// - /// 仓库名称 - /// - public string Name { get; set; }=string.Empty ; - - /// - /// 备注 - /// - public string? Remarks { get; set; } - - /// - /// 状态 - /// - public StateEnum State { get; set; } = StateEnum.Normal; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/ConfigEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/ConfigEntity.cs deleted file mode 100644 index cd5d8d4a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/ConfigEntity.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 配置表 - /// - [SugarTable("Config")] - public partial class ConfigEntity : IBaseModelEntity - { - public ConfigEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 配置名称 - /// - [SugarColumn(ColumnName = "ConfigName")] - public string? ConfigName { get; set; } - /// - /// 配置键 - /// - [SugarColumn(ColumnName = "ConfigKey")] - public string? ConfigKey { get; set; } - /// - /// 配置值 - /// - [SugarColumn(ColumnName = "ConfigValue")] - public string? ConfigValue { get; set; } - /// - /// 配置类别 - /// - [SugarColumn(ColumnName = "ConfigType")] - public string? ConfigType { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/DeptEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/DeptEntity.cs deleted file mode 100644 index e5d678a4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/DeptEntity.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 部门表 - /// - [SugarTable("Dept")] - public partial class DeptEntity : IBaseModelEntity - { - public DeptEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 部门名称 - /// - [SugarColumn(ColumnName = "DeptName")] - public string? DeptName { get; set; } - /// - /// 部门编码 - /// - [SugarColumn(ColumnName = "DeptCode")] - public string? DeptCode { get; set; } - /// - /// 负责人 - /// - [SugarColumn(ColumnName = "Leader")] - public string? Leader { get; set; } - /// - /// 父级id - /// - [SugarColumn(ColumnName = "ParentId")] - public long? ParentId { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/DictionaryEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/DictionaryEntity.cs deleted file mode 100644 index f973ebe4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/DictionaryEntity.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 字典表 - /// - [SugarTable("Dictionary")] - public partial class DictionaryEntity : IBaseModelEntity - { - public DictionaryEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 字典名称 - /// - [SugarColumn(ColumnName = "DictName")] - public string? DictName { get; set; } - /// - /// 字典类型 - /// - [SugarColumn(ColumnName = "DictType")] - public string? DictType { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/DictionaryInfoEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/DictionaryInfoEntity.cs deleted file mode 100644 index 1776bf23..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/DictionaryInfoEntity.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 字典信息表 - /// - [SugarTable("DictionaryInfo")] - public partial class DictionaryInfoEntity : IBaseModelEntity - { - public DictionaryInfoEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 字典类型 - /// - [SugarColumn(ColumnName = "DictType")] - public string? DictType { get; set; } - /// - /// 字典标签 - /// - [SugarColumn(ColumnName = "DictLabel")] - public string? DictLabel { get; set; } - /// - /// 字典值 - /// - [SugarColumn(ColumnName = "DictValue")] - public string? DictValue { get; set; } - /// - /// 是否为该类型的默认值 - /// - [SugarColumn(ColumnName = "IsDefault")] - public bool? IsDefault { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - /// - /// tag类型 - /// - [SugarColumn(ColumnName = "ListClass")] - public string? ListClass { get; set; } - /// - /// tagClass - /// - [SugarColumn(ColumnName = "CssClass")] - public string? CssClass { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/FileEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/FileEntity.cs deleted file mode 100644 index b11c2be9..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/FileEntity.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 文件表 - /// - [SugarTable("File")] - public partial class FileEntity : IBaseModelEntity - { - public FileEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 文件类型 - /// - [SugarColumn(ColumnName = "FileType")] - public string? FileType { get; set; } - /// - /// 文件大小 - /// - [SugarColumn(ColumnName = "FileSize")] - public decimal? FileSize { get; set; } - /// - /// 文件名 - /// - [SugarColumn(ColumnName = "FileName")] - public string? FileName { get; set; } - /// - /// 文件路径 - /// - [SugarColumn(ColumnName = "FilePath")] - public string? FilePath { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/LogEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/LogEntity.cs deleted file mode 100644 index 9b64f948..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/LogEntity.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - [SplitTable(SplitType.Year)] - [SugarTable("SplitLog_{year}{month}{day}")] - public partial class LogEntity : IBaseModelEntity - { - public LogEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 消息 - /// - [SugarColumn(ColumnName = "Message")] - public string? Message { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - - [SplitField] //分表字段 在插入的时候会根据这个字段插入哪个表,在更新删除的时候用这个字段找出相关表 - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/LoginLogEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/LoginLogEntity.cs deleted file mode 100644 index 69b59b76..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/LoginLogEntity.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 登入日志 - /// - [SugarTable("LoginLog")] - public partial class LoginLogEntity : IBaseModelEntity - { - public LoginLogEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 登录用户 - /// - [SugarColumn(ColumnName = "LoginUser")] - public string? LoginUser { get; set; } - /// - /// 登录地点 - /// - [SugarColumn(ColumnName = "LoginLocation")] - public string? LoginLocation { get; set; } - /// - /// 登录Ip - /// - [SugarColumn(ColumnName = "LoginIp")] - public string? LoginIp { get; set; } - /// - /// 浏览器 - /// - [SugarColumn(ColumnName = "Browser")] - public string? Browser { get; set; } - /// - /// 操作系统 - /// - [SugarColumn(ColumnName = "Os")] - public string? Os { get; set; } - /// - /// 登录信息 - /// - [SugarColumn(ColumnName = "LogMsg")] - public string? LogMsg { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/MenuEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/MenuEntity.cs deleted file mode 100644 index 86bd8a30..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/MenuEntity.cs +++ /dev/null @@ -1,185 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Common.Enum; -using Yi.Framework.Common.Models; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 菜单表 - /// - [SugarTable("Menu")] - public partial class MenuEntity : IBaseModelEntity - { - public MenuEntity() - { - IsCache = false; - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "MenuName")] - public string? MenuName { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "MenuType")] - public int? MenuType { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "PermissionCode")] - public string? PermissionCode { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "ParentId")] - public long? ParentId { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 菜单图标 - /// - [SugarColumn(ColumnName = "MenuIcon")] - public string? MenuIcon { get; set; } - /// - /// 菜单组件路由 - /// - [SugarColumn(ColumnName = "Router")] - public string? Router { get; set; } - /// - /// 是否为外部链接 - /// - [SugarColumn(ColumnName = "IsLink")] - public bool? IsLink { get; set; } - /// - /// 是否缓存 - /// - [SugarColumn(ColumnName = "IsCache")] - public bool? IsCache { get; set; } - /// - /// 是否显示 - /// - [SugarColumn(ColumnName = "IsShow")] - public bool? IsShow { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - /// - /// 组件路径 - /// - [SugarColumn(ColumnName = "Component")] - public string? Component { get; set; } - /// - /// 路由参数 - /// - [SugarColumn(ColumnName = "Query")] - public string? Query { get; set; } - - [SugarColumn(IsIgnore = true)] - public List? Children { get; set; } - - - public static List RouterBuild(List menus) - { - menus = menus.Where(m => m.MenuType != null && m.MenuType != MenuTypeEnum.Component.GetHashCode()).ToList(); - List routers = new(); - foreach (var m in menus) - { - - var r = new VueRouterModel(); - r.OrderNum = m.OrderNum ?? 0; - var routerName = m.Router?.Split("/").LastOrDefault(); - r.Id = m.Id; - r.ParentId = m.ParentId ?? -1; - - //开头大写 - r.Name = routerName?.First().ToString().ToUpper() + routerName?.Substring(1); - r.Path = m.Router!; - r.Hidden = !m.IsShow ?? false; - - - if (m.MenuType == MenuTypeEnum.Catalogue.GetHashCode()) - { - r.Redirect = "noRedirect"; - r.AlwaysShow = true; - - //判断是否为最顶层的路由 - if (0 == m.ParentId) - { - r.Component = "Layout"; - } - else - { - r.Component = "ParentView"; - } - } - if (m.MenuType == MenuTypeEnum.Menu.GetHashCode()) - { - - r.Redirect = "noRedirect"; - r.AlwaysShow = true; - r.Component = m.Component!; - r.AlwaysShow = false; - } - r.Meta = new Meta - { - Title = m.MenuName!, - Icon = m.MenuIcon!, - NoCache = !m.IsCache ?? true - }; - if (m.IsLink ?? false) - { - r.Meta.link = m.Router!; - r.AlwaysShow = false; - } - - routers.Add(r); - } - return Common.Helper.TreeHelper.SetTree(routers); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/OperationLogEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/OperationLogEntity.cs deleted file mode 100644 index 2ee7dee0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/OperationLogEntity.cs +++ /dev/null @@ -1,109 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 操作日志表 - /// - [SugarTable("OperationLog")] - public partial class OperationLogEntity : IBaseModelEntity - { - public OperationLogEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 操作模块 - /// - [SugarColumn(ColumnName = "Title")] - public string? Title { get; set; } - /// - /// 操作类型 - /// - [SugarColumn(ColumnName = "OperType")] - public int? OperType { get; set; } - /// - /// 请求方法 - /// - [SugarColumn(ColumnName = "RequestMethod")] - public string? RequestMethod { get; set; } - /// - /// 操作人员 - /// - [SugarColumn(ColumnName = "OperUser")] - public string? OperUser { get; set; } - /// - /// 操作Ip - /// - [SugarColumn(ColumnName = "OperIp")] - public string? OperIp { get; set; } - /// - /// 操作地点 - /// - [SugarColumn(ColumnName = "OperLocation")] - public string? OperLocation { get; set; } - /// - /// 操作方法 - /// - [SugarColumn(ColumnName = "Method")] - public string? Method { get; set; } - /// - /// 请求参数 - /// - [SugarColumn(ColumnName = "RequestParam")] - public string? RequestParam { get; set; } - /// - /// 请求结果 - /// - [SugarColumn(ColumnName = "RequestResult")] - public string? RequestResult { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/PostEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/PostEntity.cs deleted file mode 100644 index c674cf53..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/PostEntity.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 岗位表 - /// - [SugarTable("Post")] - public partial class PostEntity : IBaseModelEntity - { - public PostEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 岗位编码 - /// - [SugarColumn(ColumnName = "PostCode")] - public string? PostCode { get; set; } - /// - /// 岗位名称 - /// - [SugarColumn(ColumnName = "PostName")] - public string? PostName { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/RoleDeptEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/RoleDeptEntity.cs deleted file mode 100644 index 78f7a18c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/RoleDeptEntity.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 角色部门关系表 - /// - [SugarTable("RoleDept")] - public partial class RoleDeptEntity : IBaseModelEntity - { - public RoleDeptEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 角色id - /// - [SugarColumn(ColumnName = "RoleId")] - public long? RoleId { get; set; } - /// - /// 部门id - /// - [SugarColumn(ColumnName = "DeptId")] - public long? DeptId { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/RoleEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/RoleEntity.cs deleted file mode 100644 index 46dcbc86..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/RoleEntity.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 角色表 - /// - [SugarTable("Role")] - public partial class RoleEntity : IBaseModelEntity - { - public RoleEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "RoleName")] - public string? RoleName { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 角色编码 - /// - [SugarColumn(ColumnName = "RoleCode")] - public string? RoleCode { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - /// - /// 角色数据范围 - /// - [SugarColumn(ColumnName = "DataScope")] - public int? DataScope { get; set; } - - - [Navigate(typeof(RoleMenuEntity), nameof(RoleMenuEntity.RoleId), nameof(RoleMenuEntity.MenuId))] - public List? Menus { get; set; } - - [Navigate(typeof(RoleDeptEntity), nameof(RoleDeptEntity.RoleId), nameof(RoleDeptEntity.DeptId))] - public List? Depts { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/RoleMenuEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/RoleMenuEntity.cs deleted file mode 100644 index 7e9a3cba..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/RoleMenuEntity.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 角色菜单关系表 - /// - [SugarTable("RoleMenu")] - public partial class RoleMenuEntity : IBaseModelEntity - { - public RoleMenuEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "RoleId")] - public long? RoleId { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "MenuId")] - public long? MenuId { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/TenantEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/TenantEntity.cs deleted file mode 100644 index cc8ebf22..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/TenantEntity.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 租户表 - /// - [SugarTable("Tenant")] - public partial class TenantEntity : IBaseModelEntity - { - public TenantEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "TenantName")] - public string? TenantName { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - - // //需要在用户表中关联好该租户信息,一个用户关联一个租户 - // //不同租户下,用户可以相同 - // //用户登录后,token中可包含租户id,同时缓存一份用户信息(包含租户信息) - // [Tenant("0")] - // //当然,像用户、角色、菜单、租户为共享库了 - // [SugarTable("Tenant")] - // public class TenantEntity - // { - // /// - // /// 主键唯一标识 - // /// - // [SugarColumn(IsPrimaryKey = true)] - // public long Id { get; set; } - - // /// - // /// 租户id - // /// - // public string? TenantId { get; set; } - - // /// - // /// 业务库连接字符串 - // /// - // public string? Connection { get; set; } - - // /// - // /// 业务库连接类型 - // /// - // public string? DbType { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/UserEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/UserEntity.cs deleted file mode 100644 index 89fc1d19..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/UserEntity.cs +++ /dev/null @@ -1,184 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Common.Helper; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 用户表 - /// - [SugarTable("User")] - public partial class UserEntity : IBaseModelEntity - { - public UserEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "Name")] - public string? Name { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "Age")] - public int? Age { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "UserName")] - public string? UserName { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "Password")] - public string? Password { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "Salt")] - public string? Salt { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "Icon")] - public string? Icon { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "Nick")] - public string? Nick { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "Email")] - public string? Email { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "Ip")] - public string? Ip { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "Address")] - public string? Address { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "Phone")] - public string? Phone { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "Introduction")] - public string? Introduction { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - /// - /// 部门id - /// - [SugarColumn(ColumnName = "DeptId")] - public long? DeptId { get; set; } - /// - /// 性别 - /// - [SugarColumn(ColumnName = "Sex")] - public int? Sex { get; set; } - /// - /// 看好啦!ORM精髓,导航属性 - /// - [Navigate(typeof(UserRoleEntity), nameof(UserRoleEntity.UserId), nameof(UserRoleEntity.RoleId))] - public List? Roles { get; set; } - - [Navigate(typeof(UserPostEntity), nameof(UserPostEntity.UserId), nameof(UserPostEntity.PostId))] - public List? Posts { get; set; } - - [Navigate(NavigateType.OneToOne, nameof(DeptId))] - public DeptEntity? Dept { get; set; } - - /// - /// 构建密码,MD5盐值加密 - /// - public UserEntity BuildPassword(string? password = null) - { - //如果不传值,那就把自己的password当作传进来的password - if (password == null) - { - if (Password == null) - { - throw new ArgumentNullException("Password不能为空"); - } - password = Password; - } - Salt = MD5Helper.GenerateSalt(); - Password = MD5Helper.SHA2Encode(password, Salt); - return this; - } - - /// - /// 判断密码和加密后的密码是否相同 - /// - /// - /// - public bool JudgePassword(string password) - { - if (this.Salt is null) - { - throw new ArgumentNullException(this.Salt); - } - var p = MD5Helper.SHA2Encode(password, Salt); - if (Password == MD5Helper.SHA2Encode(password, Salt)) - { - return true; - } - return false; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/UserPostEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/UserPostEntity.cs deleted file mode 100644 index 6831dd91..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/UserPostEntity.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 用户岗位表 - /// - [SugarTable("UserPost")] - public partial class UserPostEntity : IBaseModelEntity - { - public UserPostEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 用户id s - /// - [SugarColumn(ColumnName = "UserId")] - public long? UserId { get; set; } - /// - /// 岗位id - /// - [SugarColumn(ColumnName = "PostId")] - public long? PostId { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/UserRoleEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/UserRoleEntity.cs deleted file mode 100644 index 71ffa3d9..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/Entitys/UserRoleEntity.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.RABC.Entitys -{ - /// - /// 用户角色关系表 - /// - [SugarTable("UserRole")] - public partial class UserRoleEntity : IBaseModelEntity - { - public UserRoleEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "RoleId")] - public long? RoleId { get; set; } - /// - /// - /// - [SugarColumn(ColumnName = "UserId")] - public long? UserId { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/AbstractSeed.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/AbstractSeed.cs deleted file mode 100644 index 36c2d7c8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/AbstractSeed.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Model.RABC.SeedData -{ - public abstract class AbstractSeed - { - protected List Entitys { get; set; } = new List(); - public virtual List GetSeed() - { - return Entitys; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/DeptSeed.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/DeptSeed.cs deleted file mode 100644 index 8dce7427..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/DeptSeed.cs +++ /dev/null @@ -1,130 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Enum; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.Model.RABC.SeedData -{ - public class DeptSeed : AbstractSeed - { - public override List GetSeed() - { - - DeptEntity chengziDept = new DeptEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DeptName = "橙子科技", - DeptCode = "Yi", - OrderNum = 100, - IsDeleted = false, - ParentId = 0, - Leader = "橙子", - Remark = "如名所指" - }; - Entitys.Add(chengziDept); - - - DeptEntity shenzhenDept = new DeptEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DeptName = "深圳总公司", - OrderNum = 100, - IsDeleted = false, - ParentId = chengziDept.Id - }; - Entitys.Add(shenzhenDept); - - - DeptEntity jiangxiDept = new DeptEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DeptName = "江西总公司", - OrderNum = 100, - IsDeleted = false, - ParentId = chengziDept.Id - }; - Entitys.Add(jiangxiDept); - - - - DeptEntity szDept1 = new DeptEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DeptName = "研发部门", - OrderNum = 100, - IsDeleted = false, - ParentId = shenzhenDept.Id - }; - Entitys.Add(szDept1); - - DeptEntity szDept2 = new DeptEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DeptName = "市场部门", - OrderNum = 100, - IsDeleted = false, - ParentId = shenzhenDept.Id - }; - Entitys.Add(szDept2); - - DeptEntity szDept3 = new DeptEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DeptName = "测试部门", - OrderNum = 100, - IsDeleted = false, - ParentId = shenzhenDept.Id - }; - Entitys.Add(szDept3); - - DeptEntity szDept4 = new DeptEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DeptName = "财务部门", - OrderNum = 100, - IsDeleted = false, - ParentId = shenzhenDept.Id - }; - Entitys.Add(szDept4); - - DeptEntity szDept5 = new DeptEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DeptName = "运维部门", - OrderNum = 100, - IsDeleted = false, - ParentId = shenzhenDept.Id - }; - Entitys.Add(szDept5); - - - DeptEntity jxDept1 = new DeptEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DeptName = "市场部门", - OrderNum = 100, - IsDeleted = false, - ParentId = jiangxiDept.Id - }; - Entitys.Add(jxDept1); - - - DeptEntity jxDept2 = new DeptEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DeptName = "财务部门", - OrderNum = 100, - IsDeleted = false, - ParentId = jiangxiDept.Id - }; - Entitys.Add(jxDept2); - - - return Entitys; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/DictionaryInfoSeed.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/DictionaryInfoSeed.cs deleted file mode 100644 index 3cd320f2..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/DictionaryInfoSeed.cs +++ /dev/null @@ -1,361 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.Model.RABC.SeedData -{ - public class DictionaryInfoSeed : AbstractSeed - { - public override List GetSeed() - { - DictionaryInfoEntity dictInfo1 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "男", - DictValue = "0", - DictType = "sys_user_sex", - OrderNum = 100, - Remark = "性别男", - IsDeleted = false, - }; - Entitys.Add(dictInfo1); - - DictionaryInfoEntity dictInfo2 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "女", - DictValue = "1", - DictType = "sys_user_sex", - OrderNum = 99, - Remark = "性别女", - IsDeleted = false, - }; - Entitys.Add(dictInfo2); - - DictionaryInfoEntity dictInfo3 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "未知", - DictValue = "2", - DictType = "sys_user_sex", - OrderNum = 98, - Remark = "性别未知", - IsDeleted = false, - }; - Entitys.Add(dictInfo3); - - - - DictionaryInfoEntity dictInfo4 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "显示", - DictValue = "true", - DictType = "sys_show_hide", - OrderNum = 100, - Remark = "显示菜单", - IsDeleted = false, - }; - Entitys.Add(dictInfo4); - - DictionaryInfoEntity dictInfo5 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "隐藏", - DictValue = "false", - DictType = "sys_show_hide", - OrderNum = 99, - Remark = "隐藏菜单", - IsDeleted = false, - }; - Entitys.Add(dictInfo5); - - - - DictionaryInfoEntity dictInfo6 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "正常", - DictValue = "false", - DictType = "sys_normal_disable", - OrderNum = 100, - Remark = "正常状态", - IsDeleted = false, - }; - Entitys.Add(dictInfo6); - DictionaryInfoEntity dictInfo7 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "停用", - DictValue = "true", - DictType = "sys_normal_disable", - OrderNum = 99, - Remark = "停用状态", - IsDeleted = false, - ListClass = "danger" - }; - Entitys.Add(dictInfo7); - - - - DictionaryInfoEntity dictInfo8 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "正常", - DictValue = "0", - DictType = "sys_job_status", - OrderNum = 100, - Remark = "正常状态", - IsDeleted = false, - }; - Entitys.Add(dictInfo8); - DictionaryInfoEntity dictInfo9 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "暂停", - DictValue = "1", - DictType = "sys_job_status", - OrderNum = 99, - Remark = "停用状态", - IsDeleted = false, - ListClass = "danger" - }; - Entitys.Add(dictInfo9); - - - - - DictionaryInfoEntity dictInfo10 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "默认", - DictValue = "DEFAULT", - DictType = "sys_job_group", - OrderNum = 100, - Remark = "默认分组", - IsDeleted = false, - }; - Entitys.Add(dictInfo10); - DictionaryInfoEntity dictInfo11 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "系统", - DictValue = "SYSTEM", - DictType = "sys_job_group", - OrderNum = 99, - Remark = "系统分组", - IsDeleted = false, - }; - Entitys.Add(dictInfo11); - - - - DictionaryInfoEntity dictInfo12 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "是", - DictValue = "Y", - DictType = "sys_yes_no", - OrderNum = 100, - Remark = "系统默认是", - IsDeleted = false, - }; - Entitys.Add(dictInfo12); - DictionaryInfoEntity dictInfo13 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "否", - DictValue = "N", - DictType = "sys_yes_no", - OrderNum = 99, - Remark = "系统默认否", - IsDeleted = false, - ListClass = "danger" - }; - Entitys.Add(dictInfo13); - - - - DictionaryInfoEntity dictInfo14 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "通知", - DictValue = "1", - DictType = "sys_notice_type", - OrderNum = 100, - Remark = "通知", - IsDeleted = false, - }; - Entitys.Add(dictInfo14); - DictionaryInfoEntity dictInfo15 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "公告", - DictValue = "2", - DictType = "sys_notice_type", - OrderNum = 99, - Remark = "公告", - IsDeleted = false, - }; - Entitys.Add(dictInfo15); - - DictionaryInfoEntity dictInfo16 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "正常", - DictValue = "0", - DictType = "sys_notice_status", - OrderNum = 100, - Remark = "正常状态", - IsDeleted = false, - }; - Entitys.Add(dictInfo16); - DictionaryInfoEntity dictInfo17 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "关闭", - DictValue = "1", - DictType = "sys_notice_status", - OrderNum = 99, - Remark = "关闭状态", - IsDeleted = false, - ListClass = "danger" - }; - Entitys.Add(dictInfo17); - - DictionaryInfoEntity dictInfo18 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "新增", - DictValue = "1", - DictType = "sys_oper_type", - OrderNum = 100, - Remark = "新增操作", - IsDeleted = false, - }; - Entitys.Add(dictInfo18); - DictionaryInfoEntity dictInfo19 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "修改", - DictValue = "2", - DictType = "sys_oper_type", - OrderNum = 99, - Remark = "修改操作", - IsDeleted = false, - }; - Entitys.Add(dictInfo19); - DictionaryInfoEntity dictInfo22 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "删除", - DictValue = "3", - DictType = "sys_oper_type", - OrderNum = 98, - Remark = "删除操作", - IsDeleted = false, - ListClass = "danger" - }; - Entitys.Add(dictInfo22); - DictionaryInfoEntity dictInfo23 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "授权", - DictValue = "4", - DictType = "sys_oper_type", - OrderNum = 97, - Remark = "授权操作", - IsDeleted = false, - }; - Entitys.Add(dictInfo23); - DictionaryInfoEntity dictInfo24 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "导出", - DictValue = "5", - DictType = "sys_oper_type", - OrderNum = 96, - Remark = "导出操作", - IsDeleted = false, - }; - Entitys.Add(dictInfo24); - DictionaryInfoEntity dictInfo25 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "导入", - DictValue = "6", - DictType = "sys_oper_type", - OrderNum = 95, - Remark = "导入操作", - IsDeleted = false, - }; - Entitys.Add(dictInfo25); - DictionaryInfoEntity dictInfo26 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "强退", - DictValue = "7", - DictType = "sys_oper_type", - OrderNum = 94, - Remark = "强退操作", - IsDeleted = false, - }; - Entitys.Add(dictInfo26); - DictionaryInfoEntity dictInfo27 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "生成代码", - DictValue = "8", - DictType = "sys_oper_type", - OrderNum = 93, - Remark = "生成代码操作", - IsDeleted = false, - }; - Entitys.Add(dictInfo27); - DictionaryInfoEntity dictInfo28 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "清空数据", - DictValue = "9", - DictType = "sys_oper_type", - OrderNum = 92, - Remark = "清空数据操作", - IsDeleted = false, - ListClass = "danger" - }; - Entitys.Add(dictInfo28); - - - - DictionaryInfoEntity dictInfo20 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "成功", - DictValue = "false", - DictType = "sys_common_status", - OrderNum = 100, - Remark = "正常状态", - IsDeleted = false, - }; - Entitys.Add(dictInfo20); - DictionaryInfoEntity dictInfo21 = new DictionaryInfoEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictLabel = "失败", - DictValue = "true", - DictType = "sys_common_status", - OrderNum = 99, - Remark = "失败状态", - IsDeleted = false, - ListClass = "danger" - }; - Entitys.Add(dictInfo21); - - return Entitys; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/DictionarySeed.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/DictionarySeed.cs deleted file mode 100644 index 455fc8b4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/DictionarySeed.cs +++ /dev/null @@ -1,127 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.Model.RABC.SeedData -{ - public class DictionarySeed : AbstractSeed - { - public override List GetSeed() - { - DictionaryEntity dict1 = new DictionaryEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictName = "用户性别", - DictType = "sys_user_sex", - OrderNum = 100, - Remark = "用户性别列表", - IsDeleted = false, - }; - Entitys.Add(dict1); - - DictionaryEntity dict2 = new DictionaryEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictName = "菜单状态", - DictType = "sys_show_hide", - OrderNum = 100, - Remark = "菜单状态列表", - IsDeleted = false, - }; - Entitys.Add(dict2); - - DictionaryEntity dict3 = new DictionaryEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictName = "系统开关", - DictType = "sys_normal_disable", - OrderNum = 100, - Remark = "系统开关列表", - IsDeleted = false, - }; - Entitys.Add(dict3); - - DictionaryEntity dict4 = new DictionaryEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictName = "任务状态", - DictType = "sys_job_status", - OrderNum = 100, - Remark = "任务状态列表", - IsDeleted = false, - }; - Entitys.Add(dict4); - - DictionaryEntity dict5 = new DictionaryEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictName = "任务分组", - DictType = "sys_job_group", - OrderNum = 100, - Remark = "任务分组列表", - IsDeleted = false, - }; - Entitys.Add(dict5); - - DictionaryEntity dict6 = new DictionaryEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictName = "系统是否", - DictType = "sys_yes_no", - OrderNum = 100, - Remark = "系统是否列表", - IsDeleted = false, - }; - Entitys.Add(dict6); - - DictionaryEntity dict7 = new DictionaryEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictName = "通知类型", - DictType = "sys_notice_type", - OrderNum = 100, - Remark = "通知类型列表", - IsDeleted = false, - }; - Entitys.Add(dict7); - DictionaryEntity dict8 = new DictionaryEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictName = "通知状态", - DictType = "sys_notice_status", - OrderNum = 100, - Remark = "通知状态列表", - IsDeleted = false, - }; - Entitys.Add(dict8); - - DictionaryEntity dict9 = new DictionaryEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictName = "操作类型", - DictType = "sys_oper_type", - OrderNum = 100, - Remark = "操作类型列表", - IsDeleted = false, - }; - Entitys.Add(dict9); - - - DictionaryEntity dict10 = new DictionaryEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - DictName = "系统状态", - DictType = "sys_common_status", - OrderNum = 100, - Remark = "登录状态列表", - IsDeleted = false, - }; - Entitys.Add(dict10); - return Entitys; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/FileSeed.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/FileSeed.cs deleted file mode 100644 index fbf75344..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/FileSeed.cs +++ /dev/null @@ -1,27 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.Model.RABC.SeedData -{ - public class FileSeed : AbstractSeed - { - public override List GetSeed() - { - FileEntity file1 = new FileEntity() - { - Id = 0, - FilePath = "Image", - FileType = "", - IsDeleted = false, - FileName = "0.jpg" - }; - Entitys.Add(file1); - return Entitys; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/MenuSeed.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/MenuSeed.cs deleted file mode 100644 index 92d7ce97..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/MenuSeed.cs +++ /dev/null @@ -1,1142 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Enum; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.Model.RABC.SeedData -{ - public class MenuSeed : AbstractSeed - { - public override List GetSeed() - { - //系统管理 - MenuEntity system = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "系统管理", - MenuType = MenuTypeEnum.Catalogue.GetHashCode(), - Router = "/system", - IsShow = true, - IsLink = false, - MenuIcon = "system", - OrderNum = 100, - ParentId = 0, - IsDeleted = false - }; - Entitys.Add(system); - - //系统监控 - MenuEntity monitoring = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "系统监控", - MenuType = MenuTypeEnum.Catalogue.GetHashCode(), - Router = "/monitor", - IsShow = true, - IsLink = false, - MenuIcon = "monitor", - OrderNum = 99, - ParentId = 0, - IsDeleted = false - }; - Entitys.Add(monitoring); - - - //在线用户 - MenuEntity online = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "在线用户", - PermissionCode = "monitor:online:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "online", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "monitor/online/index", - MenuIcon = "online", - OrderNum = 100, - ParentId = monitoring.Id, - IsDeleted = false - }; - Entitys.Add(online); - - - - - //系统工具 - MenuEntity tool = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "系统工具", - MenuType = MenuTypeEnum.Catalogue.GetHashCode(), - Router = "/tool", - IsShow = true, - IsLink = false, - MenuIcon = "tool", - OrderNum = 98, - ParentId = 0, - IsDeleted = false - }; - Entitys.Add(tool); - //swagger文档 - MenuEntity swagger = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "接口文档", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "http://localhost:19001", - IsShow = true, - IsLink = true, - MenuIcon = "list", - OrderNum = 100, - ParentId = tool.Id, - IsDeleted = false, - }; - Entitys.Add(swagger); - - - //BBS - MenuEntity bbs = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "BBS", - MenuType = MenuTypeEnum.Catalogue.GetHashCode(), - Router = "/bbs", - IsShow = true, - IsLink = false, - MenuIcon = "international", - OrderNum = 97, - ParentId = 0, - IsDeleted = false - }; - Entitys.Add(bbs); - //文章管理 - MenuEntity article = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "文章管理", - PermissionCode = "bbs:article:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "article", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "bbs/article/index", - MenuIcon = "education", - OrderNum = 100, - ParentId = bbs.Id, - IsDeleted = false - }; - Entitys.Add(article); - - MenuEntity articleQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "文章查询", - PermissionCode = "bbs:article:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = article.Id, - IsDeleted = false - }; - Entitys.Add(articleQuery); - - MenuEntity articleAdd = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "文章新增", - PermissionCode = "bbs:article:add", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = article.Id, - IsDeleted = false - }; - Entitys.Add(articleAdd); - - MenuEntity articleEdit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "文章修改", - PermissionCode = "bbs:article:edit", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = article.Id, - IsDeleted = false - }; - Entitys.Add(articleEdit); - - MenuEntity articleRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "文章删除", - PermissionCode = "bbs:article:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = article.Id, - IsDeleted = false - }; - Entitys.Add(articleRemove); - - //ERP - MenuEntity erp = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "ERP", - MenuType = MenuTypeEnum.Catalogue.GetHashCode(), - Router = "/erp", - IsShow = true, - IsLink = false, - MenuIcon = "international", - OrderNum = 96, - ParentId = 0, - IsDeleted = false - }; - Entitys.Add(erp); - - - - //供应商定义 - MenuEntity supplier = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "供应商定义", - PermissionCode = "erp:supplier:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "supplier", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "erp/supplier/index", - MenuIcon = "education", - OrderNum = 100, - ParentId = erp.Id, - IsDeleted = false - }; - Entitys.Add(supplier); - - MenuEntity supplierQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "供应商查询", - PermissionCode = "erp:supplier:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = supplier.Id, - IsDeleted = false - }; - Entitys.Add(supplierQuery); - - MenuEntity supplierAdd = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "供应商新增", - PermissionCode = "erp:supplier:add", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = supplier.Id, - IsDeleted = false - }; - Entitys.Add(supplierAdd); - - MenuEntity supplierEdit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "供应商修改", - PermissionCode = "erp:supplier:edit", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = supplier.Id, - IsDeleted = false - }; - Entitys.Add(supplierEdit); - - MenuEntity supplierRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "供应商删除", - PermissionCode = "erp:supplier:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = supplier.Id, - IsDeleted = false - }; - Entitys.Add(supplierRemove); - - - //仓库定义 - MenuEntity warehouse = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "仓库定义", - PermissionCode = "erp:warehouse:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "warehouse", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "erp/warehouse/index", - MenuIcon = "education", - OrderNum = 100, - ParentId = erp.Id, - IsDeleted = false - }; - Entitys.Add(warehouse); - - MenuEntity warehouseQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "仓库查询", - PermissionCode = "erp:warehouse:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = warehouse.Id, - IsDeleted = false - }; - Entitys.Add(warehouseQuery); - - MenuEntity warehouseAdd = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "仓库新增", - PermissionCode = "erp:warehouse:add", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = warehouse.Id, - IsDeleted = false - }; - Entitys.Add(warehouseAdd); - - MenuEntity warehouseEdit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "仓库修改", - PermissionCode = "erp:warehouse:edit", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = warehouse.Id, - IsDeleted = false - }; - Entitys.Add(warehouseEdit); - - MenuEntity warehouseRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "仓库删除", - PermissionCode = "erp:warehouse:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = warehouse.Id, - IsDeleted = false - }; - Entitys.Add(warehouseRemove); - - - //单位定义 - MenuEntity unit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "单位定义", - PermissionCode = "erp:unit:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "unit", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "erp/unit/index", - MenuIcon = "education", - OrderNum = 100, - ParentId = erp.Id, - IsDeleted = false - }; - Entitys.Add(unit); - - MenuEntity unitQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "单位查询", - PermissionCode = "erp:unit:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = unit.Id, - IsDeleted = false - }; - Entitys.Add(unitQuery); - - MenuEntity unitAdd = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "单位新增", - PermissionCode = "erp:unit:add", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = unit.Id, - IsDeleted = false - }; - Entitys.Add(unitAdd); - - MenuEntity unitEdit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "单位修改", - PermissionCode = "erp:unit:edit", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = unit.Id, - IsDeleted = false - }; - Entitys.Add(unitEdit); - - MenuEntity unitRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "单位删除", - PermissionCode = "erp:unit:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = unit.Id, - IsDeleted = false - }; - Entitys.Add(unitRemove); - - - //物料定义 - MenuEntity material = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "物料定义", - PermissionCode = "erp:material:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "material", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "erp/material/index", - MenuIcon = "education", - OrderNum = 100, - ParentId = erp.Id, - IsDeleted = false - }; - Entitys.Add(material); - - MenuEntity materialQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "物料查询", - PermissionCode = "erp:material:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = material.Id, - IsDeleted = false - }; - Entitys.Add(materialQuery); - - MenuEntity materialAdd = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "物料新增", - PermissionCode = "erp:material:add", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = material.Id, - IsDeleted = false - }; - Entitys.Add(materialAdd); - - MenuEntity materialEdit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "物料修改", - PermissionCode = "erp:material:edit", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = material.Id, - IsDeleted = false - }; - Entitys.Add(materialEdit); - - MenuEntity materialRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "物料删除", - PermissionCode = "erp:material:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = material.Id, - IsDeleted = false - }; - Entitys.Add(materialRemove); - - - //采购订单 - MenuEntity purchase = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "采购订单", - PermissionCode = "erp:purchase:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "purchase", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "erp/purchase/index", - MenuIcon = "education", - OrderNum = 100, - ParentId = erp.Id, - IsDeleted = false - }; - Entitys.Add(purchase); - - MenuEntity purchaseQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "采购订单查询", - PermissionCode = "erp:purchase:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = purchase.Id, - IsDeleted = false - }; - Entitys.Add(purchaseQuery); - - MenuEntity purchaseAdd = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "采购订单新增", - PermissionCode = "erp:purchase:add", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = purchase.Id, - IsDeleted = false - }; - Entitys.Add(purchaseAdd); - - MenuEntity purchaseEdit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "采购订单修改", - PermissionCode = "erp:purchase:edit", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = purchase.Id, - IsDeleted = false - }; - Entitys.Add(purchaseEdit); - - MenuEntity purchaseRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "采购订单删除", - PermissionCode = "erp:purchase:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = purchase.Id, - IsDeleted = false - }; - Entitys.Add(purchaseRemove); - - - - //Yi框架 - MenuEntity guide = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "Yi框架", - MenuType = MenuTypeEnum.Catalogue.GetHashCode(), - Router = "https://gitee.com/ccnetcore/yi", - IsShow = true, - IsLink = true, - MenuIcon = "guide", - OrderNum = 90, - ParentId = 0, - IsDeleted = false, - }; - Entitys.Add(guide); - - //用户管理 - MenuEntity user = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "用户管理", - PermissionCode = "system:user:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "user", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "system/user/index", - MenuIcon = "user", - OrderNum = 100, - ParentId = system.Id, - IsDeleted = false - }; - Entitys.Add(user); - - MenuEntity userQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "用户查询", - PermissionCode = "system:user:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = user.Id, - IsDeleted = false - }; - Entitys.Add(userQuery); - - MenuEntity userAdd = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "用户新增", - PermissionCode = "system:user:add", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = user.Id, - IsDeleted = false - }; - Entitys.Add(userAdd); - - MenuEntity userEdit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "用户修改", - PermissionCode = "system:user:edit", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = user.Id, - IsDeleted = false - }; - Entitys.Add(userEdit); - - MenuEntity userRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "用户删除", - PermissionCode = "system:user:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = user.Id, - IsDeleted = false - }; - Entitys.Add(userRemove); - - - //角色管理 - MenuEntity role = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "角色管理", - PermissionCode = "system:role:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "role", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "system/role/index", - MenuIcon = "peoples", - OrderNum = 100, - ParentId = system.Id, - IsDeleted = false - }; - Entitys.Add(role); - - MenuEntity roleQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "角色查询", - PermissionCode = "system:role:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = role.Id, - IsDeleted = false - }; - Entitys.Add(roleQuery); - - MenuEntity roleAdd = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "角色新增", - PermissionCode = "system:role:add", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = role.Id, - IsDeleted = false - }; - Entitys.Add(roleAdd); - - MenuEntity roleEdit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "角色修改", - PermissionCode = "system:role:edit", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = role.Id, - IsDeleted = false - }; - Entitys.Add(roleEdit); - - MenuEntity roleRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "角色删除", - PermissionCode = "system:role:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = role.Id, - IsDeleted = false - }; - Entitys.Add(roleRemove); - - - //菜单管理 - MenuEntity menu = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "菜单管理", - PermissionCode = "system:menu:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "menu", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "system/menu/index", - MenuIcon = "tree-table", - OrderNum = 100, - ParentId = system.Id, - IsDeleted = false - }; - Entitys.Add(menu); - - MenuEntity menuQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "菜单查询", - PermissionCode = "system:menu:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = menu.Id, - IsDeleted = false - }; - Entitys.Add(menuQuery); - - MenuEntity menuAdd = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "菜单新增", - PermissionCode = "system:menu:add", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = menu.Id, - IsDeleted = false - }; - Entitys.Add(menuAdd); - - MenuEntity menuEdit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "菜单修改", - PermissionCode = "system:menu:edit", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = menu.Id, - IsDeleted = false - }; - Entitys.Add(menuEdit); - - MenuEntity menuRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "菜单删除", - PermissionCode = "system:menu:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = menu.Id, - IsDeleted = false - }; - Entitys.Add(menuRemove); - - //部门管理 - MenuEntity dept = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "部门管理", - PermissionCode = "system:dept:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "dept", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "system/dept/index", - MenuIcon = "tree", - OrderNum = 100, - ParentId = system.Id, - IsDeleted = false - }; - Entitys.Add(dept); - - MenuEntity deptQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "部门查询", - PermissionCode = "system:dept:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = dept.Id, - IsDeleted = false - }; - Entitys.Add(deptQuery); - - MenuEntity deptAdd = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "部门新增", - PermissionCode = "system:dept:add", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = dept.Id, - IsDeleted = false - }; - Entitys.Add(deptAdd); - - MenuEntity deptEdit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "部门修改", - PermissionCode = "system:dept:edit", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = dept.Id, - IsDeleted = false - }; - Entitys.Add(deptEdit); - - MenuEntity deptRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "部门删除", - PermissionCode = "system:dept:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = dept.Id, - IsDeleted = false - }; - Entitys.Add(deptRemove); - - - - //岗位管理 - MenuEntity post = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "岗位管理", - PermissionCode = "system:post:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "post", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "system/post/index", - MenuIcon = "post", - OrderNum = 100, - ParentId = system.Id, - IsDeleted = false - }; - Entitys.Add(post); - - MenuEntity postQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "岗位查询", - PermissionCode = "system:post:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = post.Id, - IsDeleted = false - }; - Entitys.Add(postQuery); - - MenuEntity postAdd = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "岗位新增", - PermissionCode = "system:post:add", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = post.Id, - IsDeleted = false - }; - Entitys.Add(postAdd); - - MenuEntity postEdit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "岗位修改", - PermissionCode = "system:post:edit", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = post.Id, - IsDeleted = false - }; - Entitys.Add(postEdit); - - MenuEntity postRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "岗位删除", - PermissionCode = "system:post:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = post.Id, - IsDeleted = false - }; - Entitys.Add(postRemove); - - //字典管理 - MenuEntity dict = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "字典管理", - PermissionCode = "system:dict:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "dict", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "system/dict/index", - MenuIcon = "dict", - OrderNum = 100, - ParentId = system.Id, - IsDeleted = false - }; - Entitys.Add(dict); - - MenuEntity dictQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "字典查询", - PermissionCode = "system:dict:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = dict.Id, - IsDeleted = false - }; - Entitys.Add(dictQuery); - - MenuEntity dictAdd = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "字典新增", - PermissionCode = "system:dict:add", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = dict.Id, - IsDeleted = false - }; - Entitys.Add(dictAdd); - - MenuEntity dictEdit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "字典修改", - PermissionCode = "system:dict:edit", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = dict.Id, - IsDeleted = false - }; - Entitys.Add(dictEdit); - - MenuEntity dictRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "字典删除", - PermissionCode = "system:dict:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = dict.Id, - IsDeleted = false - }; - Entitys.Add(dictRemove); - - - //参数设置 - MenuEntity config = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "参数设置", - PermissionCode = "system:config:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "config", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "system/config/index", - MenuIcon = "edit", - OrderNum = 100, - ParentId = system.Id, - IsDeleted = false - }; - Entitys.Add(config); - - MenuEntity configQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "参数查询", - PermissionCode = "system:config:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = config.Id, - IsDeleted = false - }; - Entitys.Add(configQuery); - - MenuEntity configAdd = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "参数新增", - PermissionCode = "system:config:add", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = config.Id, - IsDeleted = false - }; - Entitys.Add(configAdd); - - MenuEntity configEdit = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "参数修改", - PermissionCode = "system:config:edit", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = config.Id, - IsDeleted = false - }; - Entitys.Add(configEdit); - - MenuEntity configRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "参数删除", - PermissionCode = "system:config:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = config.Id, - IsDeleted = false - }; - Entitys.Add(configRemove); - - - - - //日志管理 - MenuEntity log = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "日志管理", - MenuType = MenuTypeEnum.Catalogue.GetHashCode(), - Router = "log", - IsShow = true, - IsLink = false, - MenuIcon = "log", - OrderNum = 100, - ParentId = system.Id, - IsDeleted = false - }; - Entitys.Add(log); - - //操作日志 - MenuEntity operationLog = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "操作日志", - PermissionCode = "monitor:operlog:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "operlog", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "monitor/operlog/index", - MenuIcon = "form", - OrderNum = 100, - ParentId = log.Id, - IsDeleted = false - }; - Entitys.Add(operationLog); - - MenuEntity operationLogQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "操作查询", - PermissionCode = "monitor:operlog:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = operationLog.Id, - IsDeleted = false - }; - Entitys.Add(operationLogQuery); - - MenuEntity operationLogRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "操作删除", - PermissionCode = "monitor:operlog:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = operationLog.Id, - IsDeleted = false - }; - Entitys.Add(operationLogRemove); - - - //登录日志 - MenuEntity loginLog = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "登录日志", - PermissionCode = "monitor:logininfor:list", - MenuType = MenuTypeEnum.Menu.GetHashCode(), - Router = "logininfor", - IsShow = true, - IsLink = false, - IsCache = true, - Component = "monitor/logininfor/index", - MenuIcon = "logininfor", - OrderNum = 100, - ParentId = log.Id, - IsDeleted = false - }; - Entitys.Add(loginLog); - - MenuEntity loginLogQuery = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "登录查询", - PermissionCode = "monitor:logininfor:query", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = loginLog.Id, - IsDeleted = false - }; - Entitys.Add(loginLogQuery); - - MenuEntity loginLogRemove = new MenuEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - MenuName = "登录删除", - PermissionCode = "monitor:logininfor:remove", - MenuType = MenuTypeEnum.Component.GetHashCode(), - OrderNum = 100, - ParentId = loginLog.Id, - IsDeleted = false - }; - Entitys.Add(loginLogRemove); - return Entitys; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/PostSeed.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/PostSeed.cs deleted file mode 100644 index 996a3d0a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/PostSeed.cs +++ /dev/null @@ -1,58 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Enum; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.Model.RABC.SeedData -{ - public class PostSeed : AbstractSeed - { - public override List GetSeed() - { - PostEntity Post1 = new PostEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - PostName = "董事长", - PostCode = "ceo", - OrderNum = 100, - IsDeleted = false - }; - Entitys.Add(Post1); - - PostEntity Post2 = new PostEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - PostName = "项目经理", - PostCode = "se", - OrderNum = 100, - IsDeleted = false - }; - Entitys.Add(Post2); - - PostEntity Post3 = new PostEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - PostName = "人力资源", - PostCode = "hr", - OrderNum = 100, - IsDeleted = false - }; - Entitys.Add(Post3); - - PostEntity Post4 = new PostEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - PostName = "普通员工", - PostCode = "user", - OrderNum = 100, - IsDeleted = false - }; - Entitys.Add(Post4); - return Entitys; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/RoleSeed.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/RoleSeed.cs deleted file mode 100644 index b4c01fe1..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/RoleSeed.cs +++ /dev/null @@ -1,43 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Enum; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.Model.RABC.SeedData -{ - public class RoleSeed : AbstractSeed - { - public override List GetSeed() - { - RoleEntity role1 = new RoleEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - RoleName = "管理员", - RoleCode = "admin", - DataScope = DataScopeEnum.ALL.GetHashCode(), - OrderNum = 999, - Remark = "管理员", - IsDeleted = false - }; - Entitys.Add(role1); - - RoleEntity role2 = new RoleEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - RoleName = "测试角色", - RoleCode = "test", - DataScope = DataScopeEnum.ALL.GetHashCode(), - OrderNum = 1, - Remark = "测试用的角色", - IsDeleted = false - }; - Entitys.Add(role2); - - return Entitys; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/SeedFactory.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/SeedFactory.cs deleted file mode 100644 index d883ad14..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/SeedFactory.cs +++ /dev/null @@ -1,74 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.Model.RABC.SeedData -{ - public class SeedFactory - { - public static List GetUserSeed() - { - return new UserSeed().GetSeed(); - } - public static List GetRoleSeed() - { - return new RoleSeed().GetSeed(); - } - public static List GetMenuSeed() - { - return new MenuSeed().GetSeed(); - } - public static List GetDictionarySeed() - { - return new DictionarySeed().GetSeed(); - } - public static List GetPostSeed() - { - return new PostSeed().GetSeed(); - } - - public static List GetDictionaryInfoSeed() - { - return new DictionaryInfoSeed().GetSeed(); - } - - public static List GetDeptSeed() - { - return new DeptSeed().GetSeed(); - } - - public static List GetFileSeed() - { - return new FileSeed().GetSeed(); - } - public static List GetUserRoleSeed(List users, List roles) - { - List userRoleEntities = new(); - foreach (var u in users) - { - foreach (var r in roles) - { - userRoleEntities.Add(new UserRoleEntity() { Id = SnowFlakeSingle.Instance.NextId(), UserId = u.Id, RoleId = r.Id, IsDeleted = false }); - } - } - return userRoleEntities; - } - - public static List GetRoleMenuSeed(List roles, List menus) - { - List roleMenuEntities = new(); - foreach (var r in roles) - { - foreach (var m in menus) - { - roleMenuEntities.Add(new RoleMenuEntity() { Id = SnowFlakeSingle.Instance.NextId(), RoleId = r.Id, MenuId = m.Id, IsDeleted = false }); - } - } - return roleMenuEntities; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/UserSeed.cs b/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/UserSeed.cs deleted file mode 100644 index 119814af..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/RABC/SeedData/UserSeed.cs +++ /dev/null @@ -1,58 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.Model.RABC.SeedData -{ - public class UserSeed : AbstractSeed - { - public override List GetSeed() - { - UserEntity user1 = new UserEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - Name = "大橙子", - UserName = "cc", - Nick = "橙子", - Password = "123456", - Email = "454313500@qq.com", - Phone = "13800000000", - Sex = 0, - Address = "深圳", - Age = 20, - Introduction = "还有谁?", - OrderNum = 999, - Remark = "描述是什么呢?", - IsDeleted = false - }; - user1.BuildPassword(); - Entitys.Add(user1); - - UserEntity user2 = new UserEntity() - { - Id = SnowFlakeSingle.Instance.NextId(), - Name = "大测试", - UserName = "test", - Nick = "测试", - Password = "123456", - Email = "454313500@qq.com", - Phone = "15900000000", - Sex = 0, - Address = "深圳", - Age = 18, - Introduction = "还有我!", - OrderNum = 1, - Remark = "我没有描述!", - IsDeleted = false - }; - user2.BuildPassword(); - Entitys.Add(user2); - - return Entitys; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/CategoryEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/CategoryEntity.cs deleted file mode 100644 index 1fe7ef63..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/CategoryEntity.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.SHOP.Entitys -{ - /// - /// 商品分类表 - /// - [SugarTable("Category")] - public partial class CategoryEntity : IBaseModelEntity - { - public CategoryEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 父级id - /// - [SugarColumn(ColumnName = "ParentId")] - public long? ParentId { get; set; } - /// - /// 分类名称 - /// - [SugarColumn(ColumnName = "CategoryName")] - public string? CategoryName { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - - [SugarColumn(IsIgnore = true)] - public List? Children { get; set; } - - - [Navigate(NavigateType.OneToMany, nameof(SpecsGroupEntity.CategoryId))] - public List? SpecsGroups { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/SkuEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/SkuEntity.cs deleted file mode 100644 index 1d7a5129..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/SkuEntity.cs +++ /dev/null @@ -1,102 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.SHOP.Entitys -{ - /// - /// Sku表 - /// - [SugarTable("Sku")] - public partial class SkuEntity : IBaseModelEntity - { - public SkuEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// SpuId - /// - [SugarColumn(ColumnName = "SpuId")] - public long? SpuId { get; set; } - /// - /// 库存 - /// - [SugarColumn(ColumnName = "Stock")] - public int? Stock { get; set; } - /// - /// 价格 - /// - [SugarColumn(ColumnName = "Price")] - public int? Price { get; set; } - - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - - /// - /// 规格sku信息 - /// - [SugarColumn(ColumnName = "SpecsSkuInfo", IsJson = true)] - public List? SpecsSkuInfo { get; set; } - /// - /// 规格sku完整信息 - /// - [SugarColumn(ColumnName = "SpecsSkuAllInfo", IsJson = true)] - public List? SpecsSkuAllInfo { get; set; } - } - - public class SpecsSkuAllInfoModel - { - public string? SpecsGroupName { get; set; } - public string? SpecsName { get; set; } - } - public class SpecsSkuInfoModel - { - public long? SpecsGroupId { get; set; } - public long? SpecsId { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/SpecsEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/SpecsEntity.cs deleted file mode 100644 index 03b3482f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/SpecsEntity.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.SHOP.Entitys -{ - /// - /// 商品规格表 - /// - [SugarTable("Specs")] - public partial class SpecsEntity : IBaseModelEntity - { - public SpecsEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 商品规格组id - /// - [SugarColumn(ColumnName = "SpecsGroupId")] - public long? SpecsGroupId { get; set; } - /// - /// 商品规格名 - /// - [SugarColumn(ColumnName = "SpecsName")] - public string? SpecsName { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/SpecsGroupEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/SpecsGroupEntity.cs deleted file mode 100644 index a1683818..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/SpecsGroupEntity.cs +++ /dev/null @@ -1,77 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.SHOP.Entitys -{ - /// - /// 商品规格组表 - /// - [SugarTable("SpecsGroup")] - public partial class SpecsGroupEntity : IBaseModelEntity - { - public SpecsGroupEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 分类id - /// - [SugarColumn(ColumnName = "CategoryId")] - public long? CategoryId { get; set; } - /// - /// 商品规格组名 - /// - [SugarColumn(ColumnName = "SpecsGroupName")] - public string? SpecsGroupName { get; set; } - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } - - [Navigate(NavigateType.OneToMany, nameof(SpecsEntity.SpecsGroupId))] - public List? Specses { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/SpuEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/SpuEntity.cs deleted file mode 100644 index 90a5d6bf..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/SHOP/Entitys/SpuEntity.cs +++ /dev/null @@ -1,108 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.Json.Serialization; -using SqlSugar; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.Model.SHOP.Entitys -{ - /// - /// Spu表 - /// - [SugarTable("Spu")] - public partial class SpuEntity : IBaseModelEntity - { - public SpuEntity() - { - CreateTime = DateTime.Now; - } - [JsonConverter(typeof(ValueToStringConverter))] - [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] - public long Id { get; set; } - /// - /// 商品分类Id - /// - [SugarColumn(ColumnName = "CategoryId")] - public long? CategoryId { get; set; } - /// - /// 商品名称 - /// - [SugarColumn(ColumnName = "SpuName")] - public string? SpuName { get; set; } - /// - /// 商品详情 - /// - [SugarColumn(ColumnName = "Details")] - public string? Details { get; set; } - /// - /// 商品价格 - /// - [SugarColumn(ColumnName = "Price")] - public string? Price { get; set; } - - /// - /// 创建者 - /// - [SugarColumn(ColumnName = "CreateUser")] - public long? CreateUser { get; set; } - /// - /// 创建时间 - /// - [SugarColumn(ColumnName = "CreateTime")] - public DateTime? CreateTime { get; set; } - /// - /// 修改者 - /// - [SugarColumn(ColumnName = "ModifyUser")] - public long? ModifyUser { get; set; } - /// - /// 修改时间 - /// - [SugarColumn(ColumnName = "ModifyTime")] - public DateTime? ModifyTime { get; set; } - /// - /// 是否删除 - /// - [SugarColumn(ColumnName = "IsDeleted")] - public bool? IsDeleted { get; set; } - /// - /// 租户Id - /// - [SugarColumn(ColumnName = "TenantId")] - public long? TenantId { get; set; } - /// - /// 排序字段 - /// - [SugarColumn(ColumnName = "OrderNum")] - public int? OrderNum { get; set; } - /// - /// 描述 - /// - [SugarColumn(ColumnName = "Remark")] - public string? Remark { get; set; } /// - /// 规格Spu完整信息 - /// - [SugarColumn(ColumnName = "SpecsAllInfo", IsJson = true)] - public List? SpecsSpuAllInfo { get; set; } - /// - /// 规格Spu信息 - /// - [SugarColumn(ColumnName = "SpecsInfo", IsJson = true)] - public List? SpecsSpuInfo { get; set; } - - [Navigate(NavigateType.OneToMany, nameof(SkuEntity.SpuId))] - public List? Skus { get; set; } - } - - public class SpecsSpuAllInfoModel - { - public string? SpecsGroupName { get; set; } - public List? SpecsNames { get; set; } - } - public class SpecsSpuInfoModel - { - public long? SpecsGroupId { get; set; } - public List? SpecsIds { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Yi - Backup (1).Framework.Model.csproj b/Yi.Framework.Net6/Yi.Framework.Model/Yi - Backup (1).Framework.Model.csproj deleted file mode 100644 index a18e350c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Yi - Backup (1).Framework.Model.csproj +++ /dev/null @@ -1,59 +0,0 @@ - - - - net5.0 - - - - - True - True - T4DataContext.tt - - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - - - - TextTemplatingFileGenerator - T4DaraContext.cs - - - TextTemplatingFileGenerator - T4DataContext.cs - - - - - - - - - - True - True - T4DaraContext.tt - - - True - True - T4DataContext.tt - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Yi - Backup (2).Framework.Model.csproj b/Yi.Framework.Net6/Yi.Framework.Model/Yi - Backup (2).Framework.Model.csproj deleted file mode 100644 index 5b11fbb3..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Yi - Backup (2).Framework.Model.csproj +++ /dev/null @@ -1,59 +0,0 @@ - - - - net6.0 - - - - - True - True - T4DataContext.tt - - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - - - - TextTemplatingFileGenerator - T4DaraContext.cs - - - TextTemplatingFileGenerator - T4DataContext.cs - - - - - - - - - - True - True - T4DaraContext.tt - - - True - True - T4DataContext.tt - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Yi - Backup (3).Framework.Model.csproj b/Yi.Framework.Net6/Yi.Framework.Model/Yi - Backup (3).Framework.Model.csproj deleted file mode 100644 index b9873517..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Yi - Backup (3).Framework.Model.csproj +++ /dev/null @@ -1,44 +0,0 @@ - - - - net6.0 - - - - - - - - - - - - - - - - - - - - - - - TextTemplatingFileGenerator - T4DaraContext.cs - - - - - - - - - - True - True - T4DaraContext.tt - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Yi - Backup.Framework.Model.csproj b/Yi.Framework.Net6/Yi.Framework.Model/Yi - Backup.Framework.Model.csproj deleted file mode 100644 index 7cfe4b70..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Yi - Backup.Framework.Model.csproj +++ /dev/null @@ -1,23 +0,0 @@ - - - - net5.0 - - - - - - - - - - - - - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Yi.Framework.Model.csproj b/Yi.Framework.Net6/Yi.Framework.Model/Yi.Framework.Model.csproj deleted file mode 100644 index 65794c4f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Model/Yi.Framework.Model.csproj +++ /dev/null @@ -1,57 +0,0 @@ - - - - net6.0 - enable - - - - 1701;1702 - - - - 1701;1702 - - - - - - - - - - - - - - TextTemplatingFileGenerator - T4DaraContext.cs - - - TextTemplatingFileGenerator - T4DataContext.cs - - - - - - - - - - True - True - T4DaraContext.tt - - - True - True - T4DataContext.tt - - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/AbstractBuilder.cs b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/AbstractBuilder.cs deleted file mode 100644 index 29f7946d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/AbstractBuilder.cs +++ /dev/null @@ -1,25 +0,0 @@ -namespace Yi.Framework.OcelotGateway.Builder -{ - public abstract class AbstractBuilder - { - - public abstract void Invoke(DataContext data); - - private AbstractBuilder? NextBuilder=null; - - - public void SetNext(AbstractBuilder? nextBuilder) - { - this.NextBuilder = nextBuilder; - } - - public void Next( DataContext data) - { - if (NextBuilder != null) - { - this.NextBuilder!.Invoke(data!); - } - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/AccoutBuilder.cs b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/AccoutBuilder.cs deleted file mode 100644 index 871a320e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/AccoutBuilder.cs +++ /dev/null @@ -1,22 +0,0 @@ - -using Yi.Framework.Common.Models; - -namespace Yi.Framework.OcelotGateway.Builder -{ - public class AccoutBuilder : AbstractBuilder - { - - public override void Invoke(DataContext data) - { - //直接放行,并需要鉴权 - if (data!.AccountPathList!.Contains(data.Path!)) - { - data.Result = Result.Success(); - } - else//剩下的这个,就是最后真正的业务判断 - { - base.Next(data); - } - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/DataContext.cs b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/DataContext.cs deleted file mode 100644 index 19d5f9ac..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/DataContext.cs +++ /dev/null @@ -1,43 +0,0 @@ -using Microsoft.AspNetCore.Http; -using System.Collections.Generic; -using Yi.Framework.Common.Models; -using Yi.Framework.Core.Cache; - -namespace Yi.Framework.OcelotGateway.Builder -{ - public class DataContext - { - //访问路径 - public string? Path { get; set; } - - //是否为用于刷新的token - public bool? IsRe { get; set; } = false; - - //刷新令牌的路径 - public string? RefreshPath { get; set; } - - //用户白名单 - public List? UserWhitePathList { get; set; } - - //白名单路径 - public List? WhitePathList { get; set; } - - //直接放行但是需要鉴权 - public List? AccountPathList { get; set; } - - /// - /// 租户白名单 - /// - public List? TenantPathList { get; set; } - - //public UserRoleMenuEntity? UserRoleMenuEntity { get; set; } - - //最终的结果 - public Result Result { get; set; } = Result.UnAuthorize(); - - public HttpContext? Context { get; set; } - - public CacheInvoker? DB { get; set; } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/GateStartBuilder.cs b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/GateStartBuilder.cs deleted file mode 100644 index f2d419e4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/GateStartBuilder.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System.Linq; -using System.Text; - -namespace Yi.Framework.OcelotGateway.Builder -{ - public static class GateStartBuilder - { - public static void Run(DataContext dataContext) - { - Handler(dataContext); - //基础 - AbstractBuilder whitelistBuilder = new WhiteListBuilder(); - AbstractBuilder tokenBuilder = new TokenBuilder(); - AbstractBuilder refreshBuilder = new RefreshBuilder(); - AbstractBuilder accoutBuilder = new AccoutBuilder(); - - //额外 - AbstractBuilder tenantBuilder = new TenantBuilder(); - AbstractBuilder userWhitelist = new UserWhitelistBuilder(); - - //最终 - AbstractBuilder menuBuilder = new MenuBuilder(); - - - whitelistBuilder.SetNext(tokenBuilder); - tokenBuilder.SetNext(refreshBuilder); - refreshBuilder.SetNext(accoutBuilder); - accoutBuilder.SetNext(tenantBuilder); - tenantBuilder.SetNext(userWhitelist); - userWhitelist.SetNext(menuBuilder); - whitelistBuilder.Invoke(dataContext); - } - - public static void Handler(DataContext dataContext) - { - dataContext.Path = dataContext.Path!.ToUpper(); - dataContext.RefreshPath = dataContext.RefreshPath!.ToUpper(); - dataContext.WhitePathList = dataContext.WhitePathList!.Select(white => white.ToUpper()).ToList(); - dataContext.AccountPathList = dataContext.AccountPathList!.Select(white => white.ToUpper()).ToList(); - dataContext.TenantPathList = dataContext.TenantPathList!.Select(white => white.ToUpper()).ToList(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/MenuBuilder.cs b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/MenuBuilder.cs deleted file mode 100644 index 0e60feeb..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/MenuBuilder.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Yi.Framework.Common.Models; - -namespace Yi.Framework.OcelotGateway.Builder -{ - public class MenuBuilder : AbstractBuilder - { - public override void Invoke(DataContext data) - { - //var redisData = data!.DB!.Get(RedisConst.GetStr(RedisConst.UserRoleMenu, data.UserRoleMenuEntity!.user.Account)); - //if (redisData.IsNotNull()) - //{ - // var menus = redisData.menus; - // if (menus.Where(u=> u.TypeCode == (short)MenuTypeEnum.Hide).Select(u => u.UrlControl.ToUpper()).Contains(data.Path)) - // { - - // data.Result = Result.Success(); - // } - // else - // { - // data.Result = Result.SuccessError("当前令牌无接口权限"); - // } - //} - //else - //{ - // data.Result = Result.UnAuthorize("用户信息已经过期"); - //} - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/RefreshBuilder.cs b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/RefreshBuilder.cs deleted file mode 100644 index 1afd822e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/RefreshBuilder.cs +++ /dev/null @@ -1,26 +0,0 @@ - -using Yi.Framework.Common.Models; - -namespace Yi.Framework.OcelotGateway.Builder -{ - public class RefreshBuilder : AbstractBuilder - { - public override void Invoke(DataContext data) - { - //如果是刷新令牌 - if ((bool)data!.IsRe!) - { - //且访问路径还是正确的 - if (data.Path == data.RefreshPath) - { - data.Result = Result.Success(); - } - } - else//表示不是刷新的token,就要去redis里面判断了 - { - - base.Next(data); - } - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/TenantBuilder.cs b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/TenantBuilder.cs deleted file mode 100644 index a8c1641e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/TenantBuilder.cs +++ /dev/null @@ -1,22 +0,0 @@ - -using Yi.Framework.Common.Models; - -namespace Yi.Framework.OcelotGateway.Builder -{ - public class TenantBuilder : AbstractBuilder - { - public override void Invoke(DataContext data) - { - - if (data!.TenantPathList!.Contains(""/*data.UserRoleMenuEntity!.tenant.TenantName*/)) - { - data.Result = Result.Success(); - } - else - { - base.Next(data); - } - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/TokenBuilder.cs b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/TokenBuilder.cs deleted file mode 100644 index 55cdb874..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/TokenBuilder.cs +++ /dev/null @@ -1,42 +0,0 @@ - -namespace Yi.Framework.OcelotGateway.Builder -{ - public class TokenBuilder : AbstractBuilder - { - public override void Invoke(DataContext data) - { - //先鉴权 - //var userRoleMenuEntity = data!.Context.GetCurrentUserInfo(); - - - - - ////鉴权失败表示没有带token - //if (userRoleMenuEntity.IsNull()) - //{ - // //访问的路径是刷新令牌的,失败了直接返回令牌刷新失败 - // if (data.Path == data.RefreshPath) - // { - // data.Result = Result.Expire(ResultCode.RefreshTokenExpire); - // } - - //} - //else//鉴权成功,访问含有token - //{ - // //将数据存入上下文对象中 - // data.UserRoleMenuEntity = userRoleMenuEntity; - // if (userRoleMenuEntity.RefreshToken == "true") - // { - // data.IsRe = true; - // } - // data.Context!.Request.Headers.Add("Account", userRoleMenuEntity.user.Account); - // data.Context!.Request.Headers.Add("Id", userRoleMenuEntity.user.Id.ToString()); - // data.Context!.Request.Headers.Add("Name", userRoleMenuEntity.user.Name); - // data.Context!.Request.Headers.Add("TenantId", userRoleMenuEntity.user.TenantId.ToString()); - // data.Context!.Request.Headers.Add("TenantLevel", userRoleMenuEntity.tenant.TenantLevel.ToString()); - base.Next(data); - - //} - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/UserWhiteListBuilder.cs b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/UserWhiteListBuilder.cs deleted file mode 100644 index d992f23f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/UserWhiteListBuilder.cs +++ /dev/null @@ -1,18 +0,0 @@ - -namespace Yi.Framework.OcelotGateway.Builder -{ - public class UserWhitelistBuilder : AbstractBuilder - { - public override void Invoke(DataContext data) - { - //if (data!.UserWhitePathList!.Contains(data.UserRoleMenuEntity!.user.Account)) - //{ - // data.Result = Result.Success(); - //} - //else - { - base.Next(data); - } - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/WhiteListBuilder.cs b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/WhiteListBuilder.cs deleted file mode 100644 index 8b270e1f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Builder/WhiteListBuilder.cs +++ /dev/null @@ -1,29 +0,0 @@ - -using Yi.Framework.Common.Models; - -namespace Yi.Framework.OcelotGateway.Builder -{ - public class WhiteListBuilder : AbstractBuilder - { - public override void Invoke(DataContext data) - { - //如果在白名单,直接通行 - if (data!.WhitePathList!.Contains(data.Path!)) - { - - data.Result = Result.Success(); - } - //访问的是swagger - else if (data.Path!.Split("/")[1].ToUpper() == "swagger".ToUpper()) - { - data.Result = Result.Success(); - } - else//否则进入下一个管道处理 - { - - base.Next(data); - } - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Config/Log4net.config b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Config/Log4net.config deleted file mode 100644 index 958c7e78..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Config/Log4net.config +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Config/SwaggerDoc.xml b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Config/SwaggerDoc.xml deleted file mode 100644 index 35176192..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Config/SwaggerDoc.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - Yi.Framework.OcelotGateway - - - - - 租户白名单 - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Program.cs b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Program.cs deleted file mode 100644 index c2e35d88..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Program.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.OcelotGateway -{ - public class Program - { - public static void Main(string[] args) - { - CreateHostBuilder(args).Build().Run(); - } - - public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureAppConfiguration((hostBuilderContext, configurationBuilder) => - { - configurationBuilder.AddCommandLine(args); - configurationBuilder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false); - configurationBuilder.AddJsonFile("configuration.json", optional: false, reloadOnChange: true); - #region - //Apollo - #endregion - //configurationBuilder.AddApolloService("Yi"); - }) - .ConfigureLogging(loggingBuilder => - { - loggingBuilder.AddFilter("System", Microsoft.Extensions.Logging.LogLevel.Warning); - loggingBuilder.AddFilter("Microsoft", Microsoft.Extensions.Logging.LogLevel.Warning); - loggingBuilder.AddLog4Net(); - }) - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup().UseUrls("http://*:7200"); - }); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Startup.cs b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Startup.cs deleted file mode 100644 index ba3dee1c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Startup.cs +++ /dev/null @@ -1,80 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.HttpsPolicy; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using Microsoft.OpenApi.Models; -using Ocelot.DependencyInjection; -using Ocelot.Middleware; -using Ocelot.Provider.Consul; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Ocelot.Cache.CacheManager; -using Ocelot.Provider.Polly; -using Yi.Framework.WebCore.AspNetCoreExtensions; - -namespace Yi.Framework.OcelotGateway -{ - public class Startup - { - public Startup(IConfiguration configuration) - { - Configuration = configuration; - } - - public IConfiguration Configuration { get; } - - // This method gets called by the runtime. Use this method to add services to the container. - public void ConfigureServices(IServiceCollection services) - { - - services.AddControllers(); - #region - // - #endregion - services.AddCorsService(); - - #region - //ط - #endregion - services.AddOcelot().AddConsul().AddCacheManager(x =>{x.WithDictionaryHandle();}).AddPolly(); - - #region - //Swagger - #endregion - services.AddSwaggerService("Yi.Framework.OcelotGateway"); - #region - //JwtȨ - #endregion - services.AddJwtService(); - } - - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IWebHostEnvironment env) - { - //if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - #region - //Swaggerע - #endregion - app.UseSwaggerService(new SwaggerModel("api/api/swagger/v1/swagger.json","API"), new SwaggerModel("api/item/swagger/v1/swagger.json", "̬ҳ")); - } - #region - //طע - #endregion - app.UseOcelot(); - - #region - //Ȩע - #endregion - app.UseAuthentication(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/WebCore/OcelotExtension.cs b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/WebCore/OcelotExtension.cs deleted file mode 100644 index f5e8f673..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/WebCore/OcelotExtension.cs +++ /dev/null @@ -1,65 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Http; -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.IOCOptions; -using Yi.Framework.Core.Cache; -using Yi.Framework.OcelotGateway.Builder; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.OcelotGateway.WebCore -{ - public class OcelotMiddleware - { - private readonly RequestDelegate next; - private CacheInvoker _cacheClientDB; - public OcelotMiddleware(RequestDelegate next, CacheInvoker cacheClientDB) - { - this.next = next; - this._cacheClientDB = cacheClientDB; - - } - public async Task Invoke(HttpContext context) - { - //--------------------------------------访问路径-------------------------------------------- - var path = context.Request.Path.Value!; - var authorizationOptions= Appsettings.app("AuthorizationOptions"); - //-------------------------------------刷新令牌路径----------------------------------------------- - string refresh = authorizationOptions.Refresh; - //-------------------------------------白名单------------------------------------------------ - List whiteList = authorizationOptions.WhiteList; - //------------------------------------白名单需鉴权------------------------------------------ - List accountList = authorizationOptions.AccountList; - //------------------------------------用户白名单------------------------------------------ - List userList = authorizationOptions.UserList; - //------------------------------------租户白名单------------------------------------------ - List tenantList = authorizationOptions.TenantList; - - - //--------------------------------------开始组装管道--------------------------------------------- - DataContext dataContext = new() {TenantPathList= tenantList, Context = context,UserWhitePathList=userList, AccountPathList = accountList, WhitePathList = whiteList, RefreshPath = refresh, Path = path, DB = _cacheClientDB }; - //--------------------------------------管道执行--------------------------------------------- - GateStartBuilder.Run(dataContext); - //--------------------------------------处理结果--------------------------------------------- - if (dataContext.Result.Status) - { - //--------------------------------------中间件执行--------------------------------------------- - await next(context); - } - else - { - context.Response.ContentType = "application/json;charset=utf-8"; - await context.Response.WriteAsync(Common.Helper.JsonHelper.ObjToStr(dataContext.Result)); - } - } - - } - - public static class OcelotExtensions - { - public static IApplicationBuilder UseOcelotExtensionService(this IApplicationBuilder builder) - { - return builder.UseMiddleware(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Yi.Framework.OcelotGateway.csproj b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Yi.Framework.OcelotGateway.csproj deleted file mode 100644 index 3ddebcc9..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Yi.Framework.OcelotGateway.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - net6.0 - enable - - - - ./Config/SwaggerDoc.xml - 1701;1702;CS1591 - - - - - - - - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/appsettings.json b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/appsettings.json deleted file mode 100644 index 3d943a6e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/appsettings.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - "AllowedHosts": "*", - "Apollo": { - "AppId": "Yi.Framework.OcelotGateway", - "Env": "DEV", - "MetaServer": "http://192.168.2.168:8080", - "ConfigServer": [ "http://192.168.2.168:8080" ] - }, - "JWTTokenOptions": { - "Audience": "http://localhost:7000", - "Issuer": "http://localhost:7000", - "SecurityKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDI2a2EJ7m872v0afyoSDJT2o1+SitIeJSWtLJU8/Wz2m7gStexajkeD+Lka6DSTy8gt9UwfgVQo6uKjVLG5Ex7PiGOODVqAEghBuS7JzIYU5RvI543nNDAPfnJsas96mSA7L/mD7RTE2drj6hf3oZjJpMPZUQI/B1Qjb5H3K3PNwIDAQAB" - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/configuration.json b/Yi.Framework.Net6/Yi.Framework.OcelotGateway/configuration.json deleted file mode 100644 index eb0d3d85..00000000 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/configuration.json +++ /dev/null @@ -1,432 +0,0 @@ -////*****************************单地址多实例负载均衡+Consul******************************** -//{ -// "Routes": [ -// { -// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量 -// "DownstreamScheme": "http", -// "UpstreamPathTemplate": "/T/{url}", //网关地址--url变量 -// "UpstreamHttpMethod": [ "Get", "Post" ], -// "UseServiceDiscovery": true, -// "ServiceName": "ZhaoxiService", //consul服务名称 -// "LoadBalancerOptions": { -// "Type": "RoundRobin" //轮询 LeastConnection-最少连接数的服务器 NoLoadBalance不负载均衡 -// } -// } -// ], -// "GlobalConfiguration": { -// "BaseUrl": "http://127.0.0.1:6299", //网关对外地址 -// "ServiceDiscoveryProvider": { -// "Host": "47.95.2.2", -// "Port": 8089, -// "Type": "Consul" //由Consul提供服务发现, 每次请求去consul -// } //Ocelot没有支持配置多个Consul - -// //,"ServiceDiscoveryProvider": { -// // "Host": "localhost", -// // "Port": 8500, -// // "Type": "PollConsul", //由Consul提供服务发现, -// // "PollingInterval": 1000 //轮询consul,频率毫秒--down掉是不知道的 -// // //"Token": "footoken"//需要ACL的话 -// //} -// } -//} - - - -//*****************************Ocelot+Consul******************************** -{ - "Routes": [ - { - "UpstreamPathTemplate": "api/api/{url}", //上游请求地址--网关 - "UpstreamHttpMethod": [ "Get", "Post", "Put", "PATCH", "Delete", "Options" ], - "UseServiceDiscovery": true, - "ServiceName": "ApiMicroservice", - "LoadBalancerOptions": { - "Type": "RoundRobin" //轮询 LeastConnection-最少连接数的服务器 NoLoadBalance不负载均衡 - }, - "DownstreamPathTemplate": "api/api/{url}", //服务地址--url变量 - "DownstreamScheme": "https", - "DownstreamHeaderTransform": { - "Access-Control-Allow-Origin": "*", //不存在就添加 - "Access-Control-Allow-Methods": "*", - "Access-Control-Allow-Headers": "*" - } - }, - { - "UpstreamPathTemplate": "api/item/{url}", //上游请求地址--网关 - "UpstreamHttpMethod": [ "Get", "Post", "Put", "PATCH", "Delete", "Options" ], - "UseServiceDiscovery": true, - "ServiceName": "PageDetail", - "LoadBalancerOptions": { - "Type": "RoundRobin" //轮询 LeastConnection-最少连接数的服务器 NoLoadBalance不负载均衡 - }, - "DownstreamPathTemplate": "api/item/{url}", //服务地址--url变量 - "DownstreamScheme": "https", - "DownstreamHeaderTransform": { - "Access-Control-Allow-Origin": "*", //不存在就添加 - "Access-Control-Allow-Methods": "*", - "Access-Control-Allow-Headers": "*" - } - } - ], - "GlobalConfiguration": { - "BaseUrl": "http://127.0.0.1:7200", //网关对外地址 - "ServiceDiscoveryProvider": { - "Host": "192.168.2.128", - "Port": 8500, - "Type": "Consul" //由Consul提供服务发现, 每次请求去consul - }, - "RateLimitOptions": { - "QuotaExceededMessage": "你的请求过于频繁,请稍后再试!", // 当请求过载被截断时返回的消息 - "HttpStatusCode": 666 // 当请求过载被截断时返回的http status - //"ClientIdHeader": "client_id" // 用来识别客户端的请求头,默认是 ClientId - } - - //,"ServiceDiscoveryProvider": { - // "Host": "localhost", - // "Port": 8500, - // "Type": "PollConsul", //由Consul提供服务发现, - // "PollingInterval": 1000 //轮询consul,频率毫秒--down掉是不知道的 - // //"Token": "footoken"//需要ACL的话 - //} - } -} - -////*****************************单地址--无Consul******************************** -//{ -// "Routes": [ -// { -// "UpstreamPathTemplate": "/api/auth/{url}", //上游请求地址--网关 -// "UpstreamHttpMethod": [ "Get", "Post", "Put", "PATCH", "Delete", "Options" ], -// "DownstreamHostAndPorts": [ -// { -// "Host": "localhost", -// "Port": 7200 //网关api 端口 -// } -// ], -// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量 -// "DownstreamScheme": "http", -// "DownstreamHeaderTransform": { -// "Access-Control-Allow-Origin": "*", //不存在就添加 -// "Access-Control-Allow-Methods": "*", -// "Access-Control-Allow-Headers": "*" -// } -// } -// ] -//} - -////*****************************单地址全匹配******************************** -//{ -// "Routes": [ -// { -// "DownstreamPathTemplate": "/{url}", //服务地址--url变量 -// "DownstreamScheme": "http", -// "DownstreamHostAndPorts": [ -// { -// "Host": "localhost", -// "Port": 5726 //服务端口 -// } -// ], -// "UpstreamPathTemplate": "/{url}", //网关地址--url变量 //冲突的还可以加权重Priority -// "UpstreamHttpMethod": [ "Get", "Post" ] -// } -// ] -//} - -////*****************************多地址多实例******************************** -//{ -// "Routes": [ -// { -// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量 -// "DownstreamScheme": "http", -// "DownstreamHostAndPorts": [ -// { -// "Host": "localhost", -// "Port": 5726 //服务端口 -// } -// ], -// "UpstreamPathTemplate": "/T5726/{url}", //网关地址--url变量 -// "UpstreamHttpMethod": [ "Get", "Post" ] -// }, -// { -// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量 -// "DownstreamScheme": "http", -// "DownstreamHostAndPorts": [ -// { -// "Host": "localhost", -// "Port": 5727 //服务端口 -// } -// ], -// "UpstreamPathTemplate": "/T5727/{url}", //网关地址--url变量 -// "UpstreamHttpMethod": [ "Get", "Post" ] -// }, -// { -// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量 -// "DownstreamScheme": "http", -// "DownstreamHostAndPorts": [ -// { -// "Host": "localhost", -// "Port": 5728 //服务端口 -// } -// ], -// "UpstreamPathTemplate": "/T5728/{url}", //网关地址--url变量 -// "UpstreamHttpMethod": [ "Get", "Post" ] -// } -// ] -//} - -//////MVC的路由规则是近水楼台先得月-- -////*****************************路由冲突+带权匹配******************************** -//{ -// "Routes": [ -// { -// "DownstreamPathTemplate": "/{url}", //服务地址--url变量 -// "DownstreamScheme": "http", -// "DownstreamHostAndPorts": [ -// { -// "Host": "localhost", -// "Port": 5726 //服务端口 -// } -// ], -// "UpstreamPathTemplate": "/{url}", //网关地址--url变量 //冲突的还可以加权重Priority -// "UpstreamHttpMethod": [ "Get", "Post" ], -// "Priority": 0 //默认是0 加个1 -// }, -// { -// "DownstreamPathTemplate": "/api/users/get?id={id}", //服务地址--url变量 -// "DownstreamScheme": "http", -// "DownstreamHostAndPorts": [ -// { -// "Host": "localhost", -// "Port": 5727 //服务端口 -// } -// ], -// "UpstreamPathTemplate": "/api/users/get/{id}", //网关地址--url变量 //冲突的还可以加权重Priority -// "UpstreamHttpMethod": [ "Get", "Post" ], -// "Priority": 1 //默认是0 加个1 -// }, -// { -// "DownstreamPathTemplate": "/api/users/{url}?id={id}", //服务地址--url变量 -// "DownstreamScheme": "http", -// "DownstreamHostAndPorts": [ -// { -// "Host": "localhost", -// "Port": 5728 //服务端口 -// } -// ], -// "UpstreamPathTemplate": "/api/users/{url}/{id}", //网关地址--url变量 //冲突的还可以加权重Priority -// "UpstreamHttpMethod": [ "Get", "Post" ], -// "Priority": 2 //默认是0 加个1 -// } -// ] -//} - -////*****************************单地址多实例负载均衡******************************** -//{ -// "Routes": [ -// { -// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量 -// "DownstreamScheme": "http", -// "DownstreamHostAndPorts": [ -// { -// "Host": "47.95.2.2", -// "Port": 5726 -// }, //Ocelot负载均衡 -// { -// "Host": "47.95.2.2", -// "Port": 5727 -// }, -// { -// "Host": "47.95.2.2", -// "Port": 5728 -// } -// ], -// "UpstreamPathTemplate": "/T/{url}", //网关地址--url变量 //冲突的还可以加权重Priority -// "UpstreamHttpMethod": [ "Get", "Post" ], -// "LoadBalancerOptions": { -// "Type": "RoundRobin" //轮询 //"LeastConnection" //最少连接数的服务器 "NoLoadBalance" //不负载均衡 //"CookieStickySessions" //会话粘滞 // -// } -// //"LoadBalancerOptions": { -// // "Type": "CookieStickySessions", -// // "Key": "ASP.NET_SessionId", -// // "Expiry": 1800000 -// //} -// } -// ] -//} - -////*****************************单地址多实例负载均衡+Consul******************************** -//{ -// "Routes": [ -// { -// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量 -// "DownstreamScheme": "http", -// "UpstreamPathTemplate": "/T/{url}", //网关地址--url变量 -// "UpstreamHttpMethod": [ "Get", "Post" ], -// "UseServiceDiscovery": true, -// "ServiceName": "ZhaoxiService", //consul服务名称 -// "LoadBalancerOptions": { -// "Type": "RoundRobin" //轮询 LeastConnection-最少连接数的服务器 NoLoadBalance不负载均衡 -// } -// } -// ], -// "GlobalConfiguration": { -// "BaseUrl": "http://127.0.0.1:6299", //网关对外地址 -// "ServiceDiscoveryProvider": { -// "Host": "47.95.2.2", -// "Port": 8089, -// "Type": "Consul" //由Consul提供服务发现, 每次请求去consul -// } //Ocelot没有支持配置多个Consul - -// //,"ServiceDiscoveryProvider": { -// // "Host": "localhost", -// // "Port": 8500, -// // "Type": "PollConsul", //由Consul提供服务发现, -// // "PollingInterval": 1000 //轮询consul,频率毫秒--down掉是不知道的 -// // //"Token": "footoken"//需要ACL的话 -// //} -// } -//} - -////*****************************Consul+缓存Cache******************************** -//{ -// "Routes": [ -// { -// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量 -// "DownstreamScheme": "http", -// "UpstreamPathTemplate": "/T/{url}", //网关地址--url变量 -// "UpstreamHttpMethod": [ "Get", "Post" ], -// "UseServiceDiscovery": true, -// "ServiceName": "ZhaoxiService", //consul服务名称 -// "LoadBalancerOptions": { -// "Type": "RoundRobin" //轮询 LeastConnection-最少连接数的服务器 NoLoadBalance不负载均衡 -// }, -// "FileCacheOptions": { -// "TtlSeconds": 15, //Second -// "Region": "UserCache" //可以调用Api缓存清理 -// } -// } -// ], -// "GlobalConfiguration": { -// "BaseUrl": "http://127.0.0.1:6299", //网关对外地址 -// "ServiceDiscoveryProvider": { -// "Host": "47.95.2.2", -// "Port": 8089, -// "Type": "Consul" //由Consul提供服务发现, 每次请求去consul -// } -// //"ServiceDiscoveryProvider": { -// // "Host": "localhost", -// // "Port": 8500, -// // "Type": "PollConsul", //由Consul提供服务发现, -// // "PollingInterval": 1000 //轮询consul,频率毫秒--down掉是不知道的 -// // //"Token": "footoken"//需要ACL的话 -// //} -// } -//} - -////*****************************超时+限流+熔断+降级+Consul+Polly******************************** -//{ -// "Routes": [ -// { -// "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量 -// "DownstreamScheme": "http", -// "UpstreamPathTemplate": "/T/{url}", //网关地址--url变量 -// "UpstreamHttpMethod": [ "Get", "Post" ], -// "UseServiceDiscovery": true, -// "ServiceName": "ZhaoxiService", //consul服务名称 -// "LoadBalancerOptions": { -// "Type": "RoundRobin" //轮询 LeastConnection-最少连接数的服务器 NoLoadBalance不负载均衡 -// }, -// "RateLimitOptions": { -// "ClientWhitelist": [ "eleven", "seven" ], //白名单 ClientId 区分大小写 -// "EnableRateLimiting": true, -// "Period": "5m", //1s, 5m, 1h, 1d -// "PeriodTimespan": 30, //多少秒之后客户端可以重试 -// "Limit": 5 //统计时间段内允许的最大请求数量 -// }, -// "AuthenticationOptions": { -// "AuthenticationProviderKey": "UserGatewayKey", -// "AllowedScopes": [] -// }, -// "QoSOptions": { -// "ExceptionsAllowedBeforeBreaking": 3, //允许多少个异常请求 -// "DurationOfBreak": 10000, // 熔断的时间,单位为ms -// "TimeoutValue": 2000 //单位ms 如果下游请求的处理时间超过多少则自如将请求设置为超时 默认90秒 -// } -// //"FileCacheOptions": { -// // "TtlSeconds": 15, -// // "Region": "UserCache" //可以调用Api清理 -// //} -// } -// ], -// "GlobalConfiguration": { -// "BaseUrl": "http://127.0.0.1:6299", //网关对外地址 -// "ServiceDiscoveryProvider": { -// "Host": "47.95.2.2", -// "Port": 8089, -// "Type": "Consul" //由Consul提供服务发现 -// }, -// "RateLimitOptions": { -// "QuotaExceededMessage": "Too many requests, maybe later? 11", // 当请求过载被截断时返回的消息 -// "HttpStatusCode": 666, // 当请求过载被截断时返回的http status -// //"ClientIdHeader": "client_id" // 用来识别客户端的请求头,默认是 ClientId -// } -// } -//} - -////*****************************请求聚合Aggregator******************************** -//{ -// "Routes": [ -// { -// "DownstreamPathTemplate": "/api/users/all", -// "DownstreamScheme": "http", -// "DownstreamHostAndPorts": [ -// { -// "Host": "localhost", -// "Port": 5726 //服务端口 -// } //可以多个,自行负载均衡 -// ], -// "UpstreamPathTemplate": "/T5726/users/all", -// "UpstreamHttpMethod": [ "Get", "Post" ], -// "key": "T5726" -// }, -// { -// "DownstreamPathTemplate": "/api/users/all", -// "DownstreamScheme": "http", -// "DownstreamHostAndPorts": [ -// { -// "Host": "localhost", -// "Port": 5727 //服务端口 -// } -// ], -// "UpstreamPathTemplate": "/T5727/users/all", -// "UpstreamHttpMethod": [ "Get", "Post" ], -// "key": "T5727" -// }, -// { -// "DownstreamPathTemplate": "/api/users/all", -// "DownstreamScheme": "http", -// "DownstreamHostAndPorts": [ -// { -// "Host": "localhost", -// "Port": 5728 //服务端口 -// } -// ], -// "UpstreamPathTemplate": "/T5728/users/all", -// "UpstreamHttpMethod": [ "Get", "Post" ], -// "key": "T5728" -// } -// ], -// "Aggregates": [ -// { -// "RouteKeys": [ -// "T5726", -// "T5727", -// "T5728" -// ], -// "UpstreamPathTemplate": "/UserAggregator", //如果某个404 是不影响返回,当成null -// "Aggregator": "CustomUserAggregator" //自定义聚合器 -// } -// ] -//} - diff --git a/Yi.Framework.Net6/Yi.Framework.Repository/IRepository.cs b/Yi.Framework.Net6/Yi.Framework.Repository/IRepository.cs deleted file mode 100644 index 0e87a040..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Repository/IRepository.cs +++ /dev/null @@ -1,31 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Linq.Expressions; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Model.Base.Query; - -namespace Yi.Framework.Repository -{ - public interface IRepository : ISimpleClient where T : class, new() - { - public ISugarQueryable _DbQueryable { get; set; } - public ISqlSugarClient _Db { get; set; } - public Task UseTranAsync(Func func); - //public Task InsertReturnEntityAsync(T entity); - public Task> StoreAsync(string storeName, object para); - public Task>> CommonPageAsync(QueryPageCondition pars); - public Task> GetListAsync(QueryCondition pars); - //public Task DeleteByLogicAsync(List ids); - public Task UpdateIgnoreNullAsync(T entity); - public Task> UseSqlAsync(string sql, object parameters = null); - public Task UseSqlAsync(string sql, object parameters = null); - ISugarQueryable QueryConditionHandler(QueryCondition pars); - Task UpdateSuperSaveAsync(T data, Expression> columns); - Task> GetListAsync(Expression> where, Expression> order, OrderByType orderByType = OrderByType.Desc); - Task GetFirstAsync(Expression> where, Expression> order, OrderByType orderByType = OrderByType.Desc); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Repository/Repository.cs b/Yi.Framework.Net6/Yi.Framework.Repository/Repository.cs deleted file mode 100644 index cf0eed27..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Repository/Repository.cs +++ /dev/null @@ -1,228 +0,0 @@ -using SqlSugar; -using System.Data; -using System.Linq.Expressions; -using Yi.Framework.Common.Attribute; -using Yi.Framework.Common.Models; -using Yi.Framework.Model.Base.Query; - -/***这里面写的代码不会给覆盖,如果要重新生成请删除 Repository.cs ***/ -namespace Yi.Framework.Repository -{ - /// - /// 仓储模式 - /// - /// - [AppService] - public class Repository : SimpleClient, IRepository where T : class, new() - { - - public ISugarQueryable _DbQueryable { get { return base.Context.Queryable(); } set { } } - - public ISqlSugarClient _Db { get { return base.Context; } set { } } - /// - /// 构造函数 - /// - /// - public Repository(ISqlSugarClient context) : base(context)//注意这里要有默认值等于null - { - ////开始Saas分库! - ////单个公共基础库+多个租户业务库 - - ////1:先判断操作对应实体上是否存在租户特性,如果存在说明是公共库 - //var anyTenant = typeof(T).GetCustomAttributes(false).Any(a => a.GetType().Equals(typeof(TenantAttribute))); - - ////如果是公共库,直接使用默认库即可 - //if (anyTenant) - //{ - // base.Context = _Db.AsTenant().GetConnectionScope("0"); - //} - ////如果不是公共库 - //else - //{ - // //2:根据上下文对象获取用户的租户id、数据库连接串及用户信息 - // string tenantId = "获取用户的租户id"; - // string connection = "获取用户信息中的数据库连接字符串"; - - // //如果该租户未添加到db对象中 - // if (!_Db.AsTenant().IsAnyConnection(tenantId)) - // { - // //添加业务库只在当前上下文有效 - // _Db.AsTenant().AddConnection(new ConnectionConfig() - // { - // ConfigId = tenantId, - // ConnectionString = connection, - // //数据库类型同样可以动态配置 - // DbType = SqlSugar.DbType.MySql, - // IsAutoCloseConnection = true - // }); - // } - // //3:根据租户id获取到对应db对象,替换仓储中的db对象即可 - // base.Context = _Db.AsTenant().GetConnectionScope(tenantId); - //} - //这里有个问题,如果想通过上下文请求获取用户信息,就依赖到web相关。需要进行协调好 - //同时还要考虑动态的业务库初始化问题,这个判断不应该写到仓储中,会很吃性能,可以添加租户、程序启动,两个地方同时进行业务库的数据库初始化判断 - } - - /// - /// 异步事务 - /// - /// - /// - public async Task UseTranAsync(Func func) - { - var con = Context; - var res = await _Db.AsTenant().UseTranAsync(func); - return res.IsSuccess; - - } - - /// - /// 执行查询sql返回dto列表 - /// - /// - /// - /// - public async Task> UseSqlAsync(string sql, object parameters = null) - { - return await _Db.Ado.SqlQueryAsync(sql, parameters); - } - - /// - /// 执行增删改sql返回状态 - /// - /// - /// - public async Task UseSqlAsync(string sql, object parameters) - { - return await _Db.Ado.ExecuteCommandAsync(sql, parameters) > 0; - } - - /// - /// 更新忽略空值 - /// - /// - /// - public async Task UpdateIgnoreNullAsync(T entity) - { - return await _Db.Updateable(entity).IgnoreColumns(true).ExecuteCommandAsync() > 0; - } - - - /// - /// 调用存储过程 - /// - /// - /// - /// - /// - public async Task> StoreAsync(string storeName, object para) - { - return await _Db.Ado.UseStoredProcedure().SqlQueryAsync(storeName, para); - } - - - /// - /// 多条件查询 - /// - /// - /// - public async Task> GetListAsync(QueryCondition pars) - { - return await QueryConditionHandler(pars).ToListAsync(); - } - - /// - /// 仓储扩展方法:单表查询通用分页 - /// - /// - public async Task>> CommonPageAsync(QueryPageCondition pars) - { - RefAsync tolCount = 0; - var result = await QueryConditionHandler(new QueryCondition() { OrderBys = pars.OrderBys, Parameters = pars.Parameters }).ToPageListAsync(pars.Index, pars.Size, tolCount); - return new PageModel> - { - Total = tolCount.Value, - Data = result - }; - } - - - public ISugarQueryable QueryConditionHandler(QueryCondition pars) - { - var sugarParamters = pars.Parameters.Select(it => (IConditionalModel)new ConditionalModel() - { - ConditionalType = it.Type, - FieldName = it.Key, - FieldValue = it.Value - }).ToList(); - var query = _Db.Queryable(); - if (pars.OrderBys != null) - { - foreach (var item in pars.OrderBys) - { - if (pars.IsAsc) - { - query.OrderBy(item.ToSqlFilter() + " asc"); - } - else - { - query.OrderBy(item.ToSqlFilter() + " desc"); - } - } - } - return query.Where(sugarParamters); - } - - - /// - /// 更新高级保存,验证重复 - /// - /// - /// - /// - public async Task UpdateSuperSaveAsync(T data, Expression> columns) - { - var x = _Db.Storageable(data) - .SplitError(it => it.Any()) - .SplitUpdate(it => true) - .WhereColumns(columns)//这里用name作为数据库查找条件 - .ToStorage(); - return await x.AsInsertable.ExecuteCommandAsync() > 0;//插入可插入部分 - } - - /// - /// 添加高级保存,验证重复 - /// - /// - /// - /// - public async Task InsertSuperSaveAsync(T data, Expression> columns) - { - var x = _Db.Storageable(data) - .SplitError(it => it.Any()) - .SplitInsert(it => true) - .WhereColumns(columns)//这里用name作为数据库查找条件 - .ToStorage(); - return await x.AsInsertable.ExecuteCommandAsync() > 0;//插入可插入部分 - } - /// - /// 方法重载,多条件获取第一个值 - /// - /// - public async Task GetFirstAsync(Expression> where, Expression> order, OrderByType orderByType = OrderByType.Desc) - { - return await _Db.Queryable().Where(where).OrderBy(order, orderByType).FirstAsync(); - } - - /// - /// 方法重载,多条件获取范围 - /// - /// - public async Task> GetListAsync(Expression> where, Expression> order, OrderByType orderByType = OrderByType.Desc) - { - return await _Db.Queryable().Where(where).OrderBy(order, orderByType).ToListAsync(); - } - } - - -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Repository/UnitOfWork.cs b/Yi.Framework.Net6/Yi.Framework.Repository/UnitOfWork.cs deleted file mode 100644 index dda5a513..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Repository/UnitOfWork.cs +++ /dev/null @@ -1,11 +0,0 @@ -using SqlSugar; - -namespace Yi.Framework.Repository -{ - /// - /// Sqlsugar自带工作单元,何乐而不为呢? - /// - public class UnitOfWork: SugarUnitOfWork - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Repository/Yi.Framework.Repository.csproj b/Yi.Framework.Net6/Yi.Framework.Repository/Yi.Framework.Repository.csproj deleted file mode 100644 index 4ba9aaad..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Repository/Yi.Framework.Repository.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - net6.0 - enable - disable - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/Log4net.config b/Yi.Framework.Net6/Yi.Framework.SMSProcessor/Log4net.config deleted file mode 100644 index 958c7e78..00000000 --- a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/Log4net.config +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/Program.cs b/Yi.Framework.Net6/Yi.Framework.SMSProcessor/Program.cs deleted file mode 100644 index 02500dc0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/Program.cs +++ /dev/null @@ -1,77 +0,0 @@ -using Com.Ctrip.Framework.Apollo; -using Com.Ctrip.Framework.Apollo.Core; -using Com.Ctrip.Framework.Apollo.Enums; -using Com.Ctrip.Framework.Apollo.Logging; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using System; -using Yi.Framework.Common.IOCOptions; -using Yi.Framework.Core; -using Yi.Framework.WebCore; -using Yi.Framework.WebCore.AspNetCoreExtensions; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.SMSProcessor -{ - public class Program - { - public static void Main(string[] args) - { - CreateHostBuilder(args).Build().Run(); - } - - public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureAppConfiguration((hostBuilderContext, configurationBuilder) => - { - configurationBuilder.AddCommandLine(args); - configurationBuilder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false); - //configurationBuilder.AddJsonFile("configuration.json", optional: false, reloadOnChange: true); - #region - //Apollo配置 - #endregion - //configurationBuilder.AddApolloService("Yi"); - }) - .ConfigureLogging(loggingBuilder => - { - loggingBuilder.AddFilter("System", Microsoft.Extensions.Logging.LogLevel.Warning); - loggingBuilder.AddFilter("Microsoft", Microsoft.Extensions.Logging.LogLevel.Warning); - loggingBuilder.AddLog4Net(); - }) - .ConfigureServices((hostContext, services) => - { - - IConfiguration configuration = services.BuildServiceProvider().GetRequiredService(); - - #region - //Ioc配置 - #endregion - services.AddSingleton(new Appsettings(configuration)); - services.AddHostedService(); - services.AddHostedService(); - - #region 服务注入 - //services.Configure(configuration.GetSection("MysqlConn")); - - - #region - //RabbitMQ服务配置 - #endregion - services.AddRabbitMQService(); - #endregion - - #region - //短信服务配置 - #endregion - services.AddSMSService(); - - #region Consul - //services.Configure(configuration.GetSection("ConsulClientOption")); - //services.AddTransient(); - #endregion - - }); - } - } diff --git a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/SendWorker.cs b/Yi.Framework.Net6/Yi.Framework.SMSProcessor/SendWorker.cs deleted file mode 100644 index ae16ab67..00000000 --- a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/SendWorker.cs +++ /dev/null @@ -1,67 +0,0 @@ -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using Yi.Framework.Common.Const; -using Yi.Framework.Common.IOCOptions; -using Yi.Framework.Common.Models; -using Yi.Framework.Common.QueueModel; -using Yi.Framework.Core; -using Yi.Framework.Core.SMS; - -namespace Yi.Framework.SMSProcessor -{ - public class SendWorker : BackgroundService - { - private readonly ILogger _logger; - private readonly RabbitMQInvoker _RabbitMQInvoker; - private readonly AliyunSMSInvoker _aliyunSMSInvoker; - public SendWorker(ILogger logger, RabbitMQInvoker rabbitMQInvoker,AliyunSMSInvoker aliyunSMSInvoker) - { - this._logger = logger; - this._RabbitMQInvoker = rabbitMQInvoker; - _aliyunSMSInvoker = aliyunSMSInvoker; - - } - - protected override async Task ExecuteAsync(CancellationToken stoppingToken) - { - RabbitMQConsumerModel rabbitMQConsumerModel = new RabbitMQConsumerModel() - { - ExchangeName = RabbitConst.SMS_Exchange, - QueueName = RabbitConst.SMS_Queue_Send - }; - HttpClient _HttpClient = new HttpClient(); - this._RabbitMQInvoker.RegistReciveAction(rabbitMQConsumerModel, message => - { - var data= Common.Helper.JsonHelper.StrToObj(message); - try - { - _aliyunSMSInvoker.SendCode(data.code, data.phone); - - return true; - } - catch (Exception ex) - { - var logModel = new LogModel() - { - OriginalClassName = this.GetType().FullName, - OriginalMethodName = nameof(ExecuteAsync), - Remark = "Ϣд־" - }; - this._logger.LogError(ex, $"{nameof(SendWorker)}, Exception:{ex.Message}", JsonConvert.SerializeObject(logModel)); - return false; - } - }); - await Task.CompletedTask; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/Worker.cs b/Yi.Framework.Net6/Yi.Framework.SMSProcessor/Worker.cs deleted file mode 100644 index d6039afb..00000000 --- a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/Worker.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace Yi.Framework.SMSProcessor -{ - public class Worker : BackgroundService - { - private readonly ILogger _logger; - private readonly IConfiguration _IConfiguration; - public Worker(ILogger logger, IConfiguration configuration) - { - this._logger = logger; - this._IConfiguration = configuration; - } - - protected override async Task ExecuteAsync(CancellationToken stoppingToken) - { - while (!stoppingToken.IsCancellationRequested) - { - _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); - _logger.LogInformation($"Worker appsetting ConsulClientOption:Ip={this._IConfiguration["ConsulClientOption:Ip"]}"); - await Task.Delay(100000, stoppingToken); - } - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/Yi.Framework.SMSProcessor.csproj b/Yi.Framework.Net6/Yi.Framework.SMSProcessor/Yi.Framework.SMSProcessor.csproj deleted file mode 100644 index a2d9162d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/Yi.Framework.SMSProcessor.csproj +++ /dev/null @@ -1,38 +0,0 @@ - - - - net6.0 - Exe - Yi.Framework.SMSProcessor.Program - - - - - - - - - Always - true - PreserveNewest - - - - - - - - - - - - - - Always - - - Always - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/appsettings.json b/Yi.Framework.Net6/Yi.Framework.SMSProcessor/appsettings.json deleted file mode 100644 index be9e72f1..00000000 --- a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/appsettings.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - "RabbitMQ_Enabled": true, - "SMS_Enabled": true, - "RedisConn": { - "Host": "192.168.2.128", - "Prot": 6379, - "DB": 0, - "Password": "123456" - }, - "RabbitConn": { - "HostName": "118.195.191.41", - "UserName": "cc", - "Password": "cc", - "Port": 5672 - }, - //"DetailPageUrl": "http://localhost:5728/item/", - "DetailPageUrl": "http://PageDetail/item/", - "ConsulClientOption": { - "IP": "192.168.2.128", - "Port": "8500", - "Datacenter": "dc1" - }, - "MysqlConn": { - "Url": "server=192.168.2.128;port=3306;database=ECDB;user id=root;password=123456" - }, - "Apollo": { - "AppId": "Yi.Framework.StaticPageProcessor", - "Env": "DEV", - "MetaServer": "http://192.168.2.168:8080", - "ConfigServer": [ "http://192.168.2.168:8080" ] - }, - "SMS": { - "ID": "LTAI5tJvjPaXCyyPMfXLNbVA", - "Secret": "fLQv7jjj57fUKLFK8REeAQPFVDjUYn", - "Sign": "JiftCC", - "Template": "SMS_221640732" - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/configuration.json b/Yi.Framework.Net6/Yi.Framework.SMSProcessor/configuration.json deleted file mode 100644 index 404d76a8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.SMSProcessor/configuration.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "apollo": { - "AppId": "SMSProcessor", - "Env": "DEV", - "MetaServer": "http://119.91.207.67:18080", - "ConfigServer": [ "http://119.91.207.67:18080" ] - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Service/BBS/AgreeService.cs b/Yi.Framework.Net6/Yi.Framework.Service/BBS/AgreeService.cs deleted file mode 100644 index 5e888a6f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/BBS/AgreeService.cs +++ /dev/null @@ -1,46 +0,0 @@ -using SqlSugar; -using System.Threading.Tasks; -using Yi.Framework.Interface.BBS; -using Yi.Framework.Model.BBS.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.BBS -{ - public partial class AgreeService : BaseService, IAgreeService - { - public AgreeService(IRepository repository) : base(repository) - { - } - /// - /// 点赞操作 - /// - /// - public async Task OperateAsync(long articleOrCommentId, long userId) - { - var _articleRepositoty = _repository.ChangeRepository>(); - var article = await _articleRepositoty.GetByIdAsync(articleOrCommentId); - if (await _repository.IsAnyAsync(u => u.UserId == userId && u.ArticleOrCommentId == articleOrCommentId)) - { - //已点赞,取消点赞 - await _repository.UseTranAsync(async () => - { - await _repository.DeleteAsync(u => u.UserId == userId && u.ArticleOrCommentId == articleOrCommentId); - await _articleRepositoty.UpdateIgnoreNullAsync(new ArticleEntity { Id = articleOrCommentId, AgreeNum = article.AgreeNum - 1 }); - - }); - return false; - } - else - { - //未点赞,添加点赞记录 - await _repository.UseTranAsync(async () => - { - await _repository.InsertReturnSnowflakeIdAsync(new AgreeEntity { UserId = userId, ArticleOrCommentId = articleOrCommentId }); - await _articleRepositoty.UpdateIgnoreNullAsync(new ArticleEntity { Id = articleOrCommentId, AgreeNum = article.AgreeNum + 1 }); - }); - return true; - } - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/BBS/ArticleService.cs b/Yi.Framework.Net6/Yi.Framework.Service/BBS/ArticleService.cs deleted file mode 100644 index 40bd023f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/BBS/ArticleService.cs +++ /dev/null @@ -1,33 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.BBS; -using Yi.Framework.Model.BBS.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.BBS -{ - public partial class ArticleService : BaseService, IArticleService - { - public ArticleService(IRepository repository) : base(repository) - { - } - public async Task>> SelctPageList(ArticleEntity entity, PageParModel page) - { - RefAsync total = 0; - var data = await _repository._DbQueryable - .Includes(x => x.User) - //.WhereIF(!string.IsNullOrEmpty(config.ConfigName), u => u.ConfigName.Contains(config.ConfigName)) - //.WhereIF(!string.IsNullOrEmpty(config.ConfigKey), u => u.ConfigKey.Contains(config.ConfigKey)) - .WhereIF(page.StartTime is not null && page.EndTime is not null, u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime) - .WhereIF(entity.IsDeleted is not null, u => u.IsDeleted == entity.IsDeleted) - .OrderBy(u => u.CreateTime, OrderByType.Desc) - .ToPageListAsync(page.PageNum, page.PageSize, total); - - return new PageModel>(data, total); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/BBS/CommentService.cs b/Yi.Framework.Net6/Yi.Framework.Service/BBS/CommentService.cs deleted file mode 100644 index 66065ee4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/BBS/CommentService.cs +++ /dev/null @@ -1,35 +0,0 @@ -using SqlSugar; -using System.Threading.Tasks; -using Yi.Framework.Interface; -using Yi.Framework.Interface.BBS; -using Yi.Framework.Model.BBS.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.BBS -{ - public partial class CommentService : BaseService, ICommentService - { - public CommentService(IRepository repository) : base(repository) - { - } - //添加一个评论 - public async Task AddAsync(CommentEntity comment) - { - //如果是一级评论:不用处理 - - //如果是二级评论:ParentId父节点评论数+1 - return await _repository.UseTranAsync(async () => - { - if (comment.ParentId != 0) - { - var parentData = await _repository.GetByIdAsync(comment.ParentId); - parentData.CommentNum += 1; - await _repository.AsUpdateable(parentData).UpdateColumns(u => new { u.CommentNum }).ExecuteCommandAsync(); - } - await _repository.InsertReturnSnowflakeIdAsync(comment); - }); - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/Base/BaseService.cs b/Yi.Framework.Net6/Yi.Framework.Service/Base/BaseService.cs deleted file mode 100644 index d0e61829..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/Base/BaseService.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Attribute; -using Yi.Framework.Interface.Base; -using Yi.Framework.Repository; - -namespace Yi.Framework.Service.Base -{ - [AppService] - public class BaseService : IBaseService where T : class, new() - { - public IRepository _repository { get; set; } - public BaseService(IRepository iRepository) - { - _repository = iRepository; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/AbstractKeyCrudAppService.cs b/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/AbstractKeyCrudAppService.cs deleted file mode 100644 index 754218ac..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/AbstractKeyCrudAppService.cs +++ /dev/null @@ -1,248 +0,0 @@ -using AutoMapper; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Interface.Base.Crud; -using Yi.Framework.Model.Base; -using Yi.Framework.Repository; - -namespace Yi.Framework.Service.Base.Crud -{ - public abstract class AbstractKeyCrudAppService - : AbstractKeyCrudAppService - where TEntity : class, IEntity, new() - { - } - - public abstract class AbstractKeyCrudAppService - : AbstractKeyCrudAppService - where TEntity : class, IEntity, new() - { - } - - public abstract class AbstractKeyCrudAppService - : AbstractKeyCrudAppService - where TEntity : class, IEntity, new() - { - protected override Task MapToGetListOutputDtoAsync(TEntity entity) - { - return MapToGetOutputDtoAsync(entity); - } - - protected override TEntityDto MapToGetListOutputDto(TEntity entity) - { - return MapToGetOutputDto(entity); - } - } - - public abstract class AbstractKeyCrudAppService - : AbstractKeyReadOnlyAppService, - ICrudAppService - where TEntity : class, IEntity, new() - { - - /// - /// 创建 - /// - /// - /// - public virtual async Task CreateAsync(TCreateInputDto input) - { - - var entity = await MapToEntityAsync(input); - - TryToSetTenantId(entity); - - //这边需要进行判断,实体是什么guid还是雪花id - await Repository.InsertReturnSnowflakeIdAsync(entity); - - var entitydto = await MapToGetOutputDtoAsync(entity); - return entitydto; - } - - - public async virtual Task CreateAsync(IEnumerable dtos) - { - - var entity = await MapToEntitysAsync(dtos); - - TryToSetTenantId(entity); - - //这边需要进行判断,实体是什么guid还是雪花id - await Repository.InsertReturnSnowflakeIdAsync(entity); - } - - /// - /// 删除 - /// - /// - /// - /// - public virtual Task DeleteAsync(IEnumerable ids) - { - throw new NotImplementedException(); - } - protected abstract Task DeleteByIdAsync(TKey id); - - /// - /// 更新 - /// - /// - /// - /// - public virtual async Task UpdateAsync(TKey id, TUpdateInputDto input) - { - var entity = await GetEntityByIdAsync(id); - - await UpdateValidAsync(entity, input); - //TODO: Check if input has id different than given id and normalize if it's default value, throw ex otherwise - await MapToEntityAsync(input, entity); - await Repository.UpdateAsync(entity); - - var entitydto = await MapToGetOutputDtoAsync(entity); - return entitydto; - } - /// - /// 效验更新 - /// - /// - /// - /// - protected virtual Task UpdateValidAsync(TEntity idEntity, TUpdateInputDto dto) - { - return Task.CompletedTask; - } - - /// - /// 将 批量更新输入dto转化为实体的同步方法 - /// - /// - /// - protected virtual List MapToEntity(IEnumerable updateInput) - { - return ObjectMapper.Map>(updateInput); - } - - - /// - /// 将 批量更新输入dto转化为实体的异步 - /// - /// - /// - protected virtual async Task> MapToEntitysAsync(IEnumerable updateInput) - { - List entitys = MapToEntity(updateInput); - return await Task.FromResult(entitys); - } - - /// - /// 将 更新输入dto转化为实体的同步方法 - /// - /// - /// - protected virtual void MapToEntity(TUpdateInputDto updateInput, TEntity entity) - { - ObjectMapper.Map(updateInput, entity); - } - - - /// - /// 将 更新输入dto转化为实体的异步 - /// - /// - /// - protected virtual Task MapToEntityAsync(TUpdateInputDto updateInput, TEntity entity) - { - MapToEntity(updateInput, entity); - return Task.CompletedTask; - } - /// - /// 创建dto 给 实体的转换的异步方法 - /// - /// - /// - protected virtual Task MapToEntityAsync(TCreateInputDto createInput) - { - return Task.FromResult(MapToEntity(createInput)); - } - - /// - /// 创建dto 给 实体的转换 - /// - /// - /// - protected virtual TEntity MapToEntity(TCreateInputDto createInput) - { - var entity = ObjectMapper.Map(createInput); - SetIdForGuids(entity); - return entity; - } - - /// - /// 给主键id赋值上guid - /// - /// - protected virtual void SetIdForGuids(TEntity entity) - { - if (entity is IEntity entityWithGuidId && entityWithGuidId.Id == Guid.Empty) - { - //这里给主键赋值为guid,l临时写死属性名 - entity.GetType().GetProperty("Id").SetValue(entity, Guid.NewGuid()); - //EntityHelper.TrySetId( - // entityWithGuidId, - // () => GuidGenerator.Create(), - // true - //); - } - } - - /// - /// 给租户id赋值 - /// - /// - protected virtual void TryToSetTenantId(TEntity entity) - { - //实现多租户接口 - //if (entity is IMultiTenant) - //{ - // //给属性租户id赋值 - // if (ServiceLocator.GetTenantId(out var tid)) - // { - // var tenantId = tid; - - // var propertyInfo = entity.GetType().GetProperty(nameof(IMultiTenant.TenantId)); - - // if (propertyInfo == null || propertyInfo.GetSetMethod(true) == null) - // { - // return; - // } - - // propertyInfo.SetValue(entity, tenantId); - // } - - //} - } - - protected virtual void TryToSetTenantId(IEnumerable entitys) - { - foreach (var entity in entitys) - { - TryToSetTenantId(entity); - } - - } - - - /// - /// 判断租户id的属性是否为空 - /// - /// - /// - protected virtual bool HasTenantIdProperty(TEntity entity) - { - return entity.GetType().GetProperty(nameof(IMultiTenant.TenantId)) != null; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/AbstractKeyReadOnlyAppService.cs b/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/AbstractKeyReadOnlyAppService.cs deleted file mode 100644 index 852eec53..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/AbstractKeyReadOnlyAppService.cs +++ /dev/null @@ -1,131 +0,0 @@ -using AutoMapper; -using Microsoft.Extensions.DependencyInjection; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Linq.Expressions; -using System.Security.Principal; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Attribute; -using Yi.Framework.Common.Enum; -using Yi.Framework.Common.Exceptions; -using Yi.Framework.Interface.Base.Crud; -using Yi.Framework.Model.Base; -using Yi.Framework.Repository; - -namespace Yi.Framework.Service.Base.Crud -{ - public abstract class AbstractKeyReadOnlyAppService - : AbstractKeyReadOnlyAppService - where TEntity : class, IEntity, new() - { - } - - - public abstract class AbstractKeyReadOnlyAppService : ApplicationService, - IReadOnlyAppService - where TEntity : class, IEntity, new() - { - [Autowired] - public IRepository Repository { get; set; } - - - public async Task> GetListAsync() - { - var entitys = await Repository.GetListAsync(); - var entityDtos = await MapToGetListOutputDtosAsync(entitys); - return entityDtos; - } - - public async Task GetByIdAsync(TKey id) - { - var entity = await GetEntityByIdAsync(id); - if (entity is null) - { - throw new UserFriendlyException($"主键:{id} 数据不存在",ResultCodeEnum.NotSuccess); - } - var entityDto = await MapToGetOutputDtoAsync(entity); - - return entityDto; - } - - /// - /// 通过id获取实体 - /// - /// - /// - protected abstract Task GetEntityByIdAsync(TKey id); - /// - /// 实体向Get输出映射的异步方法 - /// - /// - /// - protected virtual Task MapToGetOutputDtoAsync(TEntity entity) - { - return Task.FromResult(MapToGetOutputDto(entity)); - } - - /// - /// 实体向Get输出Dto映射的同步方法 - /// - /// - /// - protected virtual TGetOutputDto MapToGetOutputDto(TEntity entity) - { - return ObjectMapper.Map(entity); - } - /// - /// 多个实体列表映射GetList输出dto列表的异步方法 - /// - /// - /// - protected virtual async Task> MapToGetListOutputDtosAsync(IEnumerable entities) - { - var dtos = new List(); - - foreach (var entity in entities) - { - dtos.Add(await MapToGetListOutputDtoAsync(entity)); - } - - return dtos; - } - - /// - /// 多个实体列表映射GetList输出dto列表的同步方法 - /// - /// - /// - protected virtual async Task> MapToGetListOutputDtos(IEnumerable entities) - { - var dtos = new List(); - - foreach (var entity in entities) - { - dtos.Add(await MapToGetListOutputDtoAsync(entity)); - } - - return dtos; - } - - /// - /// 实体列表映射GetList输出dto的异步方法 - /// - /// - /// - protected virtual Task MapToGetListOutputDtoAsync(TEntity entity) - { - return Task.FromResult(MapToGetListOutputDto(entity)); - } - /// - /// 实体列表映射GetList输出dto的同步方法 - /// - /// - /// - protected virtual TGetListOutputDto MapToGetListOutputDto(TEntity entity) - { - return ObjectMapper.Map(entity); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/ApplicationService.cs b/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/ApplicationService.cs deleted file mode 100644 index d4f63d2c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/ApplicationService.cs +++ /dev/null @@ -1,16 +0,0 @@ -using AutoMapper; -using AutoMapper.Internal.Mappers; -using Microsoft.Extensions.DependencyInjection; -using System; -using Yi.Framework.Common.Attribute; -using Yi.Framework.Interface.Base.Crud; - -namespace Yi.Framework.Service.Base.Crud -{ - public class ApplicationService : IApplicationService - { - [Autowired] - public IServiceProvider ServiceProvider { get; set; } - protected IMapper ObjectMapper => ServiceProvider.GetRequiredService(); - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/CrudAppService.cs b/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/CrudAppService.cs deleted file mode 100644 index 5af6b50f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/CrudAppService.cs +++ /dev/null @@ -1,71 +0,0 @@ -using AutoMapper; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Model.Base; -using Yi.Framework.Repository; - -namespace Yi.Framework.Service.Base.Crud -{ - public abstract class CrudAppService - : CrudAppService - where TEntity : class, IEntity, new() - { - } - - public abstract class CrudAppService - : CrudAppService - where TEntity : class, IEntity, new() - { - } - - public abstract class CrudAppService: CrudAppService - where TEntity : class, IEntity, new() - { - protected override Task MapToGetListOutputDtoAsync(TEntity entity) - { - return MapToGetOutputDtoAsync(entity); - } - - protected override TEntityDto MapToGetListOutputDto(TEntity entity) - { - return MapToGetOutputDto(entity); - } - } - - public abstract class CrudAppService - : AbstractKeyCrudAppService - where TEntity : class, IEntity, new() - { - protected override async Task DeleteByIdAsync(TKey id) - { - await DeleteAsync(new List { id }); - } - - protected override async Task GetEntityByIdAsync(TKey id) - { - return await Repository.GetByIdAsync(id); - } - - protected override void MapToEntity(TUpdateInputDto updateInput, TEntity entity) - { - if (updateInput is IEntityDto entityDto) - { - entityDto.Id = entity.Id; - } - - base.MapToEntity(updateInput, entity); - } - - - public override async Task> DeleteAsync(IEnumerable ids) - { - await Repository.DeleteAsync(e => ids.Contains(e.Id)); - return Result.Success(); - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/ReadOnlyAppService.cs b/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/ReadOnlyAppService.cs deleted file mode 100644 index abc74e93..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/Base/Crud/ReadOnlyAppService.cs +++ /dev/null @@ -1,22 +0,0 @@ -using AutoMapper; -using Microsoft.Extensions.DependencyInjection; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; -using Yi.Framework.Repository; - -namespace Yi.Framework.Service.Base.Crud -{ - public abstract class ReadOnlyAppService - : AbstractKeyReadOnlyAppService - where TEntity : class, IEntity, new() - { - protected override async Task GetEntityByIdAsync(TKey id) - { - return await Repository.GetByIdAsync(id); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ERP/MaterialService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ERP/MaterialService.cs deleted file mode 100644 index b98b8dad..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/ERP/MaterialService.cs +++ /dev/null @@ -1,29 +0,0 @@ -using AutoMapper; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Material; -using Yi.Framework.Interface.ERP; -using Yi.Framework.Model.ERP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base.Crud; - -namespace Yi.Framework.Service.ERP -{ - public class MaterialService : CrudAppService, IMaterialService - { - public async Task>> PageListAsync(MaterialCreateUpdateInput input, PageParModel page) - { - RefAsync totalNumber = 0; - var data = await Repository._DbQueryable - .WhereIF(input.Code is not null,u=>u.Code.Contains(input.Code)) - .WhereIF(input.Name is not null, u => u.Name.Contains(input.Name)) - .ToPageListAsync(page.PageNum, page.PageSize, totalNumber); - return new PageModel> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) }; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ERP/PurchaseDetailsService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ERP/PurchaseDetailsService.cs deleted file mode 100644 index ee51382b..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/ERP/PurchaseDetailsService.cs +++ /dev/null @@ -1,29 +0,0 @@ -using AutoMapper; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.PurchaseDetails; -using Yi.Framework.Interface.ERP; -using Yi.Framework.Model.ERP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base.Crud; - -namespace Yi.Framework.Service.ERP -{ - public class PurchaseDetailsService : CrudAppService, IPurchaseDetailsService - { - public async Task>> PageListAsync(PurchaseDetailsCreateUpdateInput input, PageParModel page) - { - RefAsync totalNumber = 0; - var data = await Repository._DbQueryable - //.WhereIF(input.Code is not null,u=>u.Code.Contains(input.Code)) - //.WhereIF(input.Name is not null, u => u.Name.Contains(input.Name)) - .ToPageListAsync(page.PageNum, page.PageSize, totalNumber); - return new PageModel> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) }; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ERP/PurchaseService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ERP/PurchaseService.cs deleted file mode 100644 index be10575f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/ERP/PurchaseService.cs +++ /dev/null @@ -1,57 +0,0 @@ -using AutoMapper; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Attribute; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Purchase; -using Yi.Framework.Interface.ERP; -using Yi.Framework.Model.Base; -using Yi.Framework.Model.ERP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base.Crud; - -namespace Yi.Framework.Service.ERP -{ - public class PurchaseService : CrudAppService, IPurchaseService - { - private ISugarUnitOfWork _unitOfWork; - private readonly IPurchaseDetailsService _purchaseDetailsService; - public PurchaseService(ISugarUnitOfWork unitOfWork, - IPurchaseDetailsService purchaseDetailsService) - { - _unitOfWork = unitOfWork; - _purchaseDetailsService = purchaseDetailsService; - } - public async Task>> PageListAsync(PurchaseGetListInput input, PageParModel page) - { - RefAsync totalNumber = 0; - var data = await Repository._DbQueryable - //.WhereIF(input.Code is not null,u=>u.Code.Contains(input.Code)) - //.WhereIF(input.Name is not null, u => u.Name.Contains(input.Name)) - .ToPageListAsync(page.PageNum, page.PageSize, totalNumber); - return new PageModel> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) }; - } - - public override async Task CreateAsync(PurchaseCreateInput input) - { - PurchaseEntity entity = null; - using (var uow = _unitOfWork.CreateContext()) - { - entity = await MapToEntityAsync(input); - entity.PaidMoney = 0; - entity.TotalMoney = input.PurchaseDetails.Sum(u => u.UnitPrice * u.TotalNumber); - entity.PurchaseState = PurchaseStateEnum.Build; - TryToSetTenantId(entity); - var purchaseId = await Repository.InsertReturnSnowflakeIdAsync(entity); - entity.Id = purchaseId; - await _purchaseDetailsService.CreateAsync(input.PurchaseDetails); - uow.Commit(); - } - return await MapToGetListOutputDtoAsync(entity); ; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ERP/SupplierService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ERP/SupplierService.cs deleted file mode 100644 index d39a73cc..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/ERP/SupplierService.cs +++ /dev/null @@ -1,29 +0,0 @@ -using AutoMapper; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Supplier; -using Yi.Framework.Interface.ERP; -using Yi.Framework.Model.ERP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base.Crud; - -namespace Yi.Framework.Service.ERP -{ - public class SupplierService : CrudAppService, ISupplierService - { - public async Task>> PageListAsync(SupplierCreateUpdateInput input, PageParModel page) - { - RefAsync totalNumber = 0; - var data = await Repository._DbQueryable - .WhereIF(input.Code is not null,u=>u.Code.Contains(input.Code)) - .WhereIF(input.Name is not null, u => u.Name.Contains(input.Name)) - .ToPageListAsync(page.PageNum, page.PageSize, totalNumber); - return new PageModel> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) }; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ERP/UnitService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ERP/UnitService.cs deleted file mode 100644 index 188d0e9d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/ERP/UnitService.cs +++ /dev/null @@ -1,29 +0,0 @@ -using AutoMapper; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Unit; -using Yi.Framework.Interface.ERP; -using Yi.Framework.Model.ERP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base.Crud; - -namespace Yi.Framework.Service.ERP -{ - public class UnitService : CrudAppService, IUnitService - { - public async Task>> PageListAsync(UnitCreateUpdateInput input, PageParModel page) - { - RefAsync totalNumber = 0; - var data = await Repository._DbQueryable - .WhereIF(input.Code is not null,u=>u.Code.Contains(input.Code)) - .WhereIF(input.Name is not null, u => u.Name.Contains(input.Name)) - .ToPageListAsync(page.PageNum, page.PageSize, totalNumber); - return new PageModel> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) }; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ERP/WarehouseService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ERP/WarehouseService.cs deleted file mode 100644 index 75486731..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/ERP/WarehouseService.cs +++ /dev/null @@ -1,29 +0,0 @@ -using AutoMapper; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.ERP.Warehouse; -using Yi.Framework.Interface.ERP; -using Yi.Framework.Model.ERP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base.Crud; - -namespace Yi.Framework.Service.ERP -{ - public class WarehouseService : CrudAppService, IWarehouseService - { - public async Task>> PageListAsync(WarehouseCreateUpdateInput input, PageParModel page) - { - RefAsync totalNumber = 0; - var data = await Repository._DbQueryable - .WhereIF(input.Code is not null,u=>u.Code.Contains(input.Code)) - .WhereIF(input.Name is not null, u => u.Name.Contains(input.Name)) - .ToPageListAsync(page.PageNum, page.PageSize, totalNumber); - return new PageModel> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) }; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/ConfigService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/ConfigService.cs deleted file mode 100644 index 8491dde3..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/ConfigService.cs +++ /dev/null @@ -1,32 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class ConfigService : BaseService, IConfigService - { - public ConfigService(IRepository repository) : base(repository) - { - } - public async Task>> SelctPageList(ConfigEntity config, PageParModel page) - { - RefAsync total = 0; - var data = await _repository._DbQueryable - .WhereIF(!string.IsNullOrEmpty(config.ConfigName), u => u.ConfigName.Contains(config.ConfigName)) - .WhereIF(!string.IsNullOrEmpty(config.ConfigKey), u => u.ConfigKey.Contains(config.ConfigKey)) - .WhereIF(page.StartTime is not null && page.EndTime is not null, u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime) - .WhereIF(config.IsDeleted is not null, u => u.IsDeleted == config.IsDeleted) - .OrderBy(u => u.OrderNum, OrderByType.Desc) - .ToPageListAsync(page.PageNum, page.PageSize, total); - - return new PageModel>(data, total); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/DeptService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/DeptService.cs deleted file mode 100644 index 1b1863b0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/DeptService.cs +++ /dev/null @@ -1,33 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class DeptService : BaseService, IDeptService - { - public DeptService(IRepository repository) : base(repository) - { - } - public async Task> SelctGetList(DeptEntity dept) - { - var data = await _repository._DbQueryable - .WhereIF(!string.IsNullOrEmpty(dept.DeptName), u => u.DeptName.Contains(dept.DeptName)) - .WhereIF(dept.IsDeleted is not null, u => u.IsDeleted == dept.IsDeleted) - .OrderBy(u => u.OrderNum, OrderByType.Desc) - .ToListAsync(); - - return data; - } - - public async Task> GetListByRoleId(long roleId) - { - return (await _repository._Db.Queryable().Includes(r => r.Depts).SingleAsync(r => r.Id == roleId)).Depts; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/DictionaryInfoService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/DictionaryInfoService.cs deleted file mode 100644 index dc8dc685..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/DictionaryInfoService.cs +++ /dev/null @@ -1,31 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class DictionaryInfoService : BaseService, IDictionaryInfoService - { - public DictionaryInfoService(IRepository repository) : base(repository) - { - } - public async Task>> SelctPageList(DictionaryInfoEntity dicInfo, PageParModel page) - { - RefAsync total = 0; - var data = await _repository._DbQueryable - .WhereIF(!string.IsNullOrEmpty(dicInfo.DictLabel), u => u.DictLabel.Contains(dicInfo.DictLabel)) - .WhereIF(!string.IsNullOrEmpty(dicInfo.DictType), u => u.DictType.Contains(dicInfo.DictType)) - .Where(u => u.IsDeleted == false) - .OrderBy(u => u.OrderNum, OrderByType.Desc) - .ToPageListAsync(page.PageNum, page.PageSize, total); - - return new PageModel>(data, total); - } - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/DictionaryService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/DictionaryService.cs deleted file mode 100644 index e3e68c58..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/DictionaryService.cs +++ /dev/null @@ -1,32 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class DictionaryService : BaseService, IDictionaryService - { - public DictionaryService(IRepository repository) : base(repository) - { - } - public async Task>> SelctPageList(DictionaryEntity dic, PageParModel page) - { - RefAsync total = 0; - var data = await _repository._DbQueryable - .WhereIF(!string.IsNullOrEmpty(dic.DictName), u => u.DictName.Contains(dic.DictName)) - .WhereIF(!string.IsNullOrEmpty(dic.DictType), u => u.DictType.Contains(dic.DictType)) - .WhereIF(page.StartTime is not null && page.EndTime is not null, u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime) - .Where(u => u.IsDeleted == false) - .OrderBy(u => u.OrderNum, OrderByType.Desc) - .ToPageListAsync(page.PageNum, page.PageSize, total); - - return new PageModel>(data, total); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/FileService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/FileService.cs deleted file mode 100644 index a9a4d629..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/FileService.cs +++ /dev/null @@ -1,15 +0,0 @@ -using SqlSugar; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class FileService : BaseService, IFileService - { - public FileService(IRepository repository) : base(repository) - { - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/LogService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/LogService.cs deleted file mode 100644 index da3d2ab3..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/LogService.cs +++ /dev/null @@ -1,32 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class LogService : BaseService, ILogService - { - public LogService(IRepository repository) : base(repository) - { - } - public async Task> AddListTest(List logEntities) - { - return await _repository._Db.Insertable(logEntities).SplitTable().ExecuteReturnSnowflakeIdListAsync(); - } - - public async Task> GetListTest() - { - return await _repository._DbQueryable.SplitTable(tas => - - tas.Where(u => u.TableName.Contains("2020") || u.TableName.Contains("2021")) - - ).ToListAsync(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/LoginLogService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/LoginLogService.cs deleted file mode 100644 index 65e07ceb..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/LoginLogService.cs +++ /dev/null @@ -1,32 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class LoginLogService : BaseService, ILoginLogService - { - public LoginLogService(IRepository repository) : base(repository) - { - } - - public async Task>> SelctPageList(LoginLogEntity loginLog, PageParModel page) - { - RefAsync total = 0; - var data = await _repository._DbQueryable - .WhereIF(!string.IsNullOrEmpty(loginLog.LoginIp), u => u.LoginIp.Contains(loginLog.LoginIp)) - .WhereIF(!string.IsNullOrEmpty(loginLog.LoginUser), u => u.LoginUser.Contains(loginLog.LoginUser)) - .WhereIF(loginLog.IsDeleted is not null, u => u.IsDeleted == loginLog.IsDeleted) - .WhereIF(page.StartTime is not null && page.EndTime is not null, u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime) - .OrderBy(u => u.CreateTime, OrderByType.Desc) - .ToPageListAsync(page.PageNum, page.PageSize, total); - return new PageModel>(data, total); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/MenuService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/MenuService.cs deleted file mode 100644 index c8aed593..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/MenuService.cs +++ /dev/null @@ -1,39 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class MenuService : BaseService, IMenuService - { - public MenuService(IRepository repository) : base(repository) - { - } - public async Task> SelctGetList(MenuEntity menu) - { - var data = await _repository._DbQueryable - .WhereIF(!string.IsNullOrEmpty(menu.MenuName), u => u.MenuName.Contains(menu.MenuName)) - .Where(u => u.IsDeleted == false) - .OrderBy(u => u.OrderNum, OrderByType.Desc) - .ToListAsync(); - return data; - } - public async Task> GetMenuTreeAsync() - { - //ParentId 0,代表为根目录,只能存在一个 - //复杂查询直接使用db代理 - return await _repository._Db.Queryable().Where(u => u.IsDeleted == false).ToTreeAsync(it => it.Children, it => it.ParentId, 0); - } - - - public async Task> GetListByRoleId(long roleId) - { - return (await _repository._Db.Queryable().Includes(r => r.Menus).SingleAsync(r => r.Id == roleId)).Menus; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/OperationLogService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/OperationLogService.cs deleted file mode 100644 index 9d9163fe..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/OperationLogService.cs +++ /dev/null @@ -1,33 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class OperationLogService : BaseService, IOperationLogService - { - public OperationLogService(IRepository repository) : base(repository) - { - } - public async Task>> SelctPageList(OperationLogEntity operationLog, PageParModel page) - { - RefAsync total = 0; - var data = await _repository._DbQueryable - .WhereIF(!string.IsNullOrEmpty(operationLog.Title), u => u.Title.Contains(operationLog.Title)) - .WhereIF(!string.IsNullOrEmpty(operationLog.OperUser), u => u.OperUser.Contains(operationLog.OperUser)) - .WhereIF(operationLog.OperType is not null, u => u.OperType == operationLog.OperType.GetHashCode()) - .WhereIF(operationLog.IsDeleted is not null, u => u.IsDeleted == operationLog.IsDeleted) - .WhereIF(page.StartTime is not null && page.EndTime is not null, u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime) - .OrderBy(u => u.CreateTime, OrderByType.Desc) - .ToPageListAsync(page.PageNum, page.PageSize, total); - - return new PageModel>(data, total); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/PostService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/PostService.cs deleted file mode 100644 index 18a01e3a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/PostService.cs +++ /dev/null @@ -1,33 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class PostService : BaseService, IPostService - { - public PostService(IRepository repository) : base(repository) - { - } - - public async Task>> SelctPageList(PostEntity post, PageParModel page) - { - RefAsync total = 0; - var data = await _repository._DbQueryable - .WhereIF(!string.IsNullOrEmpty(post.PostName), u => u.PostName.Contains(post.PostName)) - .WhereIF(!string.IsNullOrEmpty(post.PostCode), u => u.PostCode.Contains(post.PostCode)) - .WhereIF(post.IsDeleted is not null, u => u.IsDeleted == post.IsDeleted) - - .OrderBy(u => u.OrderNum, OrderByType.Desc) - .ToPageListAsync(page.PageNum, page.PageSize, total); - - return new PageModel>(data, total); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/RoleDeptService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/RoleDeptService.cs deleted file mode 100644 index 61414f27..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/RoleDeptService.cs +++ /dev/null @@ -1,15 +0,0 @@ -using SqlSugar; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class RoleDeptService : BaseService, IRoleDeptService - { - public RoleDeptService(IRepository repository) : base(repository) - { - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/RoleMenuService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/RoleMenuService.cs deleted file mode 100644 index 95b1257b..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/RoleMenuService.cs +++ /dev/null @@ -1,15 +0,0 @@ -using SqlSugar; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class RoleMenuService : BaseService, IRoleMenuService - { - public RoleMenuService(IRepository repository) : base(repository) - { - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/RoleService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/RoleService.cs deleted file mode 100644 index 6bbca3c8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/RoleService.cs +++ /dev/null @@ -1,127 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Threading.Tasks; -using System; -using Yi.Framework.Common.Base; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; -using Yi.Framework.Interface.RABC; -using Yi.Framework.DtoModel.Base.Dto; - -namespace Yi.Framework.Service.RABC -{ - public partial class RoleService : BaseService, IRoleService - { - public RoleService(IRepository repository) : base(repository) - { - } - public async Task> DbTest() - { - return await _repository._DbQueryable.ToListAsync(); - } - - - - public async Task GiveRoleSetMenu(List roleIds, List menuIds) - { - var _repositoryRoleMenu = _repository.ChangeRepository>(); - //多次操作,需要事务确保原子性 - return await _repositoryRoleMenu.UseTranAsync(async () => - { //删除用户之前所有的用户角色关系(物理删除,没有恢复的必要) - await _repositoryRoleMenu.DeleteAsync(u => roleIds.Contains((long)u.RoleId)); - - //遍历用户 - foreach (var roleId in roleIds) - { - //添加新的关系 - List roleMenuEntity = new(); - foreach (var menu in menuIds) - { - roleMenuEntity.Add(new RoleMenuEntity() { RoleId = roleId, MenuId = menu }); - } - - //一次性批量添加 - await _repositoryRoleMenu.InsertReturnSnowflakeIdAsync(roleMenuEntity); - } - }); - - - } - - public async Task GetInMenuByRoleId(long roleId) - { - return await _repository._Db.Queryable().Includes(u => u.Menus).InSingleAsync(roleId); - - } - - - - public async Task>> SelctPageList(RoleEntity role, PageParModel page) - { - RefAsync total = 0; - var data = await _repository._DbQueryable - .WhereIF(!string.IsNullOrEmpty(role.RoleName), u => u.RoleName.Contains(role.RoleName)) - .WhereIF(!string.IsNullOrEmpty(role.RoleCode), u => u.RoleCode.Contains(role.RoleCode)) - .WhereIF(page.StartTime.IsNotNull() && page.EndTime.IsNotNull(), u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime) - .WhereIF(role.IsDeleted.IsNotNull(), u => u.IsDeleted == role.IsDeleted) - .OrderBy(u => u.OrderNum, OrderByType.Desc) - .ToPageListAsync(page.PageNum, page.PageSize, total); - - return new PageModel>(data, total); - } - - - - public async Task AddInfo(RoleInfoDto roleDto) - { - var res1 = await _repository.InsertReturnSnowflakeIdAsync(roleDto.Role); - var res2 = await GiveRoleSetMenu(new List { res1 }, roleDto.MenuIds); - return !0.Equals(res1) && res2; - } - - public async Task GiveRoleSetDept(List roleIds, List deptIds) - { - var _repositoryRoleDept = _repository.ChangeRepository>(); - //多次操作,需要事务确保原子性 - return await _repositoryRoleDept.UseTranAsync(async () => - { //删除用户之前所有的用户角色关系(物理删除,没有恢复的必要) - await _repositoryRoleDept.DeleteAsync(u => roleIds.Contains((long)u.RoleId)); - - //遍历角色 - foreach (var roleId in roleIds) - { - //添加新的关系 - List roleDeptEntity = new(); - foreach (var dept in deptIds) - { - roleDeptEntity.Add(new RoleDeptEntity() { RoleId = roleId, DeptId = dept }); - } - - //一次性批量添加 - await _repositoryRoleDept.InsertReturnSnowflakeIdAsync(roleDeptEntity); - } - }); - } - - public async Task UpdateInfo(RoleInfoDto roleDto) - { - var res1 = await _repository.UpdateIgnoreNullAsync(roleDto.Role); - var res2 = await GiveRoleSetMenu(new List { roleDto.Role.Id }, roleDto.MenuIds); - var res3 = await GiveRoleSetDept(new List { roleDto.Role.Id }, roleDto.DeptIds); - return res1 && res2 && res3; - } - - public async Task UpdateDataScpoce(RoleInfoDto roleDto) - { - var role = new RoleEntity(); - role.Id = roleDto.Role.Id; - role.DataScope = roleDto.Role.DataScope; - var res1 = await _repository.UpdateIgnoreNullAsync(role); - var res3 = await GiveRoleSetDept(new List { roleDto.Role.Id }, roleDto.DeptIds); - return res1 && res3; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/TenantService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/TenantService.cs deleted file mode 100644 index f1974541..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/TenantService.cs +++ /dev/null @@ -1,15 +0,0 @@ -using SqlSugar; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class TenantService : BaseService, ITenantService - { - public TenantService(IRepository repository) : base(repository) - { - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/UserPostService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/UserPostService.cs deleted file mode 100644 index 0a9e0a94..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/UserPostService.cs +++ /dev/null @@ -1,15 +0,0 @@ -using SqlSugar; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class UserPostService : BaseService, IUserPostService - { - public UserPostService(IRepository repository) : base(repository) - { - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/UserRoleService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/UserRoleService.cs deleted file mode 100644 index 2530e0a8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/UserRoleService.cs +++ /dev/null @@ -1,15 +0,0 @@ -using SqlSugar; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.RABC -{ - public partial class UserRoleService : BaseService, IUserRoleService - { - public UserRoleService(IRepository repository) : base(repository) - { - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/RABC/UserService.cs b/Yi.Framework.Net6/Yi.Framework.Service/RABC/UserService.cs deleted file mode 100644 index 2c582198..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/RABC/UserService.cs +++ /dev/null @@ -1,319 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System; -using Yi.Framework.Common.Base; -using Yi.Framework.Common.Const; -using Yi.Framework.Common.Helper; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; -using Yi.Framework.Interface.RABC; -using Yi.Framework.DtoModel.Base.Dto; - -namespace Yi.Framework.Service.RABC -{ - public partial class UserService : BaseService, IUserService - { - public UserService(IRepository repository) : base(repository) - { - } - public async Task> GetListInRole() - { - return await _repository._DbQueryable.Includes(u => u.Roles).ToListAsync(); - } - public async Task> DbTest() - { - return await _repository._Db.Queryable().ToListAsync(); - } - public async Task Exist(long id, Action userAction = null) - { - var user = await _repository.GetByIdAsync(id); - userAction.Invoke(user); - if (user == null) - { - return false; - } - return true; - } - public async Task Exist(string userName, Action userAction = null) - { - var user = await _repository.GetFirstAsync(u => u.UserName == userName && u.IsDeleted == false); - if (userAction != null) - { - userAction.Invoke(user); - } - if (user == null) - { - return false; - } - return true; - } - public async Task Login(string userName, string password, Action userAction = null) - { - var user = new UserEntity(); - if (await Exist(userName, o => user = o)) - { - userAction.Invoke(user); - if (user.Password == MD5Helper.SHA2Encode(password, user.Salt)) - { - return true; - } - } - return false; - } - - public async Task Register(UserEntity userEntity, Action userAction = null) - { - var user = new UserEntity(); - if (!await Exist(userEntity.UserName)) - { - user.UserName = userEntity.UserName; - user.BuildPassword(); - userAction.Invoke(await _repository.InsertReturnEntityAsync(user)); - return true; - } - return false; - } - - public async Task GiveUserSetRole(List userIds, List roleIds) - { - var _repositoryUserRole = _repository.ChangeRepository>(); - - //多次操作,需要事务确保原子性 - return await _repositoryUserRole.UseTranAsync(async () => - { - //删除用户之前所有的用户角色关系(物理删除,没有恢复的必要) - await _repositoryUserRole.DeleteAsync(u => userIds.Contains((long)u.UserId)); - - if (roleIds is not null) - { - //遍历用户 - foreach (var userId in userIds) - { - //添加新的关系 - List userRoleEntities = new(); - - foreach (var roleId in roleIds) - { - userRoleEntities.Add(new UserRoleEntity() { UserId = userId, RoleId = roleId }); - } - - //一次性批量添加 - await _repositoryUserRole.InsertReturnSnowflakeIdAsync(userRoleEntities); - } - } - - - }); - } - - - public async Task GiveUserSetPost(List userIds, List postIds) - { - var _repositoryUserPost = _repository.ChangeRepository>(); - - //多次操作,需要事务确保原子性 - return await _repositoryUserPost.UseTranAsync(async () => - { - //删除用户之前所有的用户角色关系(物理删除,没有恢复的必要) - await _repositoryUserPost.DeleteAsync(u => userIds.Contains((long)u.UserId)); - if (postIds is not null) - { - //遍历用户 - foreach (var userId in userIds) - { - //添加新的关系 - List userPostEntities = new(); - foreach (var post in postIds) - { - userPostEntities.Add(new UserPostEntity() { UserId = userId, PostId = post }); - } - - //一次性批量添加 - await _repositoryUserPost.InsertReturnSnowflakeIdAsync(userPostEntities); - } - - } - }); - } - - - - public async Task GetInfoById(long userId) - { - var data = await _repository._DbQueryable.Includes(u => u.Roles).Includes(u => u.Posts).Includes(u => u.Dept).InSingleAsync(userId); - data.Password = null; - data.Salt = null; - return data; - } - - public async Task GetUserAllInfo(long userId) - { - - - var userRoleMenu = new UserRoleMenuDto(); - //首先获取到该用户全部信息,导航到角色、菜单,(菜单需要去重,完全交给Set来处理即可) - - //得到用户 - var user = await _repository._DbQueryable.Includes(u => u.Roles.Where(r => r.IsDeleted == false).ToList(), r => r.Menus.Where(m => m.IsDeleted == false).ToList()).InSingleAsync(userId); - if (user is null) - { - return null; - } - user.Password = null; - user.Salt = null; - - //超级管理员特殊处理 - if (SystemConst.Admin.Equals(user.UserName)) - { - userRoleMenu.User = user; - userRoleMenu.RoleCodes.Add(SystemConst.AdminRolesCode); - userRoleMenu.PermissionCodes.Add(SystemConst.AdminPermissionCode); - return userRoleMenu; - } - - - - //得到角色集合 - var roleList = user.Roles; - - //得到菜单集合 - foreach (var role in roleList) - { - userRoleMenu.RoleCodes.Add(role.RoleCode); - - if (role.Menus.IsNotNull()) - { - foreach (var menu in role.Menus) - { - - - if (!string.IsNullOrEmpty(menu.PermissionCode)) - { - userRoleMenu.PermissionCodes.Add(menu.PermissionCode); - - } - - userRoleMenu.Menus.Add(menu); - } - } - - //刚好可以去除一下多余的导航属性 - role.Menus = null; - userRoleMenu.Roles.Add(role); - } - - user.Roles = null; - userRoleMenu.User = user; - - - - - return userRoleMenu; - } - - - - - public async Task>> SelctPageList(UserEntity user, PageParModel page, long? deptId) - { - - RefAsync total = 0; - List data = null; - var query = _repository._DbQueryable - .WhereIF(!string.IsNullOrEmpty(user.UserName), u => u.UserName.Contains(user.UserName)) - .WhereIF(!string.IsNullOrEmpty(user.Name), u => u.Name.Contains(user.Name)) - .WhereIF(!string.IsNullOrEmpty(user.Phone), u => u.Phone.Contains(user.Phone)) - .WhereIF(page.StartTime.IsNotNull() && page.EndTime.IsNotNull(), u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime) - .WhereIF(user.IsDeleted.IsNotNull(), u => u.IsDeleted == user.IsDeleted) - .Includes(u => u.Roles) - .Includes(u => u.Posts) - .Includes(u => u.Dept); - if (deptId is not null) - { - //如果deptId不为空,部门id以下及自己都可以 - List deptIds = (await _repository._Db.Queryable().ToChildListAsync(it => it.ParentId, deptId)).Select(d => d.Id).ToList(); - query = query.Where(u => u.DeptId != null && deptIds.Contains((long)u.DeptId)); - } - - data = await query.OrderBy(u => u.OrderNum, OrderByType.Desc) - .ToPageListAsync(page.PageNum, page.PageSize, total); - - - data.ForEach(u => { u.Password = null; u.Salt = null; }); - return new PageModel>(data, total); - } - - - - - public async Task UpdateInfo(UserInfoDto userDto) - { - //未填写密码,可不更新 - userDto.User.Salt = null; - if (userDto.User.Password.IsNotNull()) - { - userDto.User.BuildPassword(); - } - userDto.User.DeptId = userDto.DeptId; - var res1 = await _repository.UpdateIgnoreNullAsync(userDto.User); - var res2 = await GiveUserSetRole(new List { userDto.User.Id }, userDto.RoleIds); - var res3 = await GiveUserSetPost(new List { userDto.User.Id }, userDto.PostIds); - return res1 && res2 && res3; - } - - public async Task AddInfo(UserInfoDto userDto) - { - userDto.User.BuildPassword(); - var res1 = await _repository.InsertReturnSnowflakeIdAsync(userDto.User); - var res2 = await GiveUserSetRole(new List { res1 }, userDto.RoleIds); - var res3 = await GiveUserSetPost(new List { res1 }, userDto.PostIds); - return !0.Equals(res1) && res2 && res3; - } - - public async Task RestPassword(long userId, string password) - { - var user = new UserEntity(); - user.Id = userId; - user.Password = password; - user.BuildPassword(); - - return await _repository.UpdateIgnoreNullAsync(user); - - - } - - - public async Task UpdatePassword(UpdatePasswordDto dto, long userId) - { - var user = await _repository.GetByIdAsync(userId); - - if (dto.OldPassword.Equals(dto.NewPassword)) - { - return false; - } - if (!user.JudgePassword(dto.OldPassword)) - { - return false; - } - var newUser = new UserEntity(); - newUser.Password = dto.NewPassword; - newUser.Id = userId; - newUser.BuildPassword(); - return await _repository.UpdateIgnoreNullAsync(newUser); - } - - - public async Task UpdateProfile(UserInfoDto userDto) - { - userDto.User.Salt = null; - userDto.User.Password = null; - userDto.User.DeptId = null; - return await _repository.UpdateIgnoreNullAsync(userDto.User); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/SHOP/CategoryService.cs b/Yi.Framework.Net6/Yi.Framework.Service/SHOP/CategoryService.cs deleted file mode 100644 index bae9eef3..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/SHOP/CategoryService.cs +++ /dev/null @@ -1,15 +0,0 @@ -using SqlSugar; -using Yi.Framework.Interface.SHOP; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.SHOP -{ - public partial class CategoryService : BaseService, ICategoryService - { - public CategoryService(IRepository repository) : base(repository) - { - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/SHOP/SkuService.cs b/Yi.Framework.Net6/Yi.Framework.Service/SHOP/SkuService.cs deleted file mode 100644 index a479d899..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/SHOP/SkuService.cs +++ /dev/null @@ -1,30 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.SHOP; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.SHOP -{ - public partial class SkuService : BaseService, ISkuService - { - public SkuService(IRepository repository) : base(repository) - { - } - public async Task>> SelctPageList(SkuEntity enetity, PageParModel page) - { - RefAsync total = 0; - var data = await _repository._DbQueryable - - .WhereIF(page.StartTime is not null && page.EndTime is not null, u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime) - .WhereIF(enetity.IsDeleted is not null, u => u.IsDeleted == enetity.IsDeleted) - .OrderBy(u => u.CreateTime, OrderByType.Desc) - .ToPageListAsync(page.PageNum, page.PageSize, total); - return new PageModel>(data, total); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/SHOP/SpecsGroupService.cs b/Yi.Framework.Net6/Yi.Framework.Service/SHOP/SpecsGroupService.cs deleted file mode 100644 index bcdf102c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/SHOP/SpecsGroupService.cs +++ /dev/null @@ -1,15 +0,0 @@ -using SqlSugar; -using Yi.Framework.Interface.SHOP; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.SHOP -{ - public partial class SpecsGroupService : BaseService, ISpecsGroupService - { - public SpecsGroupService(IRepository repository) : base(repository) - { - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/SHOP/SpecsService.cs b/Yi.Framework.Net6/Yi.Framework.Service/SHOP/SpecsService.cs deleted file mode 100644 index d30dfcdb..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/SHOP/SpecsService.cs +++ /dev/null @@ -1,15 +0,0 @@ -using SqlSugar; -using Yi.Framework.Interface.SHOP; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.SHOP -{ - public partial class SpecsService : BaseService, ISpecsService - { - public SpecsService(IRepository repository) : base(repository) - { - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/SHOP/SpuService.cs b/Yi.Framework.Net6/Yi.Framework.Service/SHOP/SpuService.cs deleted file mode 100644 index dfada59d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/SHOP/SpuService.cs +++ /dev/null @@ -1,30 +0,0 @@ -using SqlSugar; -using System.Collections.Generic; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.SHOP; -using Yi.Framework.Model.SHOP.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base; - -namespace Yi.Framework.Service.SHOP -{ - public partial class SpuService : BaseService, ISpuService - { - public SpuService(IRepository repository) : base(repository) - { - } - public async Task>> SelctPageList(SpuEntity enetity, PageParModel page) - { - RefAsync total = 0; - var data = await _repository._DbQueryable - .Includes(spu => spu.Skus) - .WhereIF(page.StartTime is not null && page.EndTime is not null, u => u.CreateTime >= page.StartTime && u.CreateTime <= page.EndTime) - .WhereIF(enetity.IsDeleted is not null, u => u.IsDeleted == enetity.IsDeleted) - .OrderBy(u => u.CreateTime, OrderByType.Desc) - .ToPageListAsync(page.PageNum, page.PageSize, total); - return new PageModel>(data, total); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Service/Yi - Backup (1).Framework.Service.csproj b/Yi.Framework.Net6/Yi.Framework.Service/Yi - Backup (1).Framework.Service.csproj deleted file mode 100644 index 3591bcb8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/Yi - Backup (1).Framework.Service.csproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - net6.0 - - - - - - - - - True - True - T4Service.tt - - - - - - - - - - - - - T4Service.cs - TextTemplatingFileGenerator - - - - - - - - - - True - True - T4Service.tt - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.Service/Yi - Backup (2).Framework.Service.csproj b/Yi.Framework.Net6/Yi.Framework.Service/Yi - Backup (2).Framework.Service.csproj deleted file mode 100644 index e8861d67..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/Yi - Backup (2).Framework.Service.csproj +++ /dev/null @@ -1,27 +0,0 @@ - - - - net6.0 - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.Service/Yi - Backup.Framework.Service.csproj b/Yi.Framework.Net6/Yi.Framework.Service/Yi - Backup.Framework.Service.csproj deleted file mode 100644 index c54fe835..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/Yi - Backup.Framework.Service.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - - net5.0 - - - - - - - - - - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.Service/Yi.Framework.Service.csproj b/Yi.Framework.Net6/Yi.Framework.Service/Yi.Framework.Service.csproj deleted file mode 100644 index 3ff23470..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Service/Yi.Framework.Service.csproj +++ /dev/null @@ -1,34 +0,0 @@ - - - - net6.0 - - - - - - - - - - - - - T4Service.cs - TextTemplatingFileGenerator - - - - - - - - - - True - True - T4Service.tt - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.Task/ErrorJob.cs b/Yi.Framework.Net6/Yi.Framework.Task/ErrorJob.cs deleted file mode 100644 index 663b74d8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Task/ErrorJob.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Microsoft.Extensions.Logging; -using Quartz; -using Quartz.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; - -namespace Yi.Framework.Job -{ - public class ErrorJob : IJob - { - private ILogger _logger; - public ErrorJob(ILogger logger) - { - _logger = logger; - } - - public Task Execute(IJobExecutionContext context) - { - try - { - Random random = new Random(); - var p = random.Next(0, 2); - //这里可能会抛出异常 - var o = 1 / p; - } - catch (Exception ex) - { - - JobExecutionException exception = new JobExecutionException(ex); - exception.Source = context.JobDetail.Key.Name; - exception.UnscheduleFiringTrigger = true; - _logger.LogError(exception, $"{exception.Source}错误"); - throw exception; - } - return Task.CompletedTask; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Task/HttpJob.cs b/Yi.Framework.Net6/Yi.Framework.Task/HttpJob.cs deleted file mode 100644 index 9e7c102c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Task/HttpJob.cs +++ /dev/null @@ -1,44 +0,0 @@ -using Microsoft.Extensions.Logging; -using Quartz; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; - -namespace Yi.Framework.Job -{ - public class HttpJob : IJob - { - private ILogger _logger; - public HttpJob(ILogger logger) - { - _logger = logger; - } - - public Task Execute(IJobExecutionContext context) - { - return Task.Run(async () => - { - var jobData = context.JobDetail.JobDataMap; - string method= jobData[Common.Const.JobConst.method].ToString(); - string url = jobData[Common.Const.JobConst.url].ToString(); - string data="异常!"; - switch (method) - { - case "post": - data =await Common.Helper.HttpHelper.Post(url); - break; - case "get": - data =await Common.Helper.HttpHelper.Get(url); - break; - } - - - _logger.LogWarning("定时任务开始调度:" + nameof(HttpJob) + ":" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + $":访问地址为:{url},结果为:{data}"); - Console.WriteLine($"结果:{data}"); - }); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Task/VisitJob.cs b/Yi.Framework.Net6/Yi.Framework.Task/VisitJob.cs deleted file mode 100644 index 9427a327..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Task/VisitJob.cs +++ /dev/null @@ -1,36 +0,0 @@ - -using Microsoft.Extensions.Logging; -using Quartz; -using System; -using System.IO; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; - -namespace Yi.Framework.Job -{ - public class VisitJob : IJob - { - private ILogger _logger; - public VisitJob(ILogger logger) - { - _logger = logger; - } - - /// - /// 应该将拜访清零,并且写入数据库中的拜访表中 - /// - /// - /// - public Task Execute(IJobExecutionContext context) - { - return Task.Run(() => - { - _logger.LogWarning("定时任务开始调度:" + nameof(VisitJob) + ":" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + $":访问总数为:{JobModel.visitNum}"); - JobModel.visitNum = 0; - } - ); - } - } -} - diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Abstract/AbstractTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Abstract/AbstractTemplateProvider.cs deleted file mode 100644 index cf35c614..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Abstract/AbstractTemplateProvider.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Template.Abstract -{ - public abstract class AbstractTemplateProvider : ITemplateProvider - { - public virtual string? BuildPath { get; set; } - public string? TemplatePath { get; set; } - public string? BakPath { get; set; } - protected Dictionary TemplateDic { get; set; } = new Dictionary(); - - public abstract void Bak(); - - public abstract void Build(); - - - protected virtual string GetTemplateData() - { - if (TemplatePath is null) - { - throw new ArgumentNullException(nameof(TemplatePath)); - } - return File.ReadAllText(TemplatePath); - } - - protected void AddTemplateDic(string oldStr, string newStr) - { - - TemplateDic.Add(oldStr, newStr); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ITemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ITemplateProvider.cs deleted file mode 100644 index 5ac81801..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ITemplateProvider.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Template.Abstract -{ - public interface ITemplateProvider - { - /// - /// 构建生成路径 - /// - string? BuildPath { get; set; } - - /// - /// 模板文件路径 - /// - string? TemplatePath { get; set; } - - /// - /// 备份文件路径 - /// - string? BakPath { get; set; } - - - /// - /// 开始构建 - /// - /// - void Build(); - - /// - /// 生成备份 - /// - /// - void Bak(); - - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ModelTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ModelTemplateProvider.cs deleted file mode 100644 index 541867f4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ModelTemplateProvider.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Template.Const; - -namespace Yi.Framework.Template.Abstract -{ - public abstract class ModelTemplateProvider : ProgramTemplateProvider - { - - public ModelTemplateProvider(string modelName, string entityName) : base(modelName, entityName) - { - AddIgnoreEntityField("Id", "TenantId"); - } - - private string entityPath=string.Empty; - - /// - /// 实体路径,该类生成需要实体与模板两个同时构建成 - /// - public string EntityPath - { - get => this.entityPath; - set - { - value = value!.Replace(TemplateConst.EntityName, EntityName); - value = value.Replace(TemplateConst.ModelName, ModelName); - this.entityPath = value; - } - } - - - /// - /// 生成模板忽略实体字段 - /// - private List IgnoreEntityFields { get; set; } = new(); - - public override void Build() - { - if (BuildPath is null) - { - throw new ArgumentNullException(nameof(BuildPath)); - } - //模板信息 - var templateData = GetTemplateData(); - - //实体信息 - var enetityDatas = GetEntityData().ToList(); - - //获取全部属性字段 - for (var i = enetityDatas.Count() - 1; i >= 0; i--) - { - //不是字段属性直接删除跳过 - if (!enetityDatas[i].Contains("{ get; set; }")) - { - enetityDatas.RemoveAt(i); - continue; - } - //是字段属性,同时还包含忽略字段 - foreach (var IgnoreEntityField in IgnoreEntityFields) - { - if (enetityDatas[i].Contains(IgnoreEntityField)) - { - enetityDatas.RemoveAt(i); - continue; - } - } - //以}结尾,不包含get不是属性,代表类结尾 - if (enetityDatas[i].EndsWith("}") && !enetityDatas[i].Contains("get")) - { - break; - } - } - - //拼接实体字段 - var entityFieldsbuild = string.Join("\r\n", enetityDatas); - - - //模板替换属性字段 - templateData = templateData.Replace(TemplateConst.EntityField, entityFieldsbuild); - - templateData = base.ReplaceTemplateDic(templateData); - - if (!Directory.Exists(Path.GetDirectoryName(BuildPath))) - { - Directory.CreateDirectory(Path.GetDirectoryName(BuildPath)!); - } - File.WriteAllText(BuildPath, templateData); - } - - /// - /// 获取实体信息 - /// - /// - /// - public virtual string[] GetEntityData() - { - if (TemplatePath is null) - { - throw new ArgumentNullException(nameof(entityPath)); - } - if (!File.Exists(entityPath)) - { - throw new FileNotFoundException($"请检查路径:{entityPath}\r\n未包含实体:{EntityName}"); - } - - return File.ReadAllLines(entityPath); - } - - /// - /// 添加忽略实体字段 - /// - /// - public void AddIgnoreEntityField(params string[] field) - { - IgnoreEntityFields.AddRange(field); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ProgramTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ProgramTemplateProvider.cs deleted file mode 100644 index 8cad5e9a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ProgramTemplateProvider.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Template.Const; - -namespace Yi.Framework.Template.Abstract -{ - - public abstract class ProgramTemplateProvider : AbstractTemplateProvider - { - public ProgramTemplateProvider(string modelName, string entityName) - { - ModelName = modelName; - EntityName = entityName; - base.AddTemplateDic(TemplateConst.EntityName, EntityName); - base.AddTemplateDic(TemplateConst.ModelName, ModelName); - base.AddTemplateDic(TemplateConst.LowerEntityName, EntityName.Substring(0, 1).ToLower() + EntityName.Substring(1)); - base.AddTemplateDic(TemplateConst.LowerModelName, ModelName.ToLower()); - } - /// - /// 实体名称 - /// - public string EntityName { get; set; } - /// - /// 模块名称 - /// - public string ModelName { get; set; } - - /// - /// 重写构建路径,替换实体名称与模块名称 - /// - public override string? BuildPath - { - get => base.BuildPath; - set - { - value = ReplaceTemplateDic(value!); - - base.BuildPath = value; - } - } - - public string ReplaceTemplateDic(string str) - { - foreach (var ky in TemplateDic) - { - str = str.Replace(ky.Key, ky.Value); - } - return str; - } - - - public override void Build() - { - if (BuildPath is null) - { - throw new ArgumentNullException(nameof(BuildPath)); - } - var templateData = GetTemplateData(); - templateData = ReplaceTemplateDic(templateData); - if (!Directory.Exists(Path.GetDirectoryName(BuildPath))) - { - Directory.CreateDirectory(Path.GetDirectoryName(BuildPath)!); - } - File.WriteAllText(BuildPath, templateData); - } - - public override void Bak() - { - throw new NotImplementedException(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Const/TemplateConst.cs b/Yi.Framework.Net6/Yi.Framework.Template/Const/TemplateConst.cs deleted file mode 100644 index 5dc0ea9e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Const/TemplateConst.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.Template.Const -{ - public class TemplateConst - { - /// - /// 模块名称大写 - /// - public const string ModelName = "#ModelName#"; - - /// - /// 模块名称小写 - /// - public const string LowerModelName = "#LowerModelName#"; - - /// - /// 实体名称大驼峰 - /// - public const string EntityName = "#EntityName#"; - - /// - /// 实体名称小驼峰 - /// - public const string LowerEntityName = "#LowerEntityName#"; - - /// - /// 实体字段 - /// - public const string EntityField = "#EntityField#"; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Program.cs b/Yi.Framework.Net6/Yi.Framework.Template/Program.cs deleted file mode 100644 index 156ae451..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Program.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Yi.Framework.Template; -using Yi.Framework.Template.Provider.Server; -using Yi.Framework.Template.Provider.Site; - -TemplateFactory templateFactory = new(); - -//选择需要生成的模板提供者 - -string modelName = "ERP"; -List entityNames =new (){ "_" }; - -foreach (var entityName in entityNames) -{ - templateFactory.CreateTemplateProviders((option) => - { - option.Add(new ServceTemplateProvider(modelName, entityName)); - option.Add(new IServceTemplateProvider(modelName, entityName)); - option.Add(new CreateUpdateInputTemplateProvider(modelName, entityName)); - option.Add(new GetListOutputTemplateProvider(modelName, entityName)); - option.Add(new GetListInputTemplateProvider(modelName, entityName)); - option.Add(new ConstTemplateProvider(modelName, entityName)); - option.Add(new ProfileTemplateProvider(modelName, entityName)); - option.Add(new ControllerTemplateProvider(modelName, entityName)); - option.Add(new ApiTemplateProvider(modelName, entityName)); - }); - //开始构建模板 - templateFactory.BuildTemplate(); - Console.WriteLine($"Yi.Framework.Template:{entityName}构建完成!"); -} - -Console.WriteLine("Yi.Framework.Template:模板全部生成完成!"); -Console.ReadKey(); \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ConstTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ConstTemplateProvider.cs deleted file mode 100644 index 93a8a74e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ConstTemplateProvider.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Template.Abstract; -using Yi.Framework.Template.Const; - -namespace Yi.Framework.Template.Provider.Server -{ - internal class ConstTemplateProvider : ProgramTemplateProvider - { - public ConstTemplateProvider(string modelName, string entityName) : base(modelName, entityName) - { - BuildPath = $@"..\..\..\..\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\ConstConfig\{TemplateConst.EntityName}Const.cs"; - TemplatePath = $@"..\..\..\Template\Server\ConstTemplate.txt"; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ControllerTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ControllerTemplateProvider.cs deleted file mode 100644 index 60612b5d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ControllerTemplateProvider.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Template.Abstract; -using Yi.Framework.Template.Const; - -namespace Yi.Framework.Template.Provider.Server -{ - public class ControllerTemplateProvider : ProgramTemplateProvider - { - public ControllerTemplateProvider(string modelName, string entityName) : base(modelName, entityName) - { - BuildPath = $@"..\..\..\..\Yi.Framework.ApiMicroservice\Controllers\{TemplateConst.ModelName}\{TemplateConst.EntityName}Controller.cs"; - TemplatePath = $@"..\..\..\Template\Server\ControllerTemplate.txt"; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/CreateUpdateInputTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/CreateUpdateInputTemplateProvider.cs deleted file mode 100644 index a79165fa..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/CreateUpdateInputTemplateProvider.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Template.Abstract; -using Yi.Framework.Template.Const; - -namespace Yi.Framework.Template.Provider.Server -{ - public class CreateUpdateInputTemplateProvider : ModelTemplateProvider - { - public CreateUpdateInputTemplateProvider(string modelName, string entityName) : base(modelName, entityName) - { - BuildPath = $@"..\..\..\..\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\{TemplateConst.EntityName}CreateUpdateInput.cs"; - TemplatePath = $@"..\..\..\Template\Server\CreateUpdateInputTemplate.txt"; - EntityPath = $@"..\..\..\..\Yi.Framework.Model\{TemplateConst.ModelName}\Entitys\{TemplateConst.EntityName}Entity.cs"; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/GetListInputTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/GetListInputTemplateProvider.cs deleted file mode 100644 index 7217bc2e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/GetListInputTemplateProvider.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Template.Abstract; -using Yi.Framework.Template.Const; - -namespace Yi.Framework.Template.Provider.Server -{ - public class GetListInputTemplateProvider : ModelTemplateProvider - { - public GetListInputTemplateProvider(string modelName, string entityName) : base(modelName, entityName) - { - BuildPath = $@"..\..\..\..\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\{TemplateConst.EntityName}GetListInput.cs"; - TemplatePath = $@"..\..\..\Template\Server\GetListInputTemplate.txt"; - EntityPath = $@"..\..\..\..\Yi.Framework.Model\{TemplateConst.ModelName}\Entitys\{TemplateConst.EntityName}Entity.cs"; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/GetListOutputTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/GetListOutputTemplateProvider.cs deleted file mode 100644 index 3ad40150..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/GetListOutputTemplateProvider.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Template.Abstract; -using Yi.Framework.Template.Const; - -namespace Yi.Framework.Template.Provider.Server -{ - public class GetListOutputTemplateProvider : ModelTemplateProvider - { - public GetListOutputTemplateProvider(string modelName, string entityName) : base(modelName, entityName) - { - BuildPath = $@"..\..\..\..\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\{TemplateConst.EntityName}GetListOutput.cs"; - TemplatePath = $@"..\..\..\Template\Server\GetListOutputTemplate.txt"; - EntityPath = $@"..\..\..\..\Yi.Framework.Model\{TemplateConst.ModelName}\Entitys\{TemplateConst.EntityName}Entity.cs"; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/IServceTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/IServceTemplateProvider.cs deleted file mode 100644 index 8aad323a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/IServceTemplateProvider.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Template.Abstract; -using Yi.Framework.Template.Const; - -namespace Yi.Framework.Template.Provider.Server -{ - public class IServceTemplateProvider : ProgramTemplateProvider - { - public IServceTemplateProvider(string modelName, string entityName) : base(modelName, entityName) - { - BuildPath = $@"..\..\..\..\Yi.Framework.Interface\{TemplateConst.ModelName}\I{TemplateConst.EntityName}Service.cs"; - TemplatePath = $@"..\..\..\Template\Server\IServiceTemplate.txt"; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ProfileTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ProfileTemplateProvider.cs deleted file mode 100644 index d72f3ba4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ProfileTemplateProvider.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Template.Abstract; -using Yi.Framework.Template.Const; - -namespace Yi.Framework.Template.Provider.Server -{ - public class ProfileTemplateProvider : ProgramTemplateProvider - { - public ProfileTemplateProvider(string modelName, string entityName) : base(modelName, entityName) - { - BuildPath = $@"..\..\..\..\Yi.Framework.DtoModel\{TemplateConst.ModelName}\{TemplateConst.EntityName}\MapperConfig\{TemplateConst.EntityName}Profile.cs"; - TemplatePath = $@"..\..\..\Template\Server\ProfileTemplate.txt"; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ServceTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ServceTemplateProvider.cs deleted file mode 100644 index 9322e2b2..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Server/ServceTemplateProvider.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Template.Abstract; -using Yi.Framework.Template.Const; - -namespace Yi.Framework.Template.Provider.Server -{ - public class ServceTemplateProvider : ProgramTemplateProvider - { - public ServceTemplateProvider(string modelName, string entityName) : base(modelName, entityName) - { - BuildPath = $@"..\..\..\..\Yi.Framework.Service\{TemplateConst.ModelName}\{TemplateConst.EntityName}Service.cs"; - TemplatePath = $@"..\..\..\Template\Server\ServiceTemplate.txt"; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Site/ApiTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/Site/ApiTemplateProvider.cs deleted file mode 100644 index 0d02135a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Provider/Site/ApiTemplateProvider.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Template.Abstract; -using Yi.Framework.Template.Const; - -namespace Yi.Framework.Template.Provider.Site -{ - public class ApiTemplateProvider : ProgramTemplateProvider - { - public ApiTemplateProvider(string modelName, string entityName) : base(modelName, entityName) - { - BuildPath = $@"..\..\..\Code_Site\src\api\{TemplateConst.LowerModelName}\{TemplateConst.LowerEntityName}Api.js"; - TemplatePath = $@"..\..\..\Template\Site\ApiTemplate.txt"; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ConstTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ConstTemplate.txt deleted file mode 100644 index 4c589964..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ConstTemplate.txt +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.DtoModel.#ModelName#.#EntityName#.ConstConfig -{ - public class #EntityName#Const - { - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ControllerTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ControllerTemplate.txt deleted file mode 100644 index 2951131e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ControllerTemplate.txt +++ /dev/null @@ -1,81 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.#ModelName#.#EntityName#; -using Yi.Framework.Interface.#ModelName#; - -namespace Yi.Framework.ApiMicroservice.Controllers.#ModelName# -{ - [ApiController] - [Route("api/[controller]/[action]")] - public class #EntityName#Controller : ControllerBase - { - private readonly ILogger<#EntityName#Controller> _logger; - private readonly I#EntityName#Service _#LowerEntityName#Service; - public #EntityName#Controller(ILogger<#EntityName#Controller> logger, I#EntityName#Service #LowerEntityName#Service) - { - _logger = logger; - _#LowerEntityName#Service = #LowerEntityName#Service; - } - - /// - /// 分页查 - /// - /// - [HttpGet] - public async Task PageList([FromQuery] #EntityName#CreateUpdateInput input, [FromQuery] PageParModel page) - { - var result = await _#LowerEntityName#Service.PageListAsync(input, page); - return Result.Success().SetData(result); - } - - /// - /// 单查 - /// - /// - [HttpGet] - [Route("{id}")] - public async Task GetById(long id) - { - var result = await _#LowerEntityName#Service.GetByIdAsync(id); - return Result.Success().SetData(result); - } - - /// - /// 增 - /// - /// - /// - [HttpPost] - public async Task Create(#EntityName#CreateUpdateInput input) - { - var result = await _#LowerEntityName#Service.CreateAsync(input); - return Result.Success().SetData(result); - } - - /// - /// 更 - /// - /// - /// - /// - [HttpPut] - [Route("{id}")] - public async Task Update(long id, #EntityName#CreateUpdateInput input) - { - var result = await _#LowerEntityName#Service.UpdateAsync(id, input); - return Result.Success().SetData(result); - } - - /// - /// 删 - /// - /// - /// - [HttpDelete] - public async Task Del(List ids) - { - await _#LowerEntityName#Service.DeleteAsync(ids); - return Result.Success(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/CreateUpdateInputTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/CreateUpdateInputTemplate.txt deleted file mode 100644 index de35e69a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/CreateUpdateInputTemplate.txt +++ /dev/null @@ -1,15 +0,0 @@ -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.#ModelName#.#EntityName# -{ - public class #EntityName#CreateUpdateInput : EntityDto - { -#EntityField# - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/GetListInputTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/GetListInputTemplate.txt deleted file mode 100644 index d55956e8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/GetListInputTemplate.txt +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.#ModelName#.#EntityName# -{ - public class #EntityName#GetListInput - { -#EntityField# - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/GetListOutputTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/GetListOutputTemplate.txt deleted file mode 100644 index 52e3c644..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/GetListOutputTemplate.txt +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.Base; - -namespace Yi.Framework.DtoModel.#ModelName#.#EntityName# -{ - public class #EntityName#GetListOutput: EntityDto - { -#EntityField# - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/IServiceTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/IServiceTemplate.txt deleted file mode 100644 index b1f20b7a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/IServiceTemplate.txt +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.#ModelName#.#EntityName#; -using Yi.Framework.Interface.Base.Crud; - -namespace Yi.Framework.Interface.#ModelName# -{ - public interface I#EntityName#Service : ICrudAppService<#EntityName#GetListOutput, long, #EntityName#CreateUpdateInput> - { - Task>> PageListAsync(#EntityName#CreateUpdateInput input, PageParModel page); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ProfileTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ProfileTemplate.txt deleted file mode 100644 index f545b835..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ProfileTemplate.txt +++ /dev/null @@ -1,20 +0,0 @@ -using AutoMapper; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.#ModelName#.Entitys; - -namespace Yi.Framework.DtoModel.#ModelName#.#EntityName#.MapperConfig -{ - public class Suppli#ModelName#rofile:Profile - { - public Suppli#ModelName#rofile() - { - CreateMap<#EntityName#CreateUpdateInput, #EntityName#Entity>(); - CreateMap<#EntityName#Entity, #EntityName#GetListOutput>(); - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ServiceTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ServiceTemplate.txt deleted file mode 100644 index 1a669210..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Template/Server/ServiceTemplate.txt +++ /dev/null @@ -1,29 +0,0 @@ -using AutoMapper; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.DtoModel.#ModelName#.#EntityName#; -using Yi.Framework.Interface.#ModelName#; -using Yi.Framework.Model.#ModelName#.Entitys; -using Yi.Framework.Repository; -using Yi.Framework.Service.Base.Crud; - -namespace Yi.Framework.Service.#ModelName# -{ - public class #EntityName#Service : CrudAppService<#EntityName#Entity, #EntityName#GetListOutput, long, #EntityName#CreateUpdateInput>, I#EntityName#Service - { - public async Task>> PageListAsync(#EntityName#CreateUpdateInput input, PageParModel page) - { - RefAsync totalNumber = 0; - var data = await Repository._DbQueryable - .WhereIF(input.Code is not null,u=>u.Code.Contains(input.Code)) - .WhereIF(input.Name is not null, u => u.Name.Contains(input.Name)) - .ToPageListAsync(page.PageNum, page.PageSize, totalNumber); - return new PageModel> { Total = totalNumber.Value, Data = await MapToGetListOutputDtosAsync(data) }; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/Site/ApiTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/Site/ApiTemplate.txt deleted file mode 100644 index dc12e694..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Template/Site/ApiTemplate.txt +++ /dev/null @@ -1,45 +0,0 @@ -import request from '@/utils/request' - -// 分页查询 -export function listData(query) { - return request({ - url: '/#LowerEntityName#/pageList', - method: 'get', - params: query - }) -} - -// id查询 -export function getData(code) { - return request({ - url: '/#LowerEntityName#/getById/' + code, - method: 'get' - }) -} - -// 新增 -export function addData(data) { - return request({ - url: '/#LowerEntityName#/create', - method: 'post', - data: data - }) -} - -// 修改 -export function updateData(id,data) { - return request({ - url: `/#LowerEntityName#/update/${id}`, - method: 'put', - data: data - }) -} - -// 删除 -export function delData(code) { - return request({ - url: '/#LowerEntityName#/del', - method: 'delete', - data:"string"==typeof(code)?[code]:code - }) -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/TemplateFactory.cs b/Yi.Framework.Net6/Yi.Framework.Template/TemplateFactory.cs deleted file mode 100644 index 2196a913..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/TemplateFactory.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Template.Abstract; -using Yi.Framework.Template.Provider; - -namespace Yi.Framework.Template -{ - public class TemplateFactory - { - private List _templateProviders=new List(); - - public void CreateTemplateProviders(Action> action) - { - action(_templateProviders); - } - - public void BuildTemplate() - { - foreach (var provider in _templateProviders) - { - provider.Build(); - } - } - - public void BakTemplate() - { - foreach (var provider in _templateProviders) - { - provider.Bak(); - } - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Yi.Framework.Template.csproj b/Yi.Framework.Net6/Yi.Framework.Template/Yi.Framework.Template.csproj deleted file mode 100644 index dd49c63b..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/Yi.Framework.Template.csproj +++ /dev/null @@ -1,51 +0,0 @@ - - - - net6.0 - enable - enable - Exe - - - - - - - - - - - - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - - Always - - - - Always - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Config/IPayConfig.cs b/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Config/IPayConfig.cs deleted file mode 100644 index 7e9eb90d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Config/IPayConfig.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -namespace Yi.Framework.WeChatPay.Core -{ - /// - /// IConfig - /// - public interface IPayConfig - { - - //=======【基本信息设置】===================================== - /* 微信公众号信息配置 - * APPID:绑定支付的APPID(必须配置) - * MCHID:商户号(必须配置) - * KEY:商户支付密钥,参考开户邮件设置(必须配置),请妥善保管,避免密钥泄露 - * APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置),请妥善保管,避免密钥泄露 - */ - - string GetAppID(); - string GetMchID(); - string GetKey(); - string GetAppSecret(); - - - - //=======【证书路径设置】===================================== - /* 证书路径,注意应该填写绝对路径(仅退款、撤销订单时需要) - * 1.证书文件不能放在web服务器虚拟目录,应放在有访问权限控制的目录中,防止被他人下载; - * 2.建议将证书文件名改为复杂且不容易猜测的文件 - * 3.商户服务器要做好病毒和木马防护工作,不被非法侵入者窃取证书文件。 - */ - string GetSSlCertPath(); - string GetSSlCertPassword(); - - - - //=======【支付结果通知url】===================================== - /* 支付结果通知回调url,用于商户接收支付结果 - */ - string GetNotifyUrl(); - - //=======【商户系统后台机器IP】===================================== - /* 此参数可手动配置也可在程序中自动获取 - */ - string GetIp(); - - - //=======【代理服务器设置】=================================== - /* 默认IP和端口号分别为0.0.0.0和0,此时不开启代理(如有需要才设置) - */ - string GetProxyUrl(); - - - //=======【上报信息配置】=================================== - /* 测速上报等级,0.关闭上报; 1.仅错误时上报; 2.全量上报 - */ - int GetReportLevel(); - - - //=======【日志级别】=================================== - /* 日志等级,0.不输出日志;1.只输出错误信息; 2.输出错误和正常信息; 3.输出错误信息、正常信息和调试信息 - */ - int GetLogLevel(); - - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Config/PayConfig.cs b/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Config/PayConfig.cs deleted file mode 100644 index 73600b69..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Config/PayConfig.cs +++ /dev/null @@ -1,108 +0,0 @@ -using Newtonsoft.Json; -using System; -using System.IO; -using Microsoft.Extensions.Configuration; -using Yi.Framework.WeChatPay.Options; - -namespace Yi.Framework.WeChatPay.Core -{ - public class PayConfig : IPayConfig - { - public static PayConfig Current = null; - - public PayConfig(PayOptions payOptions) - { - Current = this; - _BasicConfig = payOptions; - } - - private static PayOptions _BasicConfig = null; - - - //=======【基本信息设置】===================================== - /* 微信公众号信息配置 - * APPID:绑定支付的APPID(必须配置) - * MCHID:商户号(必须配置) - * KEY:商户支付密钥,参考开户邮件设置(必须配置),请妥善保管,避免密钥泄露 - * APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置),请妥善保管,避免密钥泄露 - */ - - public string GetAppID() - { - return _BasicConfig.AppID; - } - public string GetMchID() - { - return _BasicConfig.MchID; - } - public string GetKey() - { - return _BasicConfig.Key; - } - public string GetAppSecret() - { - return ""; - } - - - - //=======【证书路径设置】===================================== - /* 证书路径,注意应该填写绝对路径(仅退款、撤销订单时需要) - * 1.证书文件不能放在web服务器虚拟目录,应放在有访问权限控制的目录中,防止被他人下载; - * 2.建议将证书文件名改为复杂且不容易猜测的文件 - * 3.商户服务器要做好病毒和木马防护工作,不被非法侵入者窃取证书文件。 - */ - public string GetSSlCertPath() - { - return ""; - } - public string GetSSlCertPassword() - { - return ""; - } - - - - //=======【支付结果通知url】===================================== - /* 支付结果通知回调url,用于商户接收支付结果 - */ - public string GetNotifyUrl() - { - return _BasicConfig.NotifyUrl; - } - - //=======【商户系统后台机器IP】===================================== - /* 此参数可手动配置也可在程序中自动获取 - */ - public string GetIp() - { - return "0.0.0.0"; - } - - //=======【代理服务器设置】=================================== - /* 默认IP和端口号分别为0.0.0.0和0,此时不开启代理(如有需要才设置) - */ - public string GetProxyUrl() - { - return ""; - } - - - //=======【上报信息配置】=================================== - /* 测速上报等级,0.关闭上报; 1.仅错误时上报; 2.全量上报 - */ - public int GetReportLevel() - { - return 1; - } - - - //=======【日志级别】=================================== - /* 日志等级,0.不输出日志;1.只输出错误信息; 2.输出错误和正常信息; 3.输出错误信息、正常信息和调试信息 - */ - public int GetLogLevel() - { - return 1; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Helper/PayApi.cs b/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Helper/PayApi.cs deleted file mode 100644 index db6e41f3..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Helper/PayApi.cs +++ /dev/null @@ -1,138 +0,0 @@ -using FizzWare.NBuilder; -using Microsoft.AspNetCore.Http; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.WeChatPay.Exceptions; - -namespace Yi.Framework.WeChatPay.Core -{ - public class PayApi - { - private readonly IPayConfig _IPayConfig = null; - private readonly PayHttpService _PayHttpService = null; - public PayApi(IPayConfig payConfig, PayHttpService payHttpService) - { - this._IPayConfig = payConfig; - this._PayHttpService = payHttpService; - } - - /** - * - * 统一下单 - * @param WxPaydata inputObj 提交给统一下单API的参数 - * @param int timeOut 超时时间 - * @throws WxPayException - * @return 成功时返回,其他抛异常 - */ - public PayData UnifiedOrder(PayData inputObj, int timeOut = 6) - { - string url = "https://api.mch.weixin.qq.com/pay/unifiedorder"; - //检测必填参数 - if (!inputObj.IsSet("out_trade_no")) - { - throw new PayException("缺少统一支付接口必填参数out_trade_no!"); - } - else if (!inputObj.IsSet("body")) - { - throw new PayException("缺少统一支付接口必填参数body!"); - } - else if (!inputObj.IsSet("total_fee")) - { - throw new PayException("缺少统一支付接口必填参数total_fee!"); - } - else if (!inputObj.IsSet("trade_type")) - { - throw new PayException("缺少统一支付接口必填参数trade_type!"); - } - - //关联参数 - if (inputObj.GetValue("trade_type").ToString() == "JSAPI" && !inputObj.IsSet("openid")) - { - throw new PayException("统一支付接口中,缺少必填参数openid!trade_type为JSAPI时,openid为必填参数!"); - } - if (inputObj.GetValue("trade_type").ToString() == "NATIVE" && !inputObj.IsSet("product_id")) - { - throw new PayException("统一支付接口中,缺少必填参数product_id!trade_type为JSAPI时,product_id为必填参数!"); - } - - //异步通知url未设置,则使用配置文件中的url - /*if (!inputObj.IsSet("notify_url")) - { - inputObj.SetValue("notify_url", this._IWxPayConfig().GetNotifyUrl());//异步通知url - }*/ - - inputObj.SetValue("appid", this._IPayConfig.GetAppID());//公众账号ID - inputObj.SetValue("mch_id", this._IPayConfig.GetMchID());//商户号 - inputObj.SetValue("spbill_create_ip", this._IPayConfig.GetIp());//终端ip - inputObj.SetValue("nonce_str", GenerateNonceStr());//随机字符串 - inputObj.SetValue("sign_type", PayData.SIGN_TYPE_HMAC_SHA256);//签名类型 - - //签名 - inputObj.SetValue("sign", inputObj.MakeSign()); - string xml = inputObj.ToXml(); - // 发起http请求 - string response = this._PayHttpService.Post(xml, url, false, timeOut); - PayData result = new PayData(); - result.FromXml(response); - - return result; - } - - /** - * - * 查询订单 - * @param WxPayData inputObj 提交给查询订单API的参数 - * @param int timeOut 超时时间 - * @throws WxPayException - * @return 成功时返回订单查询结果,其他抛异常 - */ - public PayData OrderQuery(PayData inputObj, HttpContext httpContext, int timeOut = 6) - { - string url = "https://api.mch.weixin.qq.com/pay/orderquery"; - //检测必填参数 - if (!inputObj.IsSet("out_trade_no") && !inputObj.IsSet("transaction_id")) - { - throw new PayException("订单查询接口中,out_trade_no、transaction_id至少填一个!"); - } - - inputObj.SetValue("appid", this._IPayConfig.GetAppID());//公众账号ID - inputObj.SetValue("mch_id", this._IPayConfig.GetMchID());//商户号 - inputObj.SetValue("nonce_str", GenerateNonceStr());//随机字符串 - inputObj.SetValue("sign_type", PayData.SIGN_TYPE_HMAC_SHA256);//签名类型 - inputObj.SetValue("sign", inputObj.MakeSign());//签名 - string xml = inputObj.ToXml(); - //Log.Debug("WxPayApi", "OrderQuery request : " + xml); - string response = this._PayHttpService.Post(xml, url, false, timeOut);//调用HTTP通信接口提交数据 - //Log.Debug("WxPayApi", "OrderQuery response : " + response); - - //将xml格式的数据转化为对象以返回 - PayData result = new PayData(); - result.FromXml(response); - - return result; - } - - /** - * 生成时间戳,标准北京时间,时区为东八区,自1970年1月1日 0点0分0秒以来的秒数 - * @return 时间戳 - */ - public static string GenerateTimeStamp() - { - TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); - return Convert.ToInt64(ts.TotalSeconds).ToString(); - } - - /** - * 生成随机串,随机串包含字母或数字 - * @return 随机串 - */ - public static string GenerateNonceStr() - { - RandomGenerator randomGenerator = new RandomGenerator(); - return randomGenerator.Int().ToString(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Helper/PayData.cs b/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Helper/PayData.cs deleted file mode 100644 index 61dff76a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Helper/PayData.cs +++ /dev/null @@ -1,322 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Web; -using System.Xml; -using System.Security.Cryptography; -using System.Text; -using System.Linq; -using Newtonsoft.Json; -using Yi.Framework.WeChatPay.Core; - -namespace Yi.Framework.WeChatPay.Core -{ - /// - /// 微信支付协议接口数据类,所有的API接口通信都依赖这个数据结构, - /// 在调用接口之前先填充各个字段的值,然后进行接口通信, - /// 这样设计的好处是可扩展性强,用户可随意对协议进行更改而不用重新设计数据结构, - /// 还可以随意组合出不同的协议数据包,不用为每个协议设计一个数据包结构 - /// - public class PayData - { - public const string SIGN_TYPE_MD5 = "MD5"; - public const string SIGN_TYPE_HMAC_SHA256 = "HMAC-SHA256"; - - - //采用排序的Dictionary的好处是方便对数据包进行签名,不用再签名之前再做一次排序 - private SortedDictionary m_values = new SortedDictionary(); - - /** - * 设置某个字段的值 - * @param key 字段名 - * @param value 字段值 - */ - public void SetValue(string key, object value) - { - m_values[key] = value; - } - - /** - * 根据字段名获取某个字段的值 - * @param key 字段名 - * @return key对应的字段值 - */ - public object GetValue(string key) - { - object o = null; - m_values.TryGetValue(key, out o); - return o; - } - - /** - * 判断某个字段是否已设置 - * @param key 字段名 - * @return 若字段key已被设置,则返回true,否则返回false - */ - public bool IsSet(string key) - { - object o = null; - m_values.TryGetValue(key, out o); - if (null != o && !o.Equals("")) - return true; - else - return false; - } - - /** - * @将Dictionary转成xml - * @return 经转换得到的xml串 - * @throws WxPayException - **/ - public string ToXml() - { - //数据为空时不能转化为xml格式 - if (0 == m_values.Count) - { - throw new Exception("WxPayData数据为空!"); - } - - string xml = ""; - foreach (KeyValuePair pair in m_values) - { - //字段值不能为null,会影响后续流程 - if (pair.Value == null) - { - throw new Exception("WxPayData内部含有值为null的字段!"); - } - - if (pair.Value.GetType() == typeof(int)) - { - xml += "<" + pair.Key + ">" + pair.Value + ""; - } - else if (pair.Value.GetType() == typeof(string)) - { - xml += "<" + pair.Key + ">" + ""; - } - else//除了string和int类型不能含有其他数据类型 - { - throw new Exception("WxPayData字段数据类型错误!"); - } - } - xml += ""; - return xml; - } - - /** - * @将xml转为WxPayData对象并返回对象内部的数据 - * @param string 待转换的xml串 - * @return 经转换得到的Dictionary - * @throws WxPayException - */ - public SortedDictionary FromXml(string xml) - { - if (string.IsNullOrEmpty(xml)) - { - throw new Exception("将空的xml串转换为WxPayData不合法!"); - } - - - SafeXmlDocument xmlDoc = new SafeXmlDocument(); - xmlDoc.LoadXml(xml); - XmlNode xmlNode = xmlDoc.FirstChild;//获取到根节点 - XmlNodeList nodes = xmlNode.ChildNodes; - foreach (XmlNode xn in nodes) - { - XmlElement xe = (XmlElement)xn; - m_values[xe.Name] = xe.InnerText;//获取xml的键值对到WxPayData内部的数据中 - } - - try - { - //2015-06-29 错误是没有签名 - if (m_values["return_code"].ToString() != "SUCCESS") - { - return m_values; - } - //验证签名,不通过会抛异常 - CheckSign(); - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - - return m_values; - } - - /** - * @Dictionary格式转化成url参数格式 - * @ return url格式串, 该串不包含sign字段值 - */ - public string ToUrl() - { - string buff = ""; - foreach (KeyValuePair pair in m_values) - { - if (pair.Value == null) - { - throw new Exception("WxPayData内部含有值为null的字段!"); - } - - if (pair.Key != "sign" && pair.Value.ToString() != "") - { - buff += pair.Key + "=" + pair.Value + "&"; - } - } - - buff = buff.Trim('&'); - return buff; - } - - - /** - * @Dictionary格式化成Json - * @return json串数据 - */ - public string ToJson() - { - string jsonStr = JsonConvert.SerializeObject(m_values); - return jsonStr; - - } - - /** - * @values格式化成能在Web页面上显示的结果(因为web页面上不能直接输出xml格式的字符串) - */ - public string ToPrintStr() - { - string str = ""; - foreach (KeyValuePair pair in m_values) - { - if (pair.Value == null) - { - throw new Exception("WxPayData内部含有值为null的字段!"); - } - - - str += string.Format("{0}={1}\n", pair.Key, pair.Value.ToString()); - } - str = HttpUtility.HtmlEncode(str); - return str; - } - - - /** - * @生成签名,详见签名生成算法 - * @return 签名, sign字段不参加签名 - */ - public string MakeSign(string signType) - { - //转url格式 - string str = ToUrl(); - //在string后加入API KEY - string apiKey = PayConfig.Current.GetKey(); - str += "&key=" + apiKey; - if (signType == SIGN_TYPE_MD5) - { - var md5 = MD5.Create(); - var bs = md5.ComputeHash(Encoding.UTF8.GetBytes(str)); - var sb = new StringBuilder(); - foreach (byte b in bs) - { - sb.Append(b.ToString("x2")); - } - //所有字符转为大写 - return sb.ToString().ToUpper(); - } - else if (signType == SIGN_TYPE_HMAC_SHA256) - { - return CalcHMACSHA256Hash(str, apiKey); - } - else - { - throw new Exception("sign_type 不合法"); - } - } - - /** - * @生成签名,详见签名生成算法 - * @return 签名, sign字段不参加签名 SHA256 - */ - public string MakeSign() - { - return MakeSign(SIGN_TYPE_HMAC_SHA256); - } - - - - /** - * - * 检测签名是否正确 - * 正确返回true,错误抛异常 - */ - public bool CheckSign(string signType) - { - //如果没有设置签名,则跳过检测 - if (!IsSet("sign")) - { - throw new Exception("WxPayData签名存在但不合法!"); - } - //如果设置了签名但是签名为空,则抛异常 - else if (GetValue("sign") == null || GetValue("sign").ToString() == "") - { - throw new Exception("WxPayData签名存在但不合法!"); - } - - //获取接收到的签名 - string return_sign = GetValue("sign").ToString(); - - //在本地计算新的签名 - string cal_sign = MakeSign(signType); - - if (cal_sign == return_sign) - { - return true; - } - - throw new Exception("WxPayData签名验证错误!"); - } - - - - /** - * - * 检测签名是否正确 - * 正确返回true,错误抛异常 - */ - public bool CheckSign() - { - return CheckSign(SIGN_TYPE_HMAC_SHA256); - } - - /** - * @获取Dictionary - */ - public SortedDictionary GetValues() - { - return m_values; - } - - - private string CalcHMACSHA256Hash(string plaintext, string salt) - { - string result = ""; - var enc = Encoding.Default; - byte[] - baText2BeHashed = enc.GetBytes(plaintext), - baSalt = enc.GetBytes(salt); - HMACSHA256 hasher = new HMACSHA256(baSalt); - byte[] baHashedText = hasher.ComputeHash(baText2BeHashed); - result = string.Join("", baHashedText.ToList().Select(b => b.ToString("x2")).ToArray()); - return result.ToUpper(); - } - - - private class SafeXmlDocument : XmlDocument - { - public SafeXmlDocument() - { - this.XmlResolver = null; - } - } - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Helper/PayHelper.cs b/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Helper/PayHelper.cs deleted file mode 100644 index 6eae84c2..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Helper/PayHelper.cs +++ /dev/null @@ -1,178 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.WeChatPay.Options; - -namespace Yi.Framework.WeChatPay.Core -{ - public class PayHelper - { - public static readonly string KEY_PAY_PREFIX = "order:pay:url:"; - private readonly IPayConfig _IPayConfig = null; - private readonly PayApi _PayApi = null; - - private HttpContext _httpContext; - public PayHelper(IPayConfig PayConfig, PayApi PayApi, IHttpContextAccessor httpContextAccessor) - { - this._IPayConfig = PayConfig; - this._PayApi = PayApi; - this._httpContext = httpContextAccessor.HttpContext; - } - - /// - /// 创建支付连接 - /// - /// - /// - /// - /// - /// - public string CreatePayUrl(long orderId, string description, long totalPay) - { - // 定义返回的支付连接 - string url; - try - { - // 构建支付需要的参数对象 - PayData data = new PayData(); - //描述 - data.SetValue("body", description); - //订单号 - data.SetValue("out_trade_no", orderId.ToString()); - data.SetValue("product_id", orderId.ToString()); - //货币(默认就是人民币) - data.SetValue("fee_type", "CNY"); - //TODO 总金额 (模拟1分钱, 线上环境换成真实价格) - data.SetValue("total_fee", /*totalPay.ToString()*/ 1); // 单位是分 - //调用微信支付的终端ip - data.SetValue("spbill_create_ip", "0.0.0.0"); - //回调地址 - data.SetValue("notify_url", this._IPayConfig.GetNotifyUrl()); - //交易类型为扫码支付 - data.SetValue("trade_type", "NATIVE"); - - PayData result = this._PayApi.UnifiedOrder(data);//调用统一下单接口 - url = result.GetValue("code_url").ToString();//获得统一下单接口返回的二维码链接 - } - catch (Exception e) - { - throw new Exception("生成支付链接连接失败", e); - } - - return url; - } - - - /// - /// (调用微信API)根据订单ID查询订单信息,全部信息 - /// - /// - /// - public PayData QueryOrderById(long orderId) - { - PayData req = new PayData(); - req.SetValue("out_trade_no", orderId.ToString()); - PayData res = this._PayApi.OrderQuery(req, _httpContext); - return res;// 返回查询数据 - } - - - - - public static PayOptions GetPayOptions(string path) - { - string config = File.ReadAllText(path); - var option = JsonConvert.DeserializeObject(config); - Console.WriteLine($"configPath={path} AppID={option.AppID}"); - return option; - } - - /// - /// 生成二维码方法 - /// - /// 输入的字符串 - /// 二维码宽度 - /// 二维码高度 - /// - public static string QRcode(string text, int width = 360, int height = 360) - { - - //这里要感谢一下http://old.wwei.cn/ - Dictionary dic = new() - { - { "qrid", "0" }, - { "data[type]", "index" }, - { "data[text]", text }, - { "moban_id", "0" }, - { "size", "300" }, - { "level", "M" }, - { "moban_type", "qrcpu" }, - { "style_setting[protype]", "1" }, - { "style_setting[ptcolor]", "#000000" }, - { "style_setting[inptcolor]", "#000000" }, - { "style_setting[fcolor]", "#000000" }, - { "style_setting[bcolor]", "#ffffff" }, - { "style_setting[mbtype_hb]", "0" }, - { "style_setting[logo_id]", "" }, - { "style_setting[logo_width]", "46" }, - { "style_setting[logo_height]", "46" }, - { "style_setting[logo_border]", "0" } - - }; - - - StringBuilder builder = new StringBuilder(); - int i = 0; - if (dic.Count > 0) - { - foreach (var item in dic) - { - if (i > 0) - builder.Append("&"); - builder.AppendFormat("{0}={1}", item.Key, item.Value); - i++; - } - } - - string postDataStr = builder.ToString(); - - -#pragma warning disable SYSLIB0014 // 类型或成员已过时 - HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://old.wwei.cn/qrcode-wwei_create.html"); -#pragma warning restore SYSLIB0014 // 类型或成员已过时 - - request.Method = "POST"; - request.ContentType = "application/x-www-form-urlencoded"; - request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr); - request.Headers.Add("Host", "old.wwei.cn"); - request.Headers.Add("User-Agent", "PostmanRuntime/6.66.6"); - request.Headers.Add("Origin", "http://old.wwei.cn"); - request.Headers.Add("Referer", "http://old.wwei.cn/"); - - Stream myRequestStream = request.GetRequestStream(); - StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("utf-8")); - myStreamWriter.Write(postDataStr); - myStreamWriter.Close(); - - HttpWebResponse response = (HttpWebResponse)request.GetResponse(); - - Stream myResponseStream = response.GetResponseStream(); - StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); - string retString = myStreamReader.ReadToEnd(); - myStreamReader.Close(); - myResponseStream.Close(); - - var json = Newtonsoft.Json.JsonConvert.DeserializeObject(retString); - var data = json["data"].ToString(); - - return data; - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Helper/PayHttpService.cs b/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Helper/PayHttpService.cs deleted file mode 100644 index 432bfd53..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Helper/PayHttpService.cs +++ /dev/null @@ -1,196 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Web; -using System.Net; -using System.IO; -using System.Text; -using System.Net.Security; -using System.Security.Authentication; -using System.Security.Cryptography.X509Certificates; -using Microsoft.AspNetCore.Http; -using Yi.Framework.WeChatPay.Exceptions; - -namespace Yi.Framework.WeChatPay.Core -{ - /// - /// http连接基础类,负责底层的http通信 - /// - public class PayHttpService - { - private readonly IPayConfig _IPayConfig = null; - private readonly HttpContext _httpContext = null; - public PayHttpService(IPayConfig PayConfig, IHttpContextAccessor httpContextAccessor) - { - this._IPayConfig = PayConfig; - this._httpContext = httpContextAccessor.HttpContext; - } - - public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) - { - //直接确认,否则打不开 - return true; - } - - public string Post(string xml, string url, bool isUseCert, int timeout) - { - System.GC.Collect();//垃圾回收,回收没有正常关闭的http连接 - - string result = "";//返回结果 - - - HttpWebRequest request = null; - HttpWebResponse response = null; - Stream reqStream = null; - - try - { - //设置最大连接数 - ServicePointManager.DefaultConnectionLimit = 200; - //设置https验证方式 - if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) - { - ServicePointManager.ServerCertificateValidationCallback = - new RemoteCertificateValidationCallback(CheckValidationResult); - } - - /*************************************************************** - * 下面设置HttpWebRequest的相关属性 - * ************************************************************/ -#pragma warning disable SYSLIB0014 // 类型或成员已过时 - request = (HttpWebRequest)WebRequest.Create(url); -#pragma warning restore SYSLIB0014 // 类型或成员已过时 - request.UserAgent = string.Format("WXPaySDK/{3} ({0}) .net/{1} {2}", Environment.OSVersion, Environment.Version, this._IPayConfig.GetMchID(), typeof(PayHttpService).Assembly.GetName().Version); - request.Method = "POST"; - request.Timeout = timeout * 1000; - - //设置POST的数据类型和长度 - request.ContentType = "text/xml"; - byte[] data = Encoding.UTF8.GetBytes(xml); - request.ContentLength = data.Length; - - - if (isUseCert)//是否使用证书--没用证书 - { - string path = _httpContext.Request.Path; - X509Certificate2 cert = new X509Certificate2(path + this._IPayConfig.GetSSlCertPath(), this._IPayConfig.GetSSlCertPassword()); - request.ClientCertificates.Add(cert); - } - - //往服务器写入数据 - reqStream = request.GetRequestStream(); - reqStream.Write(data, 0, data.Length); - reqStream.Close(); - - //获取服务端返回 - response = (HttpWebResponse)request.GetResponse(); - - //获取服务端返回数据 - StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8); - result = sr.ReadToEnd().Trim(); - sr.Close(); - } - catch (System.Threading.ThreadAbortException) - { -#pragma warning disable SYSLIB0006 // 类型或成员已过时 - Thread.ResetAbort(); -#pragma warning restore SYSLIB0006 // 类型或成员已过时 - } - catch (WebException e) - { - if (e.Status == WebExceptionStatus.ProtocolError) - { - throw new PayException(e.ToString()); - } - - } - catch (Exception e) - { - throw new PayException(e.ToString()); - } - finally - { - //关闭连接和流 - if (response != null) - { - response.Close(); - } - if (request != null) - { - request.Abort(); - } - } - return result; - } - - /// - /// 处理http GET请求,返回数据 - /// - /// 请求的url地址 - /// http GET成功后返回的数据,失败抛WebException异常 - public string Get(string url) - { - System.GC.Collect(); - string result = ""; - - HttpWebRequest request = null; - HttpWebResponse response = null; - - //请求url以获取数据 - try - { - //设置最大连接数 - ServicePointManager.DefaultConnectionLimit = 200; - //设置https验证方式 - if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) - { - ServicePointManager.ServerCertificateValidationCallback = - new RemoteCertificateValidationCallback(CheckValidationResult); - } - - /*************************************************************** - * 下面设置HttpWebRequest的相关属性 - * ************************************************************/ -#pragma warning disable SYSLIB0014 // 类型或成员已过时 - request = (HttpWebRequest)WebRequest.Create(url); -#pragma warning restore SYSLIB0014 // 类型或成员已过时 - request.UserAgent = string.Format("WXPaySDK/{3} ({0}) .net/{1} {2}", Environment.OSVersion, Environment.Version, this._IPayConfig.GetMchID(), typeof(PayHttpService).Assembly.GetName().Version); - request.Method = "GET"; - - //获取服务器返回 - response = (HttpWebResponse)request.GetResponse(); - - //获取HTTP返回数据 - StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8); - result = sr.ReadToEnd().Trim(); - sr.Close(); - } - catch (System.Threading.ThreadAbortException) - { -#pragma warning disable SYSLIB0006 // 类型或成员已过时 - Thread.ResetAbort(); -#pragma warning restore SYSLIB0006 // 类型或成员已过时 - } - catch (WebException e) - { - throw new PayException(e.ToString()); - } - catch (Exception e) - { - throw new PayException(e.ToString()); - } - finally - { - //关闭连接和流 - if (response != null) - { - response.Close(); - } - if (request != null) - { - request.Abort(); - } - } - return result; - } - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/IPayInvoker.cs b/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/IPayInvoker.cs deleted file mode 100644 index 5d1fbe9b..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/IPayInvoker.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Microsoft.AspNetCore.Http; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.WeChatPay.Core -{ - public interface IPayInvoker - { - /// - /// 获取WX支付链接的方法 - /// 然后发布定时同步状态任务 - /// - /// 订单ID - /// 用户信息 - /// 请求上下文 - /// 返回生成的支持链接 - string GenerateUrl(long orderId, long totalPay); - /// - /// 处理微信支付回调 - /// - /// - /// - PayData HandleNotify(); - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Notify/AbstractNotify.cs b/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Notify/AbstractNotify.cs deleted file mode 100644 index 0034e46b..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Notify/AbstractNotify.cs +++ /dev/null @@ -1,72 +0,0 @@ -using Microsoft.AspNetCore.Http; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.WeChatPay.Exceptions; - -namespace Yi.Framework.WeChatPay.Core -{ - public abstract class AbstractNotify - { - protected HttpContext _httpContext; - - public AbstractNotify(IHttpContextAccessor httpContextAccessor) - { - this._httpContext = httpContextAccessor.HttpContext; - } - - /// - /// 从请求对象中获取信息 - /// - /// - /// - /// - private async Task GetRawBodyStringAsync(HttpRequest request, Encoding encoding = null) - { - if (encoding is null) - { - encoding = Encoding.UTF8; - } - var stream = new MemoryStream(); - await request.Body.CopyToAsync(stream); - stream.Seek(0, 0); - using (var reader = new StreamReader(stream, encoding)) - { - var result = await reader.ReadToEndAsync(); - return result; - } - } - - /// - /// 接收从微信支付后台发送过来的数据并验证签名 - /// - /// 微信支付后台返回的数据 - public PayData GetNotifyData() - { - //接收从微信后台POST过来的数据 - string content = GetRawBodyStringAsync(_httpContext.Request).Result; - Console.WriteLine(this.GetType().ToString(), "Receive data from WeChat : " + content); - - //转换数据格式并验证签名 - PayData data = new PayData(); - try - { - data.FromXml(content); - } - catch (PayException ex) - { - throw new Exception("验签失败", ex); - } - - Console.WriteLine(this.GetType().ToString(), "Check sign success"); - return data; - } - - //派生类需要重写这个方法,进行不同的回调处理 - public abstract PayData ProcessNotify(); - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Notify/ResultNotify.cs b/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Notify/ResultNotify.cs deleted file mode 100644 index 562e04ca..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Notify/ResultNotify.cs +++ /dev/null @@ -1,101 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.Logging; - -namespace Yi.Framework.WeChatPay.Core -{ - public class ResultNotify : AbstractNotify - { - private readonly PayApi _PayApi; - private readonly ILogger _logger; - public ResultNotify(PayApi PayApi,ILogger logger, IHttpContextAccessor httpContextAccessor) :base(httpContextAccessor) - { - this._PayApi = PayApi; - this._logger = logger; - } - - /// - /// 处理支付回调 - /// - /// - public override PayData ProcessNotify() - { - PayData notifyData = GetNotifyData(); - //解析数据 - string totalFee = notifyData.GetValue("total_fee").ToString(); //订单金额 - string outTradeNo = notifyData.GetValue("out_trade_no").ToString(); //订单编号 - string transactionId = notifyData.GetValue("transaction_id").ToString(); //商户订单号 - string bankType = notifyData.GetValue("bank_type").ToString(); //银行类型 - - _logger.LogInformation($"======支付回调参数:{totalFee}=={outTradeNo}=={transactionId}=={bankType}"); - if (totalFee.Equals("") || outTradeNo.Equals("") || transactionId.Equals("") || bankType.Equals("")) - { - PayData res = new(); - res.SetValue("return_code", "FAIL"); - res.SetValue("return_msg", "支付回调返回数据不正确"); - _logger.LogInformation("支付错误结果 : " + res.ToXml()); - return res; - } - - //检查支付结果中transaction_id是否存在--流水号 - if (!notifyData.IsSet("transaction_id")) - { - //若transaction_id不存在,则立即返回结果给微信支付后台 - PayData res = new(); - res.SetValue("return_code", "FAIL"); - res.SetValue("return_msg", "支付结果中微信订单号不存在"); - _logger.LogInformation("支付错误结果 : " + res.ToXml()); - - return res; - } - - //查询订单,判断订单真实性 - if (!QueryOrder(transactionId)) - { - //若订单查询失败,则立即返回结果给微信支付后台 - PayData res = new(); - res.SetValue("return_code", "FAIL"); - res.SetValue("return_msg", "订单查询失败"); - _logger.LogInformation("订单查询失败 : " + res.ToXml()); - - return res; - } - //查询订单成功 - else - { - // 打印结果 (仅打印) - PayData res = new PayData(); - res.SetValue("return_code", "SUCCESS"); - res.SetValue("return_msg", "OK"); - res.SetValue("transaction_id", transactionId); - _logger.LogInformation("订单查成功: " + res.ToXml()); - - // 设置返回响应结果 - notifyData.SetValue("return_code", "SUCCESS"); - notifyData.SetValue("return_msg", "OK"); - - return notifyData; - } - } - - /// - /// 根据流水号查询订单信息 - /// - /// - /// - private bool QueryOrder(string transaction_id) - { - PayData req = new PayData(); - req.SetValue("transaction_id", transaction_id); - PayData res = this._PayApi.OrderQuery(req, _httpContext); - if (res.GetValue("return_code").ToString() == "SUCCESS" && - res.GetValue("result_code").ToString() == "SUCCESS") - { - return true; - } - else - { - return false; - } - } - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/PayInvoker.cs b/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/PayInvoker.cs deleted file mode 100644 index e1817ef8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/PayInvoker.cs +++ /dev/null @@ -1,55 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.WeChatPay.Options; - -namespace Yi.Framework.WeChatPay.Core -{ - public class PayInvoker:IPayInvoker - { - private readonly PayHelper _payHelper; - private readonly ILogger _logger; - private readonly AbstractNotify _notify; - - public PayInvoker(PayHelper payHelper, ILogger logger, AbstractNotify notify) - { - this._payHelper = payHelper; - this._logger = logger; - this._notify = notify; - } - - /// - /// 获取WX支付链接的方法 - /// 然后发布定时同步状态任务 - /// - /// 订单ID - /// 用户信息 - /// 请求上下文 - /// 返回生成的支持链接 - public string GenerateUrl(long orderId, long totalPay) - { - string payUrl = null; - _logger.LogInformation("准备生成支付链接....."); - payUrl = _payHelper.CreatePayUrl(orderId, "微信支付链接", totalPay); - _logger.LogInformation("生成支付链接为:{payUrl}", payUrl); - return payUrl; - } - - /// - /// 处理微信支付回调 - /// - /// - /// - public PayData HandleNotify() - { - PayData wxPayData = this._notify.ProcessNotify(); - - return wxPayData; - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Exceptions/PayException.cs b/Yi.Framework.Net6/Yi.Framework.WeChatPay/Exceptions/PayException.cs deleted file mode 100644 index 2aafe37d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Exceptions/PayException.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Runtime.Serialization; - -namespace Yi.Framework.WeChatPay.Exceptions -{ - [Serializable] - public class PayException : Exception - { - public PayException() - { - } - - public PayException(string message) : base(message) - { - } - - public PayException(string message, Exception innerException) : base(message, innerException) - { - } - - protected PayException(SerializationInfo info, StreamingContext context) : base(info, context) - { - } - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Options/PayOptions.cs b/Yi.Framework.Net6/Yi.Framework.WeChatPay/Options/PayOptions.cs deleted file mode 100644 index 861266da..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Options/PayOptions.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Yi.Framework.WeChatPay.Options -{ - public class PayOptions - { - public string AppID { get; set; } - public string MchID { get; set; } - public string Key { get; set; } - public string NotifyUrl { get; set; } - - public bool IsFileConfig { get; set; } = false; - - public string ConfigPath { get; set; } - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/PayServiceExtensions.cs b/Yi.Framework.Net6/Yi.Framework.WeChatPay/PayServiceExtensions.cs deleted file mode 100644 index 883c4eb9..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/PayServiceExtensions.cs +++ /dev/null @@ -1,51 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.WeChatPay.Core; -using Yi.Framework.WeChatPay.Exceptions; -using Yi.Framework.WeChatPay.Options; - -namespace Yi.Framework.WeChatPay.WebCore -{ - public static class PayServiceExtensions - { - public static IServiceCollection AddWeChatPayService(this IServiceCollection services,Action configure) - { - var option= new PayOptions(); - configure(option); - if (option.IsFileConfig) - { - option=PayHelper.GetPayOptions(option.ConfigPath); - } - if (option.AppID == null) - { - throw new PayException("AppId为空值"); - } - if (option.MchID == null) - { - throw new PayException("MchID为空值"); - } - if (option.Key == null) - { - throw new PayException("Key为空值"); - } - if (option.NotifyUrl == null) - { - throw new PayException("NotifyUrl为空值"); - } - services.AddSingleton(option); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddHttpContextAccessor(); - return services; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Yi.Framework.WeChatPay.csproj b/Yi.Framework.Net6/Yi.Framework.WeChatPay/Yi.Framework.WeChatPay.csproj deleted file mode 100644 index dc80f313..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WeChatPay/Yi.Framework.WeChatPay.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - net6.0 - enable - disable - - - - - - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/AuthorizationExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/AuthorizationExtension.cs deleted file mode 100644 index afcb5b46..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/AuthorizationExtension.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.Extensions.DependencyInjection; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.WebCore.AuthorizationPolicy; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - public static class AuthorizationExtension - { - public static IServiceCollection AddAuthorizationService(this IServiceCollection services) - { - services.AddAuthorization(options => - { - options.AddPolicy(PolicyName.Sid, polic => - { - polic.AddRequirements(new CustomAuthorizationRequirement(PolicyEnum.MenuPermissions)); - }); - }); - - services.AddSingleton(); - return services; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/AutoIocExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/AutoIocExtend.cs deleted file mode 100644 index 538a2442..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/AutoIocExtend.cs +++ /dev/null @@ -1,98 +0,0 @@ - -using Autofac; -using Autofac.Extras.DynamicProxy; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.DependencyInjection; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Attribute; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - public static class AutoIocExtend - { - private static void RegIoc(ContainerBuilder build, Assembly assembly) - { - foreach (var type in assembly.GetTypes()) - { - - var serviceAttribute = type.GetCustomAttribute(); - if (serviceAttribute is not null) - { - //情况1:使用自定义[AppService(ServiceType = typeof(注册抽象或者接口))],手动去注册,放type即可 - var serviceType = serviceAttribute.ServiceType; - //情况2 自动去找接口,如果存在就是接口,如果不存在就是本身 - if (serviceType == null) - { - //获取最靠近的接口 - var firstInter = type.GetInterfaces().LastOrDefault(); - if (firstInter is null) - { - serviceType = type; - } - else - { - serviceType = firstInter; - } - } - - switch (serviceAttribute.ServiceLifetime) - { - case LifeTime.Singleton: - if (type.IsGenericType) - { - build.RegisterGeneric(type).As(serviceType).SingleInstance().EnableInterfaceInterceptors(); - } - else - { - build.RegisterType(type).As(serviceType).SingleInstance().EnableInterfaceInterceptors(); - } - break; - case LifeTime.Scoped: - if (type.IsGenericType) - { - build.RegisterGeneric(type).As(serviceType).InstancePerLifetimeScope().EnableInterfaceInterceptors(); - } - else - { - build.RegisterType(type).As(serviceType).InstancePerLifetimeScope().EnableInterfaceInterceptors(); - } - break; - case LifeTime.Transient: - if (type.IsGenericType) - { - build.RegisterGeneric(type).As(serviceType).InstancePerDependency().EnableInterfaceInterceptors(); - } - else - { - build.RegisterType(type).As(serviceType).InstancePerDependency().EnableInterfaceInterceptors(); - } - break; - default: - if (type.IsGenericType) - { - build.RegisterGeneric(type).As(serviceType).InstancePerDependency().EnableInterfaceInterceptors(); - } - else - { - build.RegisterType(type).As(serviceType).InstancePerDependency().EnableInterfaceInterceptors(); - } - break; - } - } - } - } - - public static void AddAutoIocService(this ContainerBuilder build, params string[] assemblyStr) - { - foreach (var a in assemblyStr) - { - RegIoc(build, Assembly.Load(a)); - } - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/AutoMapperExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/AutoMapperExtension.cs deleted file mode 100644 index 303667f0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/AutoMapperExtension.cs +++ /dev/null @@ -1,26 +0,0 @@ -using AutoMapper; -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; -using System; -using System.IO; -using Yi.Framework.WebCore.Mapper; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - /// - /// 通用autoMapper扩展 - /// - public static class AutoMapperExtension - { - public static IServiceCollection AddAutoMapperService(this IServiceCollection services) - { - //这里会通过反射自动注入的,先临时这样 - - var profileList = Common.Helper.AssemblyHelper.GetClassByBaseClassesAndInterfaces("Yi.Framework.DtoModel", typeof(Profile)); - profileList.Add(typeof(AutoMapperProfile)); - services.AddAutoMapper(profileList.ToArray()); - - return services; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/CAPExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/CAPExtend.cs deleted file mode 100644 index 32ce9f81..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/CAPExtend.cs +++ /dev/null @@ -1,61 +0,0 @@ -using DotNetCore.CAP.Dashboard.NodeDiscovery; -using DotNetCore.CAP.Messages; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - public static class CAPExtend - { - public static IServiceCollection AddCAPService(this IServiceCollection services) - { - if (Appsettings.appBool("CAP_Enabled")) - { - services.AddCap(x => - { - x.UseMySql(Appsettings.app("DbConn", "WriteUrl")); - - x.UseRabbitMQ(optios => - { - optios.HostName = Appsettings.app("RabbitConn", "HostName"); - optios.Port = Convert.ToInt32(Appsettings.app("RabbitConn", "Port")); - optios.UserName = Appsettings.app("RabbitConn", "UserName"); - optios.Password = Appsettings.app("RabbitConn", "Password"); - - }); - x.FailedRetryCount = 30; - x.FailedRetryInterval = 60;//second - x.FailedThresholdCallback = failed => - { - //var logger = failed.ServiceProvider.GetService>(); - //logger.LogError($@"MessageType {failed.MessageType} 失败了, 重试了 {x.FailedRetryCount} 次, - //消息名称: {failed.Message.GetName()}");//do anything - }; - if (Appsettings.appBool("CAPDashboard_Enabled")) - { - x.UseDashboard(); - var discoveryOptions = Appsettings.app(); - x.UseDiscovery(d => - { - d.DiscoveryServerHostName = discoveryOptions.DiscoveryServerHostName; - d.DiscoveryServerPort = discoveryOptions.DiscoveryServerPort; - d.CurrentNodeHostName = discoveryOptions.CurrentNodeHostName; - d.CurrentNodePort = discoveryOptions.CurrentNodePort; - d.NodeId = discoveryOptions.NodeId; - d.NodeName = discoveryOptions.NodeName; - d.MatchPath = discoveryOptions.MatchPath; - }); - } - }); - - } - return services; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/CacheExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/CacheExtension.cs deleted file mode 100644 index 82f7ddf0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/CacheExtension.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.OpenApi.Models; -using System; -using System.IO; -using Yi.Framework.Common.IOCOptions; -using Yi.Framework.Core.Cache; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - /// - /// Redis扩展 - /// - public static class CacheExtension - { - public static IServiceCollection AddCacheService(this IServiceCollection services) - { - var cacheSelect = Appsettings.app("CacheSelect"); - - switch (cacheSelect) - { - case "Redis": - services.Configure(Appsettings.appConfiguration("RedisConnOptions")); - services.AddSingleton(); - break; - case "MemoryCache": - services.AddSingleton(); - break; - default: throw new ArgumentException("CacheSelect配置填的是什么东西?俺不认得"); - } - return services; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/CacheInitExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/CacheInitExtend.cs deleted file mode 100644 index ee7e53b4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/CacheInitExtend.cs +++ /dev/null @@ -1,38 +0,0 @@ -using log4net; -using Microsoft.AspNetCore.Builder; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Core.Cache; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - public static class CacheInitExtend - { - private static readonly ILog log = LogManager.GetLogger(typeof(CacheInitExtend)); - public static void UseRedisSeedInitService(this IApplicationBuilder app) - { - - if (Appsettings.appBool("CacheSeed_Enabled")) - { - var _cacheClientDB = app.ApplicationServices.GetService(); - - try - { - //RedisInit.Seed(_cacheClientDB); - } - catch (Exception e) - { - log.Error($"Error occured seeding the RedisInit.\n{e.Message}"); - throw; - } - } - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/ConsulRegisterHostExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/ConsulRegisterHostExtend.cs deleted file mode 100644 index 2a9972c8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/ConsulRegisterHostExtend.cs +++ /dev/null @@ -1,128 +0,0 @@ -using Consul; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Options; -using System; -using System.Threading; -using System.Threading.Tasks; -using Yi.Framework.Common.IOCOptions; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - /// - /// 注册ConsulRegisterService 这个servcie在app启动的时候会自动注册服务信息 - /// - public class ConsulRegisterHostExtend : IHostedService - { - private readonly ConsulRegisterOption _consulRegisterOptions; - private readonly ConsulClientOption _consulClientOptions; - public ConsulRegisterHostExtend() - { - _consulRegisterOptions = Appsettings.app("ConsulRegisterOption"); - - _consulClientOptions = Appsettings.app("ConsulClientOption"); - } - public async Task StartAsync(CancellationToken cancellationToken) - { - var httpPort = _consulRegisterOptions.Port; - //var grpcPort = Convert.ToInt32(Appsettings.app("GrpcPort")); - //------------------Http------------------ - using (ConsulClient client = new ConsulClient(c => - { - c.Address = new Uri($"http://{_consulClientOptions.IP}:{_consulClientOptions.Port}/"); - c.Datacenter = _consulClientOptions.Datacenter; - })) - { - var serviceId = $"{_consulRegisterOptions.IP}:{httpPort}-{_consulRegisterOptions.GroupName}"; - - await client.Agent.ServiceDeregister(serviceId, cancellationToken); - - Console.WriteLine($"开始向Consul注册Http[{serviceId}]服务 ..."); - - await client.Agent.ServiceRegister(new AgentServiceRegistration() - { - ID = serviceId,//唯一Id - Name = _consulRegisterOptions.GroupName,//组名称-Group - Address = _consulRegisterOptions.IP, - Port = httpPort, - Tags = new string[] { "Http" }, - Check = new AgentServiceCheck() - { - Interval = TimeSpan.FromSeconds(_consulRegisterOptions.Interval), - HTTP = $"http://{_consulRegisterOptions.IP}:{httpPort}/Health", - //GRPC = $"{this._consulRegisterOptions.IP}:{grpcPort}",//gRPC特有 - GRPCUseTLS = false,//支持http - Timeout = TimeSpan.FromSeconds(_consulRegisterOptions.Timeout), - DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(_consulRegisterOptions.DeregisterCriticalServiceAfter), - - } - }); - } - - - //------------------Grpc------------------ - //using (ConsulClient client = new ConsulClient(c => - //{ - // c.Address = new Uri($"http://{this._consulClientOptions.IP}:{this._consulClientOptions.Port}/"); - // c.Datacenter = this._consulClientOptions.Datacenter; - //})) - //{ - // var serviceId = $"{this._consulRegisterOptions.IP}:{grpcPort}-{this._consulRegisterOptions.GrpcGroupName}"; - - // await client.Agent.ServiceDeregister(serviceId, cancellationToken); - - // Console.WriteLine($"开始向Consul注册Grpc[{serviceId}]服务 ..."); - - // await client.Agent.ServiceRegister(new AgentServiceRegistration() - // { - // ID = serviceId,//唯一Id - // Name = this._consulRegisterOptions.GrpcGroupName,//组名称-Group - // Address = this._consulRegisterOptions.IP, - // Port = grpcPort, - // Tags = new string[] { "Grpc" }, - // Check = new AgentServiceCheck() - // { - // Interval = TimeSpan.FromSeconds(this._consulRegisterOptions.Interval), - // //HTTP = this._consulRegisterOption.HealthCheckUrl, - // GRPC = $"{this._consulRegisterOptions.IP}:{grpcPort}",//gRPC特有 - // GRPCUseTLS = false,//支持http - // Timeout = TimeSpan.FromSeconds(this._consulRegisterOptions.Timeout), - // DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(this._consulRegisterOptions.DeregisterCriticalServiceAfter), - - // } - // }); - //} - } - - /// - /// 正常注销调用 - /// - /// - /// - public async Task StopAsync(CancellationToken cancellationToken) - { - var httpPort = _consulRegisterOptions.Port; - //var grpcPort = Appsettings.app("GrpcPort"); - - - using (ConsulClient client = new ConsulClient(c => - { - c.Address = new Uri($"http://{_consulClientOptions.IP}:{_consulClientOptions.Port}/"); - c.Datacenter = _consulClientOptions.Datacenter; - })) - { - - - var serviceId = $"{_consulRegisterOptions.GroupName}:{_consulRegisterOptions.IP}-{httpPort}"; - - //var grpcServiceId = $"{this._consulRegisterOptions.GrpcGroupName}:{this._consulRegisterOptions.IP}-{grpcPort}"; - - await client.Agent.ServiceDeregister(serviceId, cancellationToken); - //await client.Agent.ServiceDeregister(grpcServiceId, cancellationToken); - Console.WriteLine($"开始Consul注销[{serviceId}]服务 ..."); - - } - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/ConsulRegiterExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/ConsulRegiterExtend.cs deleted file mode 100644 index 91acd3dd..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/ConsulRegiterExtend.cs +++ /dev/null @@ -1,64 +0,0 @@ -using Consul; -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.IOCOptions; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - /// - /// HTTP模式 - /// - public static class ConsulRegiterExtend - { - /// - /// 基于提供信息完成注册 - /// - /// - /// - /// - public static void UseConsulService(this IApplicationBuilder app) - { - - if (Appsettings.appBool("Consul_Enabled")) - { - var consulRegisterOption = Appsettings.app("ConsulRegisterOption"); - - var consulClientOption = Appsettings.app("ConsulClientOption"); - using (ConsulClient client = new ConsulClient(c => - { - c.Address = new Uri($"http://{consulClientOption.IP}:{consulClientOption.Port}/"); - c.Datacenter = consulClientOption.Datacenter; - })) - { - - client.Agent.ServiceDeregister($"{consulRegisterOption.IP}-{consulRegisterOption.Port}-{Guid.NewGuid()}"); - client.Agent.ServiceRegister(new AgentServiceRegistration() - { - ID = $"{consulRegisterOption.IP}-{consulRegisterOption.Port}-{Guid.NewGuid()}",//唯一Id - Name = consulRegisterOption.GroupName,//组名称-Group - Address = consulRegisterOption.IP, - Port = consulRegisterOption.Port, - Tags = new string[] { consulRegisterOption.Tag }, - Check = new AgentServiceCheck() - { - Interval = TimeSpan.FromSeconds(consulRegisterOption.Interval), - HTTP = $"http://{consulRegisterOption.IP}:{consulRegisterOption.Port}{consulRegisterOption.HealthCheckUrl}", - Timeout = TimeSpan.FromSeconds(consulRegisterOption.Timeout), - DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(consulRegisterOption.DeregisterCriticalServiceAfter) - } - }).Wait(); - Console.WriteLine($"{JsonConvert.SerializeObject(consulRegisterOption)} 完成注册"); - } - } - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/CorsExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/CorsExtension.cs deleted file mode 100644 index b6f5ed9f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/CorsExtension.cs +++ /dev/null @@ -1,40 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; -using System; -using System.IO; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - /// - /// 通用跨域扩展 - /// - public static class CorsExtension - { - public static IServiceCollection AddCorsService(this IServiceCollection services) - { - - if (Appsettings.appBool("Cors_Enabled")) - { - services.AddCors(options => options.AddPolicy("CorsPolicy",//解决跨域问题 - builder => - { - builder.AllowAnyMethod() - .SetIsOriginAllowed(_ => true) - .AllowAnyHeader() - .AllowCredentials(); - })); - } - return services; - } - - public static void UseCorsService(this IApplicationBuilder app) - { - if (Appsettings.appBool("Cors_Enabled")) - { - app.UseCors("CorsPolicy"); - } - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/ElasticSeachExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/ElasticSeachExtend.cs deleted file mode 100644 index cb9f8b1a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/ElasticSeachExtend.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.OpenApi.Models; -using System; -using System.IO; -using Yi.Framework.Common.IOCOptions; -using Yi.Framework.Core; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - /// - /// Redis扩展 - /// - public static class ElasticSeachExtend - { - public static IServiceCollection AddElasticSeachService(this IServiceCollection services) - { - if (Appsettings.appBool("ElasticSeach_Enabled")) - { - services.Configure(Appsettings.appConfiguration("ElasticSeachConn")); - services.AddTransient(); - } - return services; - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/HealthCheckExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/HealthCheckExtension.cs deleted file mode 100644 index 808528dc..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/HealthCheckExtension.cs +++ /dev/null @@ -1,40 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Http; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - /// - /// 健康检测扩展 - /// - public static class HealthCheckExtension - { - /// - /// 设置心跳响应 - /// - /// - /// 默认是/Health - /// - public static void UseHealthCheckService(this IApplicationBuilder app, string checkPath = "/Health") - { - if (Appsettings.appBool("HealthCheck_Enabled")) - { - app.Map(checkPath, applicationBuilder => applicationBuilder.Run(async context => - { - Console.WriteLine($"This is Health Check"); - context.Response.StatusCode = (int)HttpStatusCode.OK; - await context.Response.WriteAsync("OK"); - })); - } - - - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/IocExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/IocExtension.cs deleted file mode 100644 index 8bb6f9f4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/IocExtension.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using System; -using System.IO; -using Yi.Framework.Common.IOCOptions; -using Yi.Framework.Model; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - /// - /// 通用跨域扩展 - /// - public static class IocExtension - { - public static IServiceCollection AddIocService(this IServiceCollection services, IConfiguration configuration) - { - #region - //配置文件使用配置 - #endregion - services.AddSingleton(new Appsettings(configuration)); - - #region - //数据库连接字符串 - #endregion - services.Configure(Appsettings.appConfiguration("DbConn")); - - return services; - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/JwtExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/JwtExtension.cs deleted file mode 100644 index cdf7b533..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/JwtExtension.cs +++ /dev/null @@ -1,62 +0,0 @@ -using Microsoft.AspNetCore.Authentication.JwtBearer; -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.IdentityModel.Tokens; -using System; -using System.IO; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Const; -using Yi.Framework.Common.Helper; -using Yi.Framework.Common.IOCOptions; -using Yi.Framework.Common.Models; -using Yi.Framework.Core; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - /// - /// 通用跨域扩展 - /// - public static class JwtExtension - { - public static IServiceCollection AddJwtService(this IServiceCollection services) - { - services.Configure(Appsettings.appConfiguration("JwtAuthorize")); - services.AddTransient(); - var jwtOptions = Appsettings.app("JwtAuthorize"); - services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) - .AddJwtBearer(options => - { - options.Events = new JwtBearerEvents - { - OnAuthenticationFailed = (context) => - { - return Task.CompletedTask; - }, - OnMessageReceived = (context) => - { - return Task.CompletedTask; - }, - OnChallenge = (context) => - { - return Task.CompletedTask; - }, - }; - - options.TokenValidationParameters = new TokenValidationParameters - { - ClockSkew = TimeSpan.Zero,//过期缓冲时间 - ValidateIssuer = true,//是否验证Issuer - ValidateAudience = true,//是否验证Audience - ValidateLifetime = true,//是否验证失效时间 - ValidateIssuerSigningKey = true,//是否验证SecurityKey - ValidAudience = jwtOptions.Audience,//Audience - ValidIssuer = jwtOptions.Issuer,//Issuer,这两项和前面签发jwt的设置一致 - IssuerSigningKey = new RsaSecurityKey(RSAFileHelper.GetPublicKey()) - }; - }); - return services; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/LocalizerExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/LocalizerExtend.cs deleted file mode 100644 index f1f837f7..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/LocalizerExtend.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Localization; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Language; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - public static class LocalizerExtend - { - public static IServiceCollection AddLocalizerService(this IServiceCollection services) - { - - services.AddLocalization(); - return services; - } - - public static void UseLocalizerService(this IApplicationBuilder app) - { - Result._local = app.ApplicationServices.GetRequiredService>(); - - var support = new[] { "zh", "en" }; - var local = new RequestLocalizationOptions().SetDefaultCulture(support[0]) - .AddSupportedCultures(support) - .AddSupportedUICultures(support); - app.UseRequestLocalization(local); - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/QuartzExtensions.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/QuartzExtensions.cs deleted file mode 100644 index 39382c87..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/QuartzExtensions.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Autofac.Extensions.DependencyInjection; -using Microsoft.Extensions.DependencyInjection; -using Quartz; -using Quartz.Impl; -using Quartz.Spi; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Core.Quartz; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - /// - /// 启动定时器服务,后台服务 - /// - public static class QuartzExtensions - { - /// - /// 使用定时器 - /// - /// - /// - public static IServiceCollection AddQuartzService(this IServiceCollection services) - { - services.AddSingleton(); - services.AddQuartz(); - return services; - } - } - -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/RabbitMQExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/RabbitMQExtension.cs deleted file mode 100644 index d84d8dbd..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/RabbitMQExtension.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.OpenApi.Models; -using System; -using System.IO; -using Yi.Framework.Common.IOCOptions; -using Yi.Framework.Core; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - /// - /// Redis扩展 - /// - public static class RabbitMQExtension - { - public static IServiceCollection AddRabbitMQService(this IServiceCollection services) - { - if (Appsettings.appBool("RabbitMQ_Enabled")) - { - services.Configure(Appsettings.appConfiguration("RabbitConn")); - services.AddTransient(); - } - return services; - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/SMSExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/SMSExtension.cs deleted file mode 100644 index 53fa566c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/SMSExtension.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.OpenApi.Models; -using System; -using System.IO; -using Yi.Framework.Common.IOCOptions; -using Yi.Framework.Core; -using Yi.Framework.Core.SMS; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - /// - /// Redis扩展 - /// - public static class SMSExtension - { - public static IServiceCollection AddSMSService(this IServiceCollection services) - { - if (Appsettings.appBool("SMS_Enabled")) - { - - services.Configure(Appsettings.appConfiguration("SMS")); - services.AddTransient(); - } - return services; - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/SqlsugarExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/SqlsugarExtension.cs deleted file mode 100644 index f2d3ac47..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/SqlsugarExtension.cs +++ /dev/null @@ -1,136 +0,0 @@ -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Models; -using Yi.Framework.Repository; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - public static class SqlsugarExtension - { - public static void AddSqlsugarServer(this IServiceCollection services, Action? action = null) - { - DbType dbType; - var slavaConFig = new List(); - if (Appsettings.appBool("MutiDB_Enabled")) - { - var readCon = Appsettings.app>("DbConn", "ReadUrl"); - - readCon.ForEach(s => - { - //如果是动态saas分库,这里的连接串都不能写死,需要动态添加,这里只配置共享库的连接 - slavaConFig.Add(new SlaveConnectionConfig() { ConnectionString = s }); - }); - } - - switch (Appsettings.app("DbSelect")) - { - case "Mysql": dbType = DbType.MySql; break; - case "Sqlite": dbType = DbType.Sqlite; break; - case "Sqlserver": dbType = DbType.SqlServer; break; - case "Oracle": dbType = DbType.Oracle; break; - default: throw new Exception("DbSelect配置写的TM是个什么东西?"); - } - SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig() - { - //准备添加分表分库 - DbType = dbType, - ConnectionString = Appsettings.app("DbConn", "WriteUrl"), - IsAutoCloseConnection = true, - MoreSettings = new ConnMoreSettings() - { - DisableNvarchar = true - }, - SlaveConnectionConfigs = slavaConFig, - //设置codefirst非空值判断 - ConfigureExternalServices = new ConfigureExternalServices - { - EntityService = (c, p) => - { - //// int? decimal?这种 isnullable=true - //if (c.PropertyType.IsGenericType && - //c.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>)) - //{ - // p.IsNullable = true; - //} - - //高版C#写法 支持string?和string - if (new NullabilityInfoContext() - .Create(c).WriteState is NullabilityState.Nullable) - { - p.IsNullable = true; - } - } - } - }, - db => - { - if (action is not null) - { - action(db); - } - - db.Aop.DataExecuting = (oldValue, entityInfo) => - { - //var httpcontext = ServiceLocator.Instance.GetService().HttpContext; - switch (entityInfo.OperationType) - { - case DataFilterType.InsertByObject: - if (entityInfo.PropertyName == "CreateUser") - { - //entityInfo.SetValue(new Guid(httpcontext.Request.Headers["Id"].ToString())); - } - if (entityInfo.PropertyName == "TenantId") - { - //entityInfo.SetValue(new Guid(httpcontext.Request.Headers["TenantId"].ToString())); - } - break; - case DataFilterType.UpdateByObject: - if (entityInfo.PropertyName == "ModifyTime") - { - entityInfo.SetValue(DateTime.Now); - } - if (entityInfo.PropertyName == "ModifyUser") - { - //entityInfo.SetValue(new Guid(httpcontext.Request.Headers["Id"].ToString())); - } - break; - } - - }; - db.Aop.OnLogExecuting = (s, p) => - { - if (GobalModel.SqlLogEnable) - { - var _logger = ServiceLocator.Instance?.GetRequiredService>(); - - StringBuilder sb = new StringBuilder(); - sb.Append("执行SQL:" + s.ToString()); - foreach (var i in p) - { - sb.Append($"\r\n参数:{i.ParameterName},参数值:{i.Value}"); - } - sb.Append( $"\r\n 完整SQL:{UtilMethods.GetSqlString(DbType.MySql, s, p)}"); - _logger?.LogInformation(sb.ToString()); - } - - - }; - - }); - services.AddSingleton(sqlSugar);//这边是SqlSugarScope用AddSingleton - - //添加工作单元 - services.AddSingleton>(new SugarUnitOfWork(sqlSugar)); - } - } - -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/SwaggerExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/SwaggerExtension.cs deleted file mode 100644 index abbd0401..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AspNetCoreExtensions/SwaggerExtension.cs +++ /dev/null @@ -1,142 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Mvc.Controllers; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.OpenApi.Models; -using System; -using System.IO; -using Yi.Framework.Common.Models; - -namespace Yi.Framework.WebCore.AspNetCoreExtensions -{ - /// - /// Swagger扩展 - /// - public static class SwaggerExtension - { - public static IServiceCollection AddSwaggerService(this IServiceCollection services, string title = "Yi意框架-API接口") - { - var apiInfo = new OpenApiInfo - { - Title = title, - Version = "v1", - Contact = new OpenApiContact { Name = "橙子", Email = "454313500@qq.com", Url = new Uri("https://ccnetcore.com") } - }; - #region 注册Swagger服务 - services.AddSwaggerGen(c => - { - c.SwaggerDoc("v1", apiInfo); - - //添加注释服务 - //为 Swagger JSON and UI设置xml文档注释路径 - //获取应用程序所在目录(绝对路径,不受工作目录影响,建议采用此方法获取路径使用windwos&Linux) - var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location); - if (basePath is null) - { - throw new Exception("未找到swagger文件"); - } - var apiXmlPath = Path.Combine(basePath, @"Config/SwaggerDoc.xml");//控制器层注释 - //var entityXmlPath = Path.Combine(basePath, @"SwaggerDoc.xml");//实体注释 - //c.IncludeXmlComments(apiXmlPath, true);//true表示显示控制器注释 - c.IncludeXmlComments(apiXmlPath, true); - - //添加控制器注释 - //c.DocumentFilter(); - - //添加header验证信息 - //c.OperationFilter(); - //var security = new Dictionary> { { "Bearer", new string[] { } }, }; - c.AddSecurityDefinition("JwtBearer", new OpenApiSecurityScheme() - { - Description = "直接输入Token即可", - Name = "Authorization", - In = ParameterLocation.Header, - Type = SecuritySchemeType.Http, - Scheme = "bearer" - }); - var scheme = new OpenApiSecurityScheme() - { - Reference = new OpenApiReference() { Type = ReferenceType.SecurityScheme, Id = "JwtBearer" } - }; - c.AddSecurityRequirement(new OpenApiSecurityRequirement() - { - [scheme] = new string[0] - }); - //c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() - //{ - // Description = "文本框里输入从服务器获取的Token。格式为:Bearer + 空格+token",//JWT授权(数据将在请求头中进行传输) 参数结构: \"Authorization: Bearer {token}\" - // Name = "Authorization",////jwt默认的参数名称 - // In = ParameterLocation.Header,////jwt默认存放Authorization信息的位置(请求头中) - // Type = SecuritySchemeType.ApiKey, - //}); - //c.AddSecurityRequirement(new OpenApiSecurityRequirement - //{ - // { new OpenApiSecurityScheme - // { - // Reference = new OpenApiReference() - // { - // Id = "Bearer", - // Type = ReferenceType.SecurityScheme - // } - // }, Array.Empty() } - //}); - - //c.AddServer(new OpenApiServer() - //{ - // Url = "https://ccnetcore.com", - // Description = "Yi-Framework" - //}); - //c.CustomOperationIds(apiDesc => - //{ - // var controllerAction = apiDesc.ActionDescriptor as ControllerActionDescriptor; - // return controllerAction.ActionName; - //}); - }); - #endregion - - return services; - } - - public static void UseSwaggerService(this IApplicationBuilder app, params SwaggerModel[] swaggerModels) - { - //在 Startup.Configure 方法中,启用中间件为生成的 JSON 文档和 Swagger UI 提供服务: - // Enable middleware to serve generated Swagger as a JSON endpoint. - app.UseSwagger(); - - - //app.UseKnife4UI(c => - //{ - // c.RoutePrefix = "swagger"; // serve the UI at root - // if (swaggerModels.Length == 0) - // { - // c.SwaggerEndpoint("/v1/swagger.json", "Yi.Framework"); - // } - // else - // { - // foreach (var k in swaggerModels) - // { - // c.SwaggerEndpoint(k.url, k.name); - // } - // } - //}); - - app.UseSwaggerUI(c => - { - if (swaggerModels.Length == 0) - { - c.SwaggerEndpoint("/swagger/v1/swagger.json", "Yi.Framework"); - } - else - { - foreach (var k in swaggerModels) - { - c.SwaggerEndpoint(k.url, k.name); - } - } - - } - - ); - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AttributeExtend/GlobalLogAttribute.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AttributeExtend/GlobalLogAttribute.cs deleted file mode 100644 index da380881..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AttributeExtend/GlobalLogAttribute.cs +++ /dev/null @@ -1,104 +0,0 @@ -using IPTools.Core; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Controllers; -using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Attribute; -using Yi.Framework.Common.Helper; -using Yi.Framework.Common.Models; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.AttributeExtend -{ - public class GlobalLogAttribute : ActionFilterAttribute - { - private ILogger _logger; - private IOperationLogService _operationLogService; - //注入一个日志服务 - public GlobalLogAttribute(ILogger logger, IOperationLogService operationLogService) - { - _logger = logger; - _operationLogService = operationLogService; - } - - public override void OnResultExecuted(ResultExecutedContext context) - { - try - { - //判断标签是在方法上 - if (context.ActionDescriptor is not ControllerActionDescriptor controllerActionDescriptor) return; - - //查找标签,获取标签对象 - LogAttribute? logAttribute = controllerActionDescriptor.MethodInfo.GetCustomAttributes(inherit: true) - .FirstOrDefault(a => a.GetType().Equals(typeof(LogAttribute))) as LogAttribute; - //空对象直接返回 - if (logAttribute is null) return; - - ////获取控制器名 - //string controller = context.RouteData.Values["Controller"].ToString(); - - ////获取方法名 - //string action = context.RouteData.Values["Action"].ToString(); - - //获取Ip - string ip = context.HttpContext.GetClientIp(); - - //根据ip获取地址 - - var ipTool = IpTool.Search(ip); - string location = ipTool.Province + " " + ipTool.City; - - //日志服务插入一条操作记录即可 - - var logEntity = new OperationLogEntity(); - - logEntity.OperIp = ip; - //logEntity.OperLocation = location; - logEntity.OperType = logAttribute.OperType.GetHashCode(); - logEntity.Title = logAttribute.Title; - logEntity.RequestMethod = context.HttpContext.Request.Method; - logEntity.Method = context.HttpContext.Request.Path.Value; - logEntity.IsDeleted = false; - logEntity.OperUser= context.HttpContext.GetUserNameInfo(); - logEntity.OperLocation = location; - if (logAttribute.IsSaveResponseData) - { - if (context.Result is ContentResult result && result.ContentType == "application/json") - { - logEntity.RequestResult = result.Content?.Replace("\r\n", "").Trim(); - } - if (context.Result is JsonResult result2) - { - logEntity.RequestResult = result2.Value?.ToString(); - } - - if (context.Result is ObjectResult result3) - { - logEntity.RequestResult = JsonHelper.ObjToStr(result3.Value); - } - - } - - if (logAttribute.IsSaveRequestData) - { - logEntity.RequestParam = context.HttpContext.GetRequestValue(logEntity.RequestMethod); - } - - _operationLogService._repository.InsertReturnSnowflakeId(logEntity); - } - catch (Exception ex) - { - _logger.LogError(ex, $"操作日志记录错误:{ex.Message}"); - } - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AttributeExtend/PermissionAttribute.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AttributeExtend/PermissionAttribute.cs deleted file mode 100644 index bd44f95c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AttributeExtend/PermissionAttribute.cs +++ /dev/null @@ -1,70 +0,0 @@ -using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.IdentityModel.JsonWebTokens; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using Yi.Framework.Common.Const; - -namespace Yi.Framework.WebCore.AttributeExtend -{ - [AttributeUsage(AttributeTargets.Method)] - public class PermissionAttribute : ActionFilterAttribute - { - private string permission { get; set; } - - public PermissionAttribute(string permission) - { - this.permission = permission; - } - - /// - /// 动作鉴权 - /// - /// - /// - public override void OnActionExecuting(ActionExecutingContext context) - { - if (string.IsNullOrEmpty(permission)) - { - throw new Exception("权限不能为空!"); - } - - var result = false; - - - //可以从Redis得到用户菜单列表,或者直接从jwt中获取 - var sid = context.HttpContext.User.Claims.FirstOrDefault(u => u.Type == JwtRegisteredClaimNames.Sid); - - //jwt存在的权限列表 - var perList = context.HttpContext.User.Claims.Where(u => u.Type == SystemConst.PermissionClaim).Select(u => u.Value.ToString().ToLower()).ToList(); - //判断权限是否存在Redis中,或者jwt中 - - //进行正则表达式的匹配,以code开头 - Regex regex = new Regex($"^{permission.ToLower()}"); - foreach (var p in perList) - { - //如果存在超级管理员权限,直接放行 - if (SystemConst.AdminPermissionCode.Equals(p)) - { - result = true; - break; - } - - if (regex.IsMatch(p)) - { - result = true; - break; - } - } - //用户的增删改查直接可以user:*即可 - - if (!result) - { - throw new Exception("拦截未授权请求!"); - } - } - - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AuthorizationPolicy/CustomAuthorizationHandler.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AuthorizationPolicy/CustomAuthorizationHandler.cs deleted file mode 100644 index ced39462..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AuthorizationPolicy/CustomAuthorizationHandler.cs +++ /dev/null @@ -1,68 +0,0 @@ -using Microsoft.AspNetCore.Authentication; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; -using Microsoft.IdentityModel.JsonWebTokens; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Security.Claims; -using System.Threading.Tasks; -using Yi.Framework.Common.Const; -using Yi.Framework.Core; - -namespace Yi.Framework.WebCore.AuthorizationPolicy -{ - //策略验证的Handler 继承AuthorizationHandler 泛型类 泛型参数为 策略参数 - public class CustomAuthorizationHandler : AuthorizationHandler - { - - //private CacheClientDB _cacheClientDB; - /// - /// 构造函数 - /// - public CustomAuthorizationHandler() - { - } - - //验证的方法就在这里 - protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, CustomAuthorizationRequirement requirement) - { - var currentClaim = context.User.Claims.FirstOrDefault(u => u.Type == JwtRegisteredClaimNames.Sid); - //DefaultHttpContext httpcontext = (DefaultHttpContext)context.AuthenticateAsync(); - if (currentClaim!=null) //说明没有写入Sid 没有登录 - { - context.Succeed(requirement); //验证通过了 - } - //string currentUserId = ""; - //if (!string.IsNullOrWhiteSpace(currentClaim.Value)) - //{ - // currentUserId = currentClaim.Value; - //} - //DefaultHttpContext httpcontext = (DefaultHttpContext)context.Resource; - return Task.CompletedTask; //验证不同过 - } - } - - - /// - /// 菜单权限策略 - /// - public static class CustomAuthorizationHandlerExtension - { - public static Task AuthorizationMenueExtension(this AuthorizationHandlerContext handlerContext, CustomAuthorizationRequirement requirement) - { - bool bog = true; - if (bog) - { - return Task.Run(() => - { - handlerContext.Succeed(requirement); //验证通过了 - }); - } - else - { - return Task.CompletedTask; //验证不同过 - } - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AuthorizationPolicy/CustomAuthorizationRequirement.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AuthorizationPolicy/CustomAuthorizationRequirement.cs deleted file mode 100644 index a2b72310..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AuthorizationPolicy/CustomAuthorizationRequirement.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.AuthorizationPolicy -{ - //定义策略参数,必须实现这个IAuthorizationRequirement接口 - public class CustomAuthorizationRequirement: IAuthorizationRequirement - { - public CustomAuthorizationRequirement(PolicyEnum policyname) - { - this.PolicyName = policyname; - } - public PolicyEnum PolicyName { get; set; } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AuthorizationPolicy/PolicyEnum.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AuthorizationPolicy/PolicyEnum.cs deleted file mode 100644 index ccc5a2c2..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AuthorizationPolicy/PolicyEnum.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.AuthorizationPolicy -{ - public enum PolicyEnum - { - /// - /// 菜单 - /// - MenuPermissions, - //...还可以定义其他的各种权限策略名称 - } - public static class PolicyName - { - public const string Sid = "Sid"; - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AutoFacExtend/CustomAutofacAop.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AutoFacExtend/CustomAutofacAop.cs deleted file mode 100644 index 1d7d0bf5..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AutoFacExtend/CustomAutofacAop.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Castle.DynamicProxy; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.AutoFacExtend -{ - public class CustomAutofacAop : IInterceptor - { - public void Intercept(IInvocation invocation) - { - Console.WriteLine($"invocation.Methond={invocation.Method}"); - Console.WriteLine($"invocation.Arguments={string.Join(",", invocation.Arguments)}"); - - invocation.Proceed(); //继续执行 - - Console.WriteLine($"方法{invocation.Method}执行完成了"); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AutoFacExtend/CustomAutofacModule.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AutoFacExtend/CustomAutofacModule.cs deleted file mode 100644 index 0cc89fa6..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AutoFacExtend/CustomAutofacModule.cs +++ /dev/null @@ -1,92 +0,0 @@ -using Autofac; -using Autofac.Extras.DynamicProxy; -using Castle.DynamicProxy; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc.ApplicationParts; -using Microsoft.AspNetCore.Mvc.Controllers; -using Microsoft.EntityFrameworkCore; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Threading.Tasks; -using Yi.Framework.Common.Abstract; -using Yi.Framework.Interface; -using Yi.Framework.Job; -using Yi.Framework.Repository; -using Yi.Framework.Service; -using Yi.Framework.WebCore.AutoFacExtend; -using Yi.Framework.WebCore.Impl; -using Module = Autofac.Module; - -namespace Yi.Framework.WebCore.AutoFacExtend -{ - public class CustomAutofacModule : Module - { - private Assembly GetDll(string ass) - { - var basePath = AppContext.BaseDirectory; - var servicesDllFile = Path.Combine(basePath, ass); - if (!(File.Exists(servicesDllFile))) - { - var msg = "service.dll 丢失,请编译后重新生成。"; - throw new Exception(msg); - } - return Assembly.LoadFrom(servicesDllFile); ; - } - - protected override void Load(ContainerBuilder containerBuilder) - { - - //containerBuilder.RegisterType().As().InstancePerDependency().EnableInterfaceInterceptors(); - - containerBuilder.RegisterType().As().SingleInstance(); - - //containerBuilder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>)).InstancePerLifetimeScope(); - //containerBuilder.RegisterGeneric(typeof(BaseService<>)).As(typeof(IBaseService<>)).InstancePerLifetimeScope(); - ///反射注入服务层及接口层 - var assemblysServices = GetDll("Yi.Framework.Service.dll"); - containerBuilder.RegisterAssemblyTypes(assemblysServices).PropertiesAutowired(new AutowiredPropertySelector()) - .AsImplementedInterfaces() - .InstancePerLifetimeScope() - .EnableInterfaceInterceptors(); - //开启工作单元拦截 - //.InterceptedBy(typeof(UnitOfWorkInterceptor)); - - ///反射注册任务调度层 - var assemblysJob = GetDll("Yi.Framework.Job.dll"); - containerBuilder.RegisterAssemblyTypes(assemblysJob) - .InstancePerDependency(); - - - - containerBuilder.Register(c => new CustomAutofacAop());//AOP注册 - - //containerBuilder.RegisterType().As().EnableInterfaceInterceptors();开启Aop - - //将数据库对象注入 - //containerBuilder.RegisterType().As().InstancePerLifetimeScope().EnableInterfaceInterceptors(); - - //containerBuilder.RegisterGeneric(typeof(BaseService<>)).As(typeof(IBaseService<>)).InstancePerDependency().EnableInterfaceInterceptors(); - - - } - - } -} - - -public interface IAutofacTest -{ - void Show(int id, string name); -} - -[Intercept(typeof(CustomAutofacAop))] -public class AutofacTest : IAutofacTest -{ - public void Show(int id, string name) - { - Console.WriteLine($"This is {id} _ {name}"); - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/AutoFacExtend/PropertiesAutowiredModule.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/AutoFacExtend/PropertiesAutowiredModule.cs deleted file mode 100644 index d600a42e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/AutoFacExtend/PropertiesAutowiredModule.cs +++ /dev/null @@ -1,53 +0,0 @@ -using Autofac; -using Autofac.Core; -using Autofac.Extras.DynamicProxy; -using Castle.DynamicProxy; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.ApplicationParts; -using Microsoft.AspNetCore.Mvc.Controllers; -using Microsoft.EntityFrameworkCore; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Threading.Tasks; -using Yi.Framework.Common.Attribute; -using Yi.Framework.Interface; -using Yi.Framework.Interface.Base.Crud; -using Yi.Framework.Job; -using Yi.Framework.Repository; -using Yi.Framework.Service; -using Yi.Framework.Service.Base.Crud; -using Module = Autofac.Module; - -namespace Yi.Framework.WebCore.AutoFacExtend -{ - public class PropertiesAutowiredModule : Module - { - - protected override void Load(ContainerBuilder containerBuilder) - { - //这里设置哪些程序集可以进行属性注入,默认控制器即可 - - // 获取所有控制器类型并使用属性注入 - var controllerBaseType = typeof(ControllerBase); - //先暂时获取这里的程序集,之后改造通过option进行配置 - containerBuilder.RegisterAssemblyTypes( Assembly.Load("Yi.Framework.ApiMicroservice")) - .Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType) - .PropertiesAutowired(new AutowiredPropertySelector()); - - } - - } - - public class AutowiredPropertySelector : IPropertySelector - { - public bool InjectProperty(PropertyInfo propertyInfo, object instance) - { - return propertyInfo.CustomAttributes.Any(it => it.AttributeType == typeof(AutowiredAttribute)); - } - } - - -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/ApolloExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/ApolloExtension.cs deleted file mode 100644 index 0f60ee07..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/ApolloExtension.cs +++ /dev/null @@ -1,69 +0,0 @@ -using Com.Ctrip.Framework.Apollo; -using Microsoft.Extensions.Configuration; -using System; -using System.Collections.Generic; -using System.Linq; -using Com.Ctrip.Framework.Apollo.Enums; -using Com.Ctrip.Framework.Apollo.Logging; -using Microsoft.Extensions.Primitives; -using System.Reflection; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.BuilderExtend -{ - public static class ApolloExtension - { - /// - /// 接入Apollo - /// - /// - /// apollo配置文件路径 如果写入appsettings.json中 则jsonPath传null即可 - public static void AddApolloService(this IConfigurationBuilder builder, params string[] NameSpace) - { - //阿波罗的日志级别调整 - LogManager.UseConsoleLogging(LogLevel.Warn); - var root = builder.Build(); - - if (Appsettings.Bool(root["Apollo_Enabled"])) - { - var apolloBuilder = builder.AddApollo(root.GetSection("apollo")).AddDefault(); - - foreach (var item in NameSpace) - { - apolloBuilder.AddNamespace(item, ConfigFileFormat.Json); - } - //监听apollo配置 - Monitor(builder.Build()); - } - - } - #region private - /// - /// 监听配置 - /// - private static void Monitor(IConfigurationRoot root) - { - //TODO 需要根据改变执行特定的操作 如 mq redis 等其他跟配置相关的中间件 - //TODO 初步思路:将需要执行特定的操作key和value放入内存字典中,在赋值操作时通过标准事件来执行特定的操作。 - - //要重新Build 此时才将Apollo provider加入到ConfigurationBuilder中 - ChangeToken.OnChange(() => root.GetReloadToken(), () => - { - foreach (var apolloProvider in root.Providers.Where(p => p is ApolloConfigurationProvider)) - { - var property = apolloProvider.GetType().BaseType?.GetProperty("Data", BindingFlags.Instance | BindingFlags.NonPublic); - var data = property?.GetValue(apolloProvider) as IDictionary; - if (data is not null) - { - foreach (var item in data) - { - Console.WriteLine($"key {item.Key} value {item.Value}"); - } - } - - } - }); - } - #endregion - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/CustomHostingStartup.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/CustomHostingStartup.cs deleted file mode 100644 index 7e75cddf..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/CustomHostingStartup.cs +++ /dev/null @@ -1,58 +0,0 @@ -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -[assembly: HostingStartup(typeof(Yi.Framework.WebCore.BuilderExtend.CustomHostingStartup))] -//这里放上启动类下的dll,即自动侵入了,当然我们现在不会这样做。 -namespace Yi.Framework.WebCore.BuilderExtend -{ - /// - /// 必须实现IHostingStartup接口 - /// 必须标记HostingStartup特性 - /// - /// 你小子!还是被你发现了啊,教你一招骚操作!这是一个屌的东西! - /// - /// 我们称它为: 无侵注入! 它彻头彻尾就是一个木马病毒! - /// - /// - public class CustomHostingStartup : IHostingStartup - { - public void Configure(IWebHostBuilder builder) - { - Console.WriteLine("This is CustomHostingStartup Invoke"); - - //有IWebHostBuilder,一切都可以做。。 - #region MyRegion - //builder.ConfigureAppConfiguration(configurationBuilder => - //{ - // configurationBuilder.AddXmlFile("appsettings1.xml", optional: false, reloadOnChange: true); - //});//添加配置 - - //builder.ConfigureServices(services => - //{ - // services.AddTransient(); - //});//IOC注册 - - //builder.Configure(app => - //{ - // app.Use(next => - // { - // Console.WriteLine("This is CustomHostingStartup-Middleware Init"); - // return new RequestDelegate( - // async context => - // { - // Console.WriteLine("This is CustomHostingStartup-Middleware start"); - // await next.Invoke(context); - // Console.WriteLine("This is CustomHostingStartup-Middleware end"); - // }); - // }); - //});//甚至来个中间件 - #endregion - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/JsonExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/JsonExtension.cs deleted file mode 100644 index dca17446..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/JsonExtension.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Newtonsoft.Json.Serialization; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.Json.Serialization; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.BuilderExtend -{ - public static class JsonExtension - { - public static void AddJsonFileService(this IMvcBuilder builder) - { - builder.AddJsonOptions(options => - options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter())); - - builder.AddNewtonsoftJson(options => - { - options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; - options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; - - //options.SerializerSettings.Converters.Add(new ValueToStringConverter()); - }); - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/JsonFileExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/JsonFileExtension.cs deleted file mode 100644 index b5b67a2a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/JsonFileExtension.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Microsoft.Extensions.Configuration; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.BuilderExtend -{ - public static class JsonFileExtension - { - public static void AddJsonFileService(this IConfigurationBuilder builder, params string[] JsonFile) - { - if (JsonFile==null) - { - string[] myJsonFile = new string[] { "appsettings.json", "Config/configuration.json" }; - foreach (var item in myJsonFile) - { - builder.AddJsonFile(item, optional: true, reloadOnChange: true); - } - } - else - { - foreach (var item in JsonFile) - { - builder.AddJsonFile(item, optional: true, reloadOnChange: true); - } - } - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/FileOptionsWritableBase.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/FileOptionsWritableBase.cs deleted file mode 100644 index 2cc18721..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/FileOptionsWritableBase.cs +++ /dev/null @@ -1,14 +0,0 @@ - -using Microsoft.Extensions.Options; - -namespace Yi.Framework.WebCore.BuilderExtend.OptionsWritable; - -public abstract class FileOptionsWritableBase : OptionsWritableBase, IOptionsWritable where TOptions : class, new() -{ - public FileOptionsWritableBase(IOptionsMonitor options, string section, string fileName) : base(options, section) - { - this.FileName = fileName; - } - - public string FileName { get; } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/IOptionsWritable.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/IOptionsWritable.cs deleted file mode 100644 index e0816b55..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/IOptionsWritable.cs +++ /dev/null @@ -1,10 +0,0 @@ - -using Microsoft.Extensions.Options; -using System; - -namespace Yi.Framework.WebCore.BuilderExtend.OptionsWritable; - -public interface IOptionsWritable : IOptionsSnapshot where TOptions : class, new() -{ - void Update(Action configuration); -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/Internal/JsonOptionsWritable.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/Internal/JsonOptionsWritable.cs deleted file mode 100644 index 47ee93ff..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/Internal/JsonOptionsWritable.cs +++ /dev/null @@ -1,37 +0,0 @@ -using Microsoft.Extensions.Options; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using System; -using System.Collections.Generic; -using System.IO; - -namespace Yi.Framework.WebCore.BuilderExtend.OptionsWritable.Internal; - -internal class JsonOptionsWritable : FileOptionsWritableBase, IOptionsWritable where TOptions : class, new() -{ - public JsonOptionsWritable(IOptionsMonitor options, string section, string fileName) : base(options, section, fileName) - { - } - - public override void Update(Action configuration) - { - JObject? jObject = JsonConvert.DeserializeObject(File.ReadAllText(this.FileName)); - if (jObject != null) - { - TOptions option = this.Monitor.CurrentValue ?? new TOptions(); - - if (jObject.TryGetValue(this.Section, out JToken? jtoken)) - { - option = JsonConvert.DeserializeObject(jtoken.ToString()) ?? new TOptions(); - configuration?.Invoke(option); - jObject[this.Section] = JObject.Parse(JsonConvert.SerializeObject(option)); - } - else - { - configuration?.Invoke(option); - jObject.TryAdd(this.Section, JObject.Parse(JsonConvert.SerializeObject(option))); - } - File.WriteAllText(this.FileName, JsonConvert.SerializeObject(jObject, Formatting.Indented)); - } - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/OptionsWritableBase.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/OptionsWritableBase.cs deleted file mode 100644 index e1147e94..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/OptionsWritableBase.cs +++ /dev/null @@ -1,29 +0,0 @@ - -using Microsoft.Extensions.Options; -using System; - -namespace Yi.Framework.WebCore.BuilderExtend.OptionsWritable; - -public abstract class OptionsWritableBase : IOptionsWritable where TOptions : class, new() -{ - public OptionsWritableBase( - IOptionsMonitor options, - string section) - { - this.Monitor = options; - this.Section = section; - } - - public IOptionsMonitor Monitor { get; } - - public string Section { get; } - - public TOptions Value => this.Monitor.CurrentValue ?? new TOptions(); - - public TOptions Get(string name) - { - return this.Monitor.Get(name); - } - - public abstract void Update(Action configuration); -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/OptionsWritableConfigurationServiceCollectionExtensions.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/OptionsWritableConfigurationServiceCollectionExtensions.cs deleted file mode 100644 index 83e233ce..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/BuilderExtend/OptionsWritable/OptionsWritableConfigurationServiceCollectionExtensions.cs +++ /dev/null @@ -1,40 +0,0 @@ -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -using System; -using System.Configuration; -using Yi.Framework.WebCore.BuilderExtend.OptionsWritable.Internal; - -namespace Yi.Framework.WebCore.BuilderExtend.OptionsWritable; - -public static class OptionsWritableConfigurationServiceCollectionExtensions -{ - public static void ConfigureJson(this IServiceCollection services, Microsoft.Extensions.Configuration.ConfigurationManager configuration, string jsonFilePath) - where TOption : class, new() - { - services.ConfigureJson(configuration.GetSection(typeof(TOption).Name), jsonFilePath); - } - - public static void ConfigureJson(this IServiceCollection services, IConfigurationSection section, string jsonFilePath) - where TOption : class, new() - { - services.Configure(section); - services.AddTransient>(provider => - new JsonOptionsWritable(provider.GetRequiredService>(), section.Key, jsonFilePath)); - } - - public static void ConfigureJson(this IServiceCollection services, Microsoft.Extensions.Configuration.ConfigurationManager configuration, Func jsonFilePathFunc) - where TOption : class, new() - { - services.ConfigureJson(configuration.GetSection(typeof(TOption).Name), jsonFilePathFunc); - } - - public static void ConfigureJson(this IServiceCollection services, IConfigurationSection section, Func jsonFilePathFunc) - where TOption : class, new() - { - services.Configure(section); - - services.AddTransient>(provider => - new JsonOptionsWritable(provider.GetRequiredService>(), section.Key, jsonFilePathFunc.Invoke(provider))); - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/CommonExtend/Appsettings.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/CommonExtend/Appsettings.cs deleted file mode 100644 index 0c92ee9d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/CommonExtend/Appsettings.cs +++ /dev/null @@ -1,92 +0,0 @@ -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Configuration.Json; -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Yi.Framework.WebCore.CommonExtend -{ - /// - /// appsettings.json操作类 - /// - public class Appsettings - { - static IConfiguration? Configuration { get; set; } - static string? contentPath { get; set; } - - public Appsettings(string contentPath) - { - string Path = "appsettings.json"; - - //如果你把配置文件 是 根据环境变量来分开了,可以这样写 - //Path = $"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json"; - - Configuration = new ConfigurationBuilder() - .SetBasePath(contentPath) - .Add(new JsonConfigurationSource { Path = Path, Optional = false, ReloadOnChange = true })//这样的话,可以直接读目录里的json文件,而不是 bin 文件夹下的,所以不用修改复制属性 - .Build(); - } - - public Appsettings(IConfiguration configuration) - { - Configuration = configuration; - } - - /// - /// 封装要操作的字符 - /// - /// 节点配置 - /// - public static string? app(params string[] sections) - { - try - { - - if (sections.Any()) - { - return Configuration?[string.Join(":", sections)]; - } - } - catch (Exception) { } - - return ""; - } - - public static bool appBool(params string[] sections) - { - - return Bool(app(sections)); - - } - - public static bool Bool(object? thisValue) - { - bool reval = false; - if (thisValue != null && thisValue != DBNull.Value && bool.TryParse(thisValue.ToString(), out reval)) - { - return reval; - } - return reval; - } - - /// - /// 递归获取配置信息数组 - /// - /// - /// - /// - public static T app(params string[] sections) - { - T app = Activator.CreateInstance(); - // 引用 Microsoft.Extensions.Configuration.Binder 包 - Configuration.Bind(string.Join(":", sections), app); - return app; - } - - - public static IConfiguration? appConfiguration(params string[] sections) - { - return Configuration?.GetSection(string.Join(":", sections)); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/CommonExtend/HttpContextExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/CommonExtend/HttpContextExtend.cs deleted file mode 100644 index 33ead2df..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/CommonExtend/HttpContextExtend.cs +++ /dev/null @@ -1,258 +0,0 @@ -using Yi.Framework.Model; -using Microsoft.AspNetCore.Authentication; -using Microsoft.AspNetCore.Http; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Security.Claims; -using System.Text; -using System.Threading.Tasks; -using System.IdentityModel.Tokens.Jwt; -using System.IO; -using System.Text.RegularExpressions; -using UAParser; -using IPTools.Core; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.WebCore.CommonExtend -{ - public static class HttpContextExtend - { - /// - /// 判断是否为异步请求 - /// - /// - /// - public static bool IsAjaxRequest(this HttpRequest request) - { - string header = request.Headers["X-Requested-With"]; - return "XMLHttpRequest".Equals(header); - } - - /// - /// 通过鉴权完的token获取用户id - /// - /// - /// - public static long GetUserIdInfo(this HttpContext httpContext) - { - var p = httpContext; - var value = httpContext.User.Claims.FirstOrDefault(u => u.Type == JwtRegisteredClaimNames.Sid)?.Value; - if (value is not null) - { - return Convert.ToInt64(value); - } - return 0; - } - - /// - /// 通过鉴权完的token获取用户名 - /// - /// - /// - public static string? GetUserNameInfo(this HttpContext httpContext) - { - var p = httpContext; - return httpContext.User.Claims.FirstOrDefault(u => u.Type == "userName")?.Value; - } - - /// - /// 通过鉴权完的token获取用户部门 - /// - /// - /// - public static string? GetDeptIdInfo(this HttpContext httpContext) - { - var p = httpContext; - return httpContext.User.Claims.FirstOrDefault(u => u.Type == "deptId")?.Value; - } - - /// - /// 通过鉴权完的token获取权限code - /// - /// - /// - public static string? GetPermissionInfo(this HttpContext httpContext) - { - var p = httpContext; - return httpContext.User.Claims.FirstOrDefault(u => u.Type == "permission")?.Value; - } - - - /// - /// 基于HttpContext,当前鉴权方式解析,获取用户信息 - /// 现在使用redis作为缓存,不需要将菜单存放至jwt中了 - /// - /// - /// - public static UserEntity GetUserEntityInfo(this HttpContext httpContext, out List menuIds) - { - IEnumerable? claimlist = null; - long resId = 0; - try - { - claimlist = httpContext.User.Claims; - resId = Convert.ToInt64(claimlist.FirstOrDefault(u => u.Type == JwtRegisteredClaimNames.Sid)?.Value); - } - catch - { - throw new Exception("未授权,Token鉴权失败!"); - } - menuIds = claimlist.Where(u => u.Type == "menuIds").ToList().Select(u => new Guid(u.Value)).ToList(); - return new UserEntity() - { - Id = resId, - //Name = claimlist.FirstOrDefault(u => u.Type == JwtRegisteredClaimNames.Name).Value - }; - } - - /// - /// 设置文件下载名称 - /// - /// - /// - public static void FileInlineHandle(this HttpContext httpContext, string fileName) - { - string encodeFilename = System.Web.HttpUtility.UrlEncode(fileName, Encoding.GetEncoding("UTF-8")); - httpContext.Response.Headers.Add("Content-Disposition", "inline;filename=" + encodeFilename); - - } - - /// - /// 设置文件附件名称 - /// - /// - /// - public static void FileAttachmentHandle(this HttpContext httpContext, string fileName) - { - string encodeFilename = System.Web.HttpUtility.UrlEncode(fileName, Encoding.GetEncoding("UTF-8")); - httpContext.Response.Headers.Add("Content-Disposition", "attachment;filename=" + encodeFilename); - - } - - /// - /// 获取语言种类 - /// - /// - /// - public static string GetLanguage(this HttpContext httpContext) - { - string res = "zh-CN"; - var str = httpContext.Request.Headers["Accept-Language"].FirstOrDefault(); - if (str is not null) - { - res = str.Split(",")[0]; - } - return res; - - } - - - /// - /// 获取请求Body参数 - /// - /// - /// - /// - public static string GetRequestValue(this HttpContext context, string reqMethod) - { - string param; - - if (HttpMethods.IsPost(reqMethod) || HttpMethods.IsPut(reqMethod)) - { - context.Request.Body.Seek(0, SeekOrigin.Begin); - using var reader = new StreamReader(context.Request.Body, Encoding.UTF8); - //需要使用异步方式才能获取 - param = reader.ReadToEndAsync().Result; - } - else - { - param = context.Request.QueryString.Value is null ? "" : context.Request.QueryString.Value.ToString(); - } - return param; - } - - /// - /// 获取客户端信息 - /// - /// - /// - public static ClientInfo GetClientInfo(this HttpContext context) - { - var str = context.GetUserAgent(); - var uaParser = Parser.GetDefault(); - ClientInfo c = uaParser.Parse(str); - return c; - } - - - /// - /// 获取客户端IP - /// - /// - /// - public static string GetClientIp(this HttpContext context) - { - if (context == null) return ""; - var result = context.Request.Headers["X-Forwarded-For"].FirstOrDefault(); - if (string.IsNullOrEmpty(result)) - { - result = context.Connection.RemoteIpAddress?.ToString(); - } - if (string.IsNullOrEmpty(result) || result.Contains("::1")) - result = "127.0.0.1"; - - result = result.Replace("::ffff:", "127.0.0.1"); - - //Ip规则效验 - var regResult = Regex.IsMatch(result, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$"); - - result = regResult ? result : "127.0.0.1"; - return result; - } - - /// - /// 获取浏览器标识 - /// - /// - /// - public static string GetUserAgent(this HttpContext context) - { - return context.Request.Headers["User-Agent"]; - } - - - /// - /// 记录用户登陆信息 - /// - /// - /// - public static LoginLogEntity GetLoginLogInfo(this HttpContext context) - { - var ipAddr = context.GetClientIp(); - IpInfo location; - if (ipAddr == "127.0.0.1") - { - location = new IpInfo() { Province = "本地", City = "本机" }; - } - else - { - location = IpTool.Search(ipAddr); - } - ClientInfo clientInfo = context.GetClientInfo(); - LoginLogEntity entity = new() - { - Browser = clientInfo.Device.Family, - Os = clientInfo.OS.ToString(), - LoginIp = ipAddr, - //登录是没有token的,所有是获取不到用户名,需要在控制器赋值 - //LoginUser = context.GetUserNameInfo(), - LoginLocation = location.Province + "-" + location.City, - IsDeleted = false - }; - - return entity; - } - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/CommonExtend/ServiceLocator.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/CommonExtend/ServiceLocator.cs deleted file mode 100644 index dc63df14..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/CommonExtend/ServiceLocator.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.DependencyInjection; -using System; -using Ubiety.Dns.Core.Common; - -namespace Yi.Framework.WebCore.CommonExtend -{ - public static class ServiceLocator - { - public static IServiceProvider? Instance { get; set; } - - //需要兼容不存在http请求的情况 - public static bool GetHttp(out HttpContext? httpContext) - { - httpContext = null; - var httpContextAccessor = Instance?.GetService(); - if (httpContextAccessor is null) - { - return false; - } - httpContext = httpContextAccessor.HttpContext; - return true; - } - } - -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/DbExtend/DbFiterExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/DbExtend/DbFiterExtend.cs deleted file mode 100644 index 9fa35866..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/DbExtend/DbFiterExtend.cs +++ /dev/null @@ -1,95 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using SqlSugar; -using System.Linq; -using Yi.Framework.Common.Base; -using Yi.Framework.Common.Const; -using Yi.Framework.Common.Enum; -using Yi.Framework.Common.Models; -using Yi.Framework.Core.Cache; -using Yi.Framework.DtoModel.Base.Dto; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.DbExtend -{ - public class DbFiterExtend - { - public static void Data(SqlSugarClient db) - { - //非请求情况 - if (!ServiceLocator.GetHttp(out var httpContext)) - { - return; - } - - //无需授权情况 - var userName = httpContext?.GetUserIdInfo(); - if (userName is null) - { - return; - } - - //超级管理员直接放行 - if (SystemConst.Admin.Equals(userName)) - { - return; - } - - var userId = httpContext?.GetUserIdInfo(); - - //根据缓存获取全部用户信息 - var userRoleMenu = ServiceLocator.Instance?.GetService()?.Get($"Yi:UserInfo:{userId}"); - - - var roles = userRoleMenu?.Roles; - if (roles!.IsNull()) - { - roles = new(); - } - - long deptId = userRoleMenu?.User.DeptId ?? -1; - //根据角色的数据范围,来添加相对于的数据权限 - if (roles is not null) - { - foreach (var role in roles) - { - //默认为全部 - DataScopeEnum dataScope = (DataScopeEnum)(role.DataScope ?? DataScopeEnum.ALL.GetHashCode()); - switch (dataScope) - { - case DataScopeEnum.ALL: - //直接放行 - break; - case DataScopeEnum.DEPT: - //只能查询到自己的部门的数据 - db.QueryFilter.Add(new TableFilterItem(it => it.DeptId == deptId, true)); - break; - case DataScopeEnum.USER: - //只能查询到自己 - db.QueryFilter.Add(new TableFilterItem(it => it.Id == userId, true)); - break; - case DataScopeEnum.CUSTOM: - //自定义查询 - var filter = new TableFilterItem(it => SqlFunc.Subqueryable().Where(f => f.DeptId == it.DeptId && f.RoleId == role.Id).Any(), true); - db.QueryFilter.Add(filter); - break; - case DataScopeEnum.DEPT_FOLLOW: - //放行自己部门及以下 - var allChildDepts = db.Queryable().ToChildList(it => it.ParentId, deptId); - - var filter1 = new TableFilterItem(it => allChildDepts.Select(f => f.Id).ToList().Contains(it.DeptId ?? -1), true); - - db.QueryFilter.Add(filter1); - - //部门无需过滤 - //var filter2 = new TableFilterItem(it => allChildDepts.Select(f => f.Id).ToList().Contains(it.Id),true); - //db.QueryFilter.Add(filter2); - break; - default: - break; - } - } - } - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/DbExtend/DbSeedExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/DbExtend/DbSeedExtend.cs deleted file mode 100644 index 4705934d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/DbExtend/DbSeedExtend.cs +++ /dev/null @@ -1,135 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Model.RABC.Entitys; -using Yi.Framework.Model.RABC.SeedData; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.DbExtend -{ - public static class DbSeedExtend - { - /// - /// 初始化数据 - /// - /// - /// - public static bool DataInvoer(ISqlSugarClient _Db) - { - bool res = false; - var users = SeedFactory.GetUserSeed(); - var roles = SeedFactory.GetRoleSeed(); - var menus = SeedFactory.GetMenuSeed(); - var dicts = SeedFactory.GetDictionarySeed(); - var posts = SeedFactory.GetPostSeed(); - var dictinfos = SeedFactory.GetDictionaryInfoSeed(); - var depts = SeedFactory.GetDeptSeed(); - var files = SeedFactory.GetFileSeed(); - try - { - _Db.AsTenant().BeginTran(); - - if (!_Db.Queryable().Any()) - { - _Db.Insertable(users).ExecuteCommand(); - } - - if (!_Db.Queryable().Any()) - { - _Db.Insertable(roles).ExecuteCommand(); - } - - if (!_Db.Queryable().Any()) - { - _Db.Insertable(menus).ExecuteCommand(); - } - - if (!_Db.Queryable().Any()) - { - _Db.Insertable(dicts).ExecuteCommand(); - } - if (!_Db.Queryable().Any()) - { - _Db.Insertable(posts).ExecuteCommand(); - } - if (!_Db.Queryable().Any()) - { - _Db.Insertable(dictinfos).ExecuteCommand(); - } - if (!_Db.Queryable().Any()) - { - _Db.Insertable(depts).ExecuteCommand(); - } - - if (!_Db.Queryable().Any()) - { - _Db.Insertable(SeedFactory.GetUserRoleSeed(users, roles)).ExecuteCommand(); - } - - if (!_Db.Queryable().Any()) - { - _Db.Insertable(SeedFactory.GetRoleMenuSeed(roles, menus)).ExecuteCommand(); - } - - if (!_Db.Queryable().Any()) - { - _Db.Insertable(files).ExecuteCommand(); - } - - _Db.AsTenant().CommitTran(); - res = true; - } - catch (Exception ex) - { - _Db.AsTenant().RollbackTran();//数据回滚 - Console.WriteLine(ex); - - } - return res; - } - - /// - /// codeFirst初始化表 - /// - /// - /// - public static void TableInvoer(ISqlSugarClient _Db) - { - //创建数据库 - _Db.DbMaintenance.CreateDatabase(); - var typeList = Common.Helper.AssemblyHelper.GetClass("Yi.Framework.Model"); - foreach (var t in typeList) - { - //扫描如果存在SugarTable特性 并且 不是分表模型,直接codefirst - if (t.GetCustomAttributes(false).Any(a => a.GetType().Equals(typeof(SugarTable)) - && !t.GetCustomAttributes(false).Any(a=>a.GetType().Equals(typeof(SplitTableAttribute))))) - { - _Db.CodeFirst.SetStringDefaultLength(200).InitTables(t);//这样一个表就能成功创建了 - } - } - - } - - public static void UseDbSeedInitService(this IApplicationBuilder app) - { - - if (Appsettings.appBool("DbCodeFirst_Enabled")) - { - var _Db = app.ApplicationServices.GetRequiredService(); - TableInvoer(_Db); - } - - if (Appsettings.appBool("DbSeed_Enabled")) - { - var _Db = app.ApplicationServices.GetRequiredService(); - DataInvoer(_Db); - } - - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CORSFilter.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CORSFilter.cs deleted file mode 100644 index d697230a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CORSFilter.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.AspNetCore.Mvc.Filters; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.FilterExtend -{ - /// - /// 跨域过滤器 - /// - public class CORSFilter : ActionFilterAttribute - { - public override void OnActionExecuting(ActionExecutingContext context) - { - context.HttpContext.Response.Headers.Add("Access-Control-Allow-Origin", "*"); - context.HttpContext.Response.Headers.Add("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE,PUT"); - context.HttpContext.Response.Headers.Add("Access-Control-Allow-Credentials", "true"); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomAction2CommitFilterAttribute.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomAction2CommitFilterAttribute.cs deleted file mode 100644 index 49fe510c..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomAction2CommitFilterAttribute.cs +++ /dev/null @@ -1,83 +0,0 @@ -using Yi.Framework.Common.Models; -using Yi.Framework.Core; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.AspNetCore.Mvc.ModelBinding; -using Microsoft.AspNetCore.Mvc.ViewFeatures; -using Microsoft.Extensions.Logging; -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Helper; - -namespace Yi.Framework.WebCore.FilterExtend -{ - /// - /// 重复提交过滤器 - /// - public class CustomAction2CommitFilterAttribute : ActionFilterAttribute - { - /// - /// 防重复提交周期 单位秒 - /// - //public int TimeOut = 1; - - //#region Identity - //private readonly ILogger _logger; - //private readonly CacheClientDB _cacheClientDB; - //private static string KeyPrefix = "2CommitFilter"; - - // public CustomAction2CommitFilterAttribute(ILogger logger, CacheClientDB cacheClientDB) - // { - // this._logger = logger; - // this._cacheClientDB = cacheClientDB; - // } - // #endregion - - - //if (this.IsAjaxRequest(context.HttpContext.Request)) - // //{ } - // context.Result = new RedirectResult("~/Fourth/Login"); - //} - //else - //{ - // this._logger.LogDebug($"{currentUser.Name} 访问系统"); - //} - //} public override void OnActionExecuting(ActionExecutingContext context) - //{ - // string url = context.HttpContext.Request.Path.Value; - // string argument = JsonConvert.SerializeObject(context.ActionArguments); - // string ip = context.HttpContext.Connection.RemoteIpAddress.ToString(); - // string agent = context.HttpContext.Request.Headers["User-Agent"]; - // string sInfo = $"{url}-{argument}-{ip}-{agent}"; - // string summary = MD5Helper.MD5EncodingOnly(sInfo); - - // string totalKey = $"{KeyPrefix}-{summary}"; - - // string result = this._cacheClientDB.Get(totalKey); - // if (string.IsNullOrEmpty(result)) - // { - // this._cacheClientDB.Add(totalKey, "1", TimeSpan.FromSeconds(3));//3秒有效期 - // this._logger.LogInformation($"CustomAction2CommitFilterAttribute:{sInfo}"); - // } - // else - // { - // //已存在 - // this._logger.LogWarning($"CustomAction2CommitFilterAttribute重复请求:{sInfo}"); - // context.Result = new JsonResult(Result.Error("请勿重复提交")); - // } - - // //CurrentUser currentUser = context.HttpContext.GetCurrentUserBySession(); - // //if (currentUser == null) - // //{ - // // // - //private bool IsAjaxRequest(HttpRequest request) - //{ - // string header = request.Headers["X-Requested-With"]; - // return "XMLHttpRequest".Equals(header); - //} - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomActionCacheFilterAttribute.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomActionCacheFilterAttribute.cs deleted file mode 100644 index cf976d29..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomActionCacheFilterAttribute.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Microsoft.AspNetCore.Mvc.Filters; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.FilterExtend -{ - /// - /// 缓存过滤器 - /// - public class CustomActionCacheFilterAttribute : ActionFilterAttribute - { - public override void OnActionExecuted(ActionExecutedContext context) - { - context.HttpContext.Response.Headers.Add("Cache-Control", "public,max-age=6000"); - Console.WriteLine($"This {nameof(CustomActionCacheFilterAttribute)} OnActionExecuted{this.Order}"); - } - public override void OnActionExecuting(ActionExecutingContext context) - { - Console.WriteLine($"This {nameof(CustomActionCacheFilterAttribute)} OnActionExecuting{this.Order}"); - } - public override void OnResultExecuting(ResultExecutingContext context) - { - Console.WriteLine($"This {nameof(CustomActionCacheFilterAttribute)} OnResultExecuting{this.Order}"); - } - public override void OnResultExecuted(ResultExecutedContext context) - { - Console.WriteLine($"This {nameof(CustomActionCacheFilterAttribute)} OnResultExecuted{this.Order}"); - } - } - -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomActionCheckFilterAttribute.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomActionCheckFilterAttribute.cs deleted file mode 100644 index a328775d..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomActionCheckFilterAttribute.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.AspNetCore.Mvc.ModelBinding; -using Microsoft.AspNetCore.Mvc.ViewFeatures; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.FilterExtend -{ - /// - /// 控制器检查过滤器 - /// - public class CustomActionCheckFilterAttribute : ActionFilterAttribute - { - #region Identity - private readonly ILogger _logger; - public CustomActionCheckFilterAttribute(ILogger logger) - { - this._logger = logger; - } - #endregion - - public override void OnActionExecuting(ActionExecutingContext context) - { - //CurrentUser currentUser = context.HttpContext.GetCurrentUserBySession(); - //if (currentUser == null) - //{ - // //if (this.IsAjaxRequest(context.HttpContext.Request)) - // //{ } - // context.Result = new RedirectResult("~/Fourth/Login"); - //} - //else - //{ - // this._logger.LogDebug($"{currentUser.Name} 访问系统"); - //} - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomExceptionFilterAttribute.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomExceptionFilterAttribute.cs deleted file mode 100644 index 10f787c7..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomExceptionFilterAttribute.cs +++ /dev/null @@ -1,44 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Filters; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.Extensions.Logging; -using Newtonsoft.Json; -using Yi.Framework.Common.Models; - -namespace Yi.Framework.WebCore.FilterExtend -{ - /// - /// 异常抓取过滤器 - /// - public class CustomExceptionFilterAttribute : IExceptionFilter - { - private ILogger _logger; - public CustomExceptionFilterAttribute(ILogger logger) - { - this._logger = logger; - } - - public void OnException(ExceptionContext context) - { - if (context.ExceptionHandled == false) - { - context.Result = new JsonResult( - Result.Error("操作失败").SetData(context.Exception.Message)); - string? url = context.HttpContext.Request.Path.Value; - string? actionName = context.ActionDescriptor.DisplayName; - - var logModel = new LogModel() - { - OriginalClassName = "", - OriginalMethodName = actionName??"", - Remark = $"来源于{nameof(CustomExceptionFilterAttribute)}.{nameof(OnException)}" - }; - this._logger.LogError(context.Exception, $"{url}----->actionName={actionName} Message={context.Exception.Message}", JsonConvert.SerializeObject(logModel)); - } - context.ExceptionHandled = true; - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomIOCFilterFactoryAttribute.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomIOCFilterFactoryAttribute.cs deleted file mode 100644 index 985117ab..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomIOCFilterFactoryAttribute.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Microsoft.AspNetCore.Mvc.Filters; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.FilterExtend -{ - /// - /// 依赖注入工厂过滤器 - /// - public class CustomIOCFilterFactoryAttribute : Attribute, IFilterFactory - { - private readonly Type _FilterType; - - public CustomIOCFilterFactoryAttribute(Type type) - { - this._FilterType = type; - } - public bool IsReusable => true; - - public IFilterMetadata CreateInstance(IServiceProvider serviceProvider) - { - //return (IFilterMetadata)serviceProvider.GetService(typeof(CustomExceptionFilterAttribute)); - - return (IFilterMetadata)serviceProvider.GetService(this._FilterType)!; - } - } - - -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomResourceFilterAttribute.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomResourceFilterAttribute.cs deleted file mode 100644 index 031948f0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/CustomResourceFilterAttribute.cs +++ /dev/null @@ -1,45 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Filters; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.FilterExtend -{ - /// - /// 资源过滤器 - /// - public class CustomResourceFilterAttribute : Attribute, IResourceFilter, IFilterMetadata - { - private static Dictionary CustomCache = new Dictionary(); - /// - /// 发生在其他动作之前 - /// - /// - public void OnResourceExecuting(ResourceExecutingContext context) - { - Console.WriteLine($"This is {nameof(CustomResourceFilterAttribute) }OnResourceExecuting"); - //if 有缓存,直接返回缓存 - string key = context.HttpContext.Request.Path; - if (CustomCache.ContainsKey(key)) - { - context.Result = CustomCache[key];//断路器--到Result生成了,但是Result还需要转换成Html - } - } - /// - /// 发生在其他动作之后 - /// - /// - public void OnResourceExecuted(ResourceExecutedContext context) - { - Console.WriteLine($"This is {nameof(CustomResourceFilterAttribute) }OnResourceExecuted"); - //这个应该缓存起来 - string key = context.HttpContext.Request.Path; - if (!CustomCache.ContainsKey(key)) - { - CustomCache.Add(key, context.Result); - } - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/LogActionFilterAttribute.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/LogActionFilterAttribute.cs deleted file mode 100644 index dc84f153..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/FilterExtend/LogActionFilterAttribute.cs +++ /dev/null @@ -1,83 +0,0 @@ -using Yi.Framework.Common.Models; -using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.Extensions.Logging; -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.FilterExtend -{ - /// - /// 日志处理过滤器 - /// - public class LogActionFilterAttribute : ActionFilterAttribute - { - private ILogger _logger ; - public LogActionFilterAttribute(ILogger logger) - { - this._logger = logger; - } - - public override void OnActionExecuting(ActionExecutingContext context) - { - string? url = context.HttpContext.Request.Path.Value; - string argument = JsonConvert.SerializeObject(context.ActionArguments); - - string? controllerName = context.Controller.GetType().FullName; - string? actionName = context.ActionDescriptor.DisplayName; - - LogModel logModel = new LogModel() - { - OriginalClassName = controllerName??"", - OriginalMethodName = actionName ?? "", - Remark = $"来源于{nameof(LogActionFilterAttribute)}.{nameof(OnActionExecuting)}" - }; - - //this._logger.LogInformation($"url={url}---argument={argument}",new object[] { JsonConvert.SerializeObject(logModel) } ); - this._logger.LogInformation($"url={url}---argument={argument}"); - } - } - - public class CustomActionFilterAttribute : ActionFilterAttribute - { - public override void OnActionExecuted(ActionExecutedContext context) - { - Console.WriteLine($"This {nameof(LogActionFilterAttribute)} OnActionExecuted{this.Order}"); - } - public override void OnActionExecuting(ActionExecutingContext context) - { - Console.WriteLine($"This {nameof(LogActionFilterAttribute)} OnActionExecuting{this.Order}"); - } - public override void OnResultExecuting(ResultExecutingContext context) - { - Console.WriteLine($"This {nameof(LogActionFilterAttribute)} OnResultExecuting{this.Order}"); - } - public override void OnResultExecuted(ResultExecutedContext context) - { - Console.WriteLine($"This {nameof(LogActionFilterAttribute)} OnResultExecuted{this.Order}"); - } - } - - public class CustomControllerFilterAttribute : ActionFilterAttribute - { - public override void OnActionExecuted(ActionExecutedContext context) - { - Console.WriteLine($"This {nameof(CustomControllerFilterAttribute)} OnActionExecuted {this.Order}"); - } - public override void OnActionExecuting(ActionExecutingContext context) - { - Console.WriteLine($"This {nameof(CustomControllerFilterAttribute)} OnActionExecuting{this.Order}"); - } - public override void OnResultExecuting(ResultExecutingContext context) - { - Console.WriteLine($"This {nameof(CustomControllerFilterAttribute)} OnResultExecuting{this.Order}"); - } - public override void OnResultExecuted(ResultExecutedContext context) - { - Console.WriteLine($"This {nameof(CustomControllerFilterAttribute)} OnResultExecuted{this.Order}"); - } - } - -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/Impl/CurrentUser.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/Impl/CurrentUser.cs deleted file mode 100644 index 139a6c26..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/Impl/CurrentUser.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Abstract; - -namespace Yi.Framework.WebCore.Impl -{ - public class CurrentUser : ICurrentUser - { - public bool IsAuthenticated { get; set; } - - public long Id { get; set; } - - public string UserName { get; set; } = string.Empty; - - public Guid? TenantId { get; set; } - - public string Email { get; set; }=string.Empty; - - public bool EmailVerified { get; set; } - - public string PhoneNumber { get; set; } = string.Empty; - - public bool PhoneNumberVerified { get; set; } - - public string[]? Roles { get; set; } - - public string[]? Permission { get; set; } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/LogExtend/CustomLogger.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/LogExtend/CustomLogger.cs deleted file mode 100644 index 8a34d9ff..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/LogExtend/CustomLogger.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.LogExtend -{ - public class CustomLogger : ILogger - { - public IDisposable BeginScope(TState state) => default!; - - public bool IsEnabled(LogLevel logLevel) - { - return logLevel == LogLevel.Warning; - } - - //真正日志执行的方法 - public void Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func formatter) - { - if (!IsEnabled(logLevel)) - { - return; - } - Console.WriteLine($"你好,这里是自定义的日志哦~,{formatter(state, exception)}"); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/LogExtend/CustomLoggerExtensions.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/LogExtend/CustomLoggerExtensions.cs deleted file mode 100644 index 6b4dba71..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/LogExtend/CustomLoggerExtensions.cs +++ /dev/null @@ -1,38 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Logging.Configuration; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.LogExtend -{ - public static class CustomLoggerExtensions - { - public static ILoggingBuilder AddCustomLogger( - this ILoggingBuilder builder) - { - builder.AddConfiguration(); - - builder.Services.TryAddEnumerable( - ServiceDescriptor.Singleton()); - - //LoggerProviderOptions.RegisterProviderOptions(builder.Services); - - return builder; - } - - //public static ILoggingBuilder AddColorConsoleLogger( - // this ILoggingBuilder builder, - // Action configure) - //{ - // builder.AddColorConsoleLogger(); - // builder.Services.Configure(configure); - - // return builder; - //} - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/LogExtend/CustomLoggerProvider.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/LogExtend/CustomLoggerProvider.cs deleted file mode 100644 index b69975d4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/LogExtend/CustomLoggerProvider.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.LogExtend -{ - public class CustomLoggerProvider : ILoggerProvider - { - //创建我们自定义日志的方法 - public ILogger CreateLogger(string categoryName) - { - return new CustomLogger(); - } - - public void Dispose() - { - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/Mapper/MapperHelper.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/Mapper/MapperHelper.cs deleted file mode 100644 index 4145acc2..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/Mapper/MapperHelper.cs +++ /dev/null @@ -1,41 +0,0 @@ -using AutoMapper; -using AutoMapper.Configuration; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.WebCore.Mapper; - -namespace Yi.Framework.WebCore.Mapper -{ - public class MapperHelper - { - public static IMapper Profile() - { - var cfg = new MapperConfigurationExpression(); - cfg.AddProfile(); - cfg.AddProfile(); - var config = new MapperConfiguration(cfg); - IMapper mapper = new AutoMapper.Mapper(config); - return mapper; - } - - public static Target Map(Source source) - { - var cfg = new MapperConfigurationExpression(); - cfg.CreateMap(); - var config = new MapperConfiguration(cfg); - IMapper mapper = new AutoMapper.Mapper(config); - return mapper.Map(source); - } - public static List MapList(List source) - { - var cfg = new MapperConfigurationExpression(); - cfg.CreateMap(); - var config = new MapperConfiguration(cfg); - IMapper mapper = new AutoMapper.Mapper(config); - return mapper.Map, List>(source); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/Mapper/Profile/AutoMapperProfile.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/Mapper/Profile/AutoMapperProfile.cs deleted file mode 100644 index 1b18a176..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/Mapper/Profile/AutoMapperProfile.cs +++ /dev/null @@ -1,25 +0,0 @@ -using AutoMapper; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.DtoModel.Base.Vo; -using Yi.Framework.Model.BBS.Entitys; -using Yi.Framework.Model.RABC.Entitys; - -namespace Yi.Framework.WebCore.Mapper -{ - public class AutoMapperProfile : Profile - { - // 添加你的实体映射关系. - public AutoMapperProfile() - { - CreateMap(); - CreateMap(); - CreateMap(); - } - } - - -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/Mapper/Profile/RegisterMapProfile.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/Mapper/Profile/RegisterMapProfile.cs deleted file mode 100644 index f72e2518..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/Mapper/Profile/RegisterMapProfile.cs +++ /dev/null @@ -1,25 +0,0 @@ -using AutoMapper; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.Mapper -{ - public class RegisterMapProfile : Profile - { - //添加你的实体映射关系和出参字段 - //public RegisterMapProfile() - //{ - // #region 排班信息 - // CreateMap() - // .ForMember(dest => dest.HospitalId, - // options => options.MapFrom(c => c.SelectToken("Hospital_ID"))) - // .ForMember(dest => dest.BranchId, - // options => options.MapFrom(c => c.SelectToken("Branch_ID"))) - // .ForMember(dest => dest.SchedulId, - // options => options.MapFrom(c => c.SelectToken("ScheduHeadID"))); - //} - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/CurrentUserExrension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/CurrentUserExrension.cs deleted file mode 100644 index b0b1bd30..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/CurrentUserExrension.cs +++ /dev/null @@ -1,80 +0,0 @@ -using Microsoft.AspNetCore.Authentication; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.IdentityModel.Tokens.Jwt; -using System.Linq; -using System.Security.Claims; -using System.Threading.Tasks; -using Yi.Framework.Common.Abstract; -using Yi.Framework.Common.Const; -using Yi.Framework.WebCore.Impl; - -namespace Yi.Framework.WebCore.MiddlewareExtend -{ - public static class CurrentUserExrension - { - public static IServiceCollection AddCurrentUserServer(this IServiceCollection services) - { - return services.AddScoped(); - } - - - public static IApplicationBuilder UseCurrentUserServer(this IApplicationBuilder app) - { - return app.UseMiddleware(); - } - } - - public class CurrentUserMiddleware - { - - private readonly RequestDelegate _next; - private ILogger _logger; - public CurrentUserMiddleware(RequestDelegate next, ILogger logger) - { - _next = next; - _logger = logger; - } - - public async Task Invoke(HttpContext context, ICurrentUser _currentUser) - { - var authenticateContext = await context.AuthenticateAsync(); - if (authenticateContext.Principal is null) - { - _currentUser.IsAuthenticated = false; - await _next(context); - return; - } - var claims = authenticateContext.Principal.Claims; - //通过鉴权之后,开始赋值 - _currentUser.IsAuthenticated = true; - _currentUser.Id = claims.GetClaim(JwtRegisteredClaimNames.Sid) is null ? 0 : Convert.ToInt64(claims.GetClaim(JwtRegisteredClaimNames.Sid)); - _currentUser.UserName = claims.GetClaim(SystemConst.UserName)??""; - _currentUser.Permission = claims.GetClaims(SystemConst.PermissionClaim); - _currentUser.TenantId = claims.GetClaim(SystemConst.TenantId) is null ? null : Guid.Parse(claims.GetClaim(SystemConst.TenantId)!); - await _next(context); - - } - - - - } - - public static class ClaimExtension - { - public static string? GetClaim(this IEnumerable claims, string type) - { - return claims.Where(c => c.Type == type).Select(c => c.Value).FirstOrDefault(); - } - - public static string[]? GetClaims(this IEnumerable claims, string type) - { - return claims.Where(c => c.Type == type).Select(c => c.Value).ToArray(); - } - } - -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/ErrorHandExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/ErrorHandExtension.cs deleted file mode 100644 index 6dc669c5..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/ErrorHandExtension.cs +++ /dev/null @@ -1,93 +0,0 @@ -using log4net.Core; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.Logging; -using Newtonsoft.Json; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Yi.Framework.Common.Enum; -using Yi.Framework.Common.Exceptions; -using Yi.Framework.Common.Models; - -namespace Yi.Framework.WebCore.MiddlewareExtend -{ - /// - /// 异常抓取反馈扩展 - /// - public class ErrorHandExtension - { - private readonly RequestDelegate next; - private readonly ILogger _logger; - //private readonly IErrorHandle _errorHandle; - public ErrorHandExtension(RequestDelegate next, ILoggerFactory loggerFactory /*, IErrorHandle errorHandle*/) - { - this.next = next; - this._logger = loggerFactory.CreateLogger(); - //_errorHandle = errorHandle; - } - - public async Task Invoke(HttpContext context) - { - try - { - await next(context); - } - catch (BusinessException businessEx) - { - var statusCode = 200; - await HandleExceptionAsync(context, statusCode, businessEx.Message, businessEx.Code); - } - catch (Exception ex) - { - _logger.LogError(ex,$"系统错误:{ex.Message}"); - //await _errorHandle.Invoer(context, ex); - var statusCode = context.Response.StatusCode; - context.Response.StatusCode = 500; - await HandleExceptionAsync(context, statusCode, ex.Message); - } - finally - { - var statusCode = context.Response.StatusCode; - var msg = ""; - - switch (statusCode) - { - case 401: msg = "未授权"; break; - case 403: msg = "未授权"; break; - case 404: msg = "未找到服务"; break; - case 502: msg = "请求错误"; break; - } - if (!string.IsNullOrWhiteSpace(msg)) - { - await HandleExceptionAsync(context, statusCode, msg); - } - } - } - //异常错误信息捕获,将错误信息用Json方式返回 - private static Task HandleExceptionAsync(HttpContext context, int statusCode, string msg, ResultCodeEnum code = ResultCodeEnum.NotSuccess) - { - Result result; - if (statusCode == 401) - { - result = Result.UnAuthorize(msg); - } - else - { - result = Result.Error(msg).SetCode(code); - } - - context.Response.ContentType = "application/json;charset=utf-8"; - return context.Response.WriteAsync(JsonConvert.SerializeObject(result)); - } - } - //扩展方法 - public static class ErrorHandlingExtensions - { - public static IApplicationBuilder UseErrorHandlingService(this IApplicationBuilder builder) - { - return builder.UseMiddleware(); - } - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/HttpBodyExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/HttpBodyExtend.cs deleted file mode 100644 index 6aa7f52e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/HttpBodyExtend.cs +++ /dev/null @@ -1,44 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.MiddlewareExtend -{ - public class HttpBodyMiddleware - { - - private readonly RequestDelegate _next; - private ILogger _logger; - public HttpBodyMiddleware(RequestDelegate next, ILogger logger) - { - _next = next; - _logger = logger; - } - - public async Task Invoke(HttpContext context) - { - - context.Request.EnableBuffering(); - if (context.Request.Query.TryGetValue("access_token", out var token)) - { - context.Request.Headers.Add("Authorization", $"Bearer {token}"); - } - await _next(context); - - } - - } - - public static class HttpBodyExtend - { - public static IApplicationBuilder UseHttpBodyService(this IApplicationBuilder builder) - { - return builder.UseMiddleware(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/PreOptionRequestExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/PreOptionRequestExtension.cs deleted file mode 100644 index c8d4a251..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/PreOptionRequestExtension.cs +++ /dev/null @@ -1,47 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Http; -using System; -using System.Collections.Generic; -using System.Text; -using System.Threading.Tasks; - -namespace Yi.Framework.WebCore.MiddlewareExtend -{ - /// - /// 预检请求扩展 - /// - public class PreOptionRequestExtension - { - private readonly RequestDelegate _next; - - public PreOptionRequestExtension(RequestDelegate next) - { - _next = next; - } - - public async Task Invoke(HttpContext context) - { - if (context.Request.Method.ToUpper() == "OPTIONS") - { - //context.Response.Headers.Add("Access-Control-Allow-Origin", "http://localhost:8070"); - //context.Response.Headers.Add("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,PATCH,OPTIONS"); - //context.Response.Headers.Add("Access-Control-Allow-Headers", "*"); - context.Response.StatusCode = 200; - return; - } - await _next.Invoke(context); - } - } - - /// - /// 扩展中间件 - /// - public static class PreOptionsRequestMiddlewareExtensions - { - public static IApplicationBuilder UsePreOptionsRequest(this IApplicationBuilder app) - { - return app.UseMiddleware(); - } - } - -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/StaticPageExtension.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/StaticPageExtension.cs deleted file mode 100644 index 009be9c1..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/MiddlewareExtend/StaticPageExtension.cs +++ /dev/null @@ -1,157 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Http; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.MiddlewareExtend -{ - /// - /// 静态化页面处理扩展 - /// - public class StaticPageExtension - { - private readonly RequestDelegate _next; - private string _directoryPath = @"D:/cc-yi/"; - private bool _supportDelete = false; - private bool _supportWarmup = false; - - public StaticPageExtension(RequestDelegate next, string directoryPath, bool supportDelete, bool supportWarmup) - { - this._next = next; - this._directoryPath = directoryPath; - this._supportDelete = supportDelete; - this._supportWarmup = supportWarmup; - } - - public async Task InvokeAsync(HttpContext context) - { - if (this._supportDelete && "Delete".Equals(context.Request.Query["ActionHeader"])) - { - this.DeleteHmtl(context.Request.Path.Value??""); - context.Response.StatusCode = 200; - } - else if (this._supportWarmup && "ClearAll".Equals(context.Request.Query["ActionHeader"])) - { - this.ClearDirectory(10);//考虑数据量 - context.Response.StatusCode = 200; - } - else if (!context.Request.IsAjaxRequest()) - { - Console.WriteLine($"This is StaticPageMiddleware InvokeAsync {context.Request.Path.Value}"); - #region context.Response.Body - var originalStream = context.Response.Body; - using (var copyStream = new MemoryStream()) - { - context.Response.Body = copyStream; - await _next(context); - - copyStream.Position = 0; - var reader = new StreamReader(copyStream); - var content = await reader.ReadToEndAsync(); - string url = context.Request.Path.Value??""; - - this.SaveHmtl(url, content); - - copyStream.Position = 0; - await copyStream.CopyToAsync(originalStream); - context.Response.Body = originalStream; - } - #endregion - } - else - { - await _next(context); - } - } - - private void SaveHmtl(string url, string html) - { - try - { - //Console.WriteLine($"Response: {html}"); - if (string.IsNullOrWhiteSpace(html)) - return; - if (!url.EndsWith(".html")) - return; - - if (Directory.Exists(_directoryPath) == false) - Directory.CreateDirectory(_directoryPath); - - var totalPath = Path.Combine(_directoryPath, url.Split("/").Last()); - File.WriteAllText(totalPath, html);//直接覆盖 - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - } - } - - /// - /// 删除某个页面 - /// - /// - /// - private void DeleteHmtl(string url) - { - try - { - if (!url.EndsWith(".html")) - return; - var totalPath = Path.Combine(_directoryPath, url.Split("/").Last()); - File.Delete(totalPath);//直接删除 - } - catch (Exception ex) - { - Console.WriteLine($"Delete {url} 异常,{ex.Message}"); - } - } - - /// - /// 清理文件,支持重试 - /// - /// 最多重试次数 - private void ClearDirectory(int index) - { - if (index > 0)//简陋版---重试index次 - { - try - { - var files = Directory.GetFiles(_directoryPath); - foreach (var file in files) - { - File.Delete(file); - } - } - catch (Exception ex) - { - Console.WriteLine($"ClearDirectory failed {ex.Message}"); - ClearDirectory(index--); - } - } - } - } - - /// - /// 扩展中间件 - /// - public static class StaticPageMiddlewareExtensions - { - /// - /// - /// - /// - /// 文件写入地址,文件夹目录 - /// 是否支持删除 - /// 是否支持全量删除 - /// - public static IApplicationBuilder UseStaticPageMiddleware(this IApplicationBuilder app, string directoryPath, bool supportDelete, bool supportClear) - { - return app.UseMiddleware(directoryPath, supportDelete, supportClear); - } - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/SignalRHub/MainHub.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/SignalRHub/MainHub.cs deleted file mode 100644 index 85b1fc2e..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/SignalRHub/MainHub.cs +++ /dev/null @@ -1,86 +0,0 @@ -using IPTools.Core; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.SignalR; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Yi.Framework.Common.Enum; -using Yi.Framework.WebCore.CommonExtend; - -namespace Yi.Framework.WebCore.SignalRHub -{ - public class MainHub : Hub - { - public static readonly List clientUsers = new(); - - - private HttpContext? _httpContext; - private ILogger _logger; - public MainHub(IHttpContextAccessor httpContextAccessor,ILogger logger) - { - _httpContext = httpContextAccessor.HttpContext; - _logger = logger; - } - - - - /// - /// 成功连接 - /// - /// - public override Task OnConnectedAsync() - { - var name = _httpContext?.GetUserNameInfo(); - var loginUser = _httpContext?.GetLoginLogInfo(); - var user = clientUsers.Any(u => u.ConnnectionId == Context.ConnectionId); - //判断用户是否存在,否则添加集合 - if (!user && (Context.User?.Identity?.IsAuthenticated??false)) - { - OnlineUser users = new(Context.ConnectionId) - { - Browser= loginUser?.Browser, - LoginLocation = loginUser?.LoginLocation, - Ipaddr= loginUser?.LoginIp, - LoginTime=DateTime.Now, - Os=loginUser?.Os, - UserName= name??"" - }; - clientUsers.Add(users); - _logger.LogInformation($"{DateTime.Now}:{name},{Context.ConnectionId}连接服务端success,当前已连接{clientUsers.Count}个"); - - //Clients.All.SendAsync(HubsConstant.MoreNotice, SendNotice()); - } - //当有人加入,向全部客户端发送当前总数 - Clients.All.SendAsync(HubTypeEnum.onlineNum.ToString(), clientUsers.Count); - //Clients.All.SendAsync(HubsConstant.OnlineUser, clientUsers); - return base.OnConnectedAsync(); - } - - /// - /// 断开连接 - /// - /// - /// - public override Task OnDisconnectedAsync(Exception? exception) - { - var user = clientUsers.Where(p => p.ConnnectionId == Context.ConnectionId).FirstOrDefault(); - //判断用户是否存在,否则添加集合 - if (user != null) - { - clientUsers.Remove(user); - Clients.All.SendAsync(HubTypeEnum.onlineNum.ToString(), clientUsers.Count); - //Clients.All.SendAsync(HubsConstant.OnlineUser, clientUsers); - _logger.LogInformation($"用户{user?.UserName}离开了,当前已连接{clientUsers.Count}个"); - } - return base.OnDisconnectedAsync(exception); - } - - public async Task SendAllTest(string test) - { - await Clients.All.SendAsync("ReceiveAllInfo", test); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/SignalRHub/OnlineUser.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/SignalRHub/OnlineUser.cs deleted file mode 100644 index ac58ab1a..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/SignalRHub/OnlineUser.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Yi.Framework.WebCore.SignalRHub -{ - public class OnlineUser - { - - public OnlineUser() - { - - } - public OnlineUser(string connnectionId) - { - this.ConnnectionId = connnectionId; - } - - /// - /// 客户端连接Id - /// - public string? ConnnectionId { get; } - /// - /// 用户id - /// - public long? UserId { get; set; } - public string? UserName { get; set; } - public DateTime? LoginTime { get; set; } - public string? Ipaddr { get; set; } - public string? LoginLocation { get; set; } - - public string? Os { get; set; } - public string? Browser { get; set; } - - - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/Yi.Framework.WebCore.csproj b/Yi.Framework.Net6/Yi.Framework.WebCore/Yi.Framework.WebCore.csproj deleted file mode 100644 index f92555ea..00000000 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/Yi.Framework.WebCore.csproj +++ /dev/null @@ -1,43 +0,0 @@ - - - - net6.0 - enable - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.XUnitTest/CrudTest/AccountTest.cs b/Yi.Framework.Net6/Yi.Framework.XUnitTest/CrudTest/AccountTest.cs deleted file mode 100644 index 4c7c2aa4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.XUnitTest/CrudTest/AccountTest.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Yi.Framework.Common.Const; -using Yi.Framework.Core; -using Yi.Framework.Interface; -using Yi.Framework.Interface.RABC; - -namespace Yi.Framework.XUnitTest -{ - public class AccountTest - { - private IUserService _iUserService; - public AccountTest(IUserService iUserService) => - (_iUserService) = - (iUserService); - - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.XUnitTest/JobTest/QuartzTest.cs b/Yi.Framework.Net6/Yi.Framework.XUnitTest/JobTest/QuartzTest.cs deleted file mode 100644 index 4689b209..00000000 --- a/Yi.Framework.Net6/Yi.Framework.XUnitTest/JobTest/QuartzTest.cs +++ /dev/null @@ -1,39 +0,0 @@ -using Yi.Framework.Common.Const; -using Yi.Framework.Core.Quartz; - -namespace Yi.Framework.XUnitTest -{ - public class QuartzTest - { - private QuartzInvoker _quartzInvoker; - public QuartzTest(QuartzInvoker quartzInvoker) => - (_quartzInvoker) = - (quartzInvoker); - - /// - /// - /// - /// - [Fact] - public async Task StartJob() - { - Dictionary data = new Dictionary() - { - {JobConst.method,"get" }, - {JobConst.url,"https://www.baidu.com" } - }; - await _quartzInvoker.StartAsync("*/5 * * * * ?", "HttpJob", jobName: "test", jobGroup: "my", data: data); - } - - /// - /// ֹͣ - /// - /// - [Fact] - public async Task StopJob() - { - await StartJob(); - await _quartzInvoker.StopAsync(new Quartz.JobKey("test", "my")); - } - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.XUnitTest/Startup.cs b/Yi.Framework.Net6/Yi.Framework.XUnitTest/Startup.cs deleted file mode 100644 index 2ad4dad0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.XUnitTest/Startup.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System; -using System.Collections.Generic; -using Autofac.Extensions.DependencyInjection; -using Autofac; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.Extensions.Hosting; -using Quartz; -using Yi.Framework.WebCore.AutoFacExtend; -using Microsoft.AspNetCore.Builder; -using Yi.Framework.WebCore.DbExtend; -using Microsoft.AspNetCore.Hosting; -using Yi.Framework.WebCore.AspNetCoreExtensions; - -namespace Yi.Framework.XUnitTest -{ - public class Startup - { - public void ConfigureHost(IHostBuilder host) - { - host.ConfigureAppConfiguration(builder => - { - builder.AddJsonFile("appsettings.json"); - //builder.AddJsonFile("appsettings.Development.json"); - }); - host.UseServiceProviderFactory(new AutofacServiceProviderFactory()); - host.ConfigureContainer(containerBuilder => - { - #region - //交由Module依赖注入 - #endregion - containerBuilder.RegisterModule(); - #region - //添加属性注入模块 - #endregion - //containerBuilder.RegisterModule(); - #region - //使用AppService特性优雅的进行自动依赖注入,仓储与基类服务便是使用该种方式自动注入 - #endregion - containerBuilder.AddAutoIocService("Yi.Framework.Repository", "Yi.Framework.Service"); - }); - - host.ConfigureServices(services => { }); - } - private IServiceCollection _iServiceCollection=null!; - public void ConfigureServices(IServiceCollection services, HostBuilderContext host) - { - services.AddIocService(host.Configuration); - ConfigureTrueServices(services); - _iServiceCollection = services; - } - - /// - /// 这里配置服务 - /// - /// - public void ConfigureTrueServices(IServiceCollection services) - { - services.AddQuartzService(); - services.AddSqlsugarServer(); - _iServiceCollection = services; - } - - /// - /// 这里兼容配置管道 - /// - /// - public void Configure(IServiceProvider services) - { - var appBuild = WebApplication.CreateBuilder(); - appBuild.WebHost.ConfigureServices(sc => - { - ConfigureTrueServices(sc); - }); - - var app = appBuild.Build(); - app.UseDbSeedInitService(); - } - } -} diff --git a/Yi.Framework.Net6/Yi.Framework.XUnitTest/Usings.cs b/Yi.Framework.Net6/Yi.Framework.XUnitTest/Usings.cs deleted file mode 100644 index 8c927eb7..00000000 --- a/Yi.Framework.Net6/Yi.Framework.XUnitTest/Usings.cs +++ /dev/null @@ -1 +0,0 @@ -global using Xunit; \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.XUnitTest/Yi.Framework.XUnitTest.csproj b/Yi.Framework.Net6/Yi.Framework.XUnitTest/Yi.Framework.XUnitTest.csproj deleted file mode 100644 index 81560a83..00000000 --- a/Yi.Framework.Net6/Yi.Framework.XUnitTest/Yi.Framework.XUnitTest.csproj +++ /dev/null @@ -1,54 +0,0 @@ - - - - net6.0 - enable - enable - - false - - - - - - - - - - - - PreserveNewest - true - PreserveNewest - - - PreserveNewest - true - PreserveNewest - - - PreserveNewest - true - PreserveNewest - - - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - diff --git a/Yi.Framework.Net6/Yi.Framework.XUnitTest/appsettings.Production.json b/Yi.Framework.Net6/Yi.Framework.XUnitTest/appsettings.Production.json deleted file mode 100644 index 76127ea8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.XUnitTest/appsettings.Production.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - //程序启动地址,*代表全部网口 - "StartUrl": "http://*:19001", - - //默认日志打印过滤 - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - - //运行全部主机 - "AllowedHosts": "*", - - //【全局配置开启】 - //Sql语句日志是否打印 - "SqlLog_Enable": false, - //登录二维码是否打印 - "LoginCode_Enable": false, - - //【数据库配置】 - //多数据库主从复制是否开启 - "MutiDB_Enabled": false, - //数据库CodeFirst是否开启 - "DbCodeFirst_Enabled": true, - //数据库种子数据是否开启 - "DbSeed_Enabled": true, - //数据库列表 - "DbList": [ "Sqlite", "Mysql", "Sqlserver", "Oracle" ], - //数据库类型选择 - "DbSelect": "Sqlite", - //数据库连接地址,支持读写分离 - "DbConn": { - "WriteUrl": "DataSource=yi-sqlsugar-dev.db", - "ReadUrl": [ - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]", - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]", - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]" - ] - }, - - - //【缓存配置】 - //缓存列表 - "CacheList": [ "Redis", "MemoryCache" ], - //选择缓存 - "CacheSelect": "MemoryCache", - //缓存种子数据是否开启 - "CacheSeed_Enabled": false, - - - //【中间件开启】 - //Consul是否开启 - "Consul_Enabled": false, - //健康检查是否开启 - "HealthCheck_Enabled": false, - //跨域开放是否开启 - "Cors_Enabled": true, - //Apollo是否开启 - "Apollo_Enabled": false, - //RabbitMQ是否开启 - "RabbitMQ_Enabled": false, - //Kafka是否开启 - "Kafka_Enabled": false, - //ElasticSeach是否开启 - "ElasticSeach_Enabled": false, - //短信发送是否开启 - "SMS_Enabled": false, - //分布式CAP是否开启 - "CAP_Enabled": false, - //分布式CAP面板是否开启 - "CAPDashboard_Enabled": false, - - - //【中间件配置】 - //jwt授权内容,公钥私钥转移到目录下的pem文件 - "JwtAuthorize": { - "Issuer": "cc", - "Audience": "cc", - "PolicyName": "permission", - "DefaultScheme": "Bearer", - "IsHttps": false, - "Expiration": 300, - "ReExpiration": 3000 - }, - //Redis地址配置 - "RedisConnOptions": { - "Host": "[]", - "Prot": 6379, - "DB": 1, - "Password": "[]" - }, - //RabbitMq地址配置 - "RabbitConn": { - "HostName": "[]", - "UserName": "[]", - "Password": "[]", - "Port": 5672 - }, - //ElasticSeach地址配置 - "ElasticSeachConn": { - "Url": "[]", - "IndexName": "[]", - "UserName": "[]", - "PassWord": "[]." - }, - //Kafka地址配置 - "KafkaOptions": { - "BrokerList": "[]:9092", - "TopicName": "kafkalog" - }, - //Consul地址配置 - "ConsulClientOption": { - "IP": "[]", - "Port": "8500", - "Datacenter": "dc1" - }, - //Consul注册本机配置 - "ConsulRegisterOption": { - "IP": "[]", - "Port": "[]", - "GroupName": "ApiMicroservice", - "HealthCheckUrl": "/Health", - "Interval": 10, - "Timeout": 5, - "DeregisterCriticalServiceAfter": 60, - "Tag": "13" - }, - //阿里云短信配置 - "SMS": { - "ID": "[]", - "Secret": "[]", - "Sign": "[]", - "Template": "[]" - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.XUnitTest/appsettings.Staging.json b/Yi.Framework.Net6/Yi.Framework.XUnitTest/appsettings.Staging.json deleted file mode 100644 index 76127ea8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.XUnitTest/appsettings.Staging.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - //程序启动地址,*代表全部网口 - "StartUrl": "http://*:19001", - - //默认日志打印过滤 - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - - //运行全部主机 - "AllowedHosts": "*", - - //【全局配置开启】 - //Sql语句日志是否打印 - "SqlLog_Enable": false, - //登录二维码是否打印 - "LoginCode_Enable": false, - - //【数据库配置】 - //多数据库主从复制是否开启 - "MutiDB_Enabled": false, - //数据库CodeFirst是否开启 - "DbCodeFirst_Enabled": true, - //数据库种子数据是否开启 - "DbSeed_Enabled": true, - //数据库列表 - "DbList": [ "Sqlite", "Mysql", "Sqlserver", "Oracle" ], - //数据库类型选择 - "DbSelect": "Sqlite", - //数据库连接地址,支持读写分离 - "DbConn": { - "WriteUrl": "DataSource=yi-sqlsugar-dev.db", - "ReadUrl": [ - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]", - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]", - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]" - ] - }, - - - //【缓存配置】 - //缓存列表 - "CacheList": [ "Redis", "MemoryCache" ], - //选择缓存 - "CacheSelect": "MemoryCache", - //缓存种子数据是否开启 - "CacheSeed_Enabled": false, - - - //【中间件开启】 - //Consul是否开启 - "Consul_Enabled": false, - //健康检查是否开启 - "HealthCheck_Enabled": false, - //跨域开放是否开启 - "Cors_Enabled": true, - //Apollo是否开启 - "Apollo_Enabled": false, - //RabbitMQ是否开启 - "RabbitMQ_Enabled": false, - //Kafka是否开启 - "Kafka_Enabled": false, - //ElasticSeach是否开启 - "ElasticSeach_Enabled": false, - //短信发送是否开启 - "SMS_Enabled": false, - //分布式CAP是否开启 - "CAP_Enabled": false, - //分布式CAP面板是否开启 - "CAPDashboard_Enabled": false, - - - //【中间件配置】 - //jwt授权内容,公钥私钥转移到目录下的pem文件 - "JwtAuthorize": { - "Issuer": "cc", - "Audience": "cc", - "PolicyName": "permission", - "DefaultScheme": "Bearer", - "IsHttps": false, - "Expiration": 300, - "ReExpiration": 3000 - }, - //Redis地址配置 - "RedisConnOptions": { - "Host": "[]", - "Prot": 6379, - "DB": 1, - "Password": "[]" - }, - //RabbitMq地址配置 - "RabbitConn": { - "HostName": "[]", - "UserName": "[]", - "Password": "[]", - "Port": 5672 - }, - //ElasticSeach地址配置 - "ElasticSeachConn": { - "Url": "[]", - "IndexName": "[]", - "UserName": "[]", - "PassWord": "[]." - }, - //Kafka地址配置 - "KafkaOptions": { - "BrokerList": "[]:9092", - "TopicName": "kafkalog" - }, - //Consul地址配置 - "ConsulClientOption": { - "IP": "[]", - "Port": "8500", - "Datacenter": "dc1" - }, - //Consul注册本机配置 - "ConsulRegisterOption": { - "IP": "[]", - "Port": "[]", - "GroupName": "ApiMicroservice", - "HealthCheckUrl": "/Health", - "Interval": 10, - "Timeout": 5, - "DeregisterCriticalServiceAfter": 60, - "Tag": "13" - }, - //阿里云短信配置 - "SMS": { - "ID": "[]", - "Secret": "[]", - "Sign": "[]", - "Template": "[]" - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.XUnitTest/appsettings.json b/Yi.Framework.Net6/Yi.Framework.XUnitTest/appsettings.json deleted file mode 100644 index e65abda4..00000000 --- a/Yi.Framework.Net6/Yi.Framework.XUnitTest/appsettings.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - //程序启动地址,*代表全部网口 - "StartUrl": "http://*:19001", - - //默认日志打印过滤 - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - - //运行全部主机 - "AllowedHosts": "*", - - //【全局配置开启】 - //Sql语句日志是否打印 - "SqlLog_Enable": false, - //登录二维码是否打印 - "LoginCode_Enable": false, - - //【数据库配置】 - //多数据库主从复制是否开启 - "MutiDB_Enabled": false, - //数据库CodeFirst是否开启 - "DbCodeFirst_Enabled": true, - //数据库种子数据是否开启 - "DbSeed_Enabled": true, - //数据库列表 - "DbList": [ "Sqlite", "Mysql", "Sqlserver", "Oracle" ], - //数据库类型选择 - "DbSelect": "Sqlite", - //数据库连接地址,支持读写分离 - "DbConn": { - "WriteUrl": "DataSource=yi-sqlsugar-dev.db", - "ReadUrl": [ - "DataSource=[xxxx]",//sqlite - "server=[xxxx];port=3306;database=[xxxx];user id=[xxxx];password=[xxxx]", //mysql - "Data Source=[xxxx];Initial Catalog=[xxxx];User ID=[xxxx];password=[xxxx]" //sqlserver - ] - }, - - - //【缓存配置】 - //缓存列表 - "CacheList": [ "Redis", "MemoryCache" ], - //选择缓存 - "CacheSelect": "MemoryCache", - //缓存种子数据是否开启 - "CacheSeed_Enabled": false, - - - //【中间件开启】 - //Consul是否开启 - "Consul_Enabled": false, - //健康检查是否开启 - "HealthCheck_Enabled": false, - //跨域开放是否开启 - "Cors_Enabled": true, - //Apollo是否开启 - "Apollo_Enabled": false, - //RabbitMQ是否开启 - "RabbitMQ_Enabled": false, - //Kafka是否开启 - "Kafka_Enabled": false, - //ElasticSeach是否开启 - "ElasticSeach_Enabled": false, - //短信发送是否开启 - "SMS_Enabled": false, - //分布式CAP是否开启 - "CAP_Enabled": false, - //分布式CAP面板是否开启 - "CAPDashboard_Enabled": false, - - - //【中间件配置】 - //jwt授权内容,公钥私钥转移到目录下的pem文件 - "JwtAuthorize": { - "Issuer": "cc", - "Audience": "cc", - "PolicyName": "permission", - "DefaultScheme": "Bearer", - "IsHttps": false, - "Expiration": 300, - "ReExpiration": 3000 - }, - //Redis地址配置 - "RedisConnOptions": { - "Host": "[]", - "Prot": 6379, - "DB": 1, - "Password": "[]" - }, - //RabbitMq地址配置 - "RabbitConn": { - "HostName": "[]", - "UserName": "[]", - "Password": "[]", - "Port": 5672 - }, - //ElasticSeach地址配置 - "ElasticSeachConn": { - "Url": "[]", - "IndexName": "[]", - "UserName": "[]", - "PassWord": "[]." - }, - //Kafka地址配置 - "KafkaOptions": { - "BrokerList": "[]:9092", - "TopicName": "kafkalog" - }, - //Consul地址配置 - "ConsulClientOption": { - "IP": "[]", - "Port": "8500", - "Datacenter": "dc1" - }, - //Consul注册本机配置 - "ConsulRegisterOption": { - "IP": "[]", - "Port": "[]", - "GroupName": "ApiMicroservice", - "HealthCheckUrl": "/Health", - "Interval": 10, - "Timeout": 5, - "DeregisterCriticalServiceAfter": 60, - "Tag": "13" - }, - //阿里云短信配置 - "SMS": { - "ID": "[]", - "Secret": "[]", - "Sign": "[]", - "Template": "[]" - } -} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.sln b/Yi.Framework.Net6/Yi.Framework.sln deleted file mode 100644 index d0170284..00000000 --- a/Yi.Framework.Net6/Yi.Framework.sln +++ /dev/null @@ -1,152 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31903.59 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BackGround", "BackGround", "{D6B44435-EAFA-4D55-90D0-3AF80485FB83}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{C90E38FB-69EA-4997-8B3A-2C71EFA65B2B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Domain", "Domain", "{DB2506F5-05FD-4E76-940E-41D7AA148550}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Infrastructure", "Infrastructure", "{9ABAF6B1-6C02-498A-90A2-ABC1140CF89A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MicroServiceInstance", "MicroServiceInstance", "{026D2797-07D1-4BA5-8070-50CDE0258C59}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.DtoModel", "Yi.Framework.DtoModel\Yi.Framework.DtoModel.csproj", "{5B6C87F0-CEBA-4A0A-8C30-02E927AB4AEF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Interface", "Yi.Framework.Interface\Yi.Framework.Interface.csproj", "{5935EC64-7414-47D8-B934-E5896DD89E4E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Model", "Yi.Framework.Model\Yi.Framework.Model.csproj", "{F0EE03CF-30C9-4C48-BF32-FED6F3BCFB4C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Service", "Yi.Framework.Service\Yi.Framework.Service.csproj", "{C5E41276-A30F-4098-BA79-2E8920BBD02A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Common", "Yi.Framework.Common\Yi.Framework.Common.csproj", "{4816AA7B-7222-4B3B-A178-C2A70713E9D1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Core", "Yi.Framework.Core\Yi.Framework.Core.csproj", "{07A80C17-E03E-475D-9BBF-98E3B1393652}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.WebCore", "Yi.Framework.WebCore\Yi.Framework.WebCore.csproj", "{E4734315-158C-4D35-AF01-1122C22F2955}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.ApiMicroservice", "Yi.Framework.ApiMicroservice\Yi.Framework.ApiMicroservice.csproj", "{A95157D2-907F-411E-BA1D-A17F48C54A0E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.OcelotGateway", "Yi.Framework.OcelotGateway\Yi.Framework.OcelotGateway.csproj", "{671E38D8-ECAF-484B-A2AE-63DDC469C315}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.AuthenticationCenter", "Yi.Framework.AuthenticationCenter\Yi.Framework.AuthenticationCenter.csproj", "{694C0EC0-ED32-4E5D-8EA1-FB82E1303EAB}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Job", "Yi.Framework.Task\Yi.Framework.Job.csproj", "{F1C990DD-32C3-4F02-83B0-6E52B18B0B17}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.SMSProcessor", "Yi.Framework.SMSProcessor\Yi.Framework.SMSProcessor.csproj", "{7C58FB7C-9AB5-47CF-ACEB-B784CF820E7E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Repository", "Yi.Framework.Repository\Yi.Framework.Repository.csproj", "{DA96B62F-2D4C-4AFB-937C-5AEA1119A129}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Language", "Yi.Framework.Language\Yi.Framework.Language.csproj", "{3047069B-4084-461F-BC9F-023BC60401D1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.WeChatPay", "Yi.Framework.WeChatPay\Yi.Framework.WeChatPay.csproj", "{C307189D-C42C-4C09-BB65-5A386C9F182B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Template", "Yi.Framework.Template\Yi.Framework.Template.csproj", "{A51E9091-3745-461A-A3CB-32598BF0DC77}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.XUnitTest", "Yi.Framework.XUnitTest\Yi.Framework.XUnitTest.csproj", "{88E3298A-135D-4D9C-B98D-41A2C4268385}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Module", "Module", "{ACAC0C36-BE42-46C7-99AB-042C9C910D5B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5B6C87F0-CEBA-4A0A-8C30-02E927AB4AEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5B6C87F0-CEBA-4A0A-8C30-02E927AB4AEF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5B6C87F0-CEBA-4A0A-8C30-02E927AB4AEF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5B6C87F0-CEBA-4A0A-8C30-02E927AB4AEF}.Release|Any CPU.Build.0 = Release|Any CPU - {5935EC64-7414-47D8-B934-E5896DD89E4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5935EC64-7414-47D8-B934-E5896DD89E4E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5935EC64-7414-47D8-B934-E5896DD89E4E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5935EC64-7414-47D8-B934-E5896DD89E4E}.Release|Any CPU.Build.0 = Release|Any CPU - {F0EE03CF-30C9-4C48-BF32-FED6F3BCFB4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0EE03CF-30C9-4C48-BF32-FED6F3BCFB4C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0EE03CF-30C9-4C48-BF32-FED6F3BCFB4C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0EE03CF-30C9-4C48-BF32-FED6F3BCFB4C}.Release|Any CPU.Build.0 = Release|Any CPU - {C5E41276-A30F-4098-BA79-2E8920BBD02A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C5E41276-A30F-4098-BA79-2E8920BBD02A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C5E41276-A30F-4098-BA79-2E8920BBD02A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C5E41276-A30F-4098-BA79-2E8920BBD02A}.Release|Any CPU.Build.0 = Release|Any CPU - {4816AA7B-7222-4B3B-A178-C2A70713E9D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4816AA7B-7222-4B3B-A178-C2A70713E9D1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4816AA7B-7222-4B3B-A178-C2A70713E9D1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4816AA7B-7222-4B3B-A178-C2A70713E9D1}.Release|Any CPU.Build.0 = Release|Any CPU - {07A80C17-E03E-475D-9BBF-98E3B1393652}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {07A80C17-E03E-475D-9BBF-98E3B1393652}.Debug|Any CPU.Build.0 = Debug|Any CPU - {07A80C17-E03E-475D-9BBF-98E3B1393652}.Release|Any CPU.ActiveCfg = Release|Any CPU - {07A80C17-E03E-475D-9BBF-98E3B1393652}.Release|Any CPU.Build.0 = Release|Any CPU - {E4734315-158C-4D35-AF01-1122C22F2955}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E4734315-158C-4D35-AF01-1122C22F2955}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E4734315-158C-4D35-AF01-1122C22F2955}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E4734315-158C-4D35-AF01-1122C22F2955}.Release|Any CPU.Build.0 = Release|Any CPU - {A95157D2-907F-411E-BA1D-A17F48C54A0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A95157D2-907F-411E-BA1D-A17F48C54A0E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A95157D2-907F-411E-BA1D-A17F48C54A0E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A95157D2-907F-411E-BA1D-A17F48C54A0E}.Release|Any CPU.Build.0 = Release|Any CPU - {671E38D8-ECAF-484B-A2AE-63DDC469C315}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {671E38D8-ECAF-484B-A2AE-63DDC469C315}.Debug|Any CPU.Build.0 = Debug|Any CPU - {671E38D8-ECAF-484B-A2AE-63DDC469C315}.Release|Any CPU.ActiveCfg = Release|Any CPU - {671E38D8-ECAF-484B-A2AE-63DDC469C315}.Release|Any CPU.Build.0 = Release|Any CPU - {694C0EC0-ED32-4E5D-8EA1-FB82E1303EAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {694C0EC0-ED32-4E5D-8EA1-FB82E1303EAB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {694C0EC0-ED32-4E5D-8EA1-FB82E1303EAB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {694C0EC0-ED32-4E5D-8EA1-FB82E1303EAB}.Release|Any CPU.Build.0 = Release|Any CPU - {F1C990DD-32C3-4F02-83B0-6E52B18B0B17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F1C990DD-32C3-4F02-83B0-6E52B18B0B17}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F1C990DD-32C3-4F02-83B0-6E52B18B0B17}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F1C990DD-32C3-4F02-83B0-6E52B18B0B17}.Release|Any CPU.Build.0 = Release|Any CPU - {7C58FB7C-9AB5-47CF-ACEB-B784CF820E7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7C58FB7C-9AB5-47CF-ACEB-B784CF820E7E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7C58FB7C-9AB5-47CF-ACEB-B784CF820E7E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7C58FB7C-9AB5-47CF-ACEB-B784CF820E7E}.Release|Any CPU.Build.0 = Release|Any CPU - {DA96B62F-2D4C-4AFB-937C-5AEA1119A129}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DA96B62F-2D4C-4AFB-937C-5AEA1119A129}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DA96B62F-2D4C-4AFB-937C-5AEA1119A129}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DA96B62F-2D4C-4AFB-937C-5AEA1119A129}.Release|Any CPU.Build.0 = Release|Any CPU - {3047069B-4084-461F-BC9F-023BC60401D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3047069B-4084-461F-BC9F-023BC60401D1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3047069B-4084-461F-BC9F-023BC60401D1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3047069B-4084-461F-BC9F-023BC60401D1}.Release|Any CPU.Build.0 = Release|Any CPU - {C307189D-C42C-4C09-BB65-5A386C9F182B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C307189D-C42C-4C09-BB65-5A386C9F182B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C307189D-C42C-4C09-BB65-5A386C9F182B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C307189D-C42C-4C09-BB65-5A386C9F182B}.Release|Any CPU.Build.0 = Release|Any CPU - {A51E9091-3745-461A-A3CB-32598BF0DC77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A51E9091-3745-461A-A3CB-32598BF0DC77}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A51E9091-3745-461A-A3CB-32598BF0DC77}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A51E9091-3745-461A-A3CB-32598BF0DC77}.Release|Any CPU.Build.0 = Release|Any CPU - {88E3298A-135D-4D9C-B98D-41A2C4268385}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {88E3298A-135D-4D9C-B98D-41A2C4268385}.Debug|Any CPU.Build.0 = Debug|Any CPU - {88E3298A-135D-4D9C-B98D-41A2C4268385}.Release|Any CPU.ActiveCfg = Release|Any CPU - {88E3298A-135D-4D9C-B98D-41A2C4268385}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {5B6C87F0-CEBA-4A0A-8C30-02E927AB4AEF} = {DB2506F5-05FD-4E76-940E-41D7AA148550} - {5935EC64-7414-47D8-B934-E5896DD89E4E} = {DB2506F5-05FD-4E76-940E-41D7AA148550} - {F0EE03CF-30C9-4C48-BF32-FED6F3BCFB4C} = {DB2506F5-05FD-4E76-940E-41D7AA148550} - {C5E41276-A30F-4098-BA79-2E8920BBD02A} = {DB2506F5-05FD-4E76-940E-41D7AA148550} - {4816AA7B-7222-4B3B-A178-C2A70713E9D1} = {9ABAF6B1-6C02-498A-90A2-ABC1140CF89A} - {07A80C17-E03E-475D-9BBF-98E3B1393652} = {9ABAF6B1-6C02-498A-90A2-ABC1140CF89A} - {E4734315-158C-4D35-AF01-1122C22F2955} = {9ABAF6B1-6C02-498A-90A2-ABC1140CF89A} - {A95157D2-907F-411E-BA1D-A17F48C54A0E} = {026D2797-07D1-4BA5-8070-50CDE0258C59} - {671E38D8-ECAF-484B-A2AE-63DDC469C315} = {D6B44435-EAFA-4D55-90D0-3AF80485FB83} - {694C0EC0-ED32-4E5D-8EA1-FB82E1303EAB} = {D6B44435-EAFA-4D55-90D0-3AF80485FB83} - {F1C990DD-32C3-4F02-83B0-6E52B18B0B17} = {ACAC0C36-BE42-46C7-99AB-042C9C910D5B} - {7C58FB7C-9AB5-47CF-ACEB-B784CF820E7E} = {D6B44435-EAFA-4D55-90D0-3AF80485FB83} - {DA96B62F-2D4C-4AFB-937C-5AEA1119A129} = {DB2506F5-05FD-4E76-940E-41D7AA148550} - {3047069B-4084-461F-BC9F-023BC60401D1} = {ACAC0C36-BE42-46C7-99AB-042C9C910D5B} - {C307189D-C42C-4C09-BB65-5A386C9F182B} = {ACAC0C36-BE42-46C7-99AB-042C9C910D5B} - {A51E9091-3745-461A-A3CB-32598BF0DC77} = {ACAC0C36-BE42-46C7-99AB-042C9C910D5B} - {88E3298A-135D-4D9C-B98D-41A2C4268385} = {C90E38FB-69EA-4997-8B3A-2C71EFA65B2B} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1ED77A6E-377F-4EEF-A3D0-D65C94657DAF} - EndGlobalSection -EndGlobal diff --git a/Yi.Vue2.x.Vuetify/.browserslistrc b/Yi.Vue2.x.Vuetify/.browserslistrc deleted file mode 100644 index 214388fe..00000000 --- a/Yi.Vue2.x.Vuetify/.browserslistrc +++ /dev/null @@ -1,3 +0,0 @@ -> 1% -last 2 versions -not dead diff --git a/Yi.Vue2.x.Vuetify/.env.development b/Yi.Vue2.x.Vuetify/.env.development deleted file mode 100644 index 2a32b7ed..00000000 --- a/Yi.Vue2.x.Vuetify/.env.development +++ /dev/null @@ -1,4 +0,0 @@ -#接口服务地址 -VUE_APP_SERVICE_URL='http://localhost:19001/api' -#开发环境路径前缀 -VUE_APP_BASE_API='/dev-apis' \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/.env.production b/Yi.Vue2.x.Vuetify/.env.production deleted file mode 100644 index e08412fa..00000000 --- a/Yi.Vue2.x.Vuetify/.env.production +++ /dev/null @@ -1,2 +0,0 @@ -#生成环境路径前缀 -VUE_APP_BASE_API='/prod-apis' \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/.gitignore b/Yi.Vue2.x.Vuetify/.gitignore deleted file mode 100644 index 403adbc1..00000000 --- a/Yi.Vue2.x.Vuetify/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -.DS_Store -node_modules -/dist - - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/Yi.Vue2.x.Vuetify/README.md b/Yi.Vue2.x.Vuetify/README.md deleted file mode 100644 index 7d33362c..00000000 --- a/Yi.Vue2.x.Vuetify/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# vuetify-test - -## Project setup -``` -npm install -``` - -### Compiles and hot-reloads for development -``` -npm run serve -``` - -### Compiles and minifies for production -``` -npm run build -``` - -### Customize configuration -See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/Yi.Vue2.x.Vuetify/package-lock.json b/Yi.Vue2.x.Vuetify/package-lock.json deleted file mode 100644 index 996dd364..00000000 --- a/Yi.Vue2.x.Vuetify/package-lock.json +++ /dev/null @@ -1,10212 +0,0 @@ -{ - "name": "vuetify-test", - "version": "0.1.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/code-frame/download/@babel/code-frame-7.14.5.tgz", - "integrity": "sha1-I7CNdA6D9JxeWZRfvxtD6Au/Tts=", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.15.7.tgz?cache=0&sync_timestamp=1631920857390&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.15.7.tgz", - "integrity": "sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k=", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/highlight/download/@babel/highlight-7.14.5.tgz?cache=0&sync_timestamp=1623280306084&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.14.5.tgz", - "integrity": "sha1-aGGlLwOWZAUAH2qlNKAaJNmejNk=", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.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", - "integrity": "sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=", - "dev": true - }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmmirror.com/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz?cache=0&sync_timestamp=1632777883600&other_urls=https%3A%2F%2Fregistry.npmmirror.com%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", - "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.nlark.com/@hapi/topo/download/@hapi/topo-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" - } - }, - "@mdi/font": { - "version": "6.6.96", - "resolved": "https://registry.npmmirror.com/@mdi/font/-/font-6.6.96.tgz", - "integrity": "sha512-FbcvG9z17hwZ7IwX5XeOR1UYGoLq+gTKq6XNPvJFuCpn599GdiPCJbAmmDBJb+jMYXjKYr0lCxfouWGxDA82sA==" - }, - "@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.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-1.1.3.tgz", - "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", - "dev": true - }, - "@soda/friendly-errors-webpack-plugin": { - "version": "1.8.0", - "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.8.0.tgz?cache=0&sync_timestamp=1607927398894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40soda%2Ffriendly-errors-webpack-plugin%2Fdownload%2F%40soda%2Ffriendly-errors-webpack-plugin-1.8.0.tgz", - "integrity": "sha1-hHUdgqkwGdXJLAzw5FrFkIfNIkA=", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "error-stack-parser": "^2.0.2", - "string-width": "^2.0.0", - "strip-ansi": "^5" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "@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", - "integrity": "sha1-pTUV2yXYA4N0OBtzryC7Ty5QjYc=", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.nlark.com/@types/body-parser/download/@types/body-parser-1.19.1.tgz", - "integrity": "sha1-DAF0xCp9AXuBgwPUtdlpywt1kpw=", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.nlark.com/@types/connect/download/@types/connect-3.4.35.tgz", - "integrity": "sha1-X89q5EXkAh0fwiGaSHPMc6O7KtE=", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.nlark.com/@types/connect-history-api-fallback/download/@types/connect-history-api-fallback-1.3.5.tgz?cache=0&sync_timestamp=1629707001404&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fconnect-history-api-fallback%2Fdownload%2F%40types%2Fconnect-history-api-fallback-1.3.5.tgz", - "integrity": "sha1-0feooJ0O1aV67lrpwYq5uAMgXa4=", - "dev": true, - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.nlark.com/@types/express/download/@types/express-4.17.13.tgz?cache=0&sync_timestamp=1629707737380&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fexpress%2Fdownload%2F%40types%2Fexpress-4.17.13.tgz", - "integrity": "sha1-p24plXKJmbq1GjP6vOHXBaNwkDQ=", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.24", - "resolved": "https://registry.nlark.com/@types/express-serve-static-core/download/@types/express-serve-static-core-4.17.24.tgz?cache=0&sync_timestamp=1629707772598&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fexpress-serve-static-core%2Fdownload%2F%40types%2Fexpress-serve-static-core-4.17.24.tgz", - "integrity": "sha1-6kH5O/fg1ZzVp2ZlBo7WqraBXAc=", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/glob": { - "version": "7.1.4", - "resolved": "https://registry.nlark.com/@types/glob/download/@types/glob-7.1.4.tgz?cache=0&sync_timestamp=1629707996938&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.4.tgz", - "integrity": "sha1-6lniHS7lxReRTLS8jkFTuZ5WZnI=", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/http-proxy": { - "version": "1.17.7", - "resolved": "https://registry.nlark.com/@types/http-proxy/download/@types/http-proxy-1.17.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fhttp-proxy%2Fdownload%2F%40types%2Fhttp-proxy-1.17.7.tgz", - "integrity": "sha1-MOqFzCyGg2g1Kjfw0NNYHiSDTG8=", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.nlark.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz?cache=0&sync_timestamp=1629708189890&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.9.tgz", - "integrity": "sha1-l+3JA36gw4WFMgsolk3eOznkZg0=", - "dev": true - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.nlark.com/@types/mime/download/@types/mime-1.3.2.tgz?cache=0&sync_timestamp=1629708336928&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fmime%2Fdownload%2F%40types%2Fmime-1.3.2.tgz", - "integrity": "sha1-k+Jb+e51/g/YC1lLxP6w6GIRG1o=", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.nlark.com/@types/minimatch/download/@types/minimatch-3.0.5.tgz?cache=0&sync_timestamp=1629708337307&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.5.tgz", - "integrity": "sha1-EAHMXmo3BLg8I2An538vWOoBD0A=", - "dev": true - }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.nlark.com/@types/minimist/download/@types/minimist-1.2.2.tgz?cache=0&sync_timestamp=1629708337116&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fminimist%2Fdownload%2F%40types%2Fminimist-1.2.2.tgz", - "integrity": "sha1-7nceK6Sz3Fs3KTXVSf2WF780W4w=", - "dev": true - }, - "@types/node": { - "version": "16.10.2", - "resolved": "https://registry.npmmirror.com/@types/node/download/@types/node-16.10.2.tgz", - "integrity": "sha1-V2TKmqlEcK204Rhf4unxlFiZKy4=", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.nlark.com/@types/normalize-package-data/download/@types/normalize-package-data-2.4.1.tgz?cache=0&sync_timestamp=1629708548426&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.1.tgz", - "integrity": "sha1-0zV0eaD9/dWQf+Z+F+CoXJBuEwE=", - "dev": true - }, - "@types/q": { - "version": "1.5.5", - "resolved": "https://registry.nlark.com/@types/q/download/@types/q-1.5.5.tgz?cache=0&sync_timestamp=1629708830339&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.5.tgz", - "integrity": "sha1-daKo59irSyMEFFBdkjNdHctTpt8=", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.nlark.com/@types/qs/download/@types/qs-6.9.7.tgz?cache=0&sync_timestamp=1629708791613&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fqs%2Fdownload%2F%40types%2Fqs-6.9.7.tgz", - "integrity": "sha1-Y7t9Bn2xB8weRXwwO8JdUR/r9ss=", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.nlark.com/@types/range-parser/download/@types/range-parser-1.2.4.tgz?cache=0&sync_timestamp=1629708789398&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Frange-parser%2Fdownload%2F%40types%2Frange-parser-1.2.4.tgz", - "integrity": "sha1-zWZ7z90CUhOq+3ylkVqTJZCs3Nw=", - "dev": true - }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.nlark.com/@types/serve-static/download/@types/serve-static-1.13.10.tgz?cache=0&sync_timestamp=1629709187133&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fserve-static%2Fdownload%2F%40types%2Fserve-static-1.13.10.tgz", - "integrity": "sha1-9eDOh5fS18xevtpIpSyWxPpHqNk=", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.nlark.com/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz", - "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=", - "dev": true - }, - "@types/tapable": { - "version": "1.0.8", - "resolved": "https://registry.nlark.com/@types/tapable/download/@types/tapable-1.0.8.tgz?cache=0&sync_timestamp=1629709376833&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.8.tgz", - "integrity": "sha1-uUpDkchWZse3Mpn9OtedT6pDUxA=", - "dev": true - }, - "@types/uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.nlark.com/@types/uglify-js/download/@types/uglify-js-3.13.1.tgz?cache=0&sync_timestamp=1629709561839&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fuglify-js%2Fdownload%2F%40types%2Fuglify-js-3.13.1.tgz", - "integrity": "sha1-XoienoHpQkXHW2RQYA4cXqKHiuo=", - "dev": true, - "requires": { - "source-map": "^0.6.1" - } - }, - "@types/webpack": { - "version": "4.41.31", - "resolved": "https://registry.nlark.com/@types/webpack/download/@types/webpack-4.41.31.tgz", - "integrity": "sha1-w18lKjVZ3fnIXA2LC0IBkCXlgao=", - "dev": true, - "requires": { - "@types/node": "*", - "@types/tapable": "^1", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "anymatch": "^3.0.0", - "source-map": "^0.6.0" - } - }, - "@types/webpack-dev-server": { - "version": "3.11.6", - "resolved": "https://registry.nlark.com/@types/webpack-dev-server/download/@types/webpack-dev-server-3.11.6.tgz", - "integrity": "sha1-2IiM/S8GMCA+E9PteDOk0RuKNNw=", - "dev": true, - "requires": { - "@types/connect-history-api-fallback": "*", - "@types/express": "*", - "@types/serve-static": "*", - "@types/webpack": "^4", - "http-proxy-middleware": "^1.0.0" - } - }, - "@types/webpack-sources": { - "version": "3.2.0", - "resolved": "https://registry.nlark.com/@types/webpack-sources/download/@types/webpack-sources-3.2.0.tgz", - "integrity": "sha1-FtdZuglsKJA0smVT0t8b9FJI04s=", - "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", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", - "dev": true - } - } - }, - "@vue/cli-overlay": { - "version": "4.5.13", - "resolved": "https://registry.nlark.com/@vue/cli-overlay/download/@vue/cli-overlay-4.5.13.tgz?cache=0&sync_timestamp=1631753513123&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-overlay%2Fdownload%2F%40vue%2Fcli-overlay-4.5.13.tgz", - "integrity": "sha1-Tx/SFhvo9p1suoB58/DX3E3uR6c=", - "dev": true - }, - "@vue/cli-plugin-router": { - "version": "4.5.13", - "resolved": "https://registry.nlark.com/@vue/cli-plugin-router/download/@vue/cli-plugin-router-4.5.13.tgz?cache=0&sync_timestamp=1631753459080&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-plugin-router%2Fdownload%2F%40vue%2Fcli-plugin-router-4.5.13.tgz", - "integrity": "sha1-C2fIiYor8TKUGRmiouXzqsvZ/74=", - "dev": true, - "requires": { - "@vue/cli-shared-utils": "^4.5.13" - } - }, - "@vue/cli-plugin-vuex": { - "version": "4.5.13", - "resolved": "https://registry.nlark.com/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.5.13.tgz?cache=0&sync_timestamp=1631753513624&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-plugin-vuex%2Fdownload%2F%40vue%2Fcli-plugin-vuex-4.5.13.tgz", - "integrity": "sha1-mGRti8HmnPbGpsui/tPqzgNWw2A=", - "dev": true - }, - "@vue/cli-service": { - "version": "4.5.13", - "resolved": "https://registry.nlark.com/@vue/cli-service/download/@vue/cli-service-4.5.13.tgz?cache=0&sync_timestamp=1631753502640&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-4.5.13.tgz", - "integrity": "sha1-oJ5oSoAWhLbiTlQUrTBlCXDuye0=", - "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.13", - "@vue/cli-plugin-router": "^4.5.13", - "@vue/cli-plugin-vuex": "^4.5.13", - "@vue/cli-shared-utils": "^4.5.13", - "@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": "^8.0.1", - "terser-webpack-plugin": "^1.4.4", - "thread-loader": "^2.1.3", - "url-loader": "^2.2.0", - "vue-loader": "^15.9.2", - "vue-loader-v16": "npm:vue-loader@^16.1.0", - "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" - } - }, - "@vue/cli-shared-utils": { - "version": "4.5.13", - "resolved": "https://registry.nlark.com/@vue/cli-shared-utils/download/@vue/cli-shared-utils-4.5.13.tgz?cache=0&sync_timestamp=1631753504483&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-shared-utils%2Fdownload%2F%40vue%2Fcli-shared-utils-4.5.13.tgz", - "integrity": "sha1-rNQPMbR5DxY0KSvapfypXcHg/1A=", - "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" - } - }, - "@vue/component-compiler-utils": { - "version": "3.2.2", - "resolved": "https://registry.nlark.com/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.2.2.tgz?cache=0&sync_timestamp=1623744148967&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcomponent-compiler-utils%2Fdownload%2F%40vue%2Fcomponent-compiler-utils-3.2.2.tgz", - "integrity": "sha1-L37V/u2C/38ChKzBHVJe5+/yJGA=", - "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.36", - "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", - "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "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&sync_timestamp=1613215046917&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.3.0", - "resolved": "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.3.0.tgz?cache=0&sync_timestamp=1613216636926&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fweb-component-wrapper%2Fdownload%2F%40vue%2Fweb-component-wrapper-1.3.0.tgz", - "integrity": "sha1-trQKdiVCnSvXwigd26YB7QXcfxo=", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz?cache=0&sync_timestamp=1625473459015&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-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.nlark.com/@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.nlark.com/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz?cache=0&sync_timestamp=1625473346773&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.9.0.tgz", - "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz?cache=0&sync_timestamp=1625473344792&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz", - "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@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.nlark.com/@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.nlark.com/@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.nlark.com/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz?cache=0&sync_timestamp=1625473466570&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-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.nlark.com/@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.nlark.com/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz?cache=0&sync_timestamp=1625473342433&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-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.nlark.com/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz", - "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz?cache=0&sync_timestamp=1625473463093&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-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.nlark.com/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz?cache=0&sync_timestamp=1625473361759&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-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.nlark.com/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz?cache=0&sync_timestamp=1625473467198&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-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.nlark.com/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz?cache=0&sync_timestamp=1625473464593&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-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.nlark.com/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz?cache=0&sync_timestamp=1625473373987&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-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.nlark.com/@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?cache=0&sync_timestamp=1600349136981&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faccepts%2Fdownload%2Faccepts-1.3.7.tgz", - "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz", - "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", - "dev": true - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1630916608758&other_urls=https%3A%2F%2Fregistry.nlark.com%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?cache=0&sync_timestamp=1593529661616&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faddress%2Fdownload%2Faddress-1.1.2.tgz", - "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1631470912358&other_urls=https%3A%2F%2Fregistry.nlark.com%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", - "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", - "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?cache=0&sync_timestamp=1593529711167&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-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.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995625950&other_urls=https%3A%2F%2Fregistry.nlark.com%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.2", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.2.tgz", - "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", - "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", - "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.nlark.com/array-uniq/download/array-uniq-1.0.3.tgz?cache=0&sync_timestamp=1620042121153&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farray-uniq%2Fdownload%2Farray-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.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", - "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?cache=0&sync_timestamp=1606706255906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.nlark.com/util/download/util-0.10.3.tgz?cache=0&sync_timestamp=1622212984161&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/async/download/async-2.6.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fasync%2Fdownload%2Fasync-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 - }, - "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.7", - "resolved": "https://registry.npmmirror.com/autoprefixer/download/autoprefixer-9.8.7.tgz?cache=0&sync_timestamp=1632643102590&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.7.tgz", - "integrity": "sha1-48Et4YqACvGhqBVfvAHcfeKeoYQ=", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "nanocolors": "^0.2.8", - "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=1604101311814&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.11.0.tgz", - "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=", - "dev": true - }, - "axios": { - "version": "0.22.0", - "resolved": "https://registry.npmmirror.com/axios/download/axios-0.22.0.tgz?cache=0&sync_timestamp=1633067756491&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faxios%2Fdownload%2Faxios-0.22.0.tgz", - "integrity": "sha1-v3AsQftQ+8pFOVidg5oHcRe3myU=", - "requires": { - "follow-redirects": "^1.14.4" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/balanced-match/download/balanced-match-1.0.2.tgz", - "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", - "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", - "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.nlark.com/big.js/download/big.js-5.2.2.tgz", - "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", - "dev": true - }, - "bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299293319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz", - "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", - "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.2.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.2.0.tgz", - "integrity": "sha1-NYhgZ0OWxpl3canQUfzBtX1K4AI=", - "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.nlark.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&sync_timestamp=1616385328325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-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", - "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", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "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" - } - }, - "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=1596557838450&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" - } - } - } - }, - "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.17.2", - "resolved": "https://registry.npmmirror.com/browserslist/download/browserslist-4.17.2.tgz", - "integrity": "sha1-qhXb0vqzmaOZ/k32AbsJNjxUWKY=", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001261", - "electron-to-chromium": "^1.3.854", - "escalade": "^3.1.1", - "nanocolors": "^0.2.12", - "node-releases": "^1.1.76" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz", - "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.nlark.com/buffer-from/download/buffer-from-1.1.2.tgz", - "integrity": "sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=", - "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.nlark.com/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1629999544020&other_urls=https%3A%2F%2Fregistry.nlark.com%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" - }, - "dependencies": { - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.nlark.com/ssri/download/ssri-6.0.2.tgz?cache=0&sync_timestamp=1621364647836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-6.0.2.tgz", - "integrity": "sha1-FXk5E08gRk5zAd26PpD/qPdyisU=", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.3.tgz?cache=0&sync_timestamp=1617822642544&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.3.tgz", - "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=", - "dev": true - } - } - }, - "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?cache=0&sync_timestamp=1601432152909&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcache-loader%2Fdownload%2Fcache-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.2", - "resolved": "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.2.tgz?cache=0&sync_timestamp=1610405478355&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcall-bind%2Fdownload%2Fcall-bind-1.0.2.tgz", - "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "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.nlark.com/caller-path/download/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/callsite/download/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/callsites/download/callsites-2.0.0.tgz?cache=0&sync_timestamp=1628464722297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcallsites%2Fdownload%2Fcallsites-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=1606867359182&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": "5.3.1", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603921787305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "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.30001263", - "resolved": "https://registry.npmmirror.com/caniuse-lite/download/caniuse-lite-1.0.30001263.tgz?cache=0&sync_timestamp=1633064150866&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001263.tgz", - "integrity": "sha1-fOem+0gqE3WFy8kIqvOOkMU6FqQ=", - "dev": true - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.4.0.tgz?cache=0&sync_timestamp=1614019098201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcase-sensitive-paths-webpack-plugin%2Fdownload%2Fcase-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha1-22QGbGQi7tLgjMFLmGykN5bbxtQ=", - "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.nlark.com/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%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" - } - }, - "chartist": { - "version": "0.11.4", - "resolved": "https://registry.npm.taobao.org/chartist/download/chartist-0.11.4.tgz", - "integrity": "sha1-6W4cVz2LZ0eJIKOmrlI1nZ/I2Lc=" - }, - "check-types": { - "version": "8.0.3", - "resolved": "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz", - "integrity": "sha1-M1bMoZyIlUTy16le1JzlCKDs9VI=", - "dev": true - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.nlark.com/chokidar/download/chokidar-3.5.2.tgz?cache=0&sync_timestamp=1623763535523&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchokidar%2Fdownload%2Fchokidar-3.5.2.tgz", - "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz", - "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz", - "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.3.tgz?cache=0&sync_timestamp=1617905865899&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.3.tgz", - "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=", - "dev": true - }, - "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.npmmirror.com/clean-css/download/clean-css-4.2.3.tgz", - "integrity": "sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/cli-cursor/download/cli-cursor-2.1.0.tgz?cache=0&sync_timestamp=1629747481175&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcli-cursor%2Fdownload%2Fcli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-highlight": { - "version": "2.1.11", - "resolved": "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.11.tgz?cache=0&sync_timestamp=1616955767588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-highlight%2Fdownload%2Fcli-highlight-2.1.11.tgz", - "integrity": "sha1-SXNvpFLwqvT65YDjCssmgo0twb8=", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995625950&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "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.nlark.com/has-flag/download/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703414084&other_urls=https%3A%2F%2Fregistry.nlark.com%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.6.0", - "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.6.0.tgz?cache=0&sync_timestamp=1616091539101&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.6.0.tgz", - "integrity": "sha1-NsfcmPtqmna9YjjsP3fiQlYn6Tk=", - "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?cache=0&sync_timestamp=1604880267387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-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": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995625950&other_urls=https%3A%2F%2Fregistry.nlark.com%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?cache=0&sync_timestamp=1618552489864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/download/string-width-4.2.3.tgz", - "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-6.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%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" - } - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "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.2.1", - "resolved": "https://registry.nlark.com/color/download/color-3.2.1.tgz?cache=0&sync_timestamp=1628104117021&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcolor%2Fdownload%2Fcolor-3.2.1.tgz", - "integrity": "sha1-NUTcGYyvRJDD7MmnkLVP6f9F4WQ=", - "dev": true, - "requires": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "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.6.0", - "resolved": "https://registry.nlark.com/color-string/download/color-string-1.6.0.tgz", - "integrity": "sha1-w5FfYf4mdnLLfh4GTJ1pIhn2wxI=", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "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.17.1", - "resolved": "https://registry.nlark.com/commander/download/commander-2.17.1.tgz", - "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=", - "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", - "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.nlark.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - } - } - }, - "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" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - } - } - }, - "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 - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-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.nlark.com/copy-webpack-plugin/download/copy-webpack-plugin-5.1.2.tgz?cache=0&sync_timestamp=1624628458516&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/find-cache-dir/download/find-cache-dir-2.1.0.tgz?cache=0&sync_timestamp=1630260009898&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffind-cache-dir%2Fdownload%2Ffind-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.npmmirror.com/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1632654133435&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.nlark.com/globby/download/globby-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.nlark.com/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-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", - "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1629892721671&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/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=1602859010405&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.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694740261&other_urls=https%3A%2F%2Fregistry.nlark.com%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": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463641178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1629585969900&other_urls=https%3A%2F%2Fregistry.nlark.com%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?cache=0&sync_timestamp=1610966642419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-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", - "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", - "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", - "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" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463641178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "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.nlark.com/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1630965563343&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-declaration-sorter%2Fdownload%2Fcss-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.nlark.com/css-loader/download/css-loader-3.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%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" - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/css-select/download/css-select-2.1.0.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-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", - "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", - "dev": true, - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.nlark.com/css-what/download/css-what-3.4.2.tgz?cache=0&sync_timestamp=1622227658327&other_urls=https%3A%2F%2Fregistry.nlark.com%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.11", - "resolved": "https://registry.nlark.com/cssnano/download/cssnano-4.1.11.tgz", - "integrity": "sha1-x7X1uB2iacsf2YLLlgwSAJEMmpk=", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.8", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "cssnano-preset-default": { - "version": "4.0.8", - "resolved": "https://registry.nlark.com/cssnano-preset-default/download/cssnano-preset-default-4.0.8.tgz", - "integrity": "sha1-kgYisfwelaNOiDggPxOXpQTy0/8=", - "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.3", - "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=1606408790645&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.3", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.1.3.tgz", - "integrity": "sha1-60hw+2/XcHMn7JXC/yqwm16NuR0=", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.14.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.14.tgz", - "integrity": "sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=", - "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=1601073333186&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": "4.3.2", - "resolved": "https://registry.nlark.com/debug/download/debug-4.3.2.tgz", - "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decache": { - "version": "4.6.0", - "resolved": "https://registry.npm.taobao.org/decache/download/decache-4.6.0.tgz", - "integrity": "sha1-hwJrxuaWdZ6C1Xo4QcTiUaMDVug=", - "dev": true, - "requires": { - "callsite": "^1.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/decamelize/download/decamelize-1.2.0.tgz?cache=0&sync_timestamp=1633055760479&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fdecamelize%2Fdownload%2Fdecamelize-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?cache=0&sync_timestamp=1606859943631&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-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=", - "dev": true - }, - "default-gateway": { - "version": "5.0.5", - "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.5.tgz?cache=0&sync_timestamp=1610365857779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-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", - "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.nlark.com/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1622825446570&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/get-stream/download/get-stream-5.2.0.tgz?cache=0&sync_timestamp=1618847023057&other_urls=https%3A%2F%2Fregistry.nlark.com%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.1", - "resolved": "https://registry.nlark.com/is-stream/download/is-stream-2.0.1.tgz", - "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/mimic-fn/download/mimic-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&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=1617889724435&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?cache=0&sync_timestamp=1617947695861&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-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?cache=0&sync_timestamp=1617971632960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-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.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz?cache=0&sync_timestamp=1628896299850&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-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", - "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?cache=0&sync_timestamp=1601076741536&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-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.nlark.com/globby/download/globby-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 - } - } - } - } - }, - "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.1.0", - "resolved": "https://registry.nlark.com/detect-node/download/detect-node-2.1.0.tgz?cache=0&sync_timestamp=1621146954463&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdetect-node%2Fdownload%2Fdetect-node-2.1.0.tgz", - "integrity": "sha1-yccHdaScPQO8LAbZpzvlUPl4+LE=", - "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.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", - "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.4", - "resolved": "https://registry.nlark.com/dns-packet/download/dns-packet-1.3.4.tgz", - "integrity": "sha1-40VQZYJKJQe6iGxVqJljuxB97G8=", - "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.nlark.com/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1621256830355&other_urls=https%3A%2F%2Fregistry.nlark.com%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.2.0", - "resolved": "https://registry.nlark.com/domelementtype/download/domelementtype-2.2.0.tgz", - "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1627591557212&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz", - "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", - "dev": true - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.nlark.com/domelementtype/download/domelementtype-1.3.1.tgz", - "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", - "dev": true - }, - "domhandler": { - "version": "4.2.2", - "resolved": "https://registry.nlark.com/domhandler/download/domhandler-4.2.2.tgz?cache=0&sync_timestamp=1630246778110&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomhandler%2Fdownload%2Fdomhandler-4.2.2.tgz", - "integrity": "sha1-6CXXIdGahrjCAaNSZOImxnjudV8=", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/domelementtype/download/domelementtype-2.2.0.tgz", - "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=", - "dev": true - } - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.nlark.com/domutils/download/domutils-1.7.0.tgz?cache=0&sync_timestamp=1630106606599&other_urls=https%3A%2F%2Fregistry.nlark.com%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=1605778245141&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.6.0", - "resolved": "https://registry.nlark.com/dotenv/download/dotenv-8.6.0.tgz?cache=0&sync_timestamp=1621633079842&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdotenv%2Fdownload%2Fdotenv-8.6.0.tgz", - "integrity": "sha1-Bhr2ZNGff02PxuT/m1hM4jety4s=", - "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?cache=0&sync_timestamp=1597220926027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fduplexer%2Fdownload%2Fduplexer-0.1.2.tgz", - "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.nlark.com/duplexify/download/duplexify-3.7.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fduplexify%2Fdownload%2Fduplexify-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", - "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.856", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/download/electron-to-chromium-1.3.856.tgz?cache=0&sync_timestamp=1633053822944&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.856.tgz", - "integrity": "sha1-dd7g7vlwK/+rv0wSk8mJzTyst7o=", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.4.tgz", - "integrity": "sha1-2jfOvTHnmhNn6UG1ku0fvr1Yq7s=", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", - "dev": true - } - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-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.5.0", - "resolved": "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-4.5.0.tgz?cache=0&sync_timestamp=1632130840337&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.5.0.tgz", - "integrity": "sha1-Lzz9hNvjtIfxjy2y7x4GSlccpew=", - "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.2.0", - "resolved": "https://registry.nlark.com/entities/download/entities-2.2.0.tgz?cache=0&sync_timestamp=1628508189267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fentities%2Fdownload%2Fentities-2.2.0.tgz", - "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=", - "dev": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.8.tgz?cache=0&sync_timestamp=1608121636522&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ferrno%2Fdownload%2Ferrno-0.1.8.tgz", - "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=", - "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", - "integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=", - "dev": true, - "requires": { - "stackframe": "^1.1.1" - } - }, - "es-abstract": { - "version": "1.19.0", - "resolved": "https://registry.npmmirror.com/es-abstract/download/es-abstract-1.19.0.tgz?cache=0&sync_timestamp=1633061805422&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fes-abstract%2Fdownload%2Fes-abstract-1.19.0.tgz", - "integrity": "sha1-Cm5mgiaOf1vcHHQLM84leNZFONM=", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^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?cache=0&sync_timestamp=1602567230854&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-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", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/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=1598898247102&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", - "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", - "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=1606361604403&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=1598517809015&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.7.tgz", - "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/events/download/events-3.3.0.tgz", - "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=", - "dev": true - }, - "eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.1.0.tgz?cache=0&sync_timestamp=1616041716084&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventsource%2Fdownload%2Feventsource-1.1.0.tgz", - "integrity": "sha1-AOjKfJIQnpSw3fMtrGd9hBAoz68=", - "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.nlark.com/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1622825446570&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/debug/download/debug-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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "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.nlark.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&sync_timestamp=1616385328325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz", - "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "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", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", - "dev": true - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.nlark.com/fast-glob/download/fast-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": { - "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" - } - } - } - }, - "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" - } - } - } - }, - "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" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&sync_timestamp=1618054787196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-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" - } - }, - "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" - } - } - } - }, - "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=1600349170187&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.11.4", - "resolved": "https://registry.nlark.com/faye-websocket/download/faye-websocket-0.11.4.tgz?cache=0&sync_timestamp=1621894983961&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffaye-websocket%2Fdownload%2Ffaye-websocket-0.11.4.tgz", - "integrity": "sha1-fw2Sdc/dhqHJY9yLZfzEUe3Lsdo=", - "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?cache=0&sync_timestamp=1603816990383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-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.nlark.com/filesize/download/filesize-3.6.1.tgz?cache=0&sync_timestamp=1631578775754&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffilesize%2Fdownload%2Ffilesize-3.6.1.tgz", - "integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=", - "dev": true - }, - "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" - } - }, - "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.nlark.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.nlark.com/find-cache-dir/download/find-cache-dir-3.3.2.tgz?cache=0&sync_timestamp=1630260009898&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-3.3.2.tgz", - "integrity": "sha1-swxbbv8HMHMa6pu9nb7L2AJW1ks=", - "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.npmmirror.com/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1632654133435&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-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.14.4", - "resolved": "https://registry.nlark.com/follow-redirects/download/follow-redirects-1.14.4.tgz", - "integrity": "sha1-g4/fSKi73XnlLuUfsclOPtmLk3k=" - }, - "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?cache=0&sync_timestamp=1613410812604&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fform-data%2Fdownload%2Fform-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.2.0", - "resolved": "https://registry.nlark.com/forwarded/download/forwarded-0.2.0.tgz", - "integrity": "sha1-ImmTZCiq1MFcfr6XeahL8LKoGBE=", - "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.nlark.com/fs-extra/download/fs-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-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.3.2", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.3.2.tgz", - "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", - "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 - }, - "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.1.1", - "resolved": "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz?cache=0&sync_timestamp=1612364352840&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-intrinsic%2Fdownload%2Fget-intrinsic-1.1.1.tgz", - "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", - "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.nlark.com/get-stream/download/get-stream-4.1.0.tgz?cache=0&sync_timestamp=1618847023057&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/get-symbol-description/download/get-symbol-description-1.0.0.tgz", - "integrity": "sha1-f9uByQAQH71WTdXxowr1qtweWNY=", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "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.2.0", - "resolved": "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz?cache=0&sync_timestamp=1632354560812&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob%2Fdownload%2Fglob-7.2.0.tgz", - "integrity": "sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM=", - "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": "3.1.0", - "resolved": "https://registry.npmmirror.com/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.npmmirror.com/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "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 - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.nlark.com/globby/download/globby-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", - "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.8", - "resolved": "https://registry.nlark.com/graceful-fs/download/graceful-fs-4.2.8.tgz?cache=0&sync_timestamp=1628194078324&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.8.tgz", - "integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=", - "dev": true - }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-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", - "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", - "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-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/has-bigints/download/has-bigints-1.0.1.tgz?cache=0&sync_timestamp=1615461293395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-bigints%2Fdownload%2Fhas-bigints-1.0.1.tgz", - "integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/has-flag/download/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz", - "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/has-tostringtag/download/has-tostringtag-1.0.0.tgz?cache=0&sync_timestamp=1628196402801&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-tostringtag%2Fdownload%2Fhas-tostringtag-1.0.0.tgz", - "integrity": "sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU=", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "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": { - "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" - } - } - } - }, - "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" - } - } - } - }, - "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.7.3", - "resolved": "https://registry.nlark.com/highlight.js/download/highlight.js-10.7.3.tgz", - "integrity": "sha1-aXJy45kTVuQMPKxWanTu9oF1ZTE=", - "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.9", - "resolved": "https://registry.nlark.com/hosted-git-info/download/hosted-git-info-2.8.9.tgz", - "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=", - "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-entities": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.4.0.tgz?cache=0&sync_timestamp=1617031787889&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.4.0.tgz", - "integrity": "sha1-z70bAdKvr5rcobEK59/6uYxx0tw=", - "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" - } - }, - "html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.nlark.com/html-webpack-plugin/download/html-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.nlark.com/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=1612146079519&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", - "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&sync_timestamp=1610159858516&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": "6.1.0", - "resolved": "https://registry.nlark.com/htmlparser2/download/htmlparser2-6.1.0.tgz?cache=0&sync_timestamp=1631386311915&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-6.1.0.tgz", - "integrity": "sha1-xNditsM3GgXb5l6UrkOp+EX7j7c=", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - }, - "dependencies": { - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-1.3.2.tgz?cache=0&sync_timestamp=1621256830355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-1.3.2.tgz", - "integrity": "sha1-YgZDfTLO767HFhgDIwx6ILwbTZE=", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/domelementtype/download/domelementtype-2.2.0.tgz", - "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=", - "dev": true - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.nlark.com/domutils/download/domutils-2.8.0.tgz?cache=0&sync_timestamp=1630106606599&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-2.8.0.tgz", - "integrity": "sha1-RDfe9dtuLR9dbuhZvZXKfQIEgTU=", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - } - } - }, - "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", - "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?cache=0&sync_timestamp=1606706255906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.3.tgz", - "integrity": "sha1-AdJwnHnUFpi7AdTezF6dpOSgM9k=", - "dev": true - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz?cache=0&sync_timestamp=1589778321455&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-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": "1.3.1", - "resolved": "https://registry.nlark.com/http-proxy-middleware/download/http-proxy-middleware-1.3.1.tgz", - "integrity": "sha1-Q3ANbZ7st0Gb8IahKND3IF2etmU=", - "dev": true, - "requires": { - "@types/http-proxy": "^1.17.5", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - } - }, - "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=1600868613104&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.nlark.com/human-signals/download/human-signals-1.1.1.tgz?cache=0&sync_timestamp=1624364695595&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhuman-signals%2Fdownload%2Fhuman-signals-1.1.1.tgz", - "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.nlark.com/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=1603838209136&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", - "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", - "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=1608469485280&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.nlark.com/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.npmmirror.com/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1632654133435&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-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.nlark.com/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-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.nlark.com/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1629892721671&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/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=1602859010405&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 - }, - "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?cache=0&sync_timestamp=1606706255906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-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=1605885653768&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?cache=0&sync_timestamp=1610365857779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz", - "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", - "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - } - } - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.nlark.com/internal-slot/download/internal-slot-1.0.3.tgz", - "integrity": "sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-1.4.0.tgz", - "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=", - "dev": true - }, - "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", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.nlark.com/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.nlark.com/is-absolute-url/download/is-absolute-url-2.1.0.tgz?cache=0&sync_timestamp=1628691761253&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-absolute-url%2Fdownload%2Fis-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.1.1", - "resolved": "https://registry.nlark.com/is-arguments/download/is-arguments-1.1.1.tgz?cache=0&sync_timestamp=1628201919104&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-arguments%2Fdownload%2Fis-arguments-1.1.1.tgz", - "integrity": "sha1-FbP4j9oB8ql/7ITKdhpWDxI++ps=", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "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-bigint": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/is-bigint/download/is-bigint-1.0.4.tgz?cache=0&sync_timestamp=1628747504782&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-bigint%2Fdownload%2Fis-bigint-1.0.4.tgz", - "integrity": "sha1-CBR6GHW8KzIAXUHM2Ckd/8ZpHfM=", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "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-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.nlark.com/is-boolean-object/download/is-boolean-object-1.1.2.tgz", - "integrity": "sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk=", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.nlark.com/is-callable/download/is-callable-1.2.4.tgz", - "integrity": "sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU=", - "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.7.0", - "resolved": "https://registry.npmmirror.com/is-core-module/download/is-core-module-2.7.0.tgz", - "integrity": "sha1-PA730xtKz8V0+AxYQJ1WioNoSOM=", - "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.5", - "resolved": "https://registry.nlark.com/is-date-object/download/is-date-object-1.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.5.tgz", - "integrity": "sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8=", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "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.2.1", - "resolved": "https://registry.nlark.com/is-docker/download/is-docker-2.2.1.tgz?cache=0&sync_timestamp=1630451108035&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-docker%2Fdownload%2Fis-docker-2.2.1.tgz", - "integrity": "sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=", - "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?cache=0&sync_timestamp=1618552489864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-4.0.3.tgz", - "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.1.tgz", - "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=", - "dev": true - }, - "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 - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.nlark.com/is-number-object/download/is-number-object-1.0.6.tgz", - "integrity": "sha1-anqvg4x/BoalC0VT9+VKlklOifA=", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz?cache=0&sync_timestamp=1618600242427&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-obj%2Fdownload%2Fis-obj-2.0.0.tgz", - "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/is-path-cwd/download/is-path-cwd-2.2.0.tgz?cache=0&sync_timestamp=1628686555851&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz", - "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz?cache=0&sync_timestamp=1620047156679&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-in-cwd%2Fdownload%2Fis-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.nlark.com/is-path-inside/download/is-path-inside-2.1.0.tgz?cache=0&sync_timestamp=1620046845369&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz", - "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-3.0.0.tgz", - "integrity": "sha1-r28uoUrFpkYYOlu9tbqrvBVq2dc=", - "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=1599667247216&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.4", - "resolved": "https://registry.nlark.com/is-regex/download/is-regex-1.1.4.tgz?cache=0&sync_timestamp=1628221905423&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-regex%2Fdownload%2Fis-regex-1.1.4.tgz", - "integrity": "sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg=", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "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-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/download/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha1-l7DIX72stZycRG/mU7gs8rW3z+Y=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/is-stream/download/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.nlark.com/is-string/download/is-string-1.0.7.tgz", - "integrity": "sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0=", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/is-symbol/download/is-symbol-1.0.4.tgz?cache=0&sync_timestamp=1620501266511&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.4.tgz", - "integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "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-weakref": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/is-weakref/download/is-weakref-1.0.1.tgz", - "integrity": "sha1-hC26TsF/qayYUN8tbvvBc3J08qI=", - "dev": true, - "requires": { - "call-bind": "^1.0.0" - } - }, - "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 - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "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.1.0", - "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-2.1.0.tgz?cache=0&sync_timestamp=1618360134745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.1.0.tgz", - "integrity": "sha1-J8dlOb4U2L0Sghmi1zGwkzeQTnk=", - "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.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz?cache=0&sync_timestamp=1619345098261&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.nlark.com/js-yaml/download/js-yaml-3.14.1.tgz?cache=0&sync_timestamp=1618846844115&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.1.tgz", - "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", - "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 - }, - "json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "requires": { - "bignumber.js": "^9.0.0" - } - }, - "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?cache=0&sync_timestamp=1609553708276&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-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=1608000211395&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": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1612146079519&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" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-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 - }, - "klona": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/klona/download/klona-2.0.4.tgz?cache=0&sync_timestamp=1600226636423&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fklona%2Fdownload%2Fklona-2.0.4.tgz", - "integrity": "sha1-e7Hjr/sMuGJFR+9+j2cI6i4538A=", - "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?cache=0&sync_timestamp=1610028054313&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-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", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-5.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1613835817439&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.21.tgz", - "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=", - "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.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?cache=0&sync_timestamp=1618723146520&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog-symbols%2Fdownload%2Flog-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=1606312255832&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", - "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", - "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", - "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "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.nlark.com/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmdn-data%2Fdownload%2Fmdn-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-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" - } - }, - "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": "4.0.4", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.4.tgz?cache=0&sync_timestamp=1618054787196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.4.tgz", - "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "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.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", - "dev": true - } - } - }, - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.5.2.tgz?cache=0&sync_timestamp=1613584838235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.5.2.tgz", - "integrity": "sha1-bj3GzCuVEGQ4MOXxnVy3U9pe6r4=", - "dev": true - }, - "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.nlark.com/mime-db/download/mime-db-1.49.0.tgz?cache=0&sync_timestamp=1631863129751&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-db%2Fdownload%2Fmime-db-1.49.0.tgz", - "integrity": "sha1-89/eYMmenPO8lwHWh3ePU3ABy+0=", - "dev": true - }, - "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.nlark.com/mime-types/download/mime-types-2.1.32.tgz?cache=0&sync_timestamp=1627407652875&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.32.tgz", - "integrity": "sha1-HQDonn3n/gIAjbYQAdngKFJnD9U=", - "dev": true, - "requires": { - "mime-db": "1.49.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/mimic-fn/download/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", - "dev": true - }, - "mini-css-extract-plugin": { - "version": "0.9.0", - "resolved": "https://registry.nlark.com/mini-css-extract-plugin/download/mini-css-extract-plugin-0.9.0.tgz?cache=0&sync_timestamp=1631375707394&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmini-css-extract-plugin%2Fdownload%2Fmini-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.nlark.com/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.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694740261&other_urls=https%3A%2F%2Fregistry.nlark.com%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?cache=0&sync_timestamp=1606706583368&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", - "dev": true - }, - "minipass": { - "version": "3.1.5", - "resolved": "https://registry.nlark.com/minipass/download/minipass-3.1.5.tgz?cache=0&sync_timestamp=1631656524071&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fminipass%2Fdownload%2Fminipass-3.1.5.tgz", - "integrity": "sha1-cfYlGwozpJwBs8+X/3ftoDDf9zI=", - "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 - } - } - }, - "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" - } - }, - "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", - "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.1.2", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.nlark.com/multicast-dns/download/multicast-dns-6.2.3.tgz?cache=0&sync_timestamp=1621890310673&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmulticast-dns%2Fdownload%2Fmulticast-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.15.0", - "resolved": "https://registry.nlark.com/nan/download/nan-2.15.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnan%2Fdownload%2Fnan-2.15.0.tgz", - "integrity": "sha1-PzSkc/8Y4VwbVia2KQO1rW5mX+4=", - "dev": true, - "optional": true - }, - "nanocolors": { - "version": "0.2.12", - "resolved": "https://registry.npmmirror.com/nanocolors/download/nanocolors-0.2.12.tgz?cache=0&sync_timestamp=1632861383179&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnanocolors%2Fdownload%2Fnanocolors-0.2.12.tgz", - "integrity": "sha1-TQWTLnARYHhnPqTMZpmhxWzHd3c=", - "dev": 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", - "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", - "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=1599010706324&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.2.1", - "resolved": "https://registry.nlark.com/node-ipc/download/node-ipc-9.2.1.tgz?cache=0&sync_timestamp=1631753661352&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-ipc%2Fdownload%2Fnode-ipc-9.2.1.tgz", - "integrity": "sha1-sy9mEV+dbOhB3E7CAJ1qcz+Yu2s=", - "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.76", - "resolved": "https://registry.nlark.com/node-releases/download/node-releases-1.1.76.tgz?cache=0&sync_timestamp=1632151316505&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.76.tgz", - "integrity": "sha1-3yRbBisMr71SgqtnkvfczC2X824=", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.nlark.com/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1629301872905&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnormalize-package-data%2Fdownload%2Fnormalize-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" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463641178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "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.nlark.com/normalize-url/download/normalize-url-3.3.0.tgz", - "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", - "dev": true - }, - "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&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" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/nth-check/download/nth-check-1.0.2.tgz?cache=0&sync_timestamp=1631793617973&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz", - "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "null-loader": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/null-loader/download/null-loader-3.0.0.tgz?cache=0&sync_timestamp=1602256793413&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnull-loader%2Fdownload%2Fnull-loader-3.0.0.tgz", - "integrity": "sha1-PitsZjxb2oxzpUNX2PoHCNxhskU=", - "dev": true, - "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694740261&other_urls=https%3A%2F%2Fregistry.nlark.com%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" - } - } - } - }, - "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", - "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.11.0", - "resolved": "https://registry.nlark.com/object-inspect/download/object-inspect-1.11.0.tgz?cache=0&sync_timestamp=1626120241132&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.11.0.tgz", - "integrity": "sha1-nc6xRs7dQUig2eUauI00z1CZIrE=", - "dev": true - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.5.tgz?cache=0&sync_timestamp=1613858223300&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.5.tgz", - "integrity": "sha1-ud7qpfx/GEag+uzc7sE45XePU6w=", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "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=1604115104654&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.2", - "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.2.tgz?cache=0&sync_timestamp=1613860098805&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha1-G9Y66s8NXS0vMbXjk7A6fGAaI/c=", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - } - }, - "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.4", - "resolved": "https://registry.nlark.com/object.values/download/object.values-1.1.4.tgz?cache=0&sync_timestamp=1622070916216&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject.values%2Fdownload%2Fobject.values-1.1.4.tgz", - "integrity": "sha1-DSc3YoM+gWtpOmN9MAc+cFFTWzA=", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - } - }, - "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=1617889724435&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.nlark.com/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", - "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.nlark.com/ora/download/ora-3.4.0.tgz?cache=0&sync_timestamp=1631556513877&other_urls=https%3A%2F%2Fregistry.nlark.com%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.npmmirror.com/strip-ansi/download/strip-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?cache=0&sync_timestamp=1617947695861&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-finally%2Fdownload%2Fp-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1628812721654&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1629892721671&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/p-map/download/p-map-2.1.0.tgz", - "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/p-retry/download/p-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.nlark.com/pako/download/pako-1.0.11.tgz", - "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=", - "dev": true - }, - "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", - "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", - "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.2.0", - "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.2.0.tgz?cache=0&sync_timestamp=1610966642419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-5.2.0.tgz", - "integrity": "sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80=", - "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", - "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.nlark.com/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?cache=0&sync_timestamp=1617971632960&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz", - "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", - "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", - "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?cache=0&sync_timestamp=1611752058913&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-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.2", - "resolved": "https://registry.nlark.com/pbkdf2/download/pbkdf2-3.1.2.tgz", - "integrity": "sha1-3YIqoIh1gOUvGgOdw+2hCO+uMHU=", - "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.3.0", - "resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz", - "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=", - "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=1602859010405&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.7.0", - "resolved": "https://registry.nlark.com/pnp-webpack-plugin/download/pnp-webpack-plugin-1.7.0.tgz?cache=0&sync_timestamp=1626888209947&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpnp-webpack-plugin%2Fdownload%2Fpnp-webpack-plugin-1.7.0.tgz", - "integrity": "sha1-ZXQThPbYBW824iVajWf/wghm9ck=", - "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", - "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.nlark.com/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "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.38", - "resolved": "https://registry.npmmirror.com/postcss/download/postcss-7.0.38.tgz?cache=0&sync_timestamp=1632555261973&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss%2Fdownload%2Fpostcss-7.0.38.tgz", - "integrity": "sha1-U2WpxRJmQ9l3BGrSOfYOrdokkdY=", - "dev": true, - "requires": { - "nanocolors": "^0.2.2", - "source-map": "^0.6.1" - } - }, - "postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.5.tgz?cache=0&sync_timestamp=1609689294247&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.nlark.com/postcss-colormin/download/postcss-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.nlark.com/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz?cache=0&sync_timestamp=1621449824395&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz?cache=0&sync_timestamp=1621449592883&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz?cache=0&sync_timestamp=1621449593093&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz?cache=0&sync_timestamp=1621449824027&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz?cache=0&sync_timestamp=1621449823348&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-load-config/download/postcss-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.nlark.com/postcss-loader/download/postcss-loader-3.0.0.tgz?cache=0&sync_timestamp=1625143047790&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694740261&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz?cache=0&sync_timestamp=1621449602119&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz?cache=0&sync_timestamp=1622234641993&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-selector-parser/download/postcss-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.nlark.com/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz?cache=0&sync_timestamp=1621449825247&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-minify-gradients/download/postcss-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.nlark.com/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz?cache=0&sync_timestamp=1621449826832&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz?cache=0&sync_timestamp=1621449593365&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-selector-parser/download/postcss-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=1602588238811&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=1602587661752&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=1602593290698&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=1602586248938&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.nlark.com/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz?cache=0&sync_timestamp=1621449593655&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz?cache=0&sync_timestamp=1621449599414&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz?cache=0&sync_timestamp=1621449883143&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz?cache=0&sync_timestamp=1621449596114&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz?cache=0&sync_timestamp=1621449595099&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-normalize-timing-functions/download/postcss-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.nlark.com/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz?cache=0&sync_timestamp=1621449881819&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz?cache=0&sync_timestamp=1623330505231&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz?cache=0&sync_timestamp=1621449593892&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz?cache=0&sync_timestamp=1623330460500&other_urls=https%3A%2F%2Fregistry.nlark.com%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-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz?cache=0&sync_timestamp=1621449599206&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-reduce-initial%2Fdownload%2Fpostcss-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.nlark.com/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz?cache=0&sync_timestamp=1621449601106&other_urls=https%3A%2F%2Fregistry.nlark.com%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.6", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/postcss-svgo/download/postcss-svgo-4.0.3.tgz?cache=0&sync_timestamp=1622234649078&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-svgo%2Fdownload%2Fpostcss-svgo-4.0.3.tgz", - "integrity": "sha1-NDos26yVBdQWJD1Jb3JPOIlMlB4=", - "dev": true, - "requires": { - "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.nlark.com/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz?cache=0&sync_timestamp=1621449600659&other_urls=https%3A%2F%2Fregistry.nlark.com%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 - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/prepend-http/download/prepend-http-1.0.4.tgz?cache=0&sync_timestamp=1628547439455&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprepend-http%2Fdownload%2Fprepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.nlark.com/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1631777167012&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz", - "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=", - "dev": true, - "optional": true - }, - "pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.nlark.com/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.7", - "resolved": "https://registry.nlark.com/proxy-addr/download/proxy-addr-2.0.7.tgz?cache=0&sync_timestamp=1622509170257&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fproxy-addr%2Fdownload%2Fproxy-addr-2.0.7.tgz", - "integrity": "sha1-8Z/mnOqzEe65S0LnDowgcPm6ECU=", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "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.12.0", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz", - "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=", - "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", - "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?cache=0&sync_timestamp=1616385328325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz", - "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", - "dev": true - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.nlark.com/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1624297034221&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/querystring/download/querystring-0.2.0.tgz?cache=0&sync_timestamp=1626179435543&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fquerystring%2Fdownload%2Fquerystring-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", - "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.nlark.com/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": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.6.0.tgz", - "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.nlark.com/rechoir/download/rechoir-0.6.2.tgz?cache=0&sync_timestamp=1627101702123&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frechoir%2Fdownload%2Frechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "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.1", - "resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz?cache=0&sync_timestamp=1610725764337&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.1.tgz", - "integrity": "sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY=", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "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.7", - "resolved": "https://registry.nlark.com/renderkid/download/renderkid-2.0.7.tgz", - "integrity": "sha1-Rk8namvc7mBvShWZP5sp/HTKhgk=", - "dev": true, - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "css-select": { - "version": "4.1.3", - "resolved": "https://registry.nlark.com/css-select/download/css-select-4.1.3.tgz?cache=0&sync_timestamp=1622994276976&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-select%2Fdownload%2Fcss-select-4.1.3.tgz", - "integrity": "sha1-pwRA9wMX8maRGK10/xBeZYSccGc=", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - } - }, - "css-what": { - "version": "5.0.1", - "resolved": "https://registry.nlark.com/css-what/download/css-what-5.0.1.tgz?cache=0&sync_timestamp=1622227658327&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-what%2Fdownload%2Fcss-what-5.0.1.tgz", - "integrity": "sha1-PvqCATH0ZpqKwkCPnDLnx96fTK0=", - "dev": true - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-1.3.2.tgz?cache=0&sync_timestamp=1621256830355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-1.3.2.tgz", - "integrity": "sha1-YgZDfTLO767HFhgDIwx6ILwbTZE=", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/domelementtype/download/domelementtype-2.2.0.tgz", - "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=", - "dev": true - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.nlark.com/domutils/download/domutils-2.8.0.tgz?cache=0&sync_timestamp=1630106606599&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-2.8.0.tgz", - "integrity": "sha1-RDfe9dtuLR9dbuhZvZXKfQIEgTU=", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.nlark.com/nth-check/download/nth-check-2.0.1.tgz?cache=0&sync_timestamp=1631793617973&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnth-check%2Fdownload%2Fnth-check-2.0.1.tgz", - "integrity": "sha1-Lv4WL1w9oGoolZ+9PbddvuqfD8I=", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.4.tgz", - "integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=", - "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 - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz", - "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", - "dev": true, - "requires": { - "is-core-module": "^2.2.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.nlark.com/restore-cursor/download/restore-cursor-2.0.0.tgz?cache=0&sync_timestamp=1629746923086&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frestore-cursor%2Fdownload%2Frestore-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?cache=0&sync_timestamp=1613002746282&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.nlark.com/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.2.1", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", - "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.32.13", - "resolved": "https://registry.nlark.com/sass/download/sass-1.32.13.tgz?cache=0&sync_timestamp=1632295841685&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsass%2Fdownload%2Fsass-1.32.13.tgz", - "integrity": "sha1-jSnISeYlpBW85xYJx8+V4V907QA=", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0" - } - }, - "sass-loader": { - "version": "10.2.0", - "resolved": "https://registry.nlark.com/sass-loader/download/sass-loader-10.2.0.tgz?cache=0&sync_timestamp=1623351005877&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsass-loader%2Fdownload%2Fsass-loader-10.2.0.tgz", - "integrity": "sha1-PWTBWQ+REBOz+kigsiqD1eFJRxY=", - "dev": true, - "requires": { - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "neo-async": "^2.6.2", - "schema-utils": "^3.0.0", - "semver": "^7.3.2" - }, - "dependencies": { - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.2.0.tgz?cache=0&sync_timestamp=1612146079519&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.2.0.tgz", - "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", - "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1626694740261&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz", - "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463641178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "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 - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz?cache=0&sync_timestamp=1608181219722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsax%2Fdownload%2Fsax-1.2.4.tgz", - "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", - "dev": true - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-2.7.1.tgz?cache=0&sync_timestamp=1626694740261&other_urls=https%3A%2F%2Fregistry.nlark.com%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.11", - "resolved": "https://registry.nlark.com/selfsigned/download/selfsigned-1.10.11.tgz?cache=0&sync_timestamp=1620160629032&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.11.tgz", - "integrity": "sha1-JJKc2Qb+D0S20B+yOZmnOVN6y+k=", - "dev": true, - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463641178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "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.nlark.com/debug/download/debug-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.npmmirror.com/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?cache=0&sync_timestamp=1613584838235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", - "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", - "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/serialize-javascript/download/serialize-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.nlark.com/debug/download/debug-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", - "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?cache=0&sync_timestamp=1606706255906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "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.nlark.com/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" - } - }, - "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.nlark.com/shebang-regex/download/shebang-regex-1.0.0.tgz?cache=0&sync_timestamp=1628896299850&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-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 - }, - "shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npm.taobao.org/shelljs/download/shelljs-0.8.4.tgz", - "integrity": "sha1-3naE/ut2f4cWsyYHiooAh1iQ48I=", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/side-channel/download/side-channel-1.0.4.tgz", - "integrity": "sha1-785cj9wQTudRslxY1CkAEfpeos8=", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmmirror.com/signal-exit/download/signal-exit-3.0.5.tgz", - "integrity": "sha1-nj6MwMdamUcrRDIQM6dwLnc4JS8=", - "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?cache=0&sync_timestamp=1617971785350&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-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.nlark.com/debug/download/debug-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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "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.21", - "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.21.tgz", - "integrity": "sha1-s0/7mOeWkwtgoM+hGQTWozmn1Bc=", - "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - } - }, - "sockjs-client": { - "version": "1.5.2", - "resolved": "https://registry.nlark.com/sockjs-client/download/sockjs-client-1.5.2.tgz?cache=0&sync_timestamp=1629825213973&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.5.2.tgz", - "integrity": "sha1-S8SMLanOR2nxnccjOWtQ9cEjMKM=", - "dev": true, - "requires": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.3" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.nlark.com/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "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" - }, - "dependencies": { - "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 - } - } - }, - "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.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "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.20", - "resolved": "https://registry.nlark.com/source-map-support/download/source-map-support-0.5.20.tgz", - "integrity": "sha1-EhZgifj15ejFaSazd2Mzkt0stsk=", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.1.tgz?cache=0&sync_timestamp=1612211015749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.1.tgz", - "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-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.10", - "resolved": "https://registry.nlark.com/spdx-license-ids/download/spdx-license-ids-3.0.10.tgz?cache=0&sync_timestamp=1628483278047&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.10.tgz", - "integrity": "sha1-DZvszN5wA9bGWNSH3UijLwvzAUs=", - "dev": true - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-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" - } - }, - "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": { - "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": "8.0.1", - "resolved": "https://registry.nlark.com/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1621364647836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-8.0.1.tgz", - "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=", - "dev": true, - "requires": { - "minipass": "^3.1.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?cache=0&sync_timestamp=1590854072754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstackframe%2Fdownload%2Fstackframe-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?cache=0&sync_timestamp=1609654307301&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-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", - "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.nlark.com/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?cache=0&sync_timestamp=1576147145118&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-shift%2Fdownload%2Fstream-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.npmmirror.com/string-width/download/string-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.nlark.com/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz?cache=0&sync_timestamp=1614127438583&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.4.tgz", - "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz?cache=0&sync_timestamp=1614127299808&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.4.tgz", - "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "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" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - } - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz", - "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", - "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.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz?cache=0&sync_timestamp=1620046435959&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-final-newline%2Fdownload%2Fstrip-final-newline-2.0.0.tgz", - "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", - "dev": true - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.nlark.com/stylehacks/download/stylehacks-4.0.3.tgz?cache=0&sync_timestamp=1621449595596&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/postcss-selector-parser/download/postcss-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.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1626703414084&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmmirror.com/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1632431939586&other_urls=https%3A%2F%2Fregistry.npmmirror.com%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.nlark.com/tapable/download/tapable-1.1.3.tgz?cache=0&sync_timestamp=1631526982870&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz", - "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", - "dev": true - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.nlark.com/terser/download/terser-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": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.nlark.com/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.nlark.com/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz?cache=0&sync_timestamp=1631202382133&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/find-cache-dir/download/find-cache-dir-2.1.0.tgz?cache=0&sync_timestamp=1630260009898&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffind-cache-dir%2Fdownload%2Ffind-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.npmmirror.com/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1632654133435&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-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.nlark.com/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-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", - "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1629892721671&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/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=1602859010405&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.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694740261&other_urls=https%3A%2F%2Fregistry.nlark.com%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": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463641178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-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.nlark.com/thread-loader/download/thread-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" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/through2/download/through2-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=1603793835646&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-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": "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" - } - }, - "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", - "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" - } - }, - "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 - }, - "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", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.nlark.com/type-fest/download/type-fest-0.6.0.tgz?cache=0&sync_timestamp=1632134160608&other_urls=https%3A%2F%2Fregistry.nlark.com%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 - }, - "typeface-roboto": { - "version": "1.1.13", - "resolved": "https://registry.npmmirror.com/typeface-roboto/-/typeface-roboto-1.1.13.tgz", - "integrity": "sha512-YXvbd3a1QTREoD+FJoEkl0VQNJoEjewR2H11IjVv4bp6ahuIcw0yyw/3udC4vJkHw3T3cUh85FTg8eWef3pSaw==" - }, - "uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.nlark.com/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1631026555366&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fuglify-js%2Fdownload%2Fuglify-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.nlark.com/commander/download/commander-2.19.0.tgz", - "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=", - "dev": true - } - } - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/unbox-primitive/download/unbox-primitive-1.0.1.tgz?cache=0&sync_timestamp=1616706319488&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funbox-primitive%2Fdownload%2Funbox-primitive-1.0.1.tgz", - "integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "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?cache=0&sync_timestamp=1616088539233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-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 - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/upath/download/upath-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.1", - "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz?cache=0&sync_timestamp=1610237586670&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.4.1.tgz", - "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", - "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.5.3", - "resolved": "https://registry.nlark.com/url-parse/download/url-parse-1.5.3.tgz", - "integrity": "sha1-ccEwPTj7Zjmt4YPCmSyMwGht+GI=", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "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.nlark.com/util/download/util-0.11.1.tgz?cache=0&sync_timestamp=1622212984161&other_urls=https%3A%2F%2Fregistry.nlark.com%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?cache=0&sync_timestamp=1606706255906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-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&sync_timestamp=1610159858516&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" - } - }, - "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.nlark.com/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1622213136953&other_urls=https%3A%2F%2Fregistry.nlark.com%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=1615203465160&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=1572870776965&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.14", - "resolved": "https://registry.npmmirror.com/vue/download/vue-2.6.14.tgz", - "integrity": "sha1-5RqlJQJQ1Wmj+606ilpofWA24jU=" - }, - "vue-chartist": { - "version": "2.3.1", - "resolved": "https://registry.npm.taobao.org/vue-chartist/download/vue-chartist-2.3.1.tgz", - "integrity": "sha1-dDlL7E2Dg8UjeAPlTC735/P69IQ=", - "requires": { - "chartist": "^0.11.0" - } - }, - "vue-cli-plugin-vuetify": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/vue-cli-plugin-vuetify/download/vue-cli-plugin-vuetify-2.4.2.tgz", - "integrity": "sha1-9cVKhTzVsGYz2kpQj/SqW2tideA=", - "dev": true, - "requires": { - "null-loader": "^3.0.0", - "semver": "^7.1.2", - "shelljs": "^0.8.3" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463641178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "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 - } - } - }, - "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.8", - "resolved": "https://registry.npmmirror.com/vue-loader/download/vue-loader-15.9.8.tgz", - "integrity": "sha1-Sw9gKvr2aplr4eU0+5YJ3EqxDmE=", - "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.8.3", - "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", - "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", - "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.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "optional": true - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "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.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "vue-router": { - "version": "3.5.2", - "resolved": "https://registry.nlark.com/vue-router/download/vue-router-3.5.2.tgz?cache=0&sync_timestamp=1628495505697&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-router%2Fdownload%2Fvue-router-3.5.2.tgz", - "integrity": "sha1-X1Xj8lGXDjbD6NiKfNLWejUK3lw=" - }, - "vue-style-loader": { - "version": "4.1.3", - "resolved": "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.3.tgz?cache=0&sync_timestamp=1614758618345&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-style-loader%2Fdownload%2Fvue-style-loader-4.1.3.tgz", - "integrity": "sha1-bVWGOlH6dXqyTonZNxRlByqnvDU=", - "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.14", - "resolved": "https://registry.nlark.com/vue-template-compiler/download/vue-template-compiler-2.6.14.tgz", - "integrity": "sha1-ovDn2YVnDULJye4NBE/tdpD092M=", - "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 - }, - "vuetify": { - "version": "2.5.9", - "resolved": "https://registry.npmmirror.com/vuetify/download/vuetify-2.5.9.tgz", - "integrity": "sha1-tubZ//ShaRhY80FezrKnXKcG0hE=" - }, - "vuetify-dialog": { - "version": "2.0.17", - "resolved": "https://registry.nlark.com/vuetify-dialog/download/vuetify-dialog-2.0.17.tgz", - "integrity": "sha1-vhmMGHkymnPXiRcIDqWX0BaSdz0=" - }, - "vuetify-loader": { - "version": "1.7.3", - "resolved": "https://registry.nlark.com/vuetify-loader/download/vuetify-loader-1.7.3.tgz?cache=0&sync_timestamp=1631946975383&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvuetify-loader%2Fdownload%2Fvuetify-loader-1.7.3.tgz", - "integrity": "sha1-QEZX9JJcgo9AD+MmkANCHVhoNcY=", - "dev": true, - "requires": { - "decache": "^4.6.0", - "file-loader": "^6.2.0", - "loader-utils": "^2.0.0" - }, - "dependencies": { - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-6.2.0.tgz?cache=0&sync_timestamp=1603816990383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-6.2.0.tgz", - "integrity": "sha1-uu98+OGEDfMl5DkLRISHlIDuvk0=", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - } - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.2.0.tgz?cache=0&sync_timestamp=1612146079519&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.2.0.tgz", - "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", - "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-3.1.1.tgz?cache=0&sync_timestamp=1626694740261&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fschema-utils%2Fdownload%2Fschema-utils-3.1.1.tgz", - "integrity": "sha1-vHTEtraZXB2I92qLd76nIZ4MgoE=", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "vuex": { - "version": "3.6.2", - "resolved": "https://registry.nlark.com/vuex/download/vuex-3.6.2.tgz", - "integrity": "sha1-I2vAhqhww655lG8QfxbeWdWJXnE=" - }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.nlark.com/watchpack/download/watchpack-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=1604989085906&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=1610299293319&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 - }, - "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, - "optional": 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, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.nlark.com/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1623763535523&other_urls=https%3A%2F%2Fregistry.nlark.com%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" - } - }, - "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, - "optional": 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, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz", - "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "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" - } - }, - "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, - "optional": 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, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&sync_timestamp=1618054787196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "dev": true, - "optional": 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" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&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" - } - }, - "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, - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "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.46.0", - "resolved": "https://registry.npmmirror.com/webpack/download/webpack-4.46.0.tgz", - "integrity": "sha1-v5tEBOogoHNgXgoBHRiNd8tq1UI=", - "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.5.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": { - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.nlark.com/acorn/download/acorn-6.4.2.tgz", - "integrity": "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY=", - "dev": true - }, - "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" - } - } - } - }, - "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" - } - } - } - }, - "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" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&sync_timestamp=1618054787196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-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" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694740261&other_urls=https%3A%2F%2Fregistry.nlark.com%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" - } - }, - "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" - } - } - } - }, - "webpack-bundle-analyzer": { - "version": "3.9.0", - "resolved": "https://registry.nlark.com/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz?cache=0&sync_timestamp=1621259099265&other_urls=https%3A%2F%2Fregistry.nlark.com%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": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.nlark.com/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "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=1595813261846&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.3", - "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/download/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha1-Bjk3KxQyYuK4SrldO5GnWXBhwsU=", - "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.2", - "resolved": "https://registry.npmmirror.com/webpack-dev-server/download/webpack-dev-server-3.11.2.tgz", - "integrity": "sha1-aV687Xakkp8NXef9c/r+GF/jNwg=", - "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.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.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.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-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=1610299293319&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 - }, - "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" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.nlark.com/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1623763535523&other_urls=https%3A%2F%2Fregistry.nlark.com%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?cache=0&sync_timestamp=1604880267387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-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.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", - "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" - } - } - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1632654133435&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-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", - "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.nlark.com/http-proxy-middleware/download/http-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" - } - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.nlark.com/is-absolute-url/download/is-absolute-url-3.0.3.tgz?cache=0&sync_timestamp=1628691761253&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-absolute-url%2Fdownload%2Fis-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" - } - }, - "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" - } - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1629895618224&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&sync_timestamp=1618054787196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-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" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1629892721671&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/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&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.nlark.com/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1626694740261&other_urls=https%3A%2F%2Fregistry.nlark.com%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" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/string-width/download/string-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.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-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.npmmirror.com/strip-ansi/download/strip-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.nlark.com/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1626703414084&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "requires": { - "has-flag": "^3.0.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" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-5.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%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.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.3.tgz?cache=0&sync_timestamp=1617822642544&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-4.0.3.tgz", - "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=", - "dev": true - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmmirror.com/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1632604856058&other_urls=https%3A%2F%2Fregistry.npmmirror.com%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.nlark.com/yargs-parser/download/yargs-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?cache=0&sync_timestamp=1615477211227&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-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.nlark.com/webpack-merge/download/webpack-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.nlark.com/webpack-sources/download/webpack-sources-1.4.3.tgz", - "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.4.tgz", - "integrity": "sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A=", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "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", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/which-boxed-primitive/download/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "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": "7.0.0", - "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-7.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-7.0.0.tgz", - "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", - "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.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995625950&other_urls=https%3A%2F%2Fregistry.nlark.com%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?cache=0&sync_timestamp=1618552489864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/download/string-width-4.2.3.tgz", - "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.nlark.com/ws/download/ws-6.2.2.tgz?cache=0&sync_timestamp=1631130711705&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fws%2Fdownload%2Fws-6.2.2.tgz", - "integrity": "sha1-3Vzb1XqZeZFgl2UtePHMX66gwy4=", - "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": "5.0.8", - "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-5.0.8.tgz?cache=0&sync_timestamp=1617822642544&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fy18n%2Fdownload%2Fy18n-5.0.8.tgz", - "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=", - "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": "16.2.0", - "resolved": "https://registry.npmmirror.com/yargs/download/yargs-16.2.0.tgz?cache=0&sync_timestamp=1632604856058&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyargs%2Fdownload%2Fyargs-16.2.0.tgz", - "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-7.0.4.tgz?cache=0&sync_timestamp=1604880267387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-7.0.4.tgz", - "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "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?cache=0&sync_timestamp=1618552489864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/download/string-width-4.2.3.tgz", - "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.nlark.com/yargs-parser/download/yargs-parser-20.2.9.tgz", - "integrity": "sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=", - "dev": true - } - } -} diff --git a/Yi.Vue2.x.Vuetify/package.json b/Yi.Vue2.x.Vuetify/package.json deleted file mode 100644 index 5b1f3fdc..00000000 --- a/Yi.Vue2.x.Vuetify/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "vuetify-test", - "version": "0.1.0", - "private": true, - "scripts": { - "serve": "vue-cli-service serve", - "build": "vue-cli-service build" - }, - "dependencies": { - "@mdi/font": "^6.6.96", - "axios": "^0.22.0", - "json-bigint": "^1.0.0", - "typeface-roboto": "^1.1.13", - "vue": "^2.6.11", - "vue-chartist": "^2.3.1", - "vue-router": "^3.2.0", - "vuetify": "^2.4.0", - "vuetify-dialog": "^2.0.17", - "vuex": "^3.6.2" - }, - "devDependencies": { - "@vue/cli-plugin-router": "~4.5.0", - "@vue/cli-service": "~4.5.0", - "sass": "~1.32.0", - "sass-loader": "^10.0.0", - "vue-cli-plugin-vuetify": "~2.4.2", - "vue-template-compiler": "^2.6.11", - "vuetify-loader": "^1.7.0" - } -} diff --git a/Yi.Vue2.x.Vuetify/public/favicon.ico b/Yi.Vue2.x.Vuetify/public/favicon.ico deleted file mode 100644 index df36fcfb..00000000 Binary files a/Yi.Vue2.x.Vuetify/public/favicon.ico and /dev/null differ diff --git a/Yi.Vue2.x.Vuetify/public/index.html b/Yi.Vue2.x.Vuetify/public/index.html deleted file mode 100644 index 15b610c5..00000000 --- a/Yi.Vue2.x.Vuetify/public/index.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - Yi-Vue - - - - -
- - - - \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/App.vue b/Yi.Vue2.x.Vuetify/src/App.vue deleted file mode 100644 index 706a0b0b..00000000 --- a/Yi.Vue2.x.Vuetify/src/App.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/api/accountApi.js b/Yi.Vue2.x.Vuetify/src/api/accountApi.js deleted file mode 100644 index 4f09d150..00000000 --- a/Yi.Vue2.x.Vuetify/src/api/accountApi.js +++ /dev/null @@ -1,61 +0,0 @@ -import myaxios from '@/util/myaxios' -export default { - login(username, password) { - return myaxios({ - url: '/Account/login', - method: 'post', - data: { - username, - password - } - }) - }, - logout() { - return myaxios({ - url: '/Account/logout', - method: 'post', - }) - }, - register(username, password, phone, code) { - return myaxios({ - url: `/Account/register?code=${code}`, - method: 'post', - data: { username, password, phone } - }) - }, - email(emailAddress) { - return myaxios({ - url: `/Account/email?emailAddress=${emailAddress}`, - method: 'post', - }) - }, - SendSMS(smsAddress) { - return myaxios({ - url: `/Account/SendSMS?SMSAddress=${smsAddress}`, - method: 'post', - }) - }, - updatePassword(oldPassword, newPassword) { - return myaxios({ - url: `/Account/updatePassword`, - method: 'put', - data: { oldPassword, newPassword } - }) - }, - getUserAllInfo() - { - return myaxios({ - url: `/Account/getUserAllInfo`, - method: 'get' - }) - }, - updateUserByHttp(user) - { - return myaxios({ - url: `/Account/updateUserByHttp`, - method: 'put', - data:user - }) - } - -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/api/fileApi.js b/Yi.Vue2.x.Vuetify/src/api/fileApi.js deleted file mode 100644 index ca68ffcc..00000000 --- a/Yi.Vue2.x.Vuetify/src/api/fileApi.js +++ /dev/null @@ -1,11 +0,0 @@ -import myaxios from '@/util/myaxios' -export default { - UploadImage(file) { - return myaxios({ - url: '/Upload/image', - method: 'post', - headers: { "Content-Type": "multipart/form-data" }, - data: file - }) - } -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/api/menuApi.js b/Yi.Vue2.x.Vuetify/src/api/menuApi.js deleted file mode 100644 index e2235761..00000000 --- a/Yi.Vue2.x.Vuetify/src/api/menuApi.js +++ /dev/null @@ -1,30 +0,0 @@ -import myaxios from '@/util/myaxios' -export default { - getMenuTree() { - return myaxios({ - url: '/Menu/getMenuTree', - method: 'get' - }) - }, - Update(data) { - return myaxios({ - url: '/Menu/Update', - method: 'put', - data: data - }) - }, - DeleteList(ids) { - return myaxios({ - url: '/Menu/DeleteList', - method: 'delete', - data: ids - }) - }, - Add(data) { - return myaxios({ - url: '/Menu/Add', - method: 'post', - data: data - }) - } -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/api/mouldApi.js b/Yi.Vue2.x.Vuetify/src/api/mouldApi.js deleted file mode 100644 index eefdde37..00000000 --- a/Yi.Vue2.x.Vuetify/src/api/mouldApi.js +++ /dev/null @@ -1,10 +0,0 @@ -import myaxios from '@/util/myaxios' -export default { - getMould() { - return myaxios({ - url: '/Mould/GetMould', - method: 'get' - }) - } - -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/api/panApi.js b/Yi.Vue2.x.Vuetify/src/api/panApi.js deleted file mode 100644 index 49bf9cd9..00000000 --- a/Yi.Vue2.x.Vuetify/src/api/panApi.js +++ /dev/null @@ -1,19 +0,0 @@ -import myaxios from '@/util/myaxios' -export default { - GetPanFiles(dirName) { - return myaxios({ - url: '/Pan/GetPanFiles', - method: 'post', - data: { dirName} - }) - }, - Download(dirName,allName) - { - return myaxios({ - url: '/Pan/Download', - method: 'post', - data: { dirName,allName} - }) - - } -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/api/roleApi.js b/Yi.Vue2.x.Vuetify/src/api/roleApi.js deleted file mode 100644 index c4bda7df..00000000 --- a/Yi.Vue2.x.Vuetify/src/api/roleApi.js +++ /dev/null @@ -1,26 +0,0 @@ -import myaxios from '@/util/myaxios' -import {objctToDic} from '@/util/objctHandle' -export default { - getList() { - return myaxios({ - url: '/Role/GetList', - method: 'post', - data: objctToDic() - }) - }, - giveRoleSetMenu(roleList, menuList) { - return myaxios({ - url: '/Role/GiveRoleSetMenu', - method: 'put', - data: { RoleIds: roleList, menuIds: menuList } - }) - }, - - getInMenuByRoleId(roleId) { - return myaxios({ - url: `/Role/GetInMenuByRoleId?roleId=${roleId}`, - method: 'get' - }) - } - -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/api/userApi.js b/Yi.Vue2.x.Vuetify/src/api/userApi.js deleted file mode 100644 index 9b9f7851..00000000 --- a/Yi.Vue2.x.Vuetify/src/api/userApi.js +++ /dev/null @@ -1,30 +0,0 @@ -import myaxios from '@/util/myaxios' -export default { - - GetUserInRolesByHttpUser() { - return myaxios({ - url: `/User/GetUserInRolesByHttpUser`, - method: 'get' - }) - }, - GetMenuByHttpUser() { - return myaxios({ - url: `/User/GetMenuByHttpUser`, - method: 'get' - }) - }, - GetRoleListByUserId(userId) { - return myaxios({ - url: `/User/GetRoleListByUserId?userId=${userId}`, - method: 'get' - }) - }, - GiveUserSetRole(UserIds,RoleIds) - { - return myaxios({ - url: `/User/GiveUserSetRole`, - method: 'put', - data:{UserIds,RoleIds} - }) - } -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/assets/clint-mckoy.jpg b/Yi.Vue2.x.Vuetify/src/assets/clint-mckoy.jpg deleted file mode 100644 index 6e23b7b8..00000000 Binary files a/Yi.Vue2.x.Vuetify/src/assets/clint-mckoy.jpg and /dev/null differ diff --git a/Yi.Vue2.x.Vuetify/src/assets/lock.jpg b/Yi.Vue2.x.Vuetify/src/assets/lock.jpg deleted file mode 100644 index 6e5d4c0a..00000000 Binary files a/Yi.Vue2.x.Vuetify/src/assets/lock.jpg and /dev/null differ diff --git a/Yi.Vue2.x.Vuetify/src/assets/login.jpg b/Yi.Vue2.x.Vuetify/src/assets/login.jpg deleted file mode 100644 index 52b905a7..00000000 Binary files a/Yi.Vue2.x.Vuetify/src/assets/login.jpg and /dev/null differ diff --git a/Yi.Vue2.x.Vuetify/src/assets/login.svg b/Yi.Vue2.x.Vuetify/src/assets/login.svg deleted file mode 100644 index e27fd805..00000000 --- a/Yi.Vue2.x.Vuetify/src/assets/login.svg +++ /dev/null @@ -1 +0,0 @@ -instat_analysis \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/assets/logo.png b/Yi.Vue2.x.Vuetify/src/assets/logo.png deleted file mode 100644 index f3d2503f..00000000 Binary files a/Yi.Vue2.x.Vuetify/src/assets/logo.png and /dev/null differ diff --git a/Yi.Vue2.x.Vuetify/src/assets/logo.svg b/Yi.Vue2.x.Vuetify/src/assets/logo.svg deleted file mode 100644 index 145b6d13..00000000 --- a/Yi.Vue2.x.Vuetify/src/assets/logo.svg +++ /dev/null @@ -1 +0,0 @@ -Artboard 46 diff --git a/Yi.Vue2.x.Vuetify/src/assets/mask-dark.png b/Yi.Vue2.x.Vuetify/src/assets/mask-dark.png deleted file mode 100644 index 68a00482..00000000 Binary files a/Yi.Vue2.x.Vuetify/src/assets/mask-dark.png and /dev/null differ diff --git a/Yi.Vue2.x.Vuetify/src/assets/mask-light.png b/Yi.Vue2.x.Vuetify/src/assets/mask-light.png deleted file mode 100644 index 66287717..00000000 Binary files a/Yi.Vue2.x.Vuetify/src/assets/mask-light.png and /dev/null differ diff --git a/Yi.Vue2.x.Vuetify/src/assets/pricing.jpg b/Yi.Vue2.x.Vuetify/src/assets/pricing.jpg deleted file mode 100644 index df49d3fa..00000000 Binary files a/Yi.Vue2.x.Vuetify/src/assets/pricing.jpg and /dev/null differ diff --git a/Yi.Vue2.x.Vuetify/src/assets/register.jpg b/Yi.Vue2.x.Vuetify/src/assets/register.jpg deleted file mode 100644 index 94d234cf..00000000 Binary files a/Yi.Vue2.x.Vuetify/src/assets/register.jpg and /dev/null differ diff --git a/Yi.Vue2.x.Vuetify/src/assets/tree-3.png b/Yi.Vue2.x.Vuetify/src/assets/tree-3.png deleted file mode 100644 index b854520e..00000000 Binary files a/Yi.Vue2.x.Vuetify/src/assets/tree-3.png and /dev/null differ diff --git a/Yi.Vue2.x.Vuetify/src/assets/tree-4.png b/Yi.Vue2.x.Vuetify/src/assets/tree-4.png deleted file mode 100644 index 13eae8fb..00000000 Binary files a/Yi.Vue2.x.Vuetify/src/assets/tree-4.png and /dev/null differ diff --git a/Yi.Vue2.x.Vuetify/src/assets/tree.png b/Yi.Vue2.x.Vuetify/src/assets/tree.png deleted file mode 100644 index be561134..00000000 Binary files a/Yi.Vue2.x.Vuetify/src/assets/tree.png and /dev/null differ diff --git a/Yi.Vue2.x.Vuetify/src/assets/vmd.svg b/Yi.Vue2.x.Vuetify/src/assets/vmd.svg deleted file mode 100644 index 0bdb0a1d..00000000 --- a/Yi.Vue2.x.Vuetify/src/assets/vmd.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Yi.Vue2.x.Vuetify/src/assets/vuetify.svg b/Yi.Vue2.x.Vuetify/src/assets/vuetify.svg deleted file mode 100644 index 4ef7bd53..00000000 --- a/Yi.Vue2.x.Vuetify/src/assets/vuetify.svg +++ /dev/null @@ -1 +0,0 @@ -Artboard 47 diff --git a/Yi.Vue2.x.Vuetify/src/components/Links.vue b/Yi.Vue2.x.Vuetify/src/components/Links.vue deleted file mode 100644 index b00cd06e..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/Links.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - - diff --git a/Yi.Vue2.x.Vuetify/src/components/MaterialAlert.vue b/Yi.Vue2.x.Vuetify/src/components/MaterialAlert.vue deleted file mode 100644 index 2397fc92..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/MaterialAlert.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - - - diff --git a/Yi.Vue2.x.Vuetify/src/components/MaterialCard.vue b/Yi.Vue2.x.Vuetify/src/components/MaterialCard.vue deleted file mode 100644 index c8002d5f..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/MaterialCard.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - - - diff --git a/Yi.Vue2.x.Vuetify/src/components/MaterialChartCard.vue b/Yi.Vue2.x.Vuetify/src/components/MaterialChartCard.vue deleted file mode 100644 index 4049201e..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/MaterialChartCard.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - - - diff --git a/Yi.Vue2.x.Vuetify/src/components/MaterialSnackbar.vue b/Yi.Vue2.x.Vuetify/src/components/MaterialSnackbar.vue deleted file mode 100644 index 2801d97c..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/MaterialSnackbar.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - - - diff --git a/Yi.Vue2.x.Vuetify/src/components/MaterialStatsCard.vue b/Yi.Vue2.x.Vuetify/src/components/MaterialStatsCard.vue deleted file mode 100644 index f1322d15..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/MaterialStatsCard.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - - diff --git a/Yi.Vue2.x.Vuetify/src/components/TableApi.js b/Yi.Vue2.x.Vuetify/src/components/TableApi.js deleted file mode 100644 index 2dcb0487..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/TableApi.js +++ /dev/null @@ -1,32 +0,0 @@ -import myaxios from '@/util/myaxios' -import {objctToDic} from '@/util/objctHandle' -export default { - getItem(url) { - return myaxios({ - url: url, - method: 'post', - data: objctToDic() - }) - }, - addItem(url, data) { - return myaxios({ - url: url, - method: 'post', - data: data - }) - }, - updateItem(url, data) { - return myaxios({ - url: url, - method: 'put', - data: data - }) - }, - delItemList(url, Ids) { - return myaxios({ - url: url, - method: 'delete', - data: Ids - }) - }, -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/components/ViewIntro.vue b/Yi.Vue2.x.Vuetify/src/components/ViewIntro.vue deleted file mode 100644 index eb1ca1cc..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/ViewIntro.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/components/app/BarItem.vue b/Yi.Vue2.x.Vuetify/src/components/app/BarItem.vue deleted file mode 100644 index fe36dfb6..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/app/BarItem.vue +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/Yi.Vue2.x.Vuetify/src/components/app/Btn.vue b/Yi.Vue2.x.Vuetify/src/components/app/Btn.vue deleted file mode 100644 index 8de14054..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/app/Btn.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/components/app/Card.vue b/Yi.Vue2.x.Vuetify/src/components/app/Card.vue deleted file mode 100644 index d8dd5ff7..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/app/Card.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/components/app/Tabs.vue b/Yi.Vue2.x.Vuetify/src/components/app/Tabs.vue deleted file mode 100644 index 16df63af..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/app/Tabs.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - - diff --git a/Yi.Vue2.x.Vuetify/src/components/ccAvatar.vue b/Yi.Vue2.x.Vuetify/src/components/ccAvatar.vue deleted file mode 100644 index 4f8a6438..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/ccAvatar.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/components/ccCombobox.vue b/Yi.Vue2.x.Vuetify/src/components/ccCombobox.vue deleted file mode 100644 index 527a52f6..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/ccCombobox.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/components/ccTable.vue b/Yi.Vue2.x.Vuetify/src/components/ccTable.vue deleted file mode 100644 index 0428165b..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/ccTable.vue +++ /dev/null @@ -1,248 +0,0 @@ - - \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/components/ccTreeview.vue b/Yi.Vue2.x.Vuetify/src/components/ccTreeview.vue deleted file mode 100644 index 9a37767d..00000000 --- a/Yi.Vue2.x.Vuetify/src/components/ccTreeview.vue +++ /dev/null @@ -1,214 +0,0 @@ - - \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/AppBar.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/AppBar.vue deleted file mode 100644 index ab818026..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/AppBar.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/Drawer.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/Drawer.vue deleted file mode 100644 index 980c08e0..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/Drawer.vue +++ /dev/null @@ -1,124 +0,0 @@ - - - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/Footer.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/Footer.vue deleted file mode 100644 index 5feef9dd..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/Footer.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/Index.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/Index.vue deleted file mode 100644 index 1aa5350e..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/Index.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/List.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/List.vue deleted file mode 100644 index f10e8485..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/List.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/ListGroup.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/ListGroup.vue deleted file mode 100644 index eeff04e6..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/ListGroup.vue +++ /dev/null @@ -1,83 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/ListItem.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/ListItem.vue deleted file mode 100644 index 8404f185..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/ListItem.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/Settings.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/Settings.vue deleted file mode 100644 index ef0a3bde..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/Settings.vue +++ /dev/null @@ -1,303 +0,0 @@ - - - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/View.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/View.vue deleted file mode 100644 index dfc65be7..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/View.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/Account.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/Account.vue deleted file mode 100644 index 79d972b9..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/Account.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/AccountSettings.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/AccountSettings.vue deleted file mode 100644 index bf5d48cd..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/AccountSettings.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/DrawerHeader.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/DrawerHeader.vue deleted file mode 100644 index 104474f1..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/DrawerHeader.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/DrawerToggle.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/DrawerToggle.vue deleted file mode 100644 index 782ac12f..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/DrawerToggle.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/GoHome.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/GoHome.vue deleted file mode 100644 index 60b54a2b..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/GoHome.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/Notifications.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/Notifications.vue deleted file mode 100644 index f6075607..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/Notifications.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/Search.vue b/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/Search.vue deleted file mode 100644 index 8c6e3368..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/default/widgets/Search.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/layouts/login/Index.vue b/Yi.Vue2.x.Vuetify/src/layouts/login/Index.vue deleted file mode 100644 index 7df60b61..00000000 --- a/Yi.Vue2.x.Vuetify/src/layouts/login/Index.vue +++ /dev/null @@ -1,38 +0,0 @@ - - \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/main.js b/Yi.Vue2.x.Vuetify/src/main.js deleted file mode 100644 index 4443c42a..00000000 --- a/Yi.Vue2.x.Vuetify/src/main.js +++ /dev/null @@ -1,24 +0,0 @@ -import Vue from 'vue' -import App from './App.vue' -import router from './router' -import vuetify from './plugins/vuetify' -import VuetifyDialog from 'vuetify-dialog' -import 'vuetify-dialog/dist/vuetify-dialog.css' -import './plugins' -import "./permission" -import store from './store/index' - -Vue.config.productionTip = false -Vue.use(VuetifyDialog, { - context: { - vuetify - } -}); -let vm = new Vue({ - router, - store, - vuetify, - render: function(h) { return h(App) } -}).$mount('#app') - -export default vm; \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/permission.js b/Yi.Vue2.x.Vuetify/src/permission.js deleted file mode 100644 index c12c8181..00000000 --- a/Yi.Vue2.x.Vuetify/src/permission.js +++ /dev/null @@ -1,22 +0,0 @@ -import router from './router/index' -import store from './store/index' -// import accountApi from '@/api/accountApi' - - -router.beforeEach((to, from, next) => { - - // console.log(to) - // console.log(from) - // console.log(next) - const user = store.state.user.user; //获取是有user - if (!user) { //如果没有登入 - if (to.path == '/login/' || to.path == '/register/' || to.path == '/reset_password/' || to.path == '/qq/') { - next(); - } else { - next({ path: '/login/' }); - } - } else { - next(); - } - -}) \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/plugins/app.js b/Yi.Vue2.x.Vuetify/src/plugins/app.js deleted file mode 100644 index 740a6f5f..00000000 --- a/Yi.Vue2.x.Vuetify/src/plugins/app.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * plugins/app.js - * - * Automatically loads and bootstraps files - * in the `./src/components/` folder. - */ - -// Imports -import Vue from 'vue' - -const requireComponent = require.context('@/components', true, /\.vue$/) - -for (const file of requireComponent.keys()) { - const componentConfig = requireComponent(file) - - Vue.component( - componentConfig.default.name, - componentConfig.default || componentConfig, - ) -} diff --git a/Yi.Vue2.x.Vuetify/src/plugins/chartist.js b/Yi.Vue2.x.Vuetify/src/plugins/chartist.js deleted file mode 100644 index 2c8bb2d9..00000000 --- a/Yi.Vue2.x.Vuetify/src/plugins/chartist.js +++ /dev/null @@ -1,4 +0,0 @@ -import Vue from 'vue' -import 'chartist/dist/chartist.min.css' - -Vue.use(require('vue-chartist')) diff --git a/Yi.Vue2.x.Vuetify/src/plugins/index.js b/Yi.Vue2.x.Vuetify/src/plugins/index.js deleted file mode 100644 index e65178ed..00000000 --- a/Yi.Vue2.x.Vuetify/src/plugins/index.js +++ /dev/null @@ -1,6 +0,0 @@ -// Automatically included in './src/main.js' - -import './app' -import './chartist' -// import './webfontloader' -// import './vue-meta' \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/plugins/vuetify.js b/Yi.Vue2.x.Vuetify/src/plugins/vuetify.js deleted file mode 100644 index 42c6b780..00000000 --- a/Yi.Vue2.x.Vuetify/src/plugins/vuetify.js +++ /dev/null @@ -1,39 +0,0 @@ -// Vuetify Documentation https://vuetifyjs.com - -import Vue from 'vue' -import Vuetify from 'vuetify/lib/framework' -import ripple from 'vuetify/lib/directives/ripple' -import zhHans from 'vuetify/es5/locale/zh-Hans' // 引入中文语言包 -import 'typeface-roboto/index.css' // 引入本地的Roboto字体资源 -import '@mdi/font/css/materialdesignicons.css' // 引入本地的Material Design Icons资源 - - -Vue.use(Vuetify, { directives: { ripple } }) - -const theme = { - primary: '#E91E63', - secondary: '#9C27b0', - accent: '#e91e63', - info: '#00CAE3', - success: '#4CAF50', - warning: '#FB8C00', - error: '#FF5252', -} - -export default new Vuetify({ - lang:{ - locales: {zhHans}, - current: 'zhHans' - }, - breakpoint: { mobileBreakpoint: 960 }, - icons: { - iconfont: 'mdi', - values: { expand: 'mdi-menu-down' }, - }, - theme: { - themes: { - dark: theme, - light: theme, - }, - }, -}) \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/router/index.js b/Yi.Vue2.x.Vuetify/src/router/index.js deleted file mode 100644 index 7fe4996e..00000000 --- a/Yi.Vue2.x.Vuetify/src/router/index.js +++ /dev/null @@ -1,45 +0,0 @@ -import Vue from 'vue' -import VueRouter from 'vue-router' - - -import { trailingSlash } from '@/util/helpers' -import { - layout, - route, -} from '@/util/routes' -Vue.use(VueRouter) - - - -const router = new VueRouter({ - mode: 'history', - base: process.env.BASE_URL, - scrollBehavior: (to, from, savedPosition) => { - if (to.hash) return { selector: to.hash } - if (savedPosition) return savedPosition - - return { x: 0, y: 0 } - }, - routes: [ - layout('Default', [ - route('Index'), - route('AdmUser', null, 'AdmUser'), - route('AdmRole', null, 'AdmRole'), - route('AdmMenu', null, 'AdmMenu'), - route('AdmMould', null, 'AdmMould'), - route('AdmRoleMenu', null, 'AdmRoleMenu'), - route('userInfo', null, 'userInfo'), - route('Pan',null,'pan'), - route('PanInfo',null,'PanInfo') - ]), - layout('Login', [ - route('login', null, 'login'), - route('register', null, 'register') - ]) - - ] -}) -router.beforeEach((to, from, next) => { - return to.path.endsWith('/') ? next() : next(trailingSlash(to.path)) -}) -export default router \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/store/index.js b/Yi.Vue2.x.Vuetify/src/store/index.js deleted file mode 100644 index 1f6c6b21..00000000 --- a/Yi.Vue2.x.Vuetify/src/store/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import Vue from 'vue' -import Vuex from 'vuex' -import home from './modules/home' -import user from './modules/user' -import theme from './modules/theme' -import loader from './modules/loader' -import pan from './modules/pan' -Vue.use(Vuex); - -//实例化 -const store = new Vuex.Store({ - modules: { - home, - user, - theme, - loader, - pan - } -}) -export default store \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/store/modules/home.js b/Yi.Vue2.x.Vuetify/src/store/modules/home.js deleted file mode 100644 index debfaa81..00000000 --- a/Yi.Vue2.x.Vuetify/src/store/modules/home.js +++ /dev/null @@ -1,56 +0,0 @@ -const state = { - drawer: null, - drawerImage: true, - mini: false, - items: [{ - title: 'Dashboard', - icon: 'mdi-view-dashboard', - to: '/', - }, - { - title: 'User Profile', - icon: 'mdi-account', - to: '/components/profile/', - }, - { - title: 'Regular Tables', - icon: 'mdi-clipboard-outline', - to: '/tables/regular/', - }, - { - title: 'Typography', - icon: 'mdi-format-font', - to: '/components/typography/', - }, - { - title: 'Icons', - icon: 'mdi-chart-bubble', - to: '/components/icons/', - }, - { - title: 'Google Maps', - icon: 'mdi-map-marker', - to: '/maps/google/', - }, - { - title: 'Notifications', - icon: 'mdi-bell', - to: '/components/notifications/', - }, - ], -} - -const mutations = { //变化//载荷 - SetDrawerImage(state, drawerImage) { - state.drawerImage = drawerImage - } -} - -//在action中可以配合axios进行权限判断 -const actions = { //动作 - -} -const getters = {} - - -export default { state, mutations, actions, getters } \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/store/modules/loader.js b/Yi.Vue2.x.Vuetify/src/store/modules/loader.js deleted file mode 100644 index 64b0b327..00000000 --- a/Yi.Vue2.x.Vuetify/src/store/modules/loader.js +++ /dev/null @@ -1,34 +0,0 @@ -const state = { //状态 - load: false -} - -const mutations = { //变化//载荷 - OPEN(state) { - state.load = true; - }, - CLOSE(state) { - state.load = false; - }, -} - -//在action中可以配合axios进行权限判断 -const actions = { //动作 - openLoad(context) { - context.commit('OPEN') - }, - closeLoad(context) { - context.commit('CLOSE') - } -} - -// const getters = { //类似与计算属性 派生属性 -// msg(state) { -// if (state.count > 80) { -// return "成绩优异" -// } else { -// return "成绩不合格" -// } -// } -// } - -export default { state, mutations, actions } \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/store/modules/pan.js b/Yi.Vue2.x.Vuetify/src/store/modules/pan.js deleted file mode 100644 index 015b80fb..00000000 --- a/Yi.Vue2.x.Vuetify/src/store/modules/pan.js +++ /dev/null @@ -1,36 +0,0 @@ -const state = { - basePath: "", - extendPath:"" -} - -const mutations = { //变化//载荷 - SetExtendPath(state, extendPath) { - state.extendPath = extendPath - }, - - SetBasePath(state, basePath) { - state.basePath = basePath - } -} - -//在action中可以配合axios进行权限判断 -const actions = { //动作 - Set_ExtendPath(context,extendPath) { - context.commit('SetExtendPath',extendPath) - }, - Set_BasePath(context,basePath) { - context.commit('SetBasePath',basePath) - }, - Add_ExtendPath(context,extendPath) { - context.commit('SetExtendPath',context.state.extendPath+"/"+extendPath) - }, -} -const getters = { - path: state => { - return state.basePath+state.extendPath; - } - -} - - -export default { state, mutations, actions, getters } \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/store/modules/theme.js b/Yi.Vue2.x.Vuetify/src/store/modules/theme.js deleted file mode 100644 index 131d8683..00000000 --- a/Yi.Vue2.x.Vuetify/src/store/modules/theme.js +++ /dev/null @@ -1,33 +0,0 @@ -import vuetify from '../../plugins/vuetify'; -const state = { //状态 - light: { - primary: '#1976D2', - secondary: '#424242', - accent: '#82B1FF', - error: '#FF5252', - info: '#2196F3', - success: '#4CAF50', - warning: '#FFC107', - cyan: "#FAB2B1", - blue: "#2196F3" - }, - dark: {} -} - -const mutations = { //变化//载荷 - SET_Light(state, n) { - state.light = n - vuetify.framework.theme.themes.light = n - }, -} - -//在action中可以配合axios进行权限判断 -const actions = { //动作 - set_light(context, n) { - context.commit('SET_Light', n) - }, - -} - - -export default { state, mutations, actions } \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/store/modules/user.js b/Yi.Vue2.x.Vuetify/src/store/modules/user.js deleted file mode 100644 index 587919e7..00000000 --- a/Yi.Vue2.x.Vuetify/src/store/modules/user.js +++ /dev/null @@ -1,182 +0,0 @@ -import { getPer, setPer, getToken, setToken, getUser, setUser, removeToken } from '../../util/usertoken' -import accountApi from "@/api/accountApi" - -//再导入axion请求 -const state = { //状态 - per: getPer(), - token: getToken(), - user: getUser(), - dark: false, - drawer: { - image: 0, - gradient: 1, - mini: false, - }, - gradients: [ - 'rgba(0, 0, 0, .7), rgba(0, 0, 0, .7)', - 'rgba(228, 226, 226, 1), rgba(255, 255, 255, 0.7)', - 'rgba(244, 67, 54, .8), rgba(244, 67, 54, .8)', - ], - images: [ - 'https://s1.ax1x.com/2022/03/26/qdNnbD.jpg', - 'https://s1.ax1x.com/2022/03/26/qdNMUH.jpg', - 'https://s1.ax1x.com/2022/03/26/qdNKVe.jpg', - 'https://s1.ax1x.com/2022/03/26/qdNmDO.jpg' - ], - notifications: [], - rtl: false -} - -const mutations = { //变化//载荷 - SET_PER(state, per) { - state.per = per - setPer(per) - }, - SET_TOKEN(state, token) { - state.token = token - setToken(token) - }, - SET_USER(state, user) { - state.user = user - setUser(user) - }, - SET_NEW_USER(state, userInfo) { - state.user.user = userInfo - setUser(state.user) - }, - - SetGradient(state, gradient) { - state.drawer.gradient = gradient - }, - SetImage(state, image) { - state.drawer.image = image - } -} - -//在action中可以配合axios进行权限判断 -const actions = { //动作 - SetIcon({ commit, state }, icon) { - state.user.icon = icon - commit('SET_USER', state.user) - }, - // qqUpdate({ state }, openid) { - // return new Promise((resolv, reject) => { - // qqApi.qqupdate(openid, state.user.id).then(resp => { - // resolv(resp) - // }).catch(error => { - // reject(error) - // }) - // }) - // }, - - // qqLogin({ commit }, openid) { - // return new Promise((resolv, reject) => { - // qqApi.qqlogin(openid).then(resp => { - // if (resp.status) { - // commit('SET_TOKEN', resp.data.token) - // commit('SET_USER', resp.data.user) - // } - // resolv(resp) - // }).catch(error => { - // reject(error) - // }) - // }) - // }, - - Login({ commit }, form) { - return new Promise((resolv, reject) => { - accountApi.login(form.username.trim(), form.password.trim()).then(resp => { - if (resp.status) { - commit('SET_TOKEN', resp.data.token) - - - accountApi.getUserAllInfo().then(resp2=>{ - commit('SET_USER', resp2.data) - - var code=[]; - resp2.data.menus.forEach(element => { - if(element.permissionCode!="") - { - code.push(element.permissionCode) - } - - }); - commit('SET_PER', code) - - resolv(resp) - }) - } - else - { - resolv(resp) - } - }).catch(error => { - reject(error) - }) - }) - }, - - - - Register({ commit }, form) { - return new Promise((resolv, reject) => { - accountApi.register(form.username.trim(), form.password.trim(), form.email.trim(), form.code.trim()).then(resp => { - resolv(resp) - }).catch(error => { - reject(error) - }) - }) - }, - Logged({ commit }) { - return new Promise((resolv, reject) => { - accountApi.logged().then(resp => { - resolv(resp) - }).catch(error => { - reject(error) - }) - }) - }, - - // GetUserInfo({ commit, state }) { - // return new Promise((resolv, reject) => { - // // getUserInfo(state.token).then(response => { - // // commit('SET_USER', response.data) - // // resolve(response) - // // }).catch(error=>{ - // // reject(error) - // // }) - // }) - // }, - Logout({ commit, state }) { - return new Promise((resolv, reject) => { - accountApi.logout().then(response => { - commit('SET_TOKEN', '') - commit('SET_USER', null) - removeToken() - resolv(response) - }).catch(error => { - reject(error) - }) - }) - } - -} - -const getters = { //类似与计算属性 派生属性 - dark: (state, getters) => { - return ( - state.dark || - getters.gradient.indexOf('255, 255, 255') === -1 - ) - }, - gradient: state => { - return state.gradients[state.drawer.gradient] - }, - image: state => { - return state.drawer.image === '' ? state.drawer.image : state.images[state.drawer.image] - } -} - - - -export default { state, mutations, actions, getters } \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/styles/auth.scss b/Yi.Vue2.x.Vuetify/src/styles/auth.scss deleted file mode 100644 index 7fe41f16..00000000 --- a/Yi.Vue2.x.Vuetify/src/styles/auth.scss +++ /dev/null @@ -1,55 +0,0 @@ -.auth-wrapper { - display: flex; - min-height: calc(var(--vh, 1vh) * 100); - width: 100%; - flex-basis: 100%; - align-items: center; - background-color: #F4F5FA; - // common style for both v1 and v2 - a { - text-decoration: unset; - } - // auth v1 - &.auth-v1 { - align-items: center; - justify-content: center; - overflow: hidden; - padding: 1.5rem; - .auth-mask-bg { - position: absolute; - bottom: 0; - width: 100%; - } - .auth-tree, - .auth-tree-3 { - position: absolute; - } - .auth-tree { - bottom: 0; - left: 0; - } - .auth-tree-3 { - bottom: 0; - right: 0; - } - // auth card - .auth-inner { - width: 28rem; - z-index: 1; - .auth-card { - padding: 0.9375rem 0.875rem; - } - } - } -} - -@media (max-width: 600px) { - // auth bg and tree hide in sm screen - .auth-v1 { - .auth-tree, - .auth-tree-3, - .auth-mask-bg { - display: none; - } - } -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/styles/overrides.sass b/Yi.Vue2.x.Vuetify/src/styles/overrides.sass deleted file mode 100644 index 5755ee53..00000000 --- a/Yi.Vue2.x.Vuetify/src/styles/overrides.sass +++ /dev/null @@ -1,26 +0,0 @@ -.text-mono - font-family: monospace - -// Helpers -.flex-1-1-auto - flex: 1 1 auto !important - -.flex-1-0-auto - flex: 1 0 auto !important - -.flex-0-1-auto - flex: 0 1 auto !important - -.flex-0-0-auto - flex: 0 0 auto !important - -.position-relative - position: relative !important - -.overflow-y-scroll - overflow-y: scroll - -table - > thead > tr > th, - > tbody > tr > td - font-weight: 300 !important diff --git a/Yi.Vue2.x.Vuetify/src/styles/variables.scss b/Yi.Vue2.x.Vuetify/src/styles/variables.scss deleted file mode 100644 index 3a6131f7..00000000 --- a/Yi.Vue2.x.Vuetify/src/styles/variables.scss +++ /dev/null @@ -1,106 +0,0 @@ -// reduce button default elevation -// default background color is #EEEEEE - -$btn-sizes: ( - 'small': 28, - 'default': 41, - 'large': 54 -); - -$btn-font-sizes: ( - 'default': .75rem -); - -$btn-font-weight: 400; -$btn-letter-spacing: normal; -$material-light: ( - 'background': #EEEEEE, - 'text': ( - 'primary': #333333, - 'secondary': #999999 - ) -); -$btn-icon-font-size: 1.0625rem !important; - -$list-item-min-height: 48px; - -$blockquote-font-size: 1.25rem; - -$card-border-radius: 6px; -$card-text-font-weight: 300; -$card-elevation: 1; - -$data-table-regular-header-font-size: 1.0625rem; - -$shadow-key-umbra: ( - 1: (0 1px 4px 0 rgba(0,0,0,.14)), - 12: (0 16px 38px -12px rgba(0,0,0,.56)) -); - -$shadow-key-penumbra: ( - 1: (0 0 0 0 rgba(0,0,0,0)), - 12: (0 4px 25px 0 rgba(0,0,0,.12)) -); - -$shadow-key-ambient: ( - 1: (0 0 0 0 rgba(0,0,0,0)), - 12: (0 8px 10px -5px rgba(0,0,0,.2)) -); - -$headings: ( - 'h1': ( - 'size': 3.3125rem, - 'line-height': 1.15em, - 'weight': 300 - ), - 'h2': ( - 'size': 2.25rem, - 'line-height': 1.5em, - 'weight': 300 - ), - 'h3': ( - 'size': 1.5625rem, - 'line-height': 1.4em, - 'weight': 300 - ), - 'h4': ( - 'size': 1.125rem, - 'line-height': 1.4em, - 'weight': 300 - ), - 'h5': ( - 'size': 1.0625rem, - 'line-height': 1.4em, - 'weight': 300 - ), - 'h6': ( - 'size': .75rem, - 'line-height': 1.5em, - 'text-transform': uppercase, - 'weight': 500 - ), - 'subtitle-1': ( - 'size': 0.875rem, - 'weight': 300 - ), - 'subtitle-2': ( - 'size': 0.875rem, - 'line-height': 1.5em !important, - 'weight': 300 - ), - 'caption': ( - 'size': 0.8125rem, - 'weight': 300 - ), - 'overline': ( - 'letter-spacing': normal, - 'line-height': 0.625rem, - 'size': 0.625rem, - 'weight': 500 - ) -); - -// Tabs -$tab-font-size: .775rem; -$tab-font-weight: 500; -$tabs-item-letter-spacing: normal; diff --git a/Yi.Vue2.x.Vuetify/src/util/btnHandle.js b/Yi.Vue2.x.Vuetify/src/util/btnHandle.js deleted file mode 100644 index e01f989f..00000000 --- a/Yi.Vue2.x.Vuetify/src/util/btnHandle.js +++ /dev/null @@ -1,81 +0,0 @@ -import store from '../store/index' -//匹配按钮,判断是否有按钮存在 - -function getBtn(par) { - var axiosEnable = { - get: false, - update: false, - del: false, - add: false, - }; - const per = store.state.user.per; - switch (par) { - case "user": - per.forEach(p => { - if(p=="user:get") - { - axiosEnable.get=true; - } - else if(p=="user:update") - { - axiosEnable.update=true; - } - else if(p=="user:del") - { - axiosEnable.del=true; - } - else if(p=="user:add") - { - axiosEnable.add=true; - } - }); - break; - case "role": - per.forEach(p => { - if(p=="role:get") - { - axiosEnable.get=true; - } - else if(p=="role:update") - { - axiosEnable.update=true; - } - else if(p=="role:del") - { - axiosEnable.del=true; - } - else if(p=="role:add") - { - axiosEnable.add=true; - } - }) - break; - case "menu": - per.forEach(p => { - if(p=="menu:get") - { - axiosEnable.get=true; - } - else if(p=="menu:update") - { - axiosEnable.update=true; - } - else if(p=="menu:del") - { - axiosEnable.del=true; - } - else if(p=="menu:add") - { - axiosEnable.add=true; - } - }) - break; - - - default: console.log("未发现合法路由") - } - return axiosEnable; -} - - -export {getBtn}; diff --git a/Yi.Vue2.x.Vuetify/src/util/dialog.js b/Yi.Vue2.x.Vuetify/src/util/dialog.js deleted file mode 100644 index 4c10059e..00000000 --- a/Yi.Vue2.x.Vuetify/src/util/dialog.js +++ /dev/null @@ -1,13 +0,0 @@ -function notify(resp) { - if (resp.status) { - this.$dialog.notify.success(resp.msg, { - position: "top-right", - }); - } else { - this.$dialog.notify.error(resp.msg, { - position: "top-right", - }); - } -}; - -export default { notify }; \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/util/getMould.js b/Yi.Vue2.x.Vuetify/src/util/getMould.js deleted file mode 100644 index 360c8ae4..00000000 --- a/Yi.Vue2.x.Vuetify/src/util/getMould.js +++ /dev/null @@ -1,54 +0,0 @@ -var start = true; - -function getUrl(menuList, menuStr) { - - if (start) { - for (var i = 0; i < menuList.length; i++) { - if (menuList[i].menu_name == menuStr) { - start = false; - console.log(handUrl(menuList[i])) - return handUrl(menuList[i]) - } else { - if (menuList[i].children != undefined && start) { - getUrl(menuList[i].children, menuStr); - } - - } - } - } -}; - -function handUrl(menu) { - var axiosUrls = { - get: "123", - update: "123", - del: "123", - add: "123", - }; - const myMenu = menu.children; - myMenu.forEach(item => { - const myName = item.mould.mould_name; - const myUrl = item.mould.url; - - switch (myName) { - case 'get': - axiosUrls.get = myUrl; - break; - case 'update': - axiosUrls.update = myUrl; - break; - case 'del': - axiosUrls.del = myUrl; - break; - case 'add': - axiosUrls.add = myUrl; - break; - } - }); - return axiosUrls; -} - -export { - getUrl, - handUrl -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/util/globals.js b/Yi.Vue2.x.Vuetify/src/util/globals.js deleted file mode 100644 index 71bb7cff..00000000 --- a/Yi.Vue2.x.Vuetify/src/util/globals.js +++ /dev/null @@ -1,11 +0,0 @@ -const EN_LOCALE_ONLY = process.env.EN_LOCALE_ONLY === 'true' -const IN_BROWSER = typeof window !== 'undefined' -const IS_DEBUG = process.env.DEBUG === 'true' -const IS_PROD = process.env.NODE_ENV === 'production' - -module.exports = { - EN_LOCALE_ONLY, - IN_BROWSER, - IS_DEBUG, - IS_PROD, -} diff --git a/Yi.Vue2.x.Vuetify/src/util/helpers.js b/Yi.Vue2.x.Vuetify/src/util/helpers.js deleted file mode 100644 index fbfb09d5..00000000 --- a/Yi.Vue2.x.Vuetify/src/util/helpers.js +++ /dev/null @@ -1,11 +0,0 @@ -export function leadingSlash (str) { - return str.startsWith('/') ? str : '/' + str -} - -export function trailingSlash (str) { - return str.endsWith('/') ? str : str + '/' -} - -export const wait = timeout => { - return new Promise(resolve => setTimeout(resolve, timeout)) -} diff --git a/Yi.Vue2.x.Vuetify/src/util/menuHandle.js b/Yi.Vue2.x.Vuetify/src/util/menuHandle.js deleted file mode 100644 index 4428b571..00000000 --- a/Yi.Vue2.x.Vuetify/src/util/menuHandle.js +++ /dev/null @@ -1,26 +0,0 @@ -export function toTree(data) { - // 删除 所有 children,以防止多次调用 - data.forEach(function (item) { - delete item.children; - }); - - // 将数据存储为 以 id 为 KEY 的 map 索引数据列 - var map = {}; - data.forEach(function (item) { - map[item.id] = item; - }); -// console.log(map); - var val = []; - data.forEach(function (item) { - // 以当前遍历项,的pid,去map对象中找到索引的id - var parent = map[item.parentId]; - // 好绕啊,如果找到索引,那么说明此项不在顶级当中,那么需要把此项添加到,他对应的父级中 - if (parent) { - (parent.children || ( parent.children = [] )).push(item); - } else { - //如果没有在map中找到对应的索引ID,那么直接把 当前的item添加到 val结果集中,作为顶级 - val.push(item); - } - }); - return val; -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/util/myaction.js b/Yi.Vue2.x.Vuetify/src/util/myaction.js deleted file mode 100644 index 6c1b626f..00000000 --- a/Yi.Vue2.x.Vuetify/src/util/myaction.js +++ /dev/null @@ -1,16 +0,0 @@ -const actionList = [ - "用户管理", - "角色管理", - "权限管理", - "板块管理", - "等级管理", - "主题管理", - "设置管理", - "横幅管理", - "版本管理", - "道具管理", - "商城管理", - "日志管理", - "类型管理" -]; -export default { actionList }; \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/util/myaxios.js b/Yi.Vue2.x.Vuetify/src/util/myaxios.js deleted file mode 100644 index fc890dbf..00000000 --- a/Yi.Vue2.x.Vuetify/src/util/myaxios.js +++ /dev/null @@ -1,93 +0,0 @@ -import axios from 'axios' -import store from '../store/index' -import vm from '../main' -import JsonBig from 'json-bigint' -// import VuetifyDialogPlugin from 'vuetify-dialog/nuxt/index'; -const myaxios = axios.create({ - // baseURL:'/'// - baseURL: process.env.VUE_APP_BASE_API, // /dev-apis - timeout: 50000, - headers: { - 'Authorization': 'Bearer ' + "" - }, - //雪花id精度问题 - transformResponse: [ data => { - const json = JsonBig({ - storeAsString: true - }) - return json.parse(data) - }], - }) - // 请求拦截器 -myaxios.interceptors.request.use(function(config) { - - config.headers.Authorization = 'Bearer ' + store.state.user.token; - store.dispatch("openLoad"); - return config; -}, function(error) { - return Promise.reject(error); -}); - -// 响应拦截器 -myaxios.interceptors.response.use(async function(response) { - const resp = response.data - if (resp.code == undefined && resp.message == undefined) { - vm.$dialog.notify.error("错误代码:无,原因:与服务器失去连接", { - position: "top-right", - timeout: 5000, - }); - } else if (resp.code == 401) { - const res = await vm.$dialog.error({ - text: `错误代码:${resp.code},原因:${resp.message}
是否重新进行登录?`, - title: '错误', - actions: { - 'false': '取消', - 'true': '跳转' - } - }); - if (res) { - vm.$router.push({ path: "/login" }); - } - - } else if (resp.code !== 200) { - vm.$dialog.notify.error(`错误代码:${resp.code},原因:${resp.message}`, { - position: "top-right", - timeout: 5000, - }); - } - - store.dispatch("closeLoad"); - return resp; -}, async function(error) { - const resp = error.response.data - if (resp.code == undefined && resp.message == undefined) { - vm.$dialog.notify.error("错误代码:无,原因:与服务器失去连接", { - position: "top-right", - timeout: 5000, - }); - } else if (resp.code == 401) { - const res = await vm.$dialog.error({ - text: `错误代码:${resp.code},原因:${resp.message}
是否重新进行登录?`, - title: '错误', - actions: { - 'false': '取消', - 'true': '跳转' - } - }); - if (res) { - vm.$store.dispatch("Logout").then((resp) => { - vm.$router.push({ path: "/login" }); - }); - } - - } else if (resp.code !== 200) { - vm.$dialog.notify.error(`错误代码:${resp.code},原因:${resp.message}`, { - position: "top-right", - timeout: 5000, - }); - } - - store.dispatch("closeLoad"); - return Promise.reject(error); -}); -export default myaxios \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/util/myqq.js b/Yi.Vue2.x.Vuetify/src/util/myqq.js deleted file mode 100644 index 1a9037e2..00000000 --- a/Yi.Vue2.x.Vuetify/src/util/myqq.js +++ /dev/null @@ -1,9 +0,0 @@ -const myqqLogin = { - appId: "101951505", - redirectURI: "https://jiftcc.com/qq?state=0", -}; -const myqqUpdate = { - appId: "101951505", - redirectURI: "https://jiftcc.com/qq?state=1", -}; -export default { myqqLogin, myqqUpdate }; \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/util/objctHandle.js b/Yi.Vue2.x.Vuetify/src/util/objctHandle.js deleted file mode 100644 index af77400e..00000000 --- a/Yi.Vue2.x.Vuetify/src/util/objctHandle.js +++ /dev/null @@ -1,72 +0,0 @@ -//深拷贝 -export function deepCopy(obj) { - var a = JSON.stringify(obj); - var newobj = JSON.parse(a); - return newobj; -} - - -//转换数据,0是相等,1是模糊查询 -export function objctToDic(object, isByPage) { - if (object == undefined) { - - object = {}; - } - - if (isByPage) { - var paramPage = { - "index": object.pageIndex, - "size": object.pageSize, - "parameters": [], - "orderBys": [] - } - - var newData = deepCopy(object); - delete newData.pageIndex; - delete newData.pageSize; - - var newList = [Object.keys(newData).map(val => { - return { - key: val, - value: object[val], - type: 1 - } - })] - - //过滤封装 - newList[0].forEach((item, index) => { - if (item.value.length > 0) { - if (item.key == 'isDeleted') { - item.type = 0; - } - paramPage.parameters.push(item); - } - }); - - return paramPage; - } - else { - var params = { - "parameters": [], - "orderBys": [] - } - var thisList = [Object.keys(object).map(val => { - return { - key: val, - value: object[val], - type: 1 - } - })] - thisList[0].forEach((item, index) => { - if (item.value.length > 0) { - if (item.key == 'isDeleted') { - item.type = 0; - } - params.parameters.push(item); - } - }); - - return params; - } - -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/util/routes.js b/Yi.Vue2.x.Vuetify/src/util/routes.js deleted file mode 100644 index eecc16bd..00000000 --- a/Yi.Vue2.x.Vuetify/src/util/routes.js +++ /dev/null @@ -1,75 +0,0 @@ -// Imports -import { kebabCase } from 'lodash' -import { leadingSlash, trailingSlash } from '@/util/helpers' - -export function abort(code = 404) { - return { - name: 'FourOhFour', - path: '*', - component: () => error(code), - } -} - -export function error(code = 404) { - return import ( - /* webpackChunkName: "error-[request]" */ - `@/views/${code}.vue` - ) -} - -export function layout(layout = 'Default', children, path = '') { - const dir = kebabCase(layout) - - return { - children, - component: () => - import ( - /* webpackChunkName: "layout-[request]" */ - `@/layouts/${dir}/Index` - ), - path, - } -} - -export function redirect( - path = '*', - rhandler, -) { - if (typeof path === 'function') { - rhandler = path - path = '*' - } - - return { - path, - redirect: to => { - const rpath = rhandler(to) - const url = rpath !== '' ? - leadingSlash(trailingSlash(rpath)) : - rpath - - return `/${url}` - }, - } -} - -export function route(name, component, path = '') { - component = Object(component) === component ? - component : { default: name.replace(' ', '') } - - const components = {} - - for (const [key, value] of Object.entries(component)) { - components[key] = () => - import ( - /* webpackChunkName: "views-[request]" */ - `@/views/${value}` - ) - } - - return { - name, - components, - path, - } -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/util/signalR.js b/Yi.Vue2.x.Vuetify/src/util/signalR.js deleted file mode 100644 index a25715a0..00000000 --- a/Yi.Vue2.x.Vuetify/src/util/signalR.js +++ /dev/null @@ -1,34 +0,0 @@ -//引入安装的signalr包 -import * as signalR from '@microsoft/signalr' - -const signal = new signalR.HubConnectionBuilder()    //服务器地址 - .withUrl([process.env.VUE_APP_BASE_API] + '/chat', {}) - .build() - -/* const signalr = function () { - var hub - if (hub === undefined) { - hub = signal - } - return hub -} */ -// 自动重连 -// async function start() { -// try { -// await signal.start() -// console.log('connected') -// } catch (err) { -// console.log(err) -// setTimeout(() => start(), 5000) -// } -// } - -// signal.onclose(async() => { -// await start() -// }) -// //将创建的signal赋值给Vue实例 -export default { - install: function(Vue) { - Vue.prototype.signalr = signal - } -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/util/usertoken.js b/Yi.Vue2.x.Vuetify/src/util/usertoken.js deleted file mode 100644 index 65edb39e..00000000 --- a/Yi.Vue2.x.Vuetify/src/util/usertoken.js +++ /dev/null @@ -1,30 +0,0 @@ -const TOKEN_KEY = "token_key" -const USER_KEY = "user_key" -const PER_KEY="per_key" -export function getToken() { - return localStorage.getItem(TOKEN_KEY) -} -export function getUser() { - return JSON.parse(localStorage.getItem(USER_KEY)) -} -export function getPer() { - return JSON.parse(localStorage.getItem(PER_KEY)) -} - - - -export function setToken(token) { - return localStorage.setItem(TOKEN_KEY, token) -} - -export function setUser(user) { - return localStorage.setItem(USER_KEY, JSON.stringify(user)) -} -export function setPer(per) { - return localStorage.setItem(PER_KEY, JSON.stringify(per)) -} -export function removeToken() { - localStorage.removeItem(TOKEN_KEY) - localStorage.removeItem(USER_KEY) - localStorage.removeItem(PER_KEY) -} \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/views/AdmMenu.vue b/Yi.Vue2.x.Vuetify/src/views/AdmMenu.vue deleted file mode 100644 index 6ec26a30..00000000 --- a/Yi.Vue2.x.Vuetify/src/views/AdmMenu.vue +++ /dev/null @@ -1,25 +0,0 @@ - - \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/views/AdmMould.vue b/Yi.Vue2.x.Vuetify/src/views/AdmMould.vue deleted file mode 100644 index 069f06af..00000000 --- a/Yi.Vue2.x.Vuetify/src/views/AdmMould.vue +++ /dev/null @@ -1,39 +0,0 @@ - - \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/views/AdmRole.vue b/Yi.Vue2.x.Vuetify/src/views/AdmRole.vue deleted file mode 100644 index 8b6a5293..00000000 --- a/Yi.Vue2.x.Vuetify/src/views/AdmRole.vue +++ /dev/null @@ -1,51 +0,0 @@ - - \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/views/AdmRoleMenu.vue b/Yi.Vue2.x.Vuetify/src/views/AdmRoleMenu.vue deleted file mode 100644 index e8e5ae6f..00000000 --- a/Yi.Vue2.x.Vuetify/src/views/AdmRoleMenu.vue +++ /dev/null @@ -1,128 +0,0 @@ - - \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/views/AdmUser.vue b/Yi.Vue2.x.Vuetify/src/views/AdmUser.vue deleted file mode 100644 index 914c08d0..00000000 --- a/Yi.Vue2.x.Vuetify/src/views/AdmUser.vue +++ /dev/null @@ -1,121 +0,0 @@ - - \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/views/Index.vue b/Yi.Vue2.x.Vuetify/src/views/Index.vue deleted file mode 100644 index 9951f7e1..00000000 --- a/Yi.Vue2.x.Vuetify/src/views/Index.vue +++ /dev/null @@ -1,442 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/views/Pan.vue b/Yi.Vue2.x.Vuetify/src/views/Pan.vue deleted file mode 100644 index 9c5277b9..00000000 --- a/Yi.Vue2.x.Vuetify/src/views/Pan.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - - diff --git a/Yi.Vue2.x.Vuetify/src/views/PanInfo.vue b/Yi.Vue2.x.Vuetify/src/views/PanInfo.vue deleted file mode 100644 index 86809327..00000000 --- a/Yi.Vue2.x.Vuetify/src/views/PanInfo.vue +++ /dev/null @@ -1,115 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/src/views/login.vue b/Yi.Vue2.x.Vuetify/src/views/login.vue deleted file mode 100644 index a90b6c9c..00000000 --- a/Yi.Vue2.x.Vuetify/src/views/login.vue +++ /dev/null @@ -1,170 +0,0 @@ - - diff --git a/Yi.Vue2.x.Vuetify/src/views/register.vue b/Yi.Vue2.x.Vuetify/src/views/register.vue deleted file mode 100644 index b1c159d9..00000000 --- a/Yi.Vue2.x.Vuetify/src/views/register.vue +++ /dev/null @@ -1,183 +0,0 @@ - - \ No newline at end of file diff --git a/Yi.Vue2.x.Vuetify/src/views/userInfo.vue b/Yi.Vue2.x.Vuetify/src/views/userInfo.vue deleted file mode 100644 index a23ebb04..00000000 --- a/Yi.Vue2.x.Vuetify/src/views/userInfo.vue +++ /dev/null @@ -1,362 +0,0 @@ - - - diff --git a/Yi.Vue2.x.Vuetify/vue.config.js b/Yi.Vue2.x.Vuetify/vue.config.js deleted file mode 100644 index 735dc799..00000000 --- a/Yi.Vue2.x.Vuetify/vue.config.js +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = { - // publicPath: './', - transpileDependencies: [ - 'vuetify' - ], - devServer: { - port: 18000, - open: true, - https: false, - host: "localhost", - proxy: { - [process.env.VUE_APP_BASE_API]: { - target: process.env.VUE_APP_SERVICE_URL, - changeOrigin: true, - pathRewrite: { - ['^' + process.env.VUE_APP_BASE_API]: '' - } - }, - } - }, - lintOnSave: false, //关闭格式检查 - productionSourceMap: false -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/.env.development b/Yi.Vue3.X.RuoYi/.env.development deleted file mode 100644 index fa4ea55e..00000000 --- a/Yi.Vue3.X.RuoYi/.env.development +++ /dev/null @@ -1,17 +0,0 @@ -# 页面标题 -VITE_APP_TITLE = 意框架管理系统 - -# 开发环境配置 -VITE_APP_ENV = 'development' - -# 若依管理系统/开发环境 -VITE_APP_BASE_API = '/dev-api' - -# ws/开发环境 -VITE_APP_BASE_WS = '/dev-ws' - - -VITE_APP_BASE_URL='http://localhost:19001/api' - - - diff --git a/Yi.Vue3.X.RuoYi/.env.production b/Yi.Vue3.X.RuoYi/.env.production deleted file mode 100644 index 565a45ef..00000000 --- a/Yi.Vue3.X.RuoYi/.env.production +++ /dev/null @@ -1,15 +0,0 @@ -# 页面标题 -VITE_APP_TITLE = 意框架管理系统 - -# 生产环境配置 -VITE_APP_ENV = 'production' - -# 意框架管理系统/生产环境 -VITE_APP_BASE_API = '/prod-api' - -# ws/开发环境 -VITE_APP_BASE_WS = '/prod-ws' - -# 是否在打包时开启压缩,支持 gzip 和 brotli -VITE_BUILD_COMPRESS = gzip - diff --git a/Yi.Vue3.X.RuoYi/.env.staging b/Yi.Vue3.X.RuoYi/.env.staging deleted file mode 100644 index 58e3fbcd..00000000 --- a/Yi.Vue3.X.RuoYi/.env.staging +++ /dev/null @@ -1,15 +0,0 @@ -# 页面标题 -VITE_APP_TITLE = 意框架管理系统 - -# 生产环境配置 -VITE_APP_ENV = 'staging' - -# 若依管理系统/生产环境 -VITE_APP_BASE_API = '/stage-api' - -# ws/开发环境 -VITE_APP_BASE_WS = '/stage-ws' - -# 是否在打包时开启压缩,支持 gzip 和 brotli -VITE_BUILD_COMPRESS = gzip - diff --git a/Yi.Vue3.X.RuoYi/.gitignore b/Yi.Vue3.X.RuoYi/.gitignore deleted file mode 100644 index 78a752d8..00000000 --- a/Yi.Vue3.X.RuoYi/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -.DS_Store -node_modules/ -dist/ -npm-debug.log* -yarn-debug.log* -yarn-error.log* -**/*.log - -tests/**/coverage/ -tests/e2e/reports -selenium-debug.log - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.local - -package-lock.json -yarn.lock diff --git a/Yi.Vue3.X.RuoYi/README.md b/Yi.Vue3.X.RuoYi/README.md deleted file mode 100644 index 5fcd4739..00000000 --- a/Yi.Vue3.X.RuoYi/README.md +++ /dev/null @@ -1,109 +0,0 @@ -

- logo -

-

RuoYi v3.8.3

-

基于SpringBoot+Vue3前后端分离的Java快速开发框架

-

- - - -

- -## 平台简介 - -* 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev) 版本。 -* 配套后端代码仓库地址[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 或 [RuoYi-Vue-fast](https://github.com/yangzongzhuan/RuoYi-Vue-fast) 版本。 -* 前端技术栈([Vue2](https://cn.vuejs.org) + [Element](https://github.com/ElemeFE/element) + [Vue CLI](https://cli.vuejs.org/zh)),请移步[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue/tree/master/ruoyi-ui)。 -* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)   -* 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?userCode=brki8iof&share_source=copy_link),腾讯云优惠券:[点我领取](https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console)   - -## 前端运行 - -```bash -# 克隆项目 -git clone https://github.com/yangzongzhuan/RuoYi-Vue3.git - -# 进入项目目录 -cd RuoYi-Vue3 - -# 安装依赖 -yarn --registry=https://registry.npmmirror.com - -# 启动服务 -yarn dev - -# 构建测试环境 yarn build:stage -# 构建生产环境 yarn build:prod -# 前端访问地址 http://localhost:80 -``` - -## 内置功能 - -1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 -2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 -3. 岗位管理:配置系统用户所属担任职务。 -4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 -5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 -6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 -7. 参数管理:对系统动态配置常用参数。 -8. 通知公告:系统通知公告信息发布维护。 -9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 -10. 登录日志:系统登录日志记录查询包含登录异常。 -11. 在线用户:当前系统中活跃用户状态监控。 -12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 -13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 -14. 系统接口:根据业务代码自动生成相关的api接口文档。 -15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。 -16. 缓存监控:对系统的缓存信息查询,命令统计等。 -17. 在线构建器:拖动表单元素生成相应的HTML代码。 -18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 - -## 在线体验 - -- admin/admin123 -- 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。 - -演示地址:http://vue.ruoyi.vip -文档地址:http://doc.ruoyi.vip - -## 演示图 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -## 若依前后端分离交流群 - -QQ群: [![加入QQ群](https://img.shields.io/badge/已满-937441-blue.svg)](https://jq.qq.com/?_wv=1027&k=5bVB1og) [![加入QQ群](https://img.shields.io/badge/已满-887144332-blue.svg)](https://jq.qq.com/?_wv=1027&k=5eiA4DH) [![加入QQ群](https://img.shields.io/badge/已满-180251782-blue.svg)](https://jq.qq.com/?_wv=1027&k=5AxMKlC) [![加入QQ群](https://img.shields.io/badge/已满-104180207-blue.svg)](https://jq.qq.com/?_wv=1027&k=51G72yr) [![加入QQ群](https://img.shields.io/badge/已满-186866453-blue.svg)](https://jq.qq.com/?_wv=1027&k=VvjN2nvu) [![加入QQ群](https://img.shields.io/badge/已满-201396349-blue.svg)](https://jq.qq.com/?_wv=1027&k=5vYAqA05) [![加入QQ群](https://img.shields.io/badge/已满-101456076-blue.svg)](https://jq.qq.com/?_wv=1027&k=kOIINEb5) [![加入QQ群](https://img.shields.io/badge/已满-101539465-blue.svg)](https://jq.qq.com/?_wv=1027&k=UKtX5jhs) [![加入QQ群](https://img.shields.io/badge/已满-264312783-blue.svg)](https://jq.qq.com/?_wv=1027&k=EI9an8lJ) [![加入QQ群](https://img.shields.io/badge/已满-167385320-blue.svg)](https://jq.qq.com/?_wv=1027&k=SWCtLnMz) [![加入QQ群](https://img.shields.io/badge/已满-104748341-blue.svg)](https://jq.qq.com/?_wv=1027&k=96Dkdq0k) [![加入QQ群](https://img.shields.io/badge/160110482-blue.svg)](https://jq.qq.com/?_wv=1027&k=0fsNiYZt) 点击按钮入群。 \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/html/ie.html b/Yi.Vue3.X.RuoYi/html/ie.html deleted file mode 100644 index 052ffcd6..00000000 --- a/Yi.Vue3.X.RuoYi/html/ie.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - 请升级您的浏览器 - - - - - - -

请升级您的浏览器,以便我们更好的为您提供服务!

-

您正在使用 Internet Explorer 的早期版本(IE11以下版本或使用该内核的浏览器)。这意味着在升级浏览器前,您将无法访问此网站。

-
-

请注意:微软公司对Windows XP 及 Internet Explorer 早期版本的支持已经结束

-

自 2016 年 1 月 12 日起,Microsoft 不再为 IE 11 以下版本提供相应支持和更新。没有关键的浏览器安全更新,您的电脑可能易受有害病毒、间谍软件和其他恶意软件的攻击,它们可以窃取或损害您的业务数据和信息。请参阅 微软对 Internet Explorer 早期版本的支持将于 2016 年 1 月 12 日结束的说明

-
-

您可以选择更先进的浏览器

-

推荐使用以下浏览器的最新版本。如果您的电脑已有以下浏览器的最新版本则直接使用该浏览器访问即可。

- -
- - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/index.html b/Yi.Vue3.X.RuoYi/index.html deleted file mode 100644 index 12948d99..00000000 --- a/Yi.Vue3.X.RuoYi/index.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - - - - Yi意框架-ruoyi管理系统 - - - - - -
-
-
-
-
-
正在加载系统资源,请耐心等待
-
-
- - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/package.json b/Yi.Vue3.X.RuoYi/package.json deleted file mode 100644 index 70de9e98..00000000 --- a/Yi.Vue3.X.RuoYi/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "ruoyi", - "version": "2.0.0", - "description": "意框架管理系统", - "author": "意框架", - "license": "MIT", - "scripts": { - "dev": "vite", - "build:prod": "vite build", - "build:stage": "vite build --mode staging", - "preview": "vite preview" - }, - "repository": { - "type": "git", - "url": "https://gitee.com/y_project/RuoYi-Vue.git" - }, - "dependencies": { - "@element-plus/icons-vue": "1.1.4", - "@microsoft/signalr": "^6.0.9", - "@vueuse/core": "8.5.0", - "axios": "0.26.1", - "echarts": "5.3.2", - "element-plus": "2.1.8", - "file-saver": "2.0.5", - "fuse.js": "6.5.3", - "js-cookie": "3.0.1", - "jsencrypt": "3.2.1", - "json-bigint": "^1.0.0", - "nprogress": "0.2.0", - "pinia": "2.0.14", - "typeface-roboto": "^1.1.13", - "vue": "3.2.37", - "vue-cropper": "1.0.3", - "vue-router": "^4.0.14" - }, - "devDependencies": { - "@vitejs/plugin-vue": "2.3.3", - "@vue/compiler-sfc": "3.2.36", - "sass": "1.52.1", - "unplugin-auto-import": "0.8.5", - "vite": "2.9.14", - "vite-plugin-compression": "0.5.1", - "vite-plugin-svg-icons": "2.0.1", - "vite-plugin-vue-setup-extend": "0.4.0" - } -} diff --git a/Yi.Vue3.X.RuoYi/public/favicon.ico b/Yi.Vue3.X.RuoYi/public/favicon.ico deleted file mode 100644 index e2637602..00000000 Binary files a/Yi.Vue3.X.RuoYi/public/favicon.ico and /dev/null differ diff --git a/Yi.Vue3.X.RuoYi/src/App.vue b/Yi.Vue3.X.RuoYi/src/App.vue deleted file mode 100644 index a4b9af94..00000000 --- a/Yi.Vue3.X.RuoYi/src/App.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/api/login.js b/Yi.Vue3.X.RuoYi/src/api/login.js deleted file mode 100644 index 774990dd..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/login.js +++ /dev/null @@ -1,59 +0,0 @@ -import request from '@/utils/request' - -// 登录方法 -export function login(username, password, code, uuid) { - const data = { - username, - password, - code, - uuid - } - return request({ - url: '/account/login', - headers: { - isToken: false - }, - method: 'post', - data: data - }) -} - -// 注册方法 -export function register(data) { - return request({ - url: '/register', - headers: { - isToken: false - }, - method: 'post', - data: data - }) -} - -// 获取用户详细信息 -export function getInfo() { - return request({ - url: '/account/getUserAllInfo', - method: 'get' - }) -} - -// 退出方法 -export function logout() { - return request({ - url: '/account/logout', - method: 'post' - }) -} - -// 获取验证码 -export function getCodeImg() { - return request({ - url: '/account/captchaImage', - headers: { - isToken: false - }, - method: 'get', - timeout: 20000 - }) -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/api/menu.js b/Yi.Vue3.X.RuoYi/src/api/menu.js deleted file mode 100644 index 5d4a7718..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/menu.js +++ /dev/null @@ -1,9 +0,0 @@ -import request from '@/utils/request' - -// 获取路由 -export const getRouters = () => { - return request({ - url: '/account/GetRouterInfo', - method: 'get' - }) -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/api/monitor/cache.js b/Yi.Vue3.X.RuoYi/src/api/monitor/cache.js deleted file mode 100644 index 72c5f6a3..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/monitor/cache.js +++ /dev/null @@ -1,57 +0,0 @@ -import request from '@/utils/request' - -// 查询缓存详细 -export function getCache() { - return request({ - url: '/monitor/cache', - method: 'get' - }) -} - -// 查询缓存名称列表 -export function listCacheName() { - return request({ - url: '/monitor/cache/getNames', - method: 'get' - }) -} - -// 查询缓存键名列表 -export function listCacheKey(cacheName) { - return request({ - url: '/monitor/cache/getKeys/' + cacheName, - method: 'get' - }) -} - -// 查询缓存内容 -export function getCacheValue(cacheName, cacheKey) { - return request({ - url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey, - method: 'get' - }) -} - -// 清理指定名称缓存 -export function clearCacheName(cacheName) { - return request({ - url: '/monitor/cache/clearCacheName/' + cacheName, - method: 'delete' - }) -} - -// 清理指定键名缓存 -export function clearCacheKey(cacheKey) { - return request({ - url: '/monitor/cache/clearCacheKey/' + cacheKey, - method: 'delete' - }) -} - -// 清理全部缓存 -export function clearCacheAll() { - return request({ - url: '/monitor/cache/clearCacheAll', - method: 'delete' - }) -} diff --git a/Yi.Vue3.X.RuoYi/src/api/monitor/job.js b/Yi.Vue3.X.RuoYi/src/api/monitor/job.js deleted file mode 100644 index 38155693..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/monitor/job.js +++ /dev/null @@ -1,71 +0,0 @@ -import request from '@/utils/request' - -// 查询定时任务调度列表 -export function listJob(query) { - return request({ - url: '/monitor/job/list', - method: 'get', - params: query - }) -} - -// 查询定时任务调度详细 -export function getJob(jobId) { - return request({ - url: '/monitor/job/' + jobId, - method: 'get' - }) -} - -// 新增定时任务调度 -export function addJob(data) { - return request({ - url: '/monitor/job', - method: 'post', - data: data - }) -} - -// 修改定时任务调度 -export function updateJob(data) { - return request({ - url: '/monitor/job', - method: 'put', - data: data - }) -} - -// 删除定时任务调度 -export function delJob(jobId) { - return request({ - url: '/monitor/job/' + jobId, - method: 'delete' - }) -} - -// 任务状态修改 -export function changeJobStatus(jobId, status) { - const data = { - jobId, - status - } - return request({ - url: '/monitor/job/changeStatus', - method: 'put', - data: data - }) -} - - -// 定时任务立即执行一次 -export function runJob(jobId, jobGroup) { - const data = { - jobId, - jobGroup - } - return request({ - url: '/monitor/job/run', - method: 'put', - data: data - }) -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/api/monitor/jobLog.js b/Yi.Vue3.X.RuoYi/src/api/monitor/jobLog.js deleted file mode 100644 index 6e0be616..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/monitor/jobLog.js +++ /dev/null @@ -1,26 +0,0 @@ -import request from '@/utils/request' - -// 查询调度日志列表 -export function listJobLog(query) { - return request({ - url: '/monitor/jobLog/list', - method: 'get', - params: query - }) -} - -// 删除调度日志 -export function delJobLog(jobLogId) { - return request({ - url: '/monitor/jobLog/' + jobLogId, - method: 'delete' - }) -} - -// 清空调度日志 -export function cleanJobLog() { - return request({ - url: '/monitor/jobLog/clean', - method: 'delete' - }) -} diff --git a/Yi.Vue3.X.RuoYi/src/api/monitor/logininfor.js b/Yi.Vue3.X.RuoYi/src/api/monitor/logininfor.js deleted file mode 100644 index a3881ea4..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/monitor/logininfor.js +++ /dev/null @@ -1,35 +0,0 @@ -import request from '@/utils/request' - -// 查询登录日志列表 -export function list(query) { - return request({ - url: '/loginLog/pageList', - method: 'get', - params: query - }) -} - -// 删除登录日志 -export function delLogininfor(infoId) { - return request({ - url: '/loginLog/delList', - method: 'delete', - data:"string"==typeof(infoId)?[infoId]:infoId - }) -} - -// 解锁用户登录状态 -export function unlockLogininfor(userName) { - return request({ - url: '/monitor/logininfor/unlock/' + userName, - method: 'get' - }) -} - -// 清空登录日志 -export function cleanLogininfor() { - return request({ - url: '/monitor/logininfor/clean', - method: 'delete' - }) -} diff --git a/Yi.Vue3.X.RuoYi/src/api/monitor/online.js b/Yi.Vue3.X.RuoYi/src/api/monitor/online.js deleted file mode 100644 index 434aadc4..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/monitor/online.js +++ /dev/null @@ -1,18 +0,0 @@ -import request from '@/utils/request' - -// 查询在线用户列表 -export function list(query) { - return request({ - url: '/online/pageList', - method: 'get', - params: query - }) -} - -// 强退用户 -export function forceLogout(tokenId) { - return request({ - url: '/online/ForceOut/' + tokenId, - method: 'delete' - }) -} diff --git a/Yi.Vue3.X.RuoYi/src/api/monitor/operlog.js b/Yi.Vue3.X.RuoYi/src/api/monitor/operlog.js deleted file mode 100644 index 17c3470a..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/monitor/operlog.js +++ /dev/null @@ -1,27 +0,0 @@ -import request from '@/utils/request' - -// 查询操作日志列表 -export function list(query) { - return request({ - url: '/operationLog/pageList', - method: 'get', - params: query - }) -} - -// 删除操作日志 -export function delOperlog(operId) { - return request({ - url: '/operationLog/delList', - method: 'delete', - data:"string"==typeof(operId)?[operId]:operId - }) -} - -// 清空操作日志 -export function cleanOperlog() { - return request({ - url: '/operationLog/clear', - method: 'delete' - }) -} diff --git a/Yi.Vue3.X.RuoYi/src/api/monitor/server.js b/Yi.Vue3.X.RuoYi/src/api/monitor/server.js deleted file mode 100644 index e1f9ca21..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/monitor/server.js +++ /dev/null @@ -1,9 +0,0 @@ -import request from '@/utils/request' - -// 获取服务信息 -export function getServer() { - return request({ - url: '/monitor/server', - method: 'get' - }) -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/api/system/config.js b/Yi.Vue3.X.RuoYi/src/api/system/config.js deleted file mode 100644 index e1d549e6..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/system/config.js +++ /dev/null @@ -1,66 +0,0 @@ -import request from '@/utils/request' - -// 查询参数列表 -export function listConfig(query) { - return request({ - url: '/config/pageList', - method: 'get', - params: query - }) -} - -// 查询参数详细 -export function getConfig(configId) { - return request({ - url: '/config/getById/' + configId, - method: 'get' - }) -} - -// 根据参数键名查询参数值 -export function getConfigKey(configKey) { - return request({ - url: '/system/config/configKey/' + configKey, - method: 'get' - }) -} - -// 新增参数配置 -export function addConfig(data) { - return request({ - url: '/config/add', - method: 'post', - data: data - }) -} - -// 修改参数配置 -export function updateConfig(data) { - return request({ - url: '/config/update', - method: 'put', - data: data - }) -} - -// 删除参数配置 -export function delConfig(configId) { - -if("string"==typeof(configId)) -{ - configId=[configId]; -} - return request({ - url: '/config/delList', - method: 'delete', - data:configId - }) -} - -// 刷新参数缓存 -export function refreshCache() { - return request({ - url: '/system/config/refreshCache', - method: 'delete' - }) -} diff --git a/Yi.Vue3.X.RuoYi/src/api/system/dept.js b/Yi.Vue3.X.RuoYi/src/api/system/dept.js deleted file mode 100644 index cf28c932..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/system/dept.js +++ /dev/null @@ -1,66 +0,0 @@ -import request from '@/utils/request' - -// 查询部门列表 -export function listDept(query) { - return request({ - url: '/dept/SelctGetList', - method: 'get', - params: query - }) -} - -// // 查询部门列表(排除节点) -// export function listDeptExcludeChild(deptId) { -// return request({ -// url: '/system/dept/list/exclude/' + deptId, -// method: 'get' -// }) -// } - -// 查询部门详细 -export function getDept(deptId) { - return request({ - url: '/dept/getById/' + deptId, - method: 'get' - }) -} - -// 新增部门 -export function addDept(data) { - return request({ - url: '/dept/add', - method: 'post', - data: data - }) -} - -// 修改部门 -export function updateDept(data) { - return request({ - url: '/dept/update', - method: 'put', - data: data - }) -} - -// 删除部门 -export function delDept(deptId) { - if("string"==typeof(deptId)) - { - deptId=[deptId]; - } - return request({ - url: '/dept/delList', - method: 'delete', - data:deptId - }) -} - - -// 根据角色ID查询菜单下拉树结构 -export function roleDeptTreeselect(roleId) { - return request({ - url: '/dept/getListByRoleId/' + roleId, - method: 'get' - }) -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/api/system/dict/data.js b/Yi.Vue3.X.RuoYi/src/api/system/dict/data.js deleted file mode 100644 index 8f7766ea..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/system/dict/data.js +++ /dev/null @@ -1,58 +0,0 @@ -import request from '@/utils/request' - -// 查询字典数据列表 -export function listData(query) { - return request({ - url: '/dictionaryInfo/pageList', - method: 'get', - params: query - }) -} - -// 查询字典数据详细 -export function getData(dictCode) { - return request({ - url: '/dictionaryInfo/getById/' + dictCode, - method: 'get' - }) -} - -// 根据字典类型查询字典数据信息 -export function getDicts(dictType) { - return request({ - url: '/dictionaryInfo/GetListByType/' + dictType, - method: 'get' - }) -} - -// 新增字典数据 -export function addData(data) { - return request({ - url: '/dictionaryInfo/add', - method: 'post', - data: data - }) -} - -// 修改字典数据 -export function updateData(data) { - return request({ - url: '/dictionaryInfo/update', - method: 'put', - data: data - }) -} - -// 删除字典数据 -export function delData(dictCode) { - -if("string"==typeof(dictCode)) -{ - dictCode=[dictCode]; -} - return request({ - url: '/dictionaryInfo/delList', - method: 'delete', - data:dictCode - }) -} diff --git a/Yi.Vue3.X.RuoYi/src/api/system/dict/type.js b/Yi.Vue3.X.RuoYi/src/api/system/dict/type.js deleted file mode 100644 index 347686d6..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/system/dict/type.js +++ /dev/null @@ -1,65 +0,0 @@ -import request from '@/utils/request' - -// 查询字典类型列表 -export function listType(query) { - return request({ - url: '/dictionary/pageList', - method: 'get', - params: query - }) -} - -// 查询字典类型详细 -export function getType(dictId) { - return request({ - url: '/dictionary/getById/' + dictId, - method: 'get' - }) -} - -// 新增字典类型 -export function addType(data) { - return request({ - url: '/dictionary/add', - method: 'post', - data: data - }) -} - -// 修改字典类型 -export function updateType(data) { - return request({ - url: '/dictionary/update', - method: 'put', - data: data - }) -} - -// 删除字典类型 -export function delType(dictId) { - if("string"==typeof(dictId)) -{ - dictId=[dictId]; -} - return request({ - url: '/dictionary/delList', - method: 'delete', - data:dictId - }) -} - -// 刷新字典缓存 -export function refreshCache() { - return request({ - url: '/system/dict/type/refreshCache', - method: 'delete' - }) -} - -// 获取字典选择框列表 -export function optionselect() { - return request({ - url: '/dictionary/getList', - method: 'get' - }) -} diff --git a/Yi.Vue3.X.RuoYi/src/api/system/menu.js b/Yi.Vue3.X.RuoYi/src/api/system/menu.js deleted file mode 100644 index 2cab2ce1..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/system/menu.js +++ /dev/null @@ -1,65 +0,0 @@ -import request from '@/utils/request' - -// 查询菜单列表 -export function listMenu(query) { - return request({ - url: '/menu/selctGetList', - method: 'get', - params: query - }) -} - -// 查询菜单详细 -export function getMenu(menuId) { - return request({ - url: '/menu/getById/' + menuId, - method: 'get' - }) -} - -// 查询菜单下拉树结构 -export function treeselect() { - return request({ - url: '/system/menu/treeselect', - method: 'get' - }) -} - -// 根据角色ID查询菜单下拉树结构 -export function roleMenuTreeselect(roleId) { - return request({ - url: '/menu/getListByRoleId/' + roleId, - method: 'get' - }) -} - -// 新增菜单 -export function addMenu(data) { - return request({ - url: '/menu/add', - method: 'post', - data: data - }) -} - -// 修改菜单 -export function updateMenu(data) { - return request({ - url: '/menu/update', - method: 'put', - data: data - }) -} - -// 删除菜单 -export function delMenu(menuId) { - if("string"==typeof(menuId)) - { - menuId=[menuId]; - } - return request({ - url: '/menu/delList', - method: 'delete', - data:menuId - }) -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/api/system/notice.js b/Yi.Vue3.X.RuoYi/src/api/system/notice.js deleted file mode 100644 index c274ea5b..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/system/notice.js +++ /dev/null @@ -1,44 +0,0 @@ -import request from '@/utils/request' - -// 查询公告列表 -export function listNotice(query) { - return request({ - url: '/system/notice/list', - method: 'get', - params: query - }) -} - -// 查询公告详细 -export function getNotice(noticeId) { - return request({ - url: '/system/notice/' + noticeId, - method: 'get' - }) -} - -// 新增公告 -export function addNotice(data) { - return request({ - url: '/system/notice', - method: 'post', - data: data - }) -} - -// 修改公告 -export function updateNotice(data) { - return request({ - url: '/system/notice', - method: 'put', - data: data - }) -} - -// 删除公告 -export function delNotice(noticeId) { - return request({ - url: '/system/notice/' + noticeId, - method: 'delete' - }) -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/api/system/post.js b/Yi.Vue3.X.RuoYi/src/api/system/post.js deleted file mode 100644 index dd1eebf4..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/system/post.js +++ /dev/null @@ -1,58 +0,0 @@ -import request from '@/utils/request' - -// 查询岗位列表 -export function listPost(query) { - return request({ - url: '/post/pageList', - method: 'get', - params: query - }) -} - -// 查询岗位详细 -export function getPost(postId) { - return request({ - url: '/post/getById/' + postId, - method: 'get' - }) -} - -// 新增岗位 -export function addPost(data) { - return request({ - url: '/post/add', - method: 'post', - data: data - }) -} - -// 修改岗位 -export function updatePost(data) { - return request({ - url: '/post/update', - method: 'put', - data: data - }) -} - -// 删除岗位 -export function delPost(postId) { - if("string"==typeof(postId)) - { - postId=[postId]; - } - return request({ - url: '/post/delList', - method: 'delete', - data:postId - }) -} - -// 获取角色选择框列表 -export function postOptionselect() { - return request({ - url: '/post/getList', - method: 'get' - }) - -} diff --git a/Yi.Vue3.X.RuoYi/src/api/system/role.js b/Yi.Vue3.X.RuoYi/src/api/system/role.js deleted file mode 100644 index f000bd81..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/system/role.js +++ /dev/null @@ -1,129 +0,0 @@ -import request from '@/utils/request' - -// 查询角色列表 -export function listRole(query) { - return request({ - url: '/role/pageList', - method: 'get', - params: query - }) -} - - - -// 查询角色详细 -export function getRole(roleId) { - return request({ - url: '/role/getById/' + roleId, - method: 'get' - }) -} - -// 新增角色 -export function addRole(data) { - return request({ - url: '/role/add', - method: 'post', - data: data - }) -} - -// 修改角色 -export function updateRole(data) { - return request({ - url: '/role/update', - method: 'put', - data: data - }) -} - -// 角色数据权限 -export function dataScope(data) { - return request({ - url: '/role/UpdateDataScpoce', - method: 'put', - data: data - }) -} - -// 角色状态修改 -export function changeRoleStatus(roleId, isDel) { - return request({ - url: `/role/updateStatus?roleId=${roleId}&isDel=${isDel}`, - method: 'put' - }) -} - -// 删除角色 -export function delRole(roleId) { - if("string"==typeof(roleId)) - { - roleId=[roleId]; - } - return request({ - url: '/role/delList', - method: 'delete', - data:roleId - }) -} - -// 查询角色已授权用户列表 -export function allocatedUserList(query) { - return request({ - url: '/system/role/authUser/allocatedList', - method: 'get', - params: query - }) -} - -// 查询角色未授权用户列表 -export function unallocatedUserList(query) { - return request({ - url: '/system/role/authUser/unallocatedList', - method: 'get', - params: query - }) -} - -// 取消用户授权角色 -export function authUserCancel(data) { - return request({ - url: '/system/role/authUser/cancel', - method: 'put', - data: data - }) -} - -// 批量取消用户授权角色 -export function authUserCancelAll(data) { - return request({ - url: '/system/role/authUser/cancelAll', - method: 'put', - params: data - }) -} - -// 授权用户选择 -export function authUserSelectAll(data) { - return request({ - url: '/system/role/authUser/selectAll', - method: 'put', - params: data - }) -} - -// 根据角色ID查询部门树结构 -// export function deptTreeSelect(roleId) { -// return request({ -// url: '/system/role/deptTree/' + roleId, -// method: 'get' -// }) -// } -// 获取角色选择框列表 -export function roleOptionselect() { - return request({ - url: '/role/getList', - method: 'get' - }) - -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/api/system/user.js b/Yi.Vue3.X.RuoYi/src/api/system/user.js deleted file mode 100644 index aa88ec0f..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/system/user.js +++ /dev/null @@ -1,137 +0,0 @@ -import request from '@/utils/request.js' -import { parseStrEmpty } from "@/utils/ruoyi"; - -// 查询用户列表 -export function listUser(query) { - return request({ - url: '/user/pageList', - method: 'get', - params: query - }) -} - -// 查询用户详细 -export function getUser(userId) { - return request({ - url: '/user/getById/' + parseStrEmpty(userId), - method: 'get' - }) -} - -// 新增用户 -export function addUser(data) { - return request({ - url: '/user/add', - method: 'post', - data: data - }) -} - -// 修改用户 -export function updateUser(data) { - return request({ - url: '/user/update', - method: 'put', - data: data - }) -} - -// 删除用户 -export function delUser(userId) { - if("string"==typeof(userId)) - { - userId=[userId]; - } - return request({ - url: '/user/delList', - method: 'delete', - data:userId - }) -} - -// 用户密码重置 -export function resetUserPwd(id, password) { - const data = { - id, - password - } - - - return request({ - url: '/user/restPassword', - method: 'put', - data: data - }) -} - -// 用户状态修改 -export function changeUserStatus(userId, isDel) { - return request({ - url: `/user/updateStatus?userId=${userId}&isDel=${isDel}`, - method: 'put' - }) -} - -// 查询用户个人信息 -export function getUserProfile() { - return request({ - url: '/account/getUserAllInfo', - method: 'get' - }) -} - -// 修改用户个人信息 -export function updateUserProfile(data) { - return request({ - url: '/user/UpdateProfile', - method: 'put', - data: {user:data} - }) -} - -// 用户密码重置 -export function updateUserPwd(oldPassword, newPassword) { - const data = { - oldPassword, - newPassword - } - return request({ - url: '/account/UpdatePassword', - method: 'put', - data: data - }) -} - -// 用户头像上传 -export function uploadAvatar(data) { - return request({ - url: '/system/user/profile/avatar', - method: 'post', - data: data - }) -} - -// 查询授权角色 -export function getAuthRole(userId) { - return request({ - url: '/system/user/authRole/' + userId, - method: 'get' - }) -} - -// 保存授权角色 -export function updateAuthRole(data) { - return request({ - url: '/system/user/authRole', - method: 'put', - params: data - }) -} - -// // 查询部门下拉树结构 -// export function deptTreeSelect() { -// return request({ -// url: '/system/user/deptTree', -// method: 'get' -// }) -// } diff --git a/Yi.Vue3.X.RuoYi/src/api/tool/gen.js b/Yi.Vue3.X.RuoYi/src/api/tool/gen.js deleted file mode 100644 index 45069278..00000000 --- a/Yi.Vue3.X.RuoYi/src/api/tool/gen.js +++ /dev/null @@ -1,76 +0,0 @@ -import request from '@/utils/request' - -// 查询生成表数据 -export function listTable(query) { - return request({ - url: '/tool/gen/list', - method: 'get', - params: query - }) -} -// 查询db数据库列表 -export function listDbTable(query) { - return request({ - url: '/tool/gen/db/list', - method: 'get', - params: query - }) -} - -// 查询表详细信息 -export function getGenTable(tableId) { - return request({ - url: '/tool/gen/' + tableId, - method: 'get' - }) -} - -// 修改代码生成信息 -export function updateGenTable(data) { - return request({ - url: '/tool/gen', - method: 'put', - data: data - }) -} - -// 导入表 -export function importTable(data) { - return request({ - url: '/tool/gen/importTable', - method: 'post', - params: data - }) -} - -// 预览生成代码 -export function previewTable(tableId) { - return request({ - url: '/tool/gen/preview/' + tableId, - method: 'get' - }) -} - -// 删除表数据 -export function delTable(tableId) { - return request({ - url: '/tool/gen/' + tableId, - method: 'delete' - }) -} - -// 生成代码(自定义路径) -export function genCode(tableName) { - return request({ - url: '/tool/gen/genCode/' + tableName, - method: 'get' - }) -} - -// 同步数据库 -export function synchDb(tableName) { - return request({ - url: '/tool/gen/synchDb/' + tableName, - method: 'get' - }) -} diff --git a/Yi.Vue3.X.RuoYi/src/assets/401_images/401.gif b/Yi.Vue3.X.RuoYi/src/assets/401_images/401.gif deleted file mode 100644 index cd6e0d94..00000000 Binary files a/Yi.Vue3.X.RuoYi/src/assets/401_images/401.gif and /dev/null differ diff --git a/Yi.Vue3.X.RuoYi/src/assets/404_images/404.png b/Yi.Vue3.X.RuoYi/src/assets/404_images/404.png deleted file mode 100644 index 3d8e2305..00000000 Binary files a/Yi.Vue3.X.RuoYi/src/assets/404_images/404.png and /dev/null differ diff --git a/Yi.Vue3.X.RuoYi/src/assets/404_images/404_cloud.png b/Yi.Vue3.X.RuoYi/src/assets/404_images/404_cloud.png deleted file mode 100644 index c6281d09..00000000 Binary files a/Yi.Vue3.X.RuoYi/src/assets/404_images/404_cloud.png and /dev/null differ diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/404.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/404.svg deleted file mode 100644 index 6df50190..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/404.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/bug.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/bug.svg deleted file mode 100644 index 05a150dc..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/bug.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/build.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/build.svg deleted file mode 100644 index 97c46886..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/build.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/button.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/button.svg deleted file mode 100644 index 904fddc8..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/button.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/cascader.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/cascader.svg deleted file mode 100644 index e256024f..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/cascader.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/chart.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/chart.svg deleted file mode 100644 index 27728fb0..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/chart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/checkbox.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/checkbox.svg deleted file mode 100644 index 013fd3a2..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/checkbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/clipboard.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/clipboard.svg deleted file mode 100644 index 90923ff6..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/clipboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/code.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/code.svg deleted file mode 100644 index ed4d23cf..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/code.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/color.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/color.svg deleted file mode 100644 index 44a81aab..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/color.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/component.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/component.svg deleted file mode 100644 index 29c34580..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/component.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/dashboard.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/dashboard.svg deleted file mode 100644 index 5317d370..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/dashboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/date-range.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/date-range.svg deleted file mode 100644 index fda571e7..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/date-range.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/date.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/date.svg deleted file mode 100644 index 52dc73ee..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/date.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/dict.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/dict.svg deleted file mode 100644 index 48493773..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/dict.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/documentation.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/documentation.svg deleted file mode 100644 index 70431228..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/documentation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/download.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/download.svg deleted file mode 100644 index c8969513..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/drag.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/drag.svg deleted file mode 100644 index 4185d3ce..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/drag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/druid.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/druid.svg deleted file mode 100644 index a2b4b4ed..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/druid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/edit.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/edit.svg deleted file mode 100644 index d26101f2..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/education.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/education.svg deleted file mode 100644 index 7bfb01d1..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/education.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/email.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/email.svg deleted file mode 100644 index 74d25e21..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/email.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/example.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/example.svg deleted file mode 100644 index 46f42b53..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/example.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/excel.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/excel.svg deleted file mode 100644 index 74d97b80..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/excel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/exit-fullscreen.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/exit-fullscreen.svg deleted file mode 100644 index 485c128b..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/exit-fullscreen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/eye-open.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/eye-open.svg deleted file mode 100644 index 88dcc98e..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/eye-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/eye.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/eye.svg deleted file mode 100644 index 16ed2d87..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/form.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/form.svg deleted file mode 100644 index dcbaa185..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/form.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/fullscreen.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/fullscreen.svg deleted file mode 100644 index 0e86b6fa..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/fullscreen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/github.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/github.svg deleted file mode 100644 index db0a0d43..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/guide.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/guide.svg deleted file mode 100644 index b2710017..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/guide.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/icon.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/icon.svg deleted file mode 100644 index 82be8eee..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/input.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/input.svg deleted file mode 100644 index ab91381e..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/input.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/international.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/international.svg deleted file mode 100644 index e9b56eee..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/international.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/job.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/job.svg deleted file mode 100644 index 2a93a251..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/job.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/language.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/language.svg deleted file mode 100644 index 0082b577..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/language.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/link.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/link.svg deleted file mode 100644 index 48197ba4..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/link.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/list.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/list.svg deleted file mode 100644 index 20259edd..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/list.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/lock.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/lock.svg deleted file mode 100644 index 74fee543..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/log.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/log.svg deleted file mode 100644 index d879d33b..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/log.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/logininfor.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/logininfor.svg deleted file mode 100644 index 267f8447..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/logininfor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/message.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/message.svg deleted file mode 100644 index 14ca8172..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/message.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/money.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/money.svg deleted file mode 100644 index c1580de1..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/money.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/monitor.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/monitor.svg deleted file mode 100644 index bc308cb0..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/monitor.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/nested.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/nested.svg deleted file mode 100644 index 06713a86..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/nested.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/number.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/number.svg deleted file mode 100644 index ad5ce9af..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/number.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/online.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/online.svg deleted file mode 100644 index 330a2029..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/online.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/password.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/password.svg deleted file mode 100644 index 6c64defe..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/password.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/pdf.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/pdf.svg deleted file mode 100644 index 957aa0cc..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/pdf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/people.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/people.svg deleted file mode 100644 index 2bd54aeb..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/people.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/peoples.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/peoples.svg deleted file mode 100644 index aab852e5..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/peoples.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/phone.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/phone.svg deleted file mode 100644 index ab8e8c4e..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/phone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/post.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/post.svg deleted file mode 100644 index 2922c613..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/post.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/qq.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/qq.svg deleted file mode 100644 index ee13d4ec..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/qq.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/question.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/question.svg deleted file mode 100644 index cf75bd4b..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/radio.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/radio.svg deleted file mode 100644 index 0cde3452..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/radio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/rate.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/rate.svg deleted file mode 100644 index aa3b14d7..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/rate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/redis-list.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/redis-list.svg deleted file mode 100644 index 98a15b2a..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/redis-list.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/redis.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/redis.svg deleted file mode 100644 index 2f1d62df..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/redis.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/row.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/row.svg deleted file mode 100644 index 07809922..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/row.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/search.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/search.svg deleted file mode 100644 index 84233dda..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/select.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/select.svg deleted file mode 100644 index d6283828..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/select.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/server.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/server.svg deleted file mode 100644 index ca37b001..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/server.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/shopping.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/shopping.svg deleted file mode 100644 index 87513e7c..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/shopping.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/size.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/size.svg deleted file mode 100644 index ddb25b8d..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/size.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/skill.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/skill.svg deleted file mode 100644 index a3b73121..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/skill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/slider.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/slider.svg deleted file mode 100644 index fbe4f39f..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/slider.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/star.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/star.svg deleted file mode 100644 index 6cf86e66..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/swagger.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/swagger.svg deleted file mode 100644 index 05d4e7bc..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/swagger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/switch.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/switch.svg deleted file mode 100644 index 0ba61e38..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/system.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/system.svg deleted file mode 100644 index dba28cf6..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/system.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/tab.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/tab.svg deleted file mode 100644 index b4b48e48..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/tab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/table.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/table.svg deleted file mode 100644 index 0e3dc9de..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/textarea.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/textarea.svg deleted file mode 100644 index 2709f292..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/textarea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/theme.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/theme.svg deleted file mode 100644 index 5982a2f7..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/theme.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/time-range.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/time-range.svg deleted file mode 100644 index 13c1202b..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/time-range.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/time.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/time.svg deleted file mode 100644 index b376e32a..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/time.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/tool.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/tool.svg deleted file mode 100644 index c813067e..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/tool.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/tree-table.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/tree-table.svg deleted file mode 100644 index 8aafdb82..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/tree-table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/tree.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/tree.svg deleted file mode 100644 index dd4b7dd2..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/tree.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/upload.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/upload.svg deleted file mode 100644 index bae49c0a..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/upload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/user.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/user.svg deleted file mode 100644 index 0ba0716a..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/user.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/validCode.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/validCode.svg deleted file mode 100644 index cfb10214..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/validCode.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/wechat.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/wechat.svg deleted file mode 100644 index c586e551..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/wechat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/zip.svg b/Yi.Vue3.X.RuoYi/src/assets/icons/svg/zip.svg deleted file mode 100644 index f806fc48..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/icons/svg/zip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/images/dark.svg b/Yi.Vue3.X.RuoYi/src/assets/images/dark.svg deleted file mode 100644 index f646bd7e..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/images/dark.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/images/light.svg b/Yi.Vue3.X.RuoYi/src/assets/images/light.svg deleted file mode 100644 index ab7cc088..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/images/light.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/images/login-background.jpg b/Yi.Vue3.X.RuoYi/src/assets/images/login-background.jpg deleted file mode 100644 index 3607a99d..00000000 Binary files a/Yi.Vue3.X.RuoYi/src/assets/images/login-background.jpg and /dev/null differ diff --git a/Yi.Vue3.X.RuoYi/src/assets/images/profile.jpg b/Yi.Vue3.X.RuoYi/src/assets/images/profile.jpg deleted file mode 100644 index aa4daf73..00000000 Binary files a/Yi.Vue3.X.RuoYi/src/assets/images/profile.jpg and /dev/null differ diff --git a/Yi.Vue3.X.RuoYi/src/assets/logo/logo.png b/Yi.Vue3.X.RuoYi/src/assets/logo/logo.png deleted file mode 100644 index e2637602..00000000 Binary files a/Yi.Vue3.X.RuoYi/src/assets/logo/logo.png and /dev/null differ diff --git a/Yi.Vue3.X.RuoYi/src/assets/styles/btn.scss b/Yi.Vue3.X.RuoYi/src/assets/styles/btn.scss deleted file mode 100644 index 3590d8d2..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/styles/btn.scss +++ /dev/null @@ -1,99 +0,0 @@ -@import './variables.module.scss'; - -@mixin colorBtn($color) { - background: $color; - - &:hover { - color: $color; - - &:before, - &:after { - background: $color; - } - } -} - -.blue-btn { - @include colorBtn($blue) -} - -.light-blue-btn { - @include colorBtn($light-blue) -} - -.red-btn { - @include colorBtn($red) -} - -.pink-btn { - @include colorBtn($pink) -} - -.green-btn { - @include colorBtn($green) -} - -.tiffany-btn { - @include colorBtn($tiffany) -} - -.yellow-btn { - @include colorBtn($yellow) -} - -.pan-btn { - font-size: 14px; - color: #fff; - padding: 14px 36px; - border-radius: 8px; - border: none; - outline: none; - transition: 600ms ease all; - position: relative; - display: inline-block; - - &:hover { - background: #fff; - - &:before, - &:after { - width: 100%; - transition: 600ms ease all; - } - } - - &:before, - &:after { - content: ''; - position: absolute; - top: 0; - right: 0; - height: 2px; - width: 0; - transition: 400ms ease all; - } - - &::after { - right: inherit; - top: inherit; - left: 0; - bottom: 0; - } -} - -.custom-button { - display: inline-block; - line-height: 1; - white-space: nowrap; - cursor: pointer; - background: #fff; - color: #fff; - -webkit-appearance: none; - text-align: center; - box-sizing: border-box; - outline: 0; - margin: 0; - padding: 10px 15px; - font-size: 14px; - border-radius: 4px; -} diff --git a/Yi.Vue3.X.RuoYi/src/assets/styles/element-ui.scss b/Yi.Vue3.X.RuoYi/src/assets/styles/element-ui.scss deleted file mode 100644 index 0f175f25..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/styles/element-ui.scss +++ /dev/null @@ -1,96 +0,0 @@ -// cover some element-ui styles - -.el-breadcrumb__inner, -.el-breadcrumb__inner a { - font-weight: 400 !important; -} - -.el-upload { - input[type="file"] { - display: none !important; - } -} - -.el-upload__input { - display: none; -} - -.cell { - .el-tag { - margin-right: 0px; - } -} - -.small-padding { - .cell { - padding-left: 5px; - padding-right: 5px; - } -} - -.fixed-width { - .el-button--mini { - padding: 7px 10px; - width: 60px; - } -} - -.status-col { - .cell { - padding: 0 10px; - text-align: center; - - .el-tag { - margin-right: 0px; - } - } -} - -// to fixed https://github.com/ElemeFE/element/issues/2461 -.el-dialog { - transform: none; - left: 0; - position: relative; - margin: 0 auto; -} - -// refine element ui upload -.upload-container { - .el-upload { - width: 100%; - - .el-upload-dragger { - width: 100%; - height: 200px; - } - } -} - -// dropdown -.el-dropdown-menu { - a { - display: block - } -} - -// fix date-picker ui bug in filter-item -.el-range-editor.el-input__inner { - display: inline-flex !important; -} - -// to fix el-date-picker css style -.el-range-separator { - box-sizing: content-box; -} - -.el-menu--collapse - > div - > .el-submenu - > .el-submenu__title - .el-submenu__icon-arrow { - display: none; -} - -.el-dropdown .el-dropdown-link{ - color: var(--el-color-primary) !important; -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/assets/styles/index.scss b/Yi.Vue3.X.RuoYi/src/assets/styles/index.scss deleted file mode 100644 index 29dd2b9e..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/styles/index.scss +++ /dev/null @@ -1,193 +0,0 @@ -@import './variables.module.scss'; -@import './mixin.scss'; -@import './transition.scss'; -@import './element-ui.scss'; -@import './sidebar.scss'; -@import './btn.scss'; -@import './ruoyi.scss'; - -body { - height: 100%; - margin: 0; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; - font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif; -} - -label { - font-weight: 700; -} - -html { - height: 100%; - box-sizing: border-box; -} - -#app { - height: 100%; -} - -*, -*:before, -*:after { - box-sizing: inherit; -} - -.no-padding { - padding: 0px !important; -} - -.padding-content { - padding: 4px 0; -} - -a:focus, -a:active { - outline: none; -} - -a, -a:focus, -a:hover { - cursor: pointer; - color: inherit; - text-decoration: none; -} - -div:focus { - outline: none; -} - -.fr { - float: right; -} - -.fl { - float: left; -} - -.pr-5 { - padding-right: 5px; -} - -.pl-5 { - padding-left: 5px; -} - -.block { - display: block; -} - -.pointer { - cursor: pointer; -} - -.inlineBlock { - display: block; -} - -.clearfix { - &:after { - visibility: hidden; - display: block; - font-size: 0; - content: " "; - clear: both; - height: 0; - } -} - -aside { - background: #eef1f6; - 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: #2c3e50; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - - a { - color: #337ab7; - cursor: pointer; - - &:hover { - color: rgb(32, 160, 255); - } - } -} - -//main-container全局样式 -.app-container { - padding: 20px; -} - -.components-container { - margin: 30px 50px; - position: relative; -} - -.pagination-container { - margin-top: 30px; -} - -.text-center { - text-align: center -} - -.sub-navbar { - height: 50px; - line-height: 50px; - position: relative; - width: 100%; - text-align: right; - padding-right: 20px; - transition: 600ms ease position; - background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%); - - .subtitle { - font-size: 20px; - color: #fff; - } - - &.draft { - background: #d0d0d0; - } - - &.deleted { - background: #d0d0d0; - } -} - -.link-type, -.link-type:focus { - color: #337ab7; - cursor: pointer; - - &:hover { - color: rgb(32, 160, 255); - } -} - -.filter-container { - padding-bottom: 10px; - - .filter-item { - display: inline-block; - vertical-align: middle; - margin-bottom: 10px; - } -} - -//refine vue-multiselect plugin -.multiselect { - line-height: 16px; -} - -.multiselect--active { - z-index: 1000 !important; -} diff --git a/Yi.Vue3.X.RuoYi/src/assets/styles/mixin.scss b/Yi.Vue3.X.RuoYi/src/assets/styles/mixin.scss deleted file mode 100644 index 06fa0612..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/styles/mixin.scss +++ /dev/null @@ -1,66 +0,0 @@ -@mixin clearfix { - &:after { - content: ""; - display: table; - clear: both; - } -} - -@mixin scrollBar { - &::-webkit-scrollbar-track-piece { - background: #d3dce6; - } - - &::-webkit-scrollbar { - width: 6px; - } - - &::-webkit-scrollbar-thumb { - background: #99a9bf; - border-radius: 20px; - } -} - -@mixin relative { - position: relative; - width: 100%; - height: 100%; -} - -@mixin pct($pct) { - width: #{$pct}; - position: relative; - margin: 0 auto; -} - -@mixin triangle($width, $height, $color, $direction) { - $width: $width/2; - $color-border-style: $height solid $color; - $transparent-border-style: $width solid transparent; - height: 0; - width: 0; - - @if $direction==up { - border-bottom: $color-border-style; - border-left: $transparent-border-style; - border-right: $transparent-border-style; - } - - @else if $direction==right { - border-left: $color-border-style; - border-top: $transparent-border-style; - border-bottom: $transparent-border-style; - } - - @else if $direction==down { - border-top: $color-border-style; - border-left: $transparent-border-style; - border-right: $transparent-border-style; - } - - @else if $direction==left { - border-right: $color-border-style; - border-top: $transparent-border-style; - border-bottom: $transparent-border-style; - } -} diff --git a/Yi.Vue3.X.RuoYi/src/assets/styles/ruoyi.scss b/Yi.Vue3.X.RuoYi/src/assets/styles/ruoyi.scss deleted file mode 100644 index 68c7d900..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/styles/ruoyi.scss +++ /dev/null @@ -1,274 +0,0 @@ - /** - * 通用css样式布局处理 - * Copyright (c) 2019 ruoyi - */ - - /** 基础通用 **/ -.pt5 { - padding-top: 5px; -} -.pr5 { - padding-right: 5px; -} -.pb5 { - padding-bottom: 5px; -} -.mt5 { - margin-top: 5px; -} -.mr5 { - margin-right: 5px; -} -.mb5 { - margin-bottom: 5px; -} -.mb8 { - margin-bottom: 8px; -} -.ml5 { - margin-left: 5px; -} -.mt10 { - margin-top: 10px; -} -.mr10 { - margin-right: 10px; -} -.mb10 { - margin-bottom: 10px; -} -.ml10 { - margin-left: 10px; -} -.mt20 { - margin-top: 20px; -} -.mr20 { - margin-right: 20px; -} -.mb20 { - margin-bottom: 20px; -} -.ml20 { - margin-left: 20px; -} - -.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; -} - -.el-dialog:not(.is-fullscreen) { - margin-top: 6vh !important; -} - -.el-dialog.scrollbar .el-dialog__body { - overflow: auto; - overflow-x: hidden; - max-height: 70vh; - padding: 10px 20px 0; -} - -.el-table { - .el-table__header-wrapper, .el-table__fixed-header-wrapper { - th { - word-break: break-word; - background-color: #f8f8f9 !important; - color: #515a6e; - height: 40px !important; - font-size: 13px; - } - } - .el-table__body-wrapper { - .el-button [class*="el-icon-"] + span { - margin-left: 1px; - } - } -} - -/** 表单布局 **/ -.form-header { - font-size:15px; - color:#6379bb; - border-bottom:1px solid #ddd; - margin:8px 10px 25px 10px; - padding-bottom:5px -} - -/** 表格布局 **/ -.pagination-container { - // position: relative; - height: 25px; - margin-bottom: 10px; - margin-top: 15px; - padding: 10px 20px !important; -} - -/* tree border */ -.tree-border { - margin-top: 5px; - border: 1px solid #e5e6e7; - background: #FFFFFF none; - border-radius:4px; - width: 100%; -} - -.pagination-container .el-pagination { - right: 0; - position: absolute; -} - -@media ( max-width : 768px) { - .pagination-container .el-pagination > .el-pagination__jump { - display: none !important; - } - .pagination-container .el-pagination > .el-pagination__sizes { - display: none !important; - } -} - -.el-table .fixed-width .el-button--small { - padding-left: 0; - padding-right: 0; - width: inherit; -} - -/** 表格更多操作下拉样式 */ -.el-table .el-dropdown-link { - cursor: pointer; - color: #409EFF; - margin-left: 10px; -} - -.el-table .el-dropdown, .el-icon-arrow-down { - font-size: 12px; -} - -.el-tree-node__content > .el-checkbox { - margin-right: 8px; -} - -.list-group-striped > .list-group-item { - border-left: 0; - border-right: 0; - border-radius: 0; - padding-left: 0; - padding-right: 0; -} - -.list-group { - padding-left: 0px; - list-style: none; -} - -.list-group-item { - border-bottom: 1px solid #e7eaec; - border-top: 1px solid #e7eaec; - margin-bottom: -1px; - padding: 11px 0px; - font-size: 13px; -} - -.pull-right { - float: right !important; -} - -.el-card__header { - padding: 14px 15px 7px !important; - min-height: 40px; -} - -.el-card__body { - padding: 15px 20px 20px 20px !important; -} - -.card-box { - padding-right: 15px; - padding-left: 15px; - margin-bottom: 10px; -} - -/* button color */ -.el-button--cyan.is-active, -.el-button--cyan:active { - background: #20B2AA; - border-color: #20B2AA; - color: #FFFFFF; -} - -.el-button--cyan:focus, -.el-button--cyan:hover { - background: #48D1CC; - border-color: #48D1CC; - color: #FFFFFF; -} - -.el-button--cyan { - background-color: #20B2AA; - border-color: #20B2AA; - color: #FFFFFF; -} - -/* text color */ -.text-navy { - color: #1ab394; -} - -.text-primary { - color: inherit; -} - -.text-success { - color: #1c84c6; -} - -.text-info { - color: #23c6c8; -} - -.text-warning { - color: #f8ac59; -} - -.text-danger { - color: #ed5565; -} - -.text-muted { - color: #888888; -} - -/* image */ -.img-circle { - border-radius: 50%; -} - -.img-lg { - width: 120px; - height: 120px; -} - -.avatar-upload-preview { - position: absolute; - top: 50%; - transform: translate(50%, -50%); - width: 200px; - height: 200px; - border-radius: 50%; - box-shadow: 0 0 4px #ccc; - overflow: hidden; -} - -/* 拖拽列样式 */ -.sortable-ghost{ - opacity: .8; - color: #fff!important; - background: #42b983!important; -} - -/* 表格右侧工具栏样式 */ -.top-right-btn { - margin-left: auto; -} diff --git a/Yi.Vue3.X.RuoYi/src/assets/styles/sidebar.scss b/Yi.Vue3.X.RuoYi/src/assets/styles/sidebar.scss deleted file mode 100644 index 0808812d..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/styles/sidebar.scss +++ /dev/null @@ -1,238 +0,0 @@ -#app { - - .main-container { - min-height: 100%; - transition: margin-left .28s; - margin-left: $base-sidebar-width; - position: relative; - } - - .sidebarHide { - margin-left: 0!important; - } - - .sidebar-container { - -webkit-transition: width .28s; - transition: width 0.28s; - width: $base-sidebar-width !important; - background-color: $base-menu-background; - height: 100%; - position: fixed; - font-size: 0px; - top: 0; - bottom: 0; - left: 0; - z-index: 1001; - overflow: hidden; - -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35); - box-shadow: 2px 0 6px rgba(0,21,41,.35); - - // reset element-ui css - .horizontal-collapse-transition { - transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; - } - - .scrollbar-wrapper { - overflow-x: hidden !important; - } - - .el-scrollbar__bar.is-vertical { - right: 0px; - } - - .el-scrollbar { - height: 100%; - } - - &.has-logo { - .el-scrollbar { - height: calc(100% - 50px); - } - } - - .is-horizontal { - display: none; - } - - a { - display: inline-block; - width: 100%; - overflow: hidden; - } - - .svg-icon { - margin-right: 16px; - } - - .el-menu { - border: none; - height: 100%; - width: 100% !important; - } - - .el-menu-item, .menu-title { - overflow: hidden !important; - text-overflow: ellipsis !important; - white-space: nowrap !important; - } - - .el-menu-item .el-menu-tooltip__trigger { - display: inline-block !important; - } - - // menu hover - .sub-menu-title-noDropdown, - .el-sub-menu__title { - &:hover { - background-color: rgba(0, 0, 0, 0.06) !important; - } - } - - & .theme-dark .is-active > .el-sub-menu__title { - color: $base-menu-color-active !important; - } - - & .nest-menu .el-sub-menu>.el-sub-menu__title, - & .el-sub-menu .el-menu-item { - min-width: $base-sidebar-width !important; - - &:hover { - background-color: rgba(0, 0, 0, 0.06) !important; - } - } - - & .theme-dark .nest-menu .el-sub-menu>.el-sub-menu__title, - & .theme-dark .el-sub-menu .el-menu-item { - background-color: $base-sub-menu-background !important; - - &:hover { - background-color: $base-sub-menu-hover !important; - } - } - } - - .hideSidebar { - .sidebar-container { - width: 54px !important; - } - - .main-container { - margin-left: 54px; - } - - .sub-menu-title-noDropdown { - padding: 0 !important; - position: relative; - - .el-tooltip { - padding: 0 !important; - - .svg-icon { - margin-left: 20px; - } - } - } - - .el-sub-menu { - overflow: hidden; - - &>.el-sub-menu__title { - padding: 0 !important; - - .svg-icon { - margin-left: 20px; - } - - } - } - - .el-menu--collapse { - .el-sub-menu { - &>.el-sub-menu__title { - &>span { - height: 0; - width: 0; - overflow: hidden; - visibility: hidden; - display: inline-block; - } - &>i { - height: 0; - width: 0; - overflow: hidden; - visibility: hidden; - display: inline-block; - } - } - } - } - } - - .el-menu--collapse .el-menu .el-sub-menu { - min-width: $base-sidebar-width !important; - } - - // mobile responsive - .mobile { - .main-container { - margin-left: 0px; - } - - .sidebar-container { - transition: transform .28s; - width: $base-sidebar-width !important; - } - - &.hideSidebar { - .sidebar-container { - pointer-events: none; - transition-duration: 0.3s; - transform: translate3d(-$base-sidebar-width, 0, 0); - } - } - } - - .withoutAnimation { - - .main-container, - .sidebar-container { - transition: none; - } - } -} - -// when menu collapsed -.el-menu--vertical { - &>.el-menu { - .svg-icon { - margin-right: 16px; - } - } - - .nest-menu .el-sub-menu>.el-sub-menu__title, - .el-menu-item { - &:hover { - // you can use $sub-menuHover - background-color: rgba(0, 0, 0, 0.06) !important; - } - } - - // the scroll bar appears when the sub-menu is too long - >.el-menu--popup { - max-height: 100vh; - overflow-y: auto; - - &::-webkit-scrollbar-track-piece { - background: #d3dce6; - } - - &::-webkit-scrollbar { - width: 6px; - } - - &::-webkit-scrollbar-thumb { - background: #99a9bf; - border-radius: 20px; - } - } -} diff --git a/Yi.Vue3.X.RuoYi/src/assets/styles/transition.scss b/Yi.Vue3.X.RuoYi/src/assets/styles/transition.scss deleted file mode 100644 index eb498955..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/styles/transition.scss +++ /dev/null @@ -1,53 +0,0 @@ -// global transition css - -/* fade */ -.fade-enter-active, -.fade-leave-active { - transition: opacity 0.28s; -} - -.fade-enter, -.fade-leave-active { - opacity: 0; -} - -/* fade-transform */ -.fade-transform--move, -.fade-transform-leave-active, -.fade-transform-enter-active { - transition: all .5s; -} - -.fade-transform-leave-active { - position: absolute; -} - -.fade-transform-enter { - opacity: 0; - transform: translateX(-30px); -} - -.fade-transform-leave-to { - opacity: 0; - transform: translateX(30px); -} - -/* breadcrumb transition */ -.breadcrumb-enter-active, -.breadcrumb-leave-active { - transition: all .5s; -} - -.breadcrumb-enter, -.breadcrumb-leave-active { - opacity: 0; - transform: translateX(20px); -} - -.breadcrumb-move { - transition: all .5s; -} - -.breadcrumb-leave-active { - position: absolute; -} diff --git a/Yi.Vue3.X.RuoYi/src/assets/styles/variables.module.scss b/Yi.Vue3.X.RuoYi/src/assets/styles/variables.module.scss deleted file mode 100644 index 3dbfaa7c..00000000 --- a/Yi.Vue3.X.RuoYi/src/assets/styles/variables.module.scss +++ /dev/null @@ -1,65 +0,0 @@ -// base color -$blue: #324157; -$light-blue: #3A71A8; -$red: #C03639; -$pink: #E65D6E; -$green: #30B08F; -$tiffany: #4AB7BD; -$yellow: #FEC171; -$panGreen: #30B08F; - -// 默认菜单主题风格 -$base-menu-color: #bfcbd9; -$base-menu-color-active: #f4f4f5; -$base-menu-background: #304156; -$base-logo-title-color: #ffffff; - -$base-menu-light-color: rgba(0, 0, 0, 0.7); -$base-menu-light-background: #ffffff; -$base-logo-light-title-color: #001529; - -$base-sub-menu-background: #1f2d3d; -$base-sub-menu-hover: #001528; - -// 自定义暗色菜单风格 -/** -$base-menu-color:hsla(0,0%,100%,.65); -$base-menu-color-active:#fff; -$base-menu-background:#001529; -$base-logo-title-color: #ffffff; - -$base-menu-light-color:rgba(0,0,0,.70); -$base-menu-light-background:#ffffff; -$base-logo-light-title-color: #001529; - -$base-sub-menu-background:#000c17; -$base-sub-menu-hover:#001528; -*/ - -$--color-primary: #409EFF; -$--color-success: #67C23A; -$--color-warning: #E6A23C; -$--color-danger: #F56C6C; -$--color-info: #909399; - -$base-sidebar-width: 200px; - -// the :export directive is the magic sauce for webpack -// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass -:export { - menuColor: $base-menu-color; - menuLightColor: $base-menu-light-color; - menuColorActive: $base-menu-color-active; - menuBackground: $base-menu-background; - menuLightBackground: $base-menu-light-background; - subMenuBackground: $base-sub-menu-background; - subMenuHover: $base-sub-menu-hover; - sideBarWidth: $base-sidebar-width; - logoTitleColor: $base-logo-title-color; - logoLightTitleColor: $base-logo-light-title-color; - primaryColor: $--color-primary; - successColor: $--color-success; - dangerColor: $--color-danger; - infoColor: $--color-info; - warningColor: $--color-warning; -} diff --git a/Yi.Vue3.X.RuoYi/src/components/Breadcrumb/index.vue b/Yi.Vue3.X.RuoYi/src/components/Breadcrumb/index.vue deleted file mode 100644 index 489cba15..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/Breadcrumb/index.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/components/DictTag/index.vue b/Yi.Vue3.X.RuoYi/src/components/DictTag/index.vue deleted file mode 100644 index c03a1a6f..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/DictTag/index.vue +++ /dev/null @@ -1,49 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/components/FileUpload/index.vue b/Yi.Vue3.X.RuoYi/src/components/FileUpload/index.vue deleted file mode 100644 index 7ab1e8b6..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/FileUpload/index.vue +++ /dev/null @@ -1,212 +0,0 @@ - - - - - diff --git a/Yi.Vue3.X.RuoYi/src/components/Hamburger/index.vue b/Yi.Vue3.X.RuoYi/src/components/Hamburger/index.vue deleted file mode 100644 index 18c201e6..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/Hamburger/index.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - - diff --git a/Yi.Vue3.X.RuoYi/src/components/HeaderSearch/index.vue b/Yi.Vue3.X.RuoYi/src/components/HeaderSearch/index.vue deleted file mode 100644 index 7963095b..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/HeaderSearch/index.vue +++ /dev/null @@ -1,180 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/components/IconSelect/index.vue b/Yi.Vue3.X.RuoYi/src/components/IconSelect/index.vue deleted file mode 100644 index 5b068060..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/IconSelect/index.vue +++ /dev/null @@ -1,74 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/components/IconSelect/requireIcons.js b/Yi.Vue3.X.RuoYi/src/components/IconSelect/requireIcons.js deleted file mode 100644 index ac22fd78..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/IconSelect/requireIcons.js +++ /dev/null @@ -1,8 +0,0 @@ -let icons = [] -const modules = import.meta.glob('./../../assets/icons/svg/*.svg'); -for (const path in modules) { - const p = path.split('assets/icons/svg/')[1].split('.svg')[0]; - icons.push(p); -} - -export default icons \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/components/ImagePreview/index.vue b/Yi.Vue3.X.RuoYi/src/components/ImagePreview/index.vue deleted file mode 100644 index b607ab66..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/ImagePreview/index.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - - - diff --git a/Yi.Vue3.X.RuoYi/src/components/ImageUpload/index.vue b/Yi.Vue3.X.RuoYi/src/components/ImageUpload/index.vue deleted file mode 100644 index 55dafb84..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/ImageUpload/index.vue +++ /dev/null @@ -1,213 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/components/Pagination/index.vue b/Yi.Vue3.X.RuoYi/src/components/Pagination/index.vue deleted file mode 100644 index 38de953f..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/Pagination/index.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/components/ParentView/index.vue b/Yi.Vue3.X.RuoYi/src/components/ParentView/index.vue deleted file mode 100644 index 7bf61489..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/ParentView/index.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/Yi.Vue3.X.RuoYi/src/components/RightToolbar/index.vue b/Yi.Vue3.X.RuoYi/src/components/RightToolbar/index.vue deleted file mode 100644 index becb12c1..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/RightToolbar/index.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/components/RuoYi/Doc/index.vue b/Yi.Vue3.X.RuoYi/src/components/RuoYi/Doc/index.vue deleted file mode 100644 index 51f13cb6..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/RuoYi/Doc/index.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/components/RuoYi/Git/index.vue b/Yi.Vue3.X.RuoYi/src/components/RuoYi/Git/index.vue deleted file mode 100644 index b4459f3f..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/RuoYi/Git/index.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/components/Screenfull/index.vue b/Yi.Vue3.X.RuoYi/src/components/Screenfull/index.vue deleted file mode 100644 index 7ad28ead..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/Screenfull/index.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/components/SizeSelect/index.vue b/Yi.Vue3.X.RuoYi/src/components/SizeSelect/index.vue deleted file mode 100644 index 4c2e7e95..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/SizeSelect/index.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/components/SvgIcon/index.vue b/Yi.Vue3.X.RuoYi/src/components/SvgIcon/index.vue deleted file mode 100644 index 8c101f64..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/SvgIcon/index.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - - - diff --git a/Yi.Vue3.X.RuoYi/src/components/SvgIcon/svgicon.js b/Yi.Vue3.X.RuoYi/src/components/SvgIcon/svgicon.js deleted file mode 100644 index 4431719a..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/SvgIcon/svgicon.js +++ /dev/null @@ -1,10 +0,0 @@ -import * as components from '@element-plus/icons-vue' - -export default { - install: (app) => { - for (const key in components) { - const componentConfig = components[key]; - app.component(componentConfig.name, componentConfig); - } - }, -}; diff --git a/Yi.Vue3.X.RuoYi/src/components/TopNav/index.vue b/Yi.Vue3.X.RuoYi/src/components/TopNav/index.vue deleted file mode 100644 index aa34103b..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/TopNav/index.vue +++ /dev/null @@ -1,181 +0,0 @@ - - - - - diff --git a/Yi.Vue3.X.RuoYi/src/components/TreeSelect/index.vue b/Yi.Vue3.X.RuoYi/src/components/TreeSelect/index.vue deleted file mode 100644 index 4ff0e76d..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/TreeSelect/index.vue +++ /dev/null @@ -1,156 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/components/iFrame/index.vue b/Yi.Vue3.X.RuoYi/src/components/iFrame/index.vue deleted file mode 100644 index 091b1a24..00000000 --- a/Yi.Vue3.X.RuoYi/src/components/iFrame/index.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/layout/components/Navbar.vue b/Yi.Vue3.X.RuoYi/src/layout/components/Navbar.vue deleted file mode 100644 index ab4d5f36..00000000 --- a/Yi.Vue3.X.RuoYi/src/layout/components/Navbar.vue +++ /dev/null @@ -1,191 +0,0 @@ - - - - - diff --git a/Yi.Vue3.X.RuoYi/src/layout/components/Settings/index.vue b/Yi.Vue3.X.RuoYi/src/layout/components/Settings/index.vue deleted file mode 100644 index 3360959c..00000000 --- a/Yi.Vue3.X.RuoYi/src/layout/components/Settings/index.vue +++ /dev/null @@ -1,241 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/layout/components/Sidebar/Link.vue b/Yi.Vue3.X.RuoYi/src/layout/components/Sidebar/Link.vue deleted file mode 100644 index 80114316..00000000 --- a/Yi.Vue3.X.RuoYi/src/layout/components/Sidebar/Link.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/layout/components/Sidebar/Logo.vue b/Yi.Vue3.X.RuoYi/src/layout/components/Sidebar/Logo.vue deleted file mode 100644 index e994dfd1..00000000 --- a/Yi.Vue3.X.RuoYi/src/layout/components/Sidebar/Logo.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/layout/components/Sidebar/SidebarItem.vue b/Yi.Vue3.X.RuoYi/src/layout/components/Sidebar/SidebarItem.vue deleted file mode 100644 index c423fb18..00000000 --- a/Yi.Vue3.X.RuoYi/src/layout/components/Sidebar/SidebarItem.vue +++ /dev/null @@ -1,102 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/layout/components/Sidebar/index.vue b/Yi.Vue3.X.RuoYi/src/layout/components/Sidebar/index.vue deleted file mode 100644 index 9b14dfc0..00000000 --- a/Yi.Vue3.X.RuoYi/src/layout/components/Sidebar/index.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/layout/components/TagsView/ScrollPane.vue b/Yi.Vue3.X.RuoYi/src/layout/components/TagsView/ScrollPane.vue deleted file mode 100644 index 5b0db3e1..00000000 --- a/Yi.Vue3.X.RuoYi/src/layout/components/TagsView/ScrollPane.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/layout/components/TagsView/index.vue b/Yi.Vue3.X.RuoYi/src/layout/components/TagsView/index.vue deleted file mode 100644 index 4fbd8d81..00000000 --- a/Yi.Vue3.X.RuoYi/src/layout/components/TagsView/index.vue +++ /dev/null @@ -1,338 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/layout/components/index.js b/Yi.Vue3.X.RuoYi/src/layout/components/index.js deleted file mode 100644 index fd577313..00000000 --- a/Yi.Vue3.X.RuoYi/src/layout/components/index.js +++ /dev/null @@ -1,4 +0,0 @@ -export { default as AppMain } from './AppMain' -export { default as Navbar } from './Navbar' -export { default as Settings } from './Settings' -export { default as TagsView } from './TagsView/index.vue' diff --git a/Yi.Vue3.X.RuoYi/src/layout/index.vue b/Yi.Vue3.X.RuoYi/src/layout/index.vue deleted file mode 100644 index 3ddb1657..00000000 --- a/Yi.Vue3.X.RuoYi/src/layout/index.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/main.js b/Yi.Vue3.X.RuoYi/src/main.js deleted file mode 100644 index 8d35b53c..00000000 --- a/Yi.Vue3.X.RuoYi/src/main.js +++ /dev/null @@ -1,86 +0,0 @@ -import { createApp } from 'vue' - -import Cookies from 'js-cookie' - -import ElementPlus from 'element-plus' -import locale from 'element-plus/lib/locale/lang/zh-cn' // 中文语言 - -import '@/assets/styles/index.scss' // global css - -import App from './App' -import store from './store' -import router from './router' -import directive from './directive' // directive - - -// 注册指令 -import plugins from './plugins' // plugins -import { download } from '@/utils/ruoyi.js' - -// svg图标 -import 'virtual:svg-icons-register' -import SvgIcon from '@/components/SvgIcon' -import elementIcons from '@/components/SvgIcon/svgicon' -import signalR from '@/utils/signalR' - -import './permission' // permission control - -import { useDict } from '@/utils/dict' -import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels } from '@/utils/ruoyi' - -// 分页组件 -import Pagination from '@/components/Pagination' -// 自定义表格工具组件 -import RightToolbar from '@/components/RightToolbar' -// 文件上传组件 -import FileUpload from "@/components/FileUpload" -// 图片上传组件 -import ImageUpload from "@/components/ImageUpload" -// 图片预览组件 -import ImagePreview from "@/components/ImagePreview" -// 自定义树选择组件 -import TreeSelect from '@/components/TreeSelect' -// 字典标签组件 -import DictTag from '@/components/DictTag' - -const app = createApp(App) - -// 全局方法挂载 -app.config.globalProperties.useDict = useDict -app.config.globalProperties.download = download -app.config.globalProperties.parseTime = parseTime -app.config.globalProperties.resetForm = resetForm -app.config.globalProperties.handleTree = handleTree -app.config.globalProperties.addDateRange = addDateRange -app.config.globalProperties.selectDictLabel = selectDictLabel -app.config.globalProperties.selectDictLabels = selectDictLabels - -// 全局组件挂载 -app.component('DictTag', DictTag) -app.component('Pagination', Pagination) -app.component('TreeSelect', TreeSelect) -app.component('FileUpload', FileUpload) -app.component('ImageUpload', ImageUpload) -app.component('ImagePreview', ImagePreview) -app.component('RightToolbar', RightToolbar) - -app.use(router) -app.use(store) -app.use(plugins) -app.use(elementIcons) -app.component('svg-icon', SvgIcon) - -directive(app) - -// 使用element-plus 并且设置全局的大小 -app.use(ElementPlus, { - locale: locale, - // 支持 large、default、small - size: Cookies.get('size') || 'default' -}) -// app.prototype.signalr = signalR - -signalR.init(`${import.meta.env.VITE_APP_BASE_WS}/hub/main`); -// signalR.start(); -app.mount('#app') - diff --git a/Yi.Vue3.X.RuoYi/src/permission.js b/Yi.Vue3.X.RuoYi/src/permission.js deleted file mode 100644 index eca0c0cd..00000000 --- a/Yi.Vue3.X.RuoYi/src/permission.js +++ /dev/null @@ -1,65 +0,0 @@ -import router from './router' -import { ElMessage } from 'element-plus' -import NProgress from 'nprogress' -import 'nprogress/nprogress.css' -import { getToken } from '@/utils/auth' -import { isHttp } from '@/utils/validate' -import { isRelogin } from '@/utils/request' -import useUserStore from '@/store/modules/user' -import useSettingsStore from '@/store/modules/settings' -import usePermissionStore from '@/store/modules/permission' - -NProgress.configure({ showSpinner: false }); - -const whiteList = ['/login', '/auth-redirect', '/bind', '/register']; - -router.beforeEach((to, from, next) => { - NProgress.start() - if (getToken()) { - to.meta.title && useSettingsStore().setTitle(to.meta.title) - /* has token*/ - if (to.path === '/login') { - next({ path: '/' }) - NProgress.done() - } else { - - if (useUserStore().roles.length === 0) - { - isRelogin.show = true - // 判断当前用户是否已拉取完user_info信息 - useUserStore().getInfo().then(() => { - isRelogin.show = false - usePermissionStore().generateRoutes().then(accessRoutes => { - // 根据roles权限生成可访问的路由表 - accessRoutes.forEach(route => { - if (!isHttp(route.path)) { - router.addRoute(route) // 动态添加可访问路由表 - } - }) - next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 - }) - }).catch(err => { - useUserStore().logOut().then(() => { - ElMessage.error(err) - next({ path: '/' }) - }) - }) - } else { - next() - } - } - } else { - // 没有token - if (whiteList.indexOf(to.path) !== -1) { - // 在免登录白名单,直接进入 - next() - } else { - next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 - NProgress.done() - } - } -}) - -router.afterEach(() => { - NProgress.done() -}) diff --git a/Yi.Vue3.X.RuoYi/src/plugins/auth.js b/Yi.Vue3.X.RuoYi/src/plugins/auth.js deleted file mode 100644 index 5e8c28de..00000000 --- a/Yi.Vue3.X.RuoYi/src/plugins/auth.js +++ /dev/null @@ -1,60 +0,0 @@ -import useUserStore from '@/store/modules/user' - -function authPermission(permission) { - const all_permission = "*:*:*"; - const permissions = useUserStore().permissions - if (permission && permission.length > 0) { - return permissions.some(v => { - return all_permission === v || v === permission - }) - } else { - return false - } -} - -function authRole(role) { - const super_admin = "admin"; - const roles = useUserStore().roles - if (role && role.length > 0) { - return roles.some(v => { - return super_admin === v || v === role - }) - } else { - return false - } -} - -export default { - // 验证用户是否具备某权限 - hasPermi(permission) { - return authPermission(permission); - }, - // 验证用户是否含有指定权限,只需包含其中一个 - hasPermiOr(permissions) { - return permissions.some(item => { - return authPermission(item) - }) - }, - // 验证用户是否含有指定权限,必须全部拥有 - hasPermiAnd(permissions) { - return permissions.every(item => { - return authPermission(item) - }) - }, - // 验证用户是否具备某角色 - hasRole(role) { - return authRole(role); - }, - // 验证用户是否含有指定角色,只需包含其中一个 - hasRoleOr(roles) { - return roles.some(item => { - return authRole(item) - }) - }, - // 验证用户是否含有指定角色,必须全部拥有 - hasRoleAnd(roles) { - return roles.every(item => { - return authRole(item) - }) - } -} diff --git a/Yi.Vue3.X.RuoYi/src/plugins/cache.js b/Yi.Vue3.X.RuoYi/src/plugins/cache.js deleted file mode 100644 index 6b5c00b9..00000000 --- a/Yi.Vue3.X.RuoYi/src/plugins/cache.js +++ /dev/null @@ -1,77 +0,0 @@ -const sessionCache = { - set (key, value) { - if (!sessionStorage) { - return - } - if (key != null && value != null) { - sessionStorage.setItem(key, value) - } - }, - get (key) { - if (!sessionStorage) { - return null - } - if (key == null) { - return null - } - return sessionStorage.getItem(key) - }, - setJSON (key, jsonValue) { - if (jsonValue != null) { - this.set(key, JSON.stringify(jsonValue)) - } - }, - getJSON (key) { - const value = this.get(key) - if (value != null) { - return JSON.parse(value) - } - }, - remove (key) { - sessionStorage.removeItem(key); - } -} -const localCache = { - set (key, value) { - if (!localStorage) { - return - } - if (key != null && value != null) { - localStorage.setItem(key, value) - } - }, - get (key) { - if (!localStorage) { - return null - } - if (key == null) { - return null - } - return localStorage.getItem(key) - }, - setJSON (key, jsonValue) { - if (jsonValue != null) { - this.set(key, JSON.stringify(jsonValue)) - } - }, - getJSON (key) { - const value = this.get(key) - if (value != null) { - return JSON.parse(value) - } - }, - remove (key) { - localStorage.removeItem(key); - } -} - -export default { - /** - * 会话级缓存 - */ - session: sessionCache, - /** - * 本地缓存 - */ - local: localCache -} diff --git a/Yi.Vue3.X.RuoYi/src/plugins/download.js b/Yi.Vue3.X.RuoYi/src/plugins/download.js deleted file mode 100644 index c31a0642..00000000 --- a/Yi.Vue3.X.RuoYi/src/plugins/download.js +++ /dev/null @@ -1,72 +0,0 @@ -import axios from 'axios' -import { ElMessage } from 'element-plus' -import { saveAs } from 'file-saver' -import { getToken } from '@/utils/auth' -import errorCode from '@/utils/errorCode' -import { blobValidate } from '@/utils/ruoyi' - -const baseURL = import.meta.env.VITE_APP_BASE_API - -export default { - name(name, isDelete = true) { - var url = baseURL + "/common/download?fileName=" + encodeURI(name) + "&delete=" + isDelete - axios({ - method: 'get', - url: url, - responseType: 'blob', - headers: { 'Authorization': 'Bearer ' + getToken() } - }).then(async (res) => { - const isLogin = await blobValidate(res.data); - if (isLogin) { - const blob = new Blob([res.data]) - this.saveAs(blob, decodeURI(res.headers['download-filename'])) - } else { - this.printErrMsg(res.data); - } - }) - }, - resource(resource) { - var url = baseURL + "/common/download/resource?resource=" + encodeURI(resource); - axios({ - method: 'get', - url: url, - responseType: 'blob', - headers: { 'Authorization': 'Bearer ' + getToken() } - }).then(async (res) => { - const isLogin = await blobValidate(res.data); - if (isLogin) { - const blob = new Blob([res.data]) - this.saveAs(blob, decodeURI(res.headers['download-filename'])) - } else { - this.printErrMsg(res.data); - } - }) - }, - zip(url, name) { - var url = baseURL + url - axios({ - method: 'get', - url: url, - responseType: 'blob', - headers: { 'Authorization': 'Bearer ' + getToken() } - }).then(async (res) => { - const isLogin = await blobValidate(res.data); - if (isLogin) { - const blob = new Blob([res.data], { type: 'application/zip' }) - this.saveAs(blob, name) - } else { - this.printErrMsg(res.data); - } - }) - }, - saveAs(text, name, opts) { - saveAs(text, name, opts); - }, - async printErrMsg(data) { - const resText = await data.text(); - const rspObj = JSON.parse(resText); - const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default'] - ElMessage.error(errMsg); - } -} - diff --git a/Yi.Vue3.X.RuoYi/src/plugins/index.js b/Yi.Vue3.X.RuoYi/src/plugins/index.js deleted file mode 100644 index 47d1b41f..00000000 --- a/Yi.Vue3.X.RuoYi/src/plugins/index.js +++ /dev/null @@ -1,18 +0,0 @@ -import tab from './tab' -import auth from './auth' -import cache from './cache' -import modal from './modal' -import download from './download' - -export default function installPlugins(app){ - // 页签操作 - app.config.globalProperties.$tab = tab - // 认证对象 - app.config.globalProperties.$auth = auth - // 缓存对象 - app.config.globalProperties.$cache = cache - // 模态框对象 - app.config.globalProperties.$modal = modal - // 下载文件 - app.config.globalProperties.$download = download -} diff --git a/Yi.Vue3.X.RuoYi/src/plugins/modal.js b/Yi.Vue3.X.RuoYi/src/plugins/modal.js deleted file mode 100644 index b59e14d6..00000000 --- a/Yi.Vue3.X.RuoYi/src/plugins/modal.js +++ /dev/null @@ -1,82 +0,0 @@ -import { ElMessage, ElMessageBox, ElNotification, ElLoading } from 'element-plus' - -let loadingInstance; - -export default { - // 消息提示 - msg(content) { - ElMessage.info(content) - }, - // 错误消息 - msgError(content) { - ElMessage.error(content) - }, - // 成功消息 - msgSuccess(content) { - ElMessage.success(content) - }, - // 警告消息 - msgWarning(content) { - ElMessage.warning(content) - }, - // 弹出提示 - alert(content) { - ElMessageBox.alert(content, "系统提示") - }, - // 错误提示 - alertError(content) { - ElMessageBox.alert(content, "系统提示", { type: 'error' }) - }, - // 成功提示 - alertSuccess(content) { - ElMessageBox.alert(content, "系统提示", { type: 'success' }) - }, - // 警告提示 - alertWarning(content) { - ElMessageBox.alert(content, "系统提示", { type: 'warning' }) - }, - // 通知提示 - notify(content) { - ElNotification.info(content) - }, - // 错误通知 - notifyError(content) { - ElNotification.error(content); - }, - // 成功通知 - notifySuccess(content) { - ElNotification.success(content) - }, - // 警告通知 - notifyWarning(content) { - ElNotification.warning(content) - }, - // 确认窗体 - confirm(content) { - return ElMessageBox.confirm(content, "系统提示", { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: "warning", - }) - }, - // 提交内容 - prompt(content) { - return ElMessageBox.prompt(content, "系统提示", { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: "warning", - }) - }, - // 打开遮罩层 - loading(content) { - loadingInstance = ElLoading.service({ - lock: true, - text: content, - background: "rgba(0, 0, 0, 0.7)", - }) - }, - // 关闭遮罩层 - closeLoading() { - loadingInstance.close(); - } -} diff --git a/Yi.Vue3.X.RuoYi/src/plugins/tab.js b/Yi.Vue3.X.RuoYi/src/plugins/tab.js deleted file mode 100644 index 59e7006b..00000000 --- a/Yi.Vue3.X.RuoYi/src/plugins/tab.js +++ /dev/null @@ -1,65 +0,0 @@ -import useTagsViewStore from '@/store/modules/tagsView' -import router from '@/router' - -export default { - // 刷新当前tab页签 - refreshPage(obj) { - const { path, query, matched } = router.currentRoute.value; - if (obj === undefined) { - matched.forEach((m) => { - if (m.components && m.components.default && m.components.default.name) { - if (!['Layout', 'ParentView'].includes(m.components.default.name)) { - obj = { name: m.components.default.name, path: path, query: query }; - } - } - }); - } - return useTagsViewStore().delCachedView(obj).then(() => { - const { path, query } = obj - router.replace({ - path: '/redirect' + path, - query: query - }) - }) - }, - // 关闭当前tab页签,打开新页签 - closeOpenPage(obj) { - useTagsViewStore().delView(router.currentRoute.value); - if (obj !== undefined) { - return router.push(obj); - } - }, - // 关闭指定tab页签 - closePage(obj) { - if (obj === undefined) { - return useTagsViewStore().delView(router.currentRoute.value).then(({ lastPath }) => { - return router.push(lastPath || '/index'); - }); - } - return useTagsViewStore().delView(obj); - }, - // 关闭所有tab页签 - closeAllPage() { - return useTagsViewStore().delAllViews(); - }, - // 关闭左侧tab页签 - closeLeftPage(obj) { - return useTagsViewStore().delLeftTags(obj || router.currentRoute.value); - }, - // 关闭右侧tab页签 - closeRightPage(obj) { - return useTagsViewStore().delRightTags(obj || router.currentRoute.value); - }, - // 关闭其他tab页签 - closeOtherPage(obj) { - return useTagsViewStore().delOthersViews(obj || router.currentRoute.value); - }, - // 打开tab页签 - openPage(url) { - return router.push(url); - }, - // 修改tab页签 - updatePage(obj) { - return useTagsViewStore().updateVisitedView(obj); - } -} diff --git a/Yi.Vue3.X.RuoYi/src/router/index.js b/Yi.Vue3.X.RuoYi/src/router/index.js deleted file mode 100644 index 41e44aee..00000000 --- a/Yi.Vue3.X.RuoYi/src/router/index.js +++ /dev/null @@ -1,175 +0,0 @@ -import { createWebHistory, createRouter } from 'vue-router' -/* Layout */ -import Layout from '@/layout' - -/** - * Note: 路由配置项 - * - * hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1 - * alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 - * // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面 - * // 若你想不管路由下面的 children 声明的个数都显示你的根路由 - * // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由 - * redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 - * name:'router-name' // 设定路由的名字,一定要填写不然使用时会出现各种问题 - * query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数 - * roles: ['admin', 'common'] // 访问路由的角色权限 - * permissions: ['a:a:a', 'b:b:b'] // 访问路由的菜单权限 - * meta : { - noCache: true // 如果设置为true,则不会被 缓存(默认 false) - title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字 - icon: 'svg-name' // 设置该路由的图标,对应路径src/assets/icons/svg - breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示 - activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。 - } - */ - -// 公共路由 -export const constantRoutes = [ - { - path: '/redirect', - component: Layout, - hidden: true, - children: [ - { - path: '/redirect/:path(.*)', - component: () => import('@/views/redirect/index.vue') - } - ] - }, - { - path: '/login', - component: () => import('@/views/login'), - hidden: true - }, - { - path: '/register', - component: () => import('@/views/register'), - hidden: true - }, - { - path: "/:pathMatch(.*)*", - component: () => import('@/views/error/404'), - hidden: true - }, - { - path: '/401', - component: () => import('@/views/error/401'), - hidden: true - }, - { - path: '', - component: Layout, - redirect: '/index', - children: [ - { - path: '/index', - component: () => import('@/views/index'), - name: 'Index', - meta: { title: '首页', icon: 'dashboard', affix: true } - } - ] - }, - { - path: '/user', - component: Layout, - hidden: true, - redirect: 'noredirect', - children: [ - { - path: 'profile', - component: () => import('@/views/system/user/profile/index'), - name: 'Profile', - meta: { title: '个人中心', icon: 'user' } - } - ] - } -] - -// 动态路由,基于用户权限动态去加载 -export const dynamicRoutes = [ - { - path: '/system/user-auth', - component: Layout, - hidden: true, - permissions: ['system:user:edit'], - children: [ - { - path: 'role/:userId(\\d+)', - component: () => import('@/views/system/user/authRole'), - name: 'AuthRole', - meta: { title: '分配角色', activeMenu: '/system/user' } - } - ] - }, - { - path: '/system/role-auth', - component: Layout, - hidden: true, - permissions: ['system:role:edit'], - children: [ - { - path: 'user/:roleId(\\d+)', - component: () => import('@/views/system/role/authUser'), - name: 'AuthUser', - meta: { title: '分配用户', activeMenu: '/system/role' } - } - ] - }, - { - path: '/system/dict-data', - component: Layout, - hidden: true, - permissions: ['system:dict:list'], - children: [ - { - path: 'index/:dictId(\\d+)', - component: () => import('@/views/system/dict/data'), - name: 'Data', - meta: { title: '字典数据', activeMenu: '/system/dict' } - } - ] - }, - { - path: '/monitor/job-log', - component: Layout, - hidden: true, - permissions: ['monitor:job:list'], - children: [ - { - path: 'index', - component: () => import('@/views/monitor/job/log'), - name: 'JobLog', - meta: { title: '调度日志', activeMenu: '/monitor/job' } - } - ] - }, - { - path: '/tool/gen-edit', - component: Layout, - hidden: true, - permissions: ['tool:gen:edit'], - children: [ - { - path: 'index/:tableId(\\d+)', - component: () => import('@/views/tool/gen/editTable'), - name: 'GenEdit', - meta: { title: '修改生成配置', activeMenu: '/tool/gen' } - } - ] - } -] - -const router = createRouter({ - history: createWebHistory(), - routes: constantRoutes, - scrollBehavior(to, from, savedPosition) { - if (savedPosition) { - return savedPosition - } else { - return { top: 0 } - } - }, -}); - -export default router; diff --git a/Yi.Vue3.X.RuoYi/src/settings.js b/Yi.Vue3.X.RuoYi/src/settings.js deleted file mode 100644 index 10e1db41..00000000 --- a/Yi.Vue3.X.RuoYi/src/settings.js +++ /dev/null @@ -1,47 +0,0 @@ -export default { - /** - * 网页标题 - */ - title: import.meta.env.VITE_APP_TITLE, - /** - * 侧边栏主题 深色主题theme-dark,浅色主题theme-light - */ - sideTheme: 'theme-dark', - /** - * 是否系统布局配置 - */ - showSettings: false, - - /** - * 是否显示顶部导航 - */ - topNav: false, - - /** - * 是否显示 tagsView - */ - tagsView: true, - - /** - * 是否固定头部 - */ - fixedHeader: false, - - /** - * 是否显示logo - */ - sidebarLogo: true, - - /** - * 是否显示动态标题 - */ - dynamicTitle: false, - - /** - * @type {string | array} 'production' | ['production', 'development'] - * @description Need show err logs component. - * The default is only used in the production env - * If you want to also use it in dev, you can pass ['production', 'development'] - */ - errorLog: 'production' -} diff --git a/Yi.Vue3.X.RuoYi/src/store/index.js b/Yi.Vue3.X.RuoYi/src/store/index.js deleted file mode 100644 index f10f3895..00000000 --- a/Yi.Vue3.X.RuoYi/src/store/index.js +++ /dev/null @@ -1,3 +0,0 @@ -const store = createPinia() - -export default store \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/store/modules/app.js b/Yi.Vue3.X.RuoYi/src/store/modules/app.js deleted file mode 100644 index 6cb2c819..00000000 --- a/Yi.Vue3.X.RuoYi/src/store/modules/app.js +++ /dev/null @@ -1,46 +0,0 @@ -import Cookies from 'js-cookie' - -const useAppStore = defineStore( - 'app', - { - state: () => ({ - sidebar: { - opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true, - withoutAnimation: false, - hide: false - }, - device: 'desktop', - size: Cookies.get('size') || 'default' - }), - actions: { - toggleSideBar(withoutAnimation) { - if (this.sidebar.hide) { - return false; - } - this.sidebar.opened = !this.sidebar.opened - this.sidebar.withoutAnimation = withoutAnimation - if (this.sidebar.opened) { - Cookies.set('sidebarStatus', 1) - } else { - Cookies.set('sidebarStatus', 0) - } - }, - closeSideBar(withoutAnimation) { - Cookies.set('sidebarStatus', 0) - this.sidebar.opened = false - this.sidebar.withoutAnimation = withoutAnimation - }, - toggleDevice(device) { - this.device = device - }, - setSize(size) { - this.size = size; - Cookies.set('size', size) - }, - toggleSideBarHide(status) { - this.sidebar.hide = status - } - } - }) - -export default useAppStore diff --git a/Yi.Vue3.X.RuoYi/src/store/modules/dict.js b/Yi.Vue3.X.RuoYi/src/store/modules/dict.js deleted file mode 100644 index 27fc3086..00000000 --- a/Yi.Vue3.X.RuoYi/src/store/modules/dict.js +++ /dev/null @@ -1,57 +0,0 @@ -const useDictStore = defineStore( - 'dict', - { - state: () => ({ - dict: new Array() - }), - actions: { - // 获取字典 - getDict(_key) { - if (_key == null && _key == "") { - return null; - } - try { - for (let i = 0; i < this.dict.length; i++) { - if (this.dict[i].key == _key) { - return this.dict[i].value; - } - } - } catch (e) { - return null; - } - }, - // 设置字典 - setDict(_key, value) { - if (_key !== null && _key !== "") { - this.dict.push({ - key: _key, - value: value - }); - } - }, - // 删除字典 - removeDict(_key) { - var bln = false; - try { - for (let i = 0; i < this.dict.length; i++) { - if (this.dict[i].key == _key) { - this.dict.splice(i, 1); - return true; - } - } - } catch (e) { - bln = false; - } - return bln; - }, - // 清空字典 - cleanDict() { - this.dict = new Array(); - }, - // 初始字典 - initDict() { - } - } - }) - -export default useDictStore diff --git a/Yi.Vue3.X.RuoYi/src/store/modules/permission.js b/Yi.Vue3.X.RuoYi/src/store/modules/permission.js deleted file mode 100644 index c1168047..00000000 --- a/Yi.Vue3.X.RuoYi/src/store/modules/permission.js +++ /dev/null @@ -1,453 +0,0 @@ -import auth from '@/plugins/auth' -import router, { constantRoutes, dynamicRoutes } from '@/router' -import { getRouters } from '@/api/menu' -import Layout from '@/layout/index' -import ParentView from '@/components/ParentView' -import InnerLink from '@/layout/components/InnerLink' - -// 匹配views里面所有的.vue文件 -const modules = import.meta.glob('./../../views/**/*.vue') - -const usePermissionStore = defineStore( - 'permission', - { - state: () => ({ - routes: [], - addRoutes: [], - defaultRoutes: [], - topbarRouters: [], - sidebarRouters: [] - }), - actions: { - setRoutes(routes) { - this.addRoutes = routes - this.routes = constantRoutes.concat(routes) - }, - setDefaultRoutes(routes) { - this.defaultRoutes = constantRoutes.concat(routes) - }, - setTopbarRoutes(routes) { - this.topbarRouters = routes - }, - setSidebarRouters(routes) { - this.sidebarRouters = routes - }, - generateRoutes(roles) { - return new Promise(resolve => { - // 向后端请求路由数据 - getRouters().then(response => { - - - -// const res=[ -// { -// "name": "System", -// "path": "/system", -// "hidden": false, -// "redirect": "noRedirect", -// "component": "Layout", -// "alwaysShow": true, -// "meta": { -// "title": "系统管理", -// "icon": "system", -// "noCache": false, -// "link": null -// }, -// "children": [ -// { -// "name": "User", -// "path": "user", -// "hidden": false, -// "component": "system/user/index", -// "meta": { -// "title": "用户管理", -// "icon": "user", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Role", -// "path": "role", -// "hidden": false, -// "component": "system/role/index", -// "meta": { -// "title": "角色管理", -// "icon": "peoples", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Menu", -// "path": "menu", -// "hidden": false, -// "component": "system/menu/index", -// "meta": { -// "title": "菜单管理", -// "icon": "tree-table", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Dept", -// "path": "dept", -// "hidden": false, -// "component": "system/dept/index", -// "meta": { -// "title": "部门管理", -// "icon": "tree", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Post", -// "path": "post", -// "hidden": false, -// "component": "system/post/index", -// "meta": { -// "title": "岗位管理", -// "icon": "post", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Dict", -// "path": "dict", -// "hidden": false, -// "component": "system/dict/index", -// "meta": { -// "title": "字典管理", -// "icon": "dict", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Config", -// "path": "config", -// "hidden": false, -// "component": "system/config/index", -// "meta": { -// "title": "参数设置", -// "icon": "edit", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Notice", -// "path": "notice", -// "hidden": false, -// "component": "system/notice/index", -// "meta": { -// "title": "通知公告", -// "icon": "message", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Log", -// "path": "log", -// "hidden": false, -// "redirect": "noRedirect", -// "component": "ParentView", -// "alwaysShow": true, -// "meta": { -// "title": "日志管理", -// "icon": "log", -// "noCache": false, -// "link": null -// }, -// "children": [ -// { -// "name": "Operlog", -// "path": "operlog", -// "hidden": false, -// "component": "monitor/operlog/index", -// "meta": { -// "title": "操作日志", -// "icon": "form", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Logininfor", -// "path": "logininfor", -// "hidden": false, -// "component": "monitor/logininfor/index", -// "meta": { -// "title": "登录日志", -// "icon": "logininfor", -// "noCache": false, -// "link": null -// } -// } -// ] -// } -// ] -// }, -// { -// "name": "Monitor", -// "path": "/monitor", -// "hidden": false, -// "redirect": "noRedirect", -// "component": "Layout", -// "alwaysShow": true, -// "meta": { -// "title": "系统监控", -// "icon": "monitor", -// "noCache": false, -// "link": null -// }, -// "children": [ -// { -// "name": "Online", -// "path": "online", -// "hidden": false, -// "component": "monitor/online/index", -// "meta": { -// "title": "在线用户", -// "icon": "online", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Job", -// "path": "job", -// "hidden": false, -// "component": "monitor/job/index", -// "meta": { -// "title": "定时任务", -// "icon": "job", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Druid", -// "path": "druid", -// "hidden": false, -// "component": "monitor/druid/index", -// "meta": { -// "title": "数据监控", -// "icon": "druid", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Server", -// "path": "server", -// "hidden": false, -// "component": "monitor/server/index", -// "meta": { -// "title": "服务监控", -// "icon": "server", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Cache", -// "path": "cache", -// "hidden": false, -// "component": "monitor/cache/index", -// "meta": { -// "title": "缓存监控", -// "icon": "redis", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "CacheList", -// "path": "cacheList", -// "hidden": false, -// "component": "monitor/cache/list", -// "meta": { -// "title": "缓存列表", -// "icon": "redis-list", -// "noCache": false, -// "link": null -// } -// } -// ] -// }, -// { -// "name": "Tool", -// "path": "/tool", -// "hidden": false, -// "redirect": "noRedirect", -// "component": "Layout", -// "alwaysShow": true, -// "meta": { -// "title": "系统工具", -// "icon": "tool", -// "noCache": false, -// "link": null -// }, -// "children": [ -// { -// "name": "Build", -// "path": "build", -// "hidden": false, -// "component": "tool/build/index", -// "meta": { -// "title": "表单构建", -// "icon": "build", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Gen", -// "path": "gen", -// "hidden": false, -// "component": "tool/gen/index", -// "meta": { -// "title": "代码生成", -// "icon": "code", -// "noCache": false, -// "link": null -// } -// }, -// { -// "name": "Swagger", -// "path": "swagger", -// "hidden": false, -// "component": "tool/swagger/index", -// "meta": { -// "title": "系统接口", -// "icon": "swagger", -// "noCache": false, -// "link": null -// } -// } -// ] -// }, -// { -// "name": "Http://ruoyi.vip", -// "path": "http://ruoyi.vip", -// "hidden": false, -// "component": "Layout", -// "meta": { -// "title": "若依官网", -// "icon": "guide", -// "noCache": false, -// "link": "http://ruoyi.vip" -// } -// } -// ]; - - const res=response.data; - -const sdata = JSON.parse(JSON.stringify(res)) -const rdata = JSON.parse(JSON.stringify(res)) -const defaultData = JSON.parse(JSON.stringify(res)) -const sidebarRoutes = filterAsyncRouter(sdata) -const rewriteRoutes = filterAsyncRouter(rdata, false, true) -const defaultRoutes = filterAsyncRouter(defaultData) -const asyncRoutes = filterDynamicRoutes(dynamicRoutes) -asyncRoutes.forEach(route => { router.addRoute(route) }) -this.setRoutes(rewriteRoutes) -this.setSidebarRouters(constantRoutes.concat(sidebarRoutes)) -this.setDefaultRoutes(sidebarRoutes) -this.setTopbarRoutes(defaultRoutes) -resolve(rewriteRoutes) - - - - }) - }) - } - } - }) - -// 遍历后台传来的路由字符串,转换为组件对象 -function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) { - return asyncRouterMap.filter(route => { - if (type && route.children) { - route.children = filterChildren(route.children) - } - if (route.component) { - // Layout ParentView 组件特殊处理 - if (route.component === 'Layout') { - route.component = Layout - } else if (route.component === 'ParentView') { - route.component = ParentView - } else if (route.component === 'InnerLink') { - route.component = InnerLink - } else { - route.component = loadView(route.component) - } - } - if (route.children != null && route.children && route.children.length) { - route.children = filterAsyncRouter(route.children, route, type) - } else { - delete route['children'] - delete route['redirect'] - } - return true - }) -} - -function filterChildren(childrenMap, lastRouter = false) { - var children = [] - childrenMap.forEach((el, index) => { - if (el.children && el.children.length) { - if (el.component === 'ParentView' && !lastRouter) { - el.children.forEach(c => { - c.path = el.path + '/' + c.path - if (c.children && c.children.length) { - children = children.concat(filterChildren(c.children, c)) - return - } - children.push(c) - }) - return - } - } - if (lastRouter) { - el.path = lastRouter.path + '/' + el.path - } - children = children.concat(el) - }) - return children -} - -// 动态路由遍历,验证是否具备权限 -export function filterDynamicRoutes(routes) { - const res = [] - routes.forEach(route => { - if (route.permissions) { - if (auth.hasPermiOr(route.permissions)) { - res.push(route) - } - } else if (route.roles) { - if (auth.hasRoleOr(route.roles)) { - res.push(route) - } - } - }) - return res -} - -export const loadView = (view) => { - let res; - for (const path in modules) { - const dir = path.split('views/')[1].split('.vue')[0]; - if (dir === view) { - res = () => modules[path](); - } - } - return res; -} - -export default usePermissionStore diff --git a/Yi.Vue3.X.RuoYi/src/store/modules/settings.js b/Yi.Vue3.X.RuoYi/src/store/modules/settings.js deleted file mode 100644 index 22b73366..00000000 --- a/Yi.Vue3.X.RuoYi/src/store/modules/settings.js +++ /dev/null @@ -1,38 +0,0 @@ -import defaultSettings from '@/settings' -import { useDynamicTitle } from '@/utils/dynamicTitle' - -const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle } = defaultSettings - -const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || '' - -const useSettingsStore = defineStore( - 'settings', - { - state: () => ({ - title: '', - theme: storageSetting.theme || '#409EFF', - sideTheme: storageSetting.sideTheme || sideTheme, - showSettings: showSettings, - topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav, - tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView, - fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader, - sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo, - dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle - }), - actions: { - // 修改布局设置 - changeSetting(data) { - const { key, value } = data - if (this.hasOwnProperty(key)) { - this[key] = value - } - }, - // 设置网页标题 - setTitle(title) { - this.title = title - useDynamicTitle(); - } - } - }) - -export default useSettingsStore diff --git a/Yi.Vue3.X.RuoYi/src/store/modules/socket.js b/Yi.Vue3.X.RuoYi/src/store/modules/socket.js deleted file mode 100644 index 0efc9c41..00000000 --- a/Yi.Vue3.X.RuoYi/src/store/modules/socket.js +++ /dev/null @@ -1,20 +0,0 @@ -const socketStore = defineStore( - 'socket', - { - state: () => ({ - onlineNum: 1 - }), - actions: { - // 获取在线总数 - getOnlineNum() { - return this.onlineNum; - }, - // 设置在线总数 - setOnlineNum(value) { - this.onlineNum = value; - } - - } - }) - -export default socketStore diff --git a/Yi.Vue3.X.RuoYi/src/store/modules/tagsView.js b/Yi.Vue3.X.RuoYi/src/store/modules/tagsView.js deleted file mode 100644 index 9d07f33d..00000000 --- a/Yi.Vue3.X.RuoYi/src/store/modules/tagsView.js +++ /dev/null @@ -1,182 +0,0 @@ -const useTagsViewStore = defineStore( - 'tags-view', - { - state: () => ({ - visitedViews: [], - cachedViews: [], - iframeViews: [] - }), - actions: { - addView(view) { - this.addVisitedView(view) - this.addCachedView(view) - }, - addIframeView(view) { - if (this.iframeViews.some(v => v.path === view.path)) return - this.iframeViews.push( - Object.assign({}, view, { - title: view.meta.title || 'no-name' - }) - ) - }, - addVisitedView(view) { - if (this.visitedViews.some(v => v.path === view.path)) return - this.visitedViews.push( - Object.assign({}, view, { - title: view.meta.title || 'no-name' - }) - ) - }, - addCachedView(view) { - if (this.cachedViews.includes(view.name)) return - if (!view.meta.noCache) { - this.cachedViews.push(view.name) - } - }, - delView(view) { - return new Promise(resolve => { - this.delVisitedView(view) - this.delCachedView(view) - resolve({ - visitedViews: [...this.visitedViews], - cachedViews: [...this.cachedViews] - }) - }) - }, - delVisitedView(view) { - return new Promise(resolve => { - for (const [i, v] of this.visitedViews.entries()) { - if (v.path === view.path) { - this.visitedViews.splice(i, 1) - break - } - } - this.iframeViews = this.iframeViews.filter(item => item.path !== view.path) - resolve([...this.visitedViews]) - }) - }, - delIframeView(view) { - return new Promise(resolve => { - this.iframeViews = this.iframeViews.filter(item => item.path !== view.path) - resolve([...this.iframeViews]) - }) - }, - delCachedView(view) { - return new Promise(resolve => { - const index = this.cachedViews.indexOf(view.name) - index > -1 && this.cachedViews.splice(index, 1) - resolve([...this.cachedViews]) - }) - }, - delOthersViews(view) { - return new Promise(resolve => { - this.delOthersVisitedViews(view) - this.delOthersCachedViews(view) - resolve({ - visitedViews: [...this.visitedViews], - cachedViews: [...this.cachedViews] - }) - }) - }, - delOthersVisitedViews(view) { - return new Promise(resolve => { - this.visitedViews = this.visitedViews.filter(v => { - return v.meta.affix || v.path === view.path - }) - this.iframeViews = this.iframeViews.filter(item => item.path === view.path) - resolve([...this.visitedViews]) - }) - }, - delOthersCachedViews(view) { - return new Promise(resolve => { - const index = this.cachedViews.indexOf(view.name) - if (index > -1) { - this.cachedViews = this.cachedViews.slice(index, index + 1) - } else { - this.cachedViews = [] - } - resolve([...this.cachedViews]) - }) - }, - delAllViews(view) { - return new Promise(resolve => { - this.delAllVisitedViews(view) - this.delAllCachedViews(view) - resolve({ - visitedViews: [...this.visitedViews], - cachedViews: [...this.cachedViews] - }) - }) - }, - delAllVisitedViews(view) { - return new Promise(resolve => { - const affixTags = this.visitedViews.filter(tag => tag.meta.affix) - this.visitedViews = affixTags - this.iframeViews = [] - resolve([...this.visitedViews]) - }) - }, - delAllCachedViews(view) { - return new Promise(resolve => { - this.cachedViews = [] - resolve([...this.cachedViews]) - }) - }, - updateVisitedView(view) { - for (let v of this.visitedViews) { - if (v.path === view.path) { - v = Object.assign(v, view) - break - } - } - }, - delRightTags(view) { - return new Promise(resolve => { - const index = this.visitedViews.findIndex(v => v.path === view.path) - if (index === -1) { - return - } - this.visitedViews = this.visitedViews.filter((item, idx) => { - if (idx <= index || (item.meta && item.meta.affix)) { - return true - } - const i = this.cachedViews.indexOf(item.name) - if (i > -1) { - this.cachedViews.splice(i, 1) - } - if(item.meta.link) { - const fi = this.iframeViews.findIndex(v => v.path === item.path) - this.iframeViews.splice(fi, 1) - } - return false - }) - resolve([...this.visitedViews]) - }) - }, - delLeftTags(view) { - return new Promise(resolve => { - const index = this.visitedViews.findIndex(v => v.path === view.path) - if (index === -1) { - return - } - this.visitedViews = this.visitedViews.filter((item, idx) => { - if (idx >= index || (item.meta && item.meta.affix)) { - return true - } - const i = this.cachedViews.indexOf(item.name) - if (i > -1) { - this.cachedViews.splice(i, 1) - } - if(item.meta.link) { - const fi = this.iframeViews.findIndex(v => v.path === item.path) - this.iframeViews.splice(fi, 1) - } - return false - }) - resolve([...this.visitedViews]) - }) - } - } - }) - -export default useTagsViewStore diff --git a/Yi.Vue3.X.RuoYi/src/store/modules/user.js b/Yi.Vue3.X.RuoYi/src/store/modules/user.js deleted file mode 100644 index f036147f..00000000 --- a/Yi.Vue3.X.RuoYi/src/store/modules/user.js +++ /dev/null @@ -1,80 +0,0 @@ -import { login, logout, getInfo } from '@/api/login' -import { getToken, setToken, removeToken } from '@/utils/auth' -import defAva from '@/assets/images/profile.jpg' - -const useUserStore = defineStore( - 'user', - { - state: () => ({ - token: getToken(), - name: '', - avatar: '', - roles: [], - permissions: [] - }), - actions: { - // 登录 - login(userInfo) { - const username = userInfo.username.trim() - const password = userInfo.password - const code = userInfo.code - const uuid = userInfo.uuid - return new Promise((resolve, reject) => { - - login(username, password, code, uuid).then(res => { - setToken(res.data.token); - this.token = res.data.token; - resolve(); - }).catch(error => { - reject(error) - }) - }) - }, - // 获取用户信息 - getInfo() { - return new Promise((resolve, reject) => { - getInfo().then(response => { - const res=response.data; - const user = res.user - const avatar = (user.icon == "" || user.icon == null) ? defAva : import.meta.env.VITE_APP_BASE_API + "/file/"+user.icon; - - if (res.roleCodes && res.roleCodes.length > 0) { // 验证返回的roles是否是一个非空数组 - this.roles = res.roleCodes - this.permissions = res.permissionCodes - // this.roles = ["admin"]; - // this.permissions=["*:*:*"] - - } else { - this.roles = ['ROLE_DEFAULT'] - } - // this.roles = ["admin"]; - // this.permissions=["*:*:*"] - this.name = user.userName - this.avatar = avatar; - resolve(res) - }).catch(error => { - reject(error) - }) - - - - }) - }, - // 退出系统 - logOut() { - return new Promise((resolve, reject) => { - logout(this.token).then(() => { - this.token = '' - this.roles = [] - this.permissions = [] - removeToken() - resolve() - }).catch(error => { - reject(error) - }) - }) - } - } - }) - -export default useUserStore diff --git a/Yi.Vue3.X.RuoYi/src/utils/auth.js b/Yi.Vue3.X.RuoYi/src/utils/auth.js deleted file mode 100644 index 08a43d6e..00000000 --- a/Yi.Vue3.X.RuoYi/src/utils/auth.js +++ /dev/null @@ -1,15 +0,0 @@ -import Cookies from 'js-cookie' - -const TokenKey = 'Admin-Token' - -export function getToken() { - return Cookies.get(TokenKey) -} - -export function setToken(token) { - return Cookies.set(TokenKey, token) -} - -export function removeToken() { - return Cookies.remove(TokenKey) -} diff --git a/Yi.Vue3.X.RuoYi/src/utils/dict.js b/Yi.Vue3.X.RuoYi/src/utils/dict.js deleted file mode 100644 index 9648f149..00000000 --- a/Yi.Vue3.X.RuoYi/src/utils/dict.js +++ /dev/null @@ -1,24 +0,0 @@ -import useDictStore from '@/store/modules/dict' -import { getDicts } from '@/api/system/dict/data' - -/** - * 获取字典数据 - */ -export function useDict(...args) { - const res = ref({}); - return (() => { - args.forEach((dictType, index) => { - res.value[dictType] = []; - const dicts = useDictStore().getDict(dictType); - if (dicts) { - res.value[dictType] = dicts; - } else { - getDicts(dictType).then(resp => { - res.value[dictType] = resp.data.map(p => ({ label: p.dictLabel, value: p.dictValue, elTagType: p.listClass, elTagClass: p.cssClass })) - useDictStore().setDict(dictType, res.value[dictType]); - }) - } - }) - return toRefs(res.value); - })() -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/utils/dynamicTitle.js b/Yi.Vue3.X.RuoYi/src/utils/dynamicTitle.js deleted file mode 100644 index 64404b20..00000000 --- a/Yi.Vue3.X.RuoYi/src/utils/dynamicTitle.js +++ /dev/null @@ -1,15 +0,0 @@ -import store from '@/store' -import defaultSettings from '@/settings' -import useSettingsStore from '@/store/modules/settings' - -/** - * 动态修改标题 - */ -export function useDynamicTitle() { - const settingsStore = useSettingsStore(); - if (settingsStore.dynamicTitle) { - document.title = settingsStore.title + ' - ' + defaultSettings.title; - } else { - document.title = defaultSettings.title; - } -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/utils/errorCode.js b/Yi.Vue3.X.RuoYi/src/utils/errorCode.js deleted file mode 100644 index d2111ee1..00000000 --- a/Yi.Vue3.X.RuoYi/src/utils/errorCode.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - '401': '认证失败,无法访问系统资源', - '403': '当前操作没有权限', - '404': '访问资源不存在', - 'default': '系统未知错误,请反馈给管理员' -} diff --git a/Yi.Vue3.X.RuoYi/src/utils/index.js b/Yi.Vue3.X.RuoYi/src/utils/index.js deleted file mode 100644 index cbacab0d..00000000 --- a/Yi.Vue3.X.RuoYi/src/utils/index.js +++ /dev/null @@ -1,390 +0,0 @@ -import { parseTime } from '@/ruoyi' - -/** - * 表格时间格式化 - */ -export function formatDate(cellValue) { - if (cellValue == null || cellValue == "") return ""; - var date = new Date(cellValue) - var year = date.getFullYear() - var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 - var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() - var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() - var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() - var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() - return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds -} - -/** - * @param {number} time - * @param {string} option - * @returns {string} - */ -export function formatTime(time, option) { - if (('' + time).length === 10) { - time = parseInt(time) * 1000 - } else { - time = +time - } - const d = new Date(time) - const now = Date.now() - - const diff = (now - d) / 1000 - - if (diff < 30) { - return '刚刚' - } else if (diff < 3600) { - // less 1 hour - return Math.ceil(diff / 60) + '分钟前' - } else if (diff < 3600 * 24) { - return Math.ceil(diff / 3600) + '小时前' - } else if (diff < 3600 * 24 * 2) { - return '1天前' - } - if (option) { - return parseTime(time, option) - } else { - return ( - d.getMonth() + - 1 + - '月' + - d.getDate() + - '日' + - d.getHours() + - '时' + - d.getMinutes() + - '分' - ) - } -} - -/** - * @param {string} url - * @returns {Object} - */ -export function getQueryObject(url) { - url = url == null ? window.location.href : url - const search = url.substring(url.lastIndexOf('?') + 1) - const obj = {} - const reg = /([^?&=]+)=([^?&=]*)/g - search.replace(reg, (rs, $1, $2) => { - const name = decodeURIComponent($1) - let val = decodeURIComponent($2) - val = String(val) - obj[name] = val - return rs - }) - return obj -} - -/** - * @param {string} input value - * @returns {number} output value - */ -export function byteLength(str) { - // returns the byte length of an utf8 string - let s = str.length - for (var i = str.length - 1; i >= 0; i--) { - const code = str.charCodeAt(i) - if (code > 0x7f && code <= 0x7ff) s++ - else if (code > 0x7ff && code <= 0xffff) s += 2 - if (code >= 0xDC00 && code <= 0xDFFF) i-- - } - return s -} - -/** - * @param {Array} actual - * @returns {Array} - */ -export function cleanArray(actual) { - const newArray = [] - for (let i = 0; i < actual.length; i++) { - if (actual[i]) { - newArray.push(actual[i]) - } - } - return newArray -} - -/** - * @param {Object} json - * @returns {Array} - */ -export function param(json) { - if (!json) return '' - return cleanArray( - Object.keys(json).map(key => { - if (json[key] === undefined) return '' - return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]) - }) - ).join('&') -} - -/** - * @param {string} url - * @returns {Object} - */ -export function param2Obj(url) { - const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ') - if (!search) { - return {} - } - const obj = {} - const searchArr = search.split('&') - searchArr.forEach(v => { - const index = v.indexOf('=') - if (index !== -1) { - const name = v.substring(0, index) - const val = v.substring(index + 1, v.length) - obj[name] = val - } - }) - return obj -} - -/** - * @param {string} val - * @returns {string} - */ -export function html2Text(val) { - const div = document.createElement('div') - div.innerHTML = val - return div.textContent || div.innerText -} - -/** - * Merges two objects, giving the last one precedence - * @param {Object} target - * @param {(Object|Array)} source - * @returns {Object} - */ -export function objectMerge(target, source) { - if (typeof target !== 'object') { - target = {} - } - if (Array.isArray(source)) { - return source.slice() - } - Object.keys(source).forEach(property => { - const sourceProperty = source[property] - if (typeof sourceProperty === 'object') { - target[property] = objectMerge(target[property], sourceProperty) - } else { - target[property] = sourceProperty - } - }) - return target -} - -/** - * @param {HTMLElement} element - * @param {string} className - */ -export function toggleClass(element, className) { - if (!element || !className) { - return - } - let classString = element.className - const nameIndex = classString.indexOf(className) - if (nameIndex === -1) { - classString += '' + className - } else { - classString = - classString.substr(0, nameIndex) + - classString.substr(nameIndex + className.length) - } - element.className = classString -} - -/** - * @param {string} type - * @returns {Date} - */ -export function getTime(type) { - if (type === 'start') { - return new Date().getTime() - 3600 * 1000 * 24 * 90 - } else { - return new Date(new Date().toDateString()) - } -} - -/** - * @param {Function} func - * @param {number} wait - * @param {boolean} immediate - * @return {*} - */ -export function debounce(func, wait, immediate) { - let timeout, args, context, timestamp, result - - const later = function() { - // 据上一次触发时间间隔 - const last = +new Date() - timestamp - - // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait - if (last < wait && last > 0) { - timeout = setTimeout(later, wait - last) - } else { - timeout = null - // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用 - if (!immediate) { - result = func.apply(context, args) - if (!timeout) context = args = null - } - } - } - - return function(...args) { - context = this - timestamp = +new Date() - const callNow = immediate && !timeout - // 如果延时不存在,重新设定延时 - if (!timeout) timeout = setTimeout(later, wait) - if (callNow) { - result = func.apply(context, args) - context = args = null - } - - return result - } -} - -/** - * This is just a simple version of deep copy - * Has a lot of edge cases bug - * If you want to use a perfect deep copy, use lodash's _.cloneDeep - * @param {Object} source - * @returns {Object} - */ -export function deepClone(source) { - if (!source && typeof source !== 'object') { - throw new Error('error arguments', 'deepClone') - } - const targetObj = source.constructor === Array ? [] : {} - Object.keys(source).forEach(keys => { - if (source[keys] && typeof source[keys] === 'object') { - targetObj[keys] = deepClone(source[keys]) - } else { - targetObj[keys] = source[keys] - } - }) - return targetObj -} - -/** - * @param {Array} arr - * @returns {Array} - */ -export function uniqueArr(arr) { - return Array.from(new Set(arr)) -} - -/** - * @returns {string} - */ -export function createUniqueString() { - const timestamp = +new Date() + '' - const randomNum = parseInt((1 + Math.random()) * 65536) + '' - return (+(randomNum + timestamp)).toString(32) -} - -/** - * Check if an element has a class - * @param {HTMLElement} elm - * @param {string} cls - * @returns {boolean} - */ -export function hasClass(ele, cls) { - return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')) -} - -/** - * Add class to element - * @param {HTMLElement} elm - * @param {string} cls - */ -export function addClass(ele, cls) { - if (!hasClass(ele, cls)) ele.className += ' ' + cls -} - -/** - * Remove class from element - * @param {HTMLElement} elm - * @param {string} cls - */ -export function removeClass(ele, cls) { - if (hasClass(ele, cls)) { - const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)') - ele.className = ele.className.replace(reg, ' ') - } -} - -export function makeMap(str, expectsLowerCase) { - const map = Object.create(null) - const list = str.split(',') - for (let i = 0; i < list.length; i++) { - map[list[i]] = true - } - return expectsLowerCase - ? val => map[val.toLowerCase()] - : val => map[val] -} - -export const exportDefault = 'export default ' - -export const beautifierConf = { - html: { - indent_size: '2', - indent_char: ' ', - max_preserve_newlines: '-1', - preserve_newlines: false, - keep_array_indentation: false, - break_chained_methods: false, - indent_scripts: 'separate', - brace_style: 'end-expand', - space_before_conditional: true, - unescape_strings: false, - jslint_happy: false, - end_with_newline: true, - wrap_line_length: '110', - indent_inner_html: true, - comma_first: false, - e4x: true, - indent_empty_lines: true - }, - js: { - indent_size: '2', - indent_char: ' ', - max_preserve_newlines: '-1', - preserve_newlines: false, - keep_array_indentation: false, - break_chained_methods: false, - indent_scripts: 'normal', - brace_style: 'end-expand', - space_before_conditional: true, - unescape_strings: false, - jslint_happy: true, - end_with_newline: true, - wrap_line_length: '110', - indent_inner_html: true, - comma_first: false, - e4x: true, - indent_empty_lines: true - } -} - -// 首字母大小 -export function titleCase(str) { - return str.replace(/( |^)[a-z]/g, L => L.toUpperCase()) -} - -// 下划转驼峰 -export function camelCase(str) { - return str.replace(/_[a-z]/g, str1 => str1.substr(-1).toUpperCase()) -} - -export function isNumberStr(str) { - return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str) -} - diff --git a/Yi.Vue3.X.RuoYi/src/utils/jsencrypt.js b/Yi.Vue3.X.RuoYi/src/utils/jsencrypt.js deleted file mode 100644 index 78d95234..00000000 --- a/Yi.Vue3.X.RuoYi/src/utils/jsencrypt.js +++ /dev/null @@ -1,30 +0,0 @@ -import JSEncrypt from 'jsencrypt/bin/jsencrypt.min' - -// 密钥对生成 http://web.chacuo.net/netrsakeypair - -const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' + - 'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' - -const privateKey = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' + - '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' + - 'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' + - 'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' + - 'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' + - 'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' + - 'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' + - 'UP8iWi1Qw0Y=' - -// 加密 -export function encrypt(txt) { - const encryptor = new JSEncrypt() - encryptor.setPublicKey(publicKey) // 设置公钥 - return encryptor.encrypt(txt) // 对数据进行加密 -} - -// 解密 -export function decrypt(txt) { - const encryptor = new JSEncrypt() - encryptor.setPrivateKey(privateKey) // 设置私钥 - return encryptor.decrypt(txt) // 对数据进行解密 -} - diff --git a/Yi.Vue3.X.RuoYi/src/utils/permission.js b/Yi.Vue3.X.RuoYi/src/utils/permission.js deleted file mode 100644 index 93fee87f..00000000 --- a/Yi.Vue3.X.RuoYi/src/utils/permission.js +++ /dev/null @@ -1,51 +0,0 @@ -import useUserStore from '@/store/modules/user' - -/** - * 字符权限校验 - * @param {Array} value 校验值 - * @returns {Boolean} - */ -export function checkPermi(value) { - if (value && value instanceof Array && value.length > 0) { - const permissions = useUserStore().permissions - const permissionDatas = value - const all_permission = "*:*:*"; - - const hasPermission = permissions.some(permission => { - return all_permission === permission || permissionDatas.includes(permission) - }) - - if (!hasPermission) { - return false - } - return true - } else { - console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`) - return false - } -} - -/** - * 角色权限校验 - * @param {Array} value 校验值 - * @returns {Boolean} - */ -export function checkRole(value) { - if (value && value instanceof Array && value.length > 0) { - const roles = useUserStore().roles - const permissionRoles = value - const super_admin = "admin"; - - const hasRole = roles.some(role => { - return super_admin === role || permissionRoles.includes(role) - }) - - if (!hasRole) { - return false - } - return true - } else { - console.error(`need roles! Like checkRole="['admin','editor']"`) - return false - } -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/utils/request.js b/Yi.Vue3.X.RuoYi/src/utils/request.js deleted file mode 100644 index f21085a9..00000000 --- a/Yi.Vue3.X.RuoYi/src/utils/request.js +++ /dev/null @@ -1,164 +0,0 @@ -import axios from 'axios' -import { ElNotification , ElMessageBox, ElMessage, ElLoading } from 'element-plus' -import { getToken } from '@/utils/auth' -import errorCode from '@/utils/errorCode' -import { tansParams, blobValidate } from '@/utils/ruoyi' -import cache from '@/plugins/cache' -import { saveAs } from 'file-saver' -import useUserStore from '@/store/modules/user' -import JsonBig from 'json-bigint' - - -let downloadLoadingInstance; -// 是否显示重新登录 -export let isRelogin = { show: false }; - -axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' -// 创建axios实例 -const service = axios.create({ - // axios中请求配置有baseURL选项,表示请求URL公共部分 - baseURL: import.meta.env.VITE_APP_BASE_API, - // 超时 - timeout: 10000, - transformResponse: [ data => { - const json = JsonBig({ - storeAsString: true - }) - return json.parse(data) - }], -}) - -// request拦截器 -service.interceptors.request.use(config => { - // 是否需要设置 token - const isToken = (config.headers || {}).isToken === false - // 是否需要防止数据重复提交 - const isRepeatSubmit = (config.headers || {}).repeatSubmit === false - if (getToken() && !isToken) { - config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 - } - // get请求映射params参数 - if (config.method === 'get' && config.params) { - let url = config.url + '?' + tansParams(config.params); - url = url.slice(0, -1); - config.params = {}; - config.url = url; - } - if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) { - const requestObj = { - url: config.url, - data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data, - time: new Date().getTime() - } - const sessionObj = cache.session.getJSON('sessionObj') - if (sessionObj === undefined || sessionObj === null || sessionObj === '') { - cache.session.setJSON('sessionObj', requestObj) - } else { - const s_url = sessionObj.url; // 请求地址 - const s_data = sessionObj.data; // 请求数据 - const s_time = sessionObj.time; // 请求时间 - const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交 - if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) { - const message = '数据正在处理,请勿重复提交'; - console.warn(`[${s_url}]: ` + message) - return Promise.reject(new Error(message)) - } else { - cache.session.setJSON('sessionObj', requestObj) - } - } - } - return config -}, error => { - Promise.reject(error) -}) - -// 响应拦截器 -service.interceptors.response.use(res => { - // 未设置状态码则默认成功状态 - const code = res.data.code || 200; - // 获取错误信息 - const msg = errorCode[code] || res.data.message || errorCode['default'] - // 二进制数据则直接返回 - if(res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer'){ - return res.data - } - if (code === 401) { - if (!isRelogin.show) { - isRelogin.show = true; - ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { - confirmButtonText: '重新登录', - cancelButtonText: '取消', - type: 'warning' - } - ).then(() => { - isRelogin.show = false; - useUserStore().logOut().then(() => { - location.href = '/index'; - }) - }).catch(() => { - isRelogin.show = false; - }); - } - return Promise.reject('无效的会话,或者会话已过期,请重新登录。') - } else if (code === 500) { - ElMessage({ - message: msg, - type: 'error' - }) - return Promise.reject(new Error(msg)) - } else if (code !== 200) { - ElNotification.error({ - title: msg - }) - return Promise.reject('error') - } else { - return Promise.resolve(res.data) - } - }, - error => { - let { message } = error; - if (message == "Network Error") { - message = "后端接口连接异常"; - } - else if (message.includes("timeout")) { - message = "系统接口请求超时"; - } - else if (message.includes("Request failed with status code")) { - message = "系统接口" + message.substr(message.length - 3) + "异常"; - } - ElMessage({ - message: message, - type: 'error', - duration: 5 * 1000 - }) - return Promise.reject(error) - } -) - -// 通用下载方法 -export function download(url, params, filename) { - downloadLoadingInstance = ElLoading.service({ text: "正在下载数据,请稍候", background: "rgba(0, 0, 0, 0.7)", }) - return service.post(url, params, { - transformRequest: [(params) => { return tansParams(params) }], - headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, - responseType: 'blob' - }).then(async (data) => { - const isLogin = await blobValidate(data); - if (isLogin) { - const blob = new Blob([data]) - saveAs(blob, filename) - } else { - const resText = await data.text(); - const rspObj = JSON.parse(resText); - const errMsg = errorCode[rspObj.code] || rspObj.message || errorCode['default'] - ElMessage.error(errMsg); - } - downloadLoadingInstance.close(); - }).catch((r) => { - console.error(r) - ElMessage.error('下载文件出现错误,请联系管理员!') - downloadLoadingInstance.close(); - }) -} - -export default service diff --git a/Yi.Vue3.X.RuoYi/src/utils/ruoyi.js b/Yi.Vue3.X.RuoYi/src/utils/ruoyi.js deleted file mode 100644 index 7bf12dbc..00000000 --- a/Yi.Vue3.X.RuoYi/src/utils/ruoyi.js +++ /dev/null @@ -1,259 +0,0 @@ - - -/** - * 通用js方法封装处理 - * Copyright (c) 2019 ruoyi - */ - -// 日期格式化 -export function parseTime(time, pattern) { - if (arguments.length === 0 || !time) { - return null - } - const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}' - let date - if (typeof time === 'object') { - date = time - } else { - if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { - time = parseInt(time) - } else if (typeof time === 'string') { - time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), ''); - } - if ((typeof time === 'number') && (time.toString().length === 10)) { - time = time * 1000 - } - date = new Date(time) - } - const formatObj = { - y: date.getFullYear(), - m: date.getMonth() + 1, - d: date.getDate(), - h: date.getHours(), - i: date.getMinutes(), - s: date.getSeconds(), - a: date.getDay() - } - const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { - let value = formatObj[key] - // Note: getDay() returns 0 on Sunday - if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] } - if (result.length > 0 && value < 10) { - value = '0' + value - } - return value || 0 - }) - return time_str -} - -// 表单重置 -export function resetForm(refName) { - if (this.$refs[refName]) { - this.$refs[refName].resetFields(); - } -} - -// 添加日期范围 -export function addDateRange(params, dateRange, propName) { - let search = params; - search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {}; - dateRange = Array.isArray(dateRange) ? dateRange : []; - if (typeof (propName) === 'undefined') { - // search.params['beginTime'] = dateRange[0]; - // search.params['endTime'] = dateRange[1]; - search.startTime=dateRange[0]; - search.endTime=dateRange[1]; - } else { - search.params['start' + propName] = dateRange[0]; - search.params['end' + propName] = dateRange[1]; - } - return search; -} - -// 回显数据字典 -export function selectDictLabel(datas, value) { - if (value === undefined) { - return ""; - } - var actions = []; - Object.keys(datas).some((key) => { - if (datas[key].value == ('' + value)) { - actions.push(datas[key].label); - return true; - } - }) - if (actions.length === 0) { - actions.push(value); - } - return actions.join(''); -} - -// 回显数据字典(字符串数组) -export function selectDictLabels(datas, value, separator) { - if (value === undefined) { - return ""; - } - var actions = []; - var currentSeparator = undefined === separator ? "," : separator; - var temp = value.split(currentSeparator); - Object.keys(value.split(currentSeparator)).some((val) => { - var match = false; - Object.keys(datas).some((key) => { - if (datas[key].value == ('' + temp[val])) { - actions.push(datas[key].label + currentSeparator); - match = true; - } - }) - if (!match) { - actions.push(temp[val] + currentSeparator); - } - }) - return actions.join('').substring(0, actions.join('').length - 1); -} - -// 字符串格式化(%s ) -export function sprintf(str) { - var args = arguments, flag = true, i = 1; - str = str.replace(/%s/g, function () { - var arg = args[i++]; - if (typeof arg === 'undefined') { - flag = false; - return ''; - } - return arg; - }); - return flag ? str : ''; -} - -// 转换字符串,undefined,null等转化为"" -export function parseStrEmpty(str) { - if (!str || str == "undefined" || str == "null") { - return ""; - } - return str; -} - -// 数据合并 -export function mergeRecursive(source, target) { - for (var p in target) { - try { - if (target[p].constructor == Object) { - source[p] = mergeRecursive(source[p], target[p]); - } else { - source[p] = target[p]; - } - } catch (e) { - source[p] = target[p]; - } - } - return source; -}; - -/** - * 构造树型结构数据 - * @param {*} data 数据源 - * @param {*} id id字段 默认 'id' - * @param {*} parentId 父节点字段 默认 'parentId' - * @param {*} children 孩子节点字段 默认 'children' - */ -export function handleTree(data, id, parentId, children) { - - let config = { - id: id || 'id', - parentId: parentId || 'parentId', - childrenList: children || 'children' - }; - - var childrenListMap = {}; - var nodeIds = {}; - var tree = []; - - for (let d of data) { - let parentId = d[config.parentId]; - if (childrenListMap[parentId] == null) { - childrenListMap[parentId] = []; - } - nodeIds[d[config.id]] = d; - childrenListMap[parentId].push(d); - } - - for (let d of data) { - let parentId = d[config.parentId]; - if (nodeIds[parentId] == null) { - tree.push(d); - } - } - - for (let t of tree) { - adaptToChildrenList(t); - } - - function adaptToChildrenList(o) { - if (childrenListMap[o[config.id]] !== null) { - o[config.childrenList] = childrenListMap[o[config.id]]; - } - if (o[config.childrenList]) { - for (let c of o[config.childrenList]) { - adaptToChildrenList(c); - } - } - } - return tree; -} - -/** -* 参数处理 -* @param {*} params 参数 -*/ -export function tansParams(params) { - let result = '' - for (const propName of Object.keys(params)) { - const value = params[propName]; - var part = encodeURIComponent(propName) + "="; - if (value !== null && value !== "" && typeof (value) !== "undefined") { - if (typeof value === 'object') { - for (const key of Object.keys(value)) { - if (value[key] !== null && value[key] !== "" && typeof (value[key]) !== 'undefined') { - let params = propName + '[' + key + ']'; - var subPart = encodeURIComponent(params) + "="; - result += subPart + encodeURIComponent(value[key]) + "&"; - } - } - } else { - result += part + encodeURIComponent(value) + "&"; - } - } - } - return result -} - - -// 返回项目路径 -export function getNormalPath(p) { - if (p.length === 0 || !p || p == 'undefined') { - return p - }; - let res = p.replace('//', '/') - if (res[res.length - 1] === '/') { - return res.slice(0, res.length - 1) - } - return res; -} - -// 验证是否为blob格式 -export async function blobValidate(data) { - try { - const text = await data.text(); - JSON.parse(text); - return false; - } catch (error) { - return true; - } -} - -// 通用下载方法 -export function download(url) { - // window.location.href = baseURL + "/common/download?fileName=" + encodeURI(fileName) + "&delete=" + true; - // window.open(baseURL + "/common/download?fileName=" + encodeURI(fileName) + "&delete=" + true) - window.open(import.meta.env.VITE_APP_BASE_API + url) -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/utils/scroll-to.js b/Yi.Vue3.X.RuoYi/src/utils/scroll-to.js deleted file mode 100644 index c5d8e04e..00000000 --- a/Yi.Vue3.X.RuoYi/src/utils/scroll-to.js +++ /dev/null @@ -1,58 +0,0 @@ -Math.easeInOutQuad = function(t, b, c, d) { - t /= d / 2 - if (t < 1) { - return c / 2 * t * t + b - } - t-- - return -c / 2 * (t * (t - 2) - 1) + b -} - -// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts -var requestAnimFrame = (function() { - return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60) } -})() - -/** - * Because it's so fucking difficult to detect the scrolling element, just move them all - * @param {number} amount - */ -function move(amount) { - document.documentElement.scrollTop = amount - document.body.parentNode.scrollTop = amount - document.body.scrollTop = amount -} - -function position() { - return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop -} - -/** - * @param {number} to - * @param {number} duration - * @param {Function} callback - */ -export function scrollTo(to, duration, callback) { - const start = position() - const change = to - start - const increment = 20 - let currentTime = 0 - duration = (typeof (duration) === 'undefined') ? 500 : duration - var animateScroll = function() { - // increment the time - currentTime += increment - // find the value with the quadratic in-out easing function - var val = Math.easeInOutQuad(currentTime, start, change, duration) - // move the document.body - move(val) - // do the animation unless its over - if (currentTime < duration) { - requestAnimFrame(animateScroll) - } else { - if (callback && typeof (callback) === 'function') { - // the animation is done so lets callback - callback() - } - } - } - animateScroll() -} diff --git a/Yi.Vue3.X.RuoYi/src/utils/signalR.js b/Yi.Vue3.X.RuoYi/src/utils/signalR.js deleted file mode 100644 index 77019867..00000000 --- a/Yi.Vue3.X.RuoYi/src/utils/signalR.js +++ /dev/null @@ -1,103 +0,0 @@ -// 官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/signalr/javascript-client?view=aspnetcore-6.0&viewFallbackFrom=aspnetcore-2.2&tabs=visual-studio -import * as signalR from '@microsoft/signalr' -import useSocketStore from '@/store/modules/socket' -import { getToken } from '@/utils/auth' -import useUserStore from '@/store/modules/user' -import { ElMessage } from 'element-plus' - -export default { - // signalR对象 - SR: {}, - // 失败连接重试次数 - failNum: 4, - baseUrl: '', - init(url) { - const connection = new signalR.HubConnectionBuilder() - .withUrl(url, { accessTokenFactory: () => getToken() }) - .withAutomaticReconnect()//自动重新连接 - .configureLogging(signalR.LogLevel.Information) - .build(); - this.SR = connection; - // 断线重连 - connection.onclose(async () => { - console.log('断开连接了') - console.assert(connection.state === signalR.HubConnectionState.Disconnected); - // 建议用户重新刷新浏览器 - await this.start(); - }) - - connection.onreconnected(() => { - console.log('断线重新连接成功') - }) - this.receiveMsg(connection); - // 启动 - // this.start(); - }, - /** - * 调用 this.signalR.start().then(async () => { await this.SR.invoke("method")}) - * @returns - */ -async close(){ - var that = this; - await this.SR.stop(); -}, - - - async start() { - var that = this; - - try { - //使用async和await 或 promise的then 和catch 处理来自服务端的异常 - await this.SR.start(); - //console.assert(this.SR.state === signalR.HubConnectionState.Connected); - console.log('signalR 连接成功了', this.SR.state); - return true; - } catch (error) { - that.failNum--; - console.log(`失败重试剩余次数${that.failNum}`, error) - if (that.failNum > 0) { - setTimeout(async () => { - await this.SR.start() - }, 5000); - } - return false; - } - }, - // 接收消息处理 - receiveMsg(connection) { - connection.on("onlineNum", (data) => { - const socketStore = useSocketStore(); - socketStore.setOnlineNum(data) - }); - connection.on("forceOut", (msg) => { - useUserStore().logOut().then(() => { - ElMessage.error(msg); - location.href = '/index'; - }) - }); - // connection.on("onlineNum", (data) => { - // store.dispatch("socket/changeOnlineNum", data); - // }); - // // 接收欢迎语 - // connection.on("welcome", (data) => { - // console.log('welcome', data) - // Notification.info(data) - // }); - // // 接收后台手动推送消息 - // connection.on("receiveNotice", (title, data) => { - // Notification({ - // type: 'info', - // title: title, - // message: data, - // dangerouslyUseHTMLString: true, - // duration: 0 - // }) - // }) - // // 接收系统通知/公告 - // connection.on("moreNotice", (data) => { - // if (data.code == 200) { - // store.dispatch("socket/getNoticeList", data.data); - // } - // }) - } -} \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/utils/theme.js b/Yi.Vue3.X.RuoYi/src/utils/theme.js deleted file mode 100644 index f4badc67..00000000 --- a/Yi.Vue3.X.RuoYi/src/utils/theme.js +++ /dev/null @@ -1,49 +0,0 @@ -// 处理主题样式 -export function handleThemeStyle(theme) { - document.documentElement.style.setProperty('--el-color-primary', theme) - for (let i = 1; i <= 9; i++) { - document.documentElement.style.setProperty(`--el-color-primary-light-${i}`, `${getLightColor(theme, i / 10)}`) - } - for (let i = 1; i <= 9; i++) { - document.documentElement.style.setProperty(`--el-color-primary-dark-${i}`, `${getDarkColor(theme, i / 10)}`) - } -} - -// hex颜色转rgb颜色 -export function hexToRgb(str) { - str = str.replace('#', '') - let hexs = str.match(/../g) - for (let i = 0; i < 3; i++) { - hexs[i] = parseInt(hexs[i], 16) - } - return hexs -} - -// rgb颜色转Hex颜色 -export function rgbToHex(r, g, b) { - let hexs = [r.toString(16), g.toString(16), b.toString(16)] - for (let i = 0; i < 3; i++) { - if (hexs[i].length == 1) { - hexs[i] = `0${hexs[i]}` - } - } - return `#${hexs.join('')}` -} - -// 变浅颜色值 -export function getLightColor(color, level) { - let rgb = hexToRgb(color) - for (let i = 0; i < 3; i++) { - rgb[i] = Math.floor((255 - rgb[i]) * level + rgb[i]) - } - return rgbToHex(rgb[0], rgb[1], rgb[2]) -} - -// 变深颜色值 -export function getDarkColor(color, level) { - let rgb = hexToRgb(color) - for (let i = 0; i < 3; i++) { - rgb[i] = Math.floor(rgb[i] * (1 - level)) - } - return rgbToHex(rgb[0], rgb[1], rgb[2]) -} diff --git a/Yi.Vue3.X.RuoYi/src/utils/validate.js b/Yi.Vue3.X.RuoYi/src/utils/validate.js deleted file mode 100644 index 702add4b..00000000 --- a/Yi.Vue3.X.RuoYi/src/utils/validate.js +++ /dev/null @@ -1,93 +0,0 @@ -/** - * 判断url是否是http或https - * @param {string} path - * @returns {Boolean} - */ - export function isHttp(url) { - return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1 -} - -/** - * 判断path是否为外链 - * @param {string} path - * @returns {Boolean} - */ - export function isExternal(path) { - return /^(https?:|mailto:|tel:)/.test(path) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validUsername(str) { - const valid_map = ['admin', 'editor'] - return valid_map.indexOf(str.trim()) >= 0 -} - -/** - * @param {string} url - * @returns {Boolean} - */ -export function validURL(url) { - const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/ - return reg.test(url) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validLowerCase(str) { - const reg = /^[a-z]+$/ - return reg.test(str) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validUpperCase(str) { - const reg = /^[A-Z]+$/ - return reg.test(str) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function validAlphabets(str) { - const reg = /^[A-Za-z]+$/ - return reg.test(str) -} - -/** - * @param {string} email - * @returns {Boolean} - */ -export function validEmail(email) { - const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ - return reg.test(email) -} - -/** - * @param {string} str - * @returns {Boolean} - */ -export function isString(str) { - if (typeof str === 'string' || str instanceof String) { - return true - } - return false -} - -/** - * @param {Array} arg - * @returns {Boolean} - */ -export function isArray(arg) { - if (typeof Array.isArray === 'undefined') { - return Object.prototype.toString.call(arg) === '[object Array]' - } - return Array.isArray(arg) -} diff --git a/Yi.Vue3.X.RuoYi/src/views/error/401.vue b/Yi.Vue3.X.RuoYi/src/views/error/401.vue deleted file mode 100644 index 1ba37922..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/error/401.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/error/404.vue b/Yi.Vue3.X.RuoYi/src/views/error/404.vue deleted file mode 100644 index f2053032..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/error/404.vue +++ /dev/null @@ -1,227 +0,0 @@ - - - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/index.vue b/Yi.Vue3.X.RuoYi/src/views/index.vue deleted file mode 100644 index 346d475a..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/index.vue +++ /dev/null @@ -1,934 +0,0 @@ - - - - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/login.vue b/Yi.Vue3.X.RuoYi/src/views/login.vue deleted file mode 100644 index 4abb826b..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/login.vue +++ /dev/null @@ -1,218 +0,0 @@ - - - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/monitor/cache/index.vue b/Yi.Vue3.X.RuoYi/src/views/monitor/cache/index.vue deleted file mode 100644 index aadbcf44..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/monitor/cache/index.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/monitor/cache/list.vue b/Yi.Vue3.X.RuoYi/src/views/monitor/cache/list.vue deleted file mode 100644 index 49ba7cdd..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/monitor/cache/list.vue +++ /dev/null @@ -1,241 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/monitor/druid/index.vue b/Yi.Vue3.X.RuoYi/src/views/monitor/druid/index.vue deleted file mode 100644 index 13736ec1..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/monitor/druid/index.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/monitor/job/index.vue b/Yi.Vue3.X.RuoYi/src/views/monitor/job/index.vue deleted file mode 100644 index be65c336..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/monitor/job/index.vue +++ /dev/null @@ -1,503 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/monitor/job/log.vue b/Yi.Vue3.X.RuoYi/src/views/monitor/job/log.vue deleted file mode 100644 index ac4497c7..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/monitor/job/log.vue +++ /dev/null @@ -1,282 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/monitor/logininfor/index.vue b/Yi.Vue3.X.RuoYi/src/views/monitor/logininfor/index.vue deleted file mode 100644 index ea272b36..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/monitor/logininfor/index.vue +++ /dev/null @@ -1,224 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/monitor/online/index.vue b/Yi.Vue3.X.RuoYi/src/views/monitor/online/index.vue deleted file mode 100644 index a031b24e..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/monitor/online/index.vue +++ /dev/null @@ -1,110 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/monitor/operlog/index.vue b/Yi.Vue3.X.RuoYi/src/views/monitor/operlog/index.vue deleted file mode 100644 index 4e2510c4..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/monitor/operlog/index.vue +++ /dev/null @@ -1,279 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/monitor/server/index.vue b/Yi.Vue3.X.RuoYi/src/views/monitor/server/index.vue deleted file mode 100644 index 172443c8..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/monitor/server/index.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/redirect/index.vue b/Yi.Vue3.X.RuoYi/src/views/redirect/index.vue deleted file mode 100644 index a469960d..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/redirect/index.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/views/register.vue b/Yi.Vue3.X.RuoYi/src/views/register.vue deleted file mode 100644 index cc4f6e46..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/register.vue +++ /dev/null @@ -1,218 +0,0 @@ - - - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/config/index.vue b/Yi.Vue3.X.RuoYi/src/views/system/config/index.vue deleted file mode 100644 index 522a165c..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/config/index.vue +++ /dev/null @@ -1,316 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/dept/index.vue b/Yi.Vue3.X.RuoYi/src/views/system/dept/index.vue deleted file mode 100644 index ca4fbc60..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/dept/index.vue +++ /dev/null @@ -1,297 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/dict/data.vue b/Yi.Vue3.X.RuoYi/src/views/system/dict/data.vue deleted file mode 100644 index e40296af..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/dict/data.vue +++ /dev/null @@ -1,355 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/dict/index.vue b/Yi.Vue3.X.RuoYi/src/views/system/dict/index.vue deleted file mode 100644 index 62d56424..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/dict/index.vue +++ /dev/null @@ -1,318 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/menu/index.vue b/Yi.Vue3.X.RuoYi/src/views/system/menu/index.vue deleted file mode 100644 index 83f71ca7..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/menu/index.vue +++ /dev/null @@ -1,454 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/notice/index.vue b/Yi.Vue3.X.RuoYi/src/views/system/notice/index.vue deleted file mode 100644 index ac0f5e66..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/notice/index.vue +++ /dev/null @@ -1,296 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/post/index.vue b/Yi.Vue3.X.RuoYi/src/views/system/post/index.vue deleted file mode 100644 index d1b66a4c..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/post/index.vue +++ /dev/null @@ -1,281 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/role/authUser.vue b/Yi.Vue3.X.RuoYi/src/views/system/role/authUser.vue deleted file mode 100644 index 4e4bceca..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/role/authUser.vue +++ /dev/null @@ -1,177 +0,0 @@ - - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/role/index.vue b/Yi.Vue3.X.RuoYi/src/views/system/role/index.vue deleted file mode 100644 index 3650904e..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/role/index.vue +++ /dev/null @@ -1,740 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/role/selectUser.vue b/Yi.Vue3.X.RuoYi/src/views/system/role/selectUser.vue deleted file mode 100644 index 19d5d7cc..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/role/selectUser.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/user/authRole.vue b/Yi.Vue3.X.RuoYi/src/views/system/user/authRole.vue deleted file mode 100644 index 0b5c14bc..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/user/authRole.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/user/index.vue b/Yi.Vue3.X.RuoYi/src/views/system/user/index.vue deleted file mode 100644 index 5946e12a..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/user/index.vue +++ /dev/null @@ -1,550 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/user/profile/index.vue b/Yi.Vue3.X.RuoYi/src/views/system/user/profile/index.vue deleted file mode 100644 index ecea87d1..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/user/profile/index.vue +++ /dev/null @@ -1,91 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/user/profile/resetPwd.vue b/Yi.Vue3.X.RuoYi/src/views/system/user/profile/resetPwd.vue deleted file mode 100644 index dec2d79c..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/user/profile/resetPwd.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/system/user/profile/userAvatar.vue b/Yi.Vue3.X.RuoYi/src/views/system/user/profile/userAvatar.vue deleted file mode 100644 index 7f1c4834..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/user/profile/userAvatar.vue +++ /dev/null @@ -1,175 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/views/system/user/profile/userInfo.vue b/Yi.Vue3.X.RuoYi/src/views/system/user/profile/userInfo.vue deleted file mode 100644 index 02775069..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/system/user/profile/userInfo.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/tool/build/index.vue b/Yi.Vue3.X.RuoYi/src/views/tool/build/index.vue deleted file mode 100644 index c3543a92..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/tool/build/index.vue +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.X.RuoYi/src/views/tool/gen/basicInfoForm.vue b/Yi.Vue3.X.RuoYi/src/views/tool/gen/basicInfoForm.vue deleted file mode 100644 index 39c85150..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/tool/gen/basicInfoForm.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/tool/gen/editTable.vue b/Yi.Vue3.X.RuoYi/src/views/tool/gen/editTable.vue deleted file mode 100644 index 6529e8ae..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/tool/gen/editTable.vue +++ /dev/null @@ -1,198 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/tool/gen/genInfoForm.vue b/Yi.Vue3.X.RuoYi/src/views/tool/gen/genInfoForm.vue deleted file mode 100644 index bd14ccc2..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/tool/gen/genInfoForm.vue +++ /dev/null @@ -1,281 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/tool/gen/importTable.vue b/Yi.Vue3.X.RuoYi/src/views/tool/gen/importTable.vue deleted file mode 100644 index 33b56337..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/tool/gen/importTable.vue +++ /dev/null @@ -1,118 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/tool/gen/index.vue b/Yi.Vue3.X.RuoYi/src/views/tool/gen/index.vue deleted file mode 100644 index 24ba79cf..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/tool/gen/index.vue +++ /dev/null @@ -1,306 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/src/views/tool/swagger/index.vue b/Yi.Vue3.X.RuoYi/src/views/tool/swagger/index.vue deleted file mode 100644 index a44fa711..00000000 --- a/Yi.Vue3.X.RuoYi/src/views/tool/swagger/index.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/Yi.Vue3.X.RuoYi/vite.config.js b/Yi.Vue3.X.RuoYi/vite.config.js deleted file mode 100644 index 0e9fb0ab..00000000 --- a/Yi.Vue3.X.RuoYi/vite.config.js +++ /dev/null @@ -1,68 +0,0 @@ -import { defineConfig, loadEnv } from 'vite' -import path from 'path' -import createVitePlugins from './vite/plugins' - -// https://vitejs.dev/config/ -export default defineConfig(({ mode, command }) => { - const env = loadEnv(mode, process.cwd()) - const { VITE_APP_ENV, VITE_APP_BASE_URL} = env - return { - // 部署生产环境和开发环境下的URL。 - // 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上 - // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 - base: VITE_APP_ENV === 'production' ? '/' : '/', - plugins: createVitePlugins(env, command === 'build'), - resolve: { - // https://cn.vitejs.dev/config/#resolve-alias - alias: { - // 设置路径 - '~': path.resolve(__dirname, './'), - // 设置别名 - '@': path.resolve(__dirname, './src') - }, - // https://cn.vitejs.dev/config/#resolve-extensions - extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'] - }, - // vite 相关配置 - server: { - port: 18000, - host: true, - open: true, - - - proxy: { - // https://cn.vitejs.dev/config/#server-proxy - '/dev-api': { - target: VITE_APP_BASE_URL, - changeOrigin: true, - rewrite: (p) => p.replace(/^\/dev-api/, ''), - }, - - '/dev-ws': { - target: VITE_APP_BASE_URL, - changeOrigin: true, - rewrite: (p) => p.replace(/^\/dev-ws/, ''), - ws: true - } - - } - }, - //fix:error:stdin>:7356:1: warning: "@charset" must be the first rule in the file - css: { - postcss: { - plugins: [ - { - postcssPlugin: 'internal:charset-removal', - AtRule: { - charset: (atRule) => { - if (atRule.name === 'charset') { - atRule.remove(); - } - } - } - } - ] - } - } - } -}) diff --git a/Yi.Vue3.X.RuoYi/vite/plugins/auto-import.js b/Yi.Vue3.X.RuoYi/vite/plugins/auto-import.js deleted file mode 100644 index a5d35763..00000000 --- a/Yi.Vue3.X.RuoYi/vite/plugins/auto-import.js +++ /dev/null @@ -1,12 +0,0 @@ -import autoImport from 'unplugin-auto-import/vite' - -export default function createAutoImport() { - return autoImport({ - imports: [ - 'vue', - 'vue-router', - 'pinia' - ], - dts: false - }) -} diff --git a/Yi.Vue3.X.RuoYi/vite/plugins/compression.js b/Yi.Vue3.X.RuoYi/vite/plugins/compression.js deleted file mode 100644 index e90aaecc..00000000 --- a/Yi.Vue3.X.RuoYi/vite/plugins/compression.js +++ /dev/null @@ -1,28 +0,0 @@ -import compression from 'vite-plugin-compression' - -export default function createCompression(env) { - const { VITE_BUILD_COMPRESS } = env - const plugin = [] - if (VITE_BUILD_COMPRESS) { - const compressList = VITE_BUILD_COMPRESS.split(',') - if (compressList.includes('gzip')) { - // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件 - plugin.push( - compression({ - ext: '.gz', - deleteOriginFile: false - }) - ) - } - if (compressList.includes('brotli')) { - plugin.push( - compression({ - ext: '.br', - algorithm: 'brotliCompress', - deleteOriginFile: false - }) - ) - } - } - return plugin -} diff --git a/Yi.Vue3.X.RuoYi/vite/plugins/index.js b/Yi.Vue3.X.RuoYi/vite/plugins/index.js deleted file mode 100644 index 10e17c3d..00000000 --- a/Yi.Vue3.X.RuoYi/vite/plugins/index.js +++ /dev/null @@ -1,15 +0,0 @@ -import vue from '@vitejs/plugin-vue' - -import createAutoImport from './auto-import' -import createSvgIcon from './svg-icon' -import createCompression from './compression' -import createSetupExtend from './setup-extend' - -export default function createVitePlugins(viteEnv, isBuild = false) { - const vitePlugins = [vue()] - vitePlugins.push(createAutoImport()) - vitePlugins.push(createSetupExtend()) - vitePlugins.push(createSvgIcon(isBuild)) - isBuild && vitePlugins.push(...createCompression(viteEnv)) - return vitePlugins -} diff --git a/Yi.Vue3.X.RuoYi/vite/plugins/setup-extend.js b/Yi.Vue3.X.RuoYi/vite/plugins/setup-extend.js deleted file mode 100644 index a4980f30..00000000 --- a/Yi.Vue3.X.RuoYi/vite/plugins/setup-extend.js +++ /dev/null @@ -1,5 +0,0 @@ -import setupExtend from 'vite-plugin-vue-setup-extend' - -export default function createSetupExtend() { - return setupExtend() -} diff --git a/Yi.Vue3.X.RuoYi/vite/plugins/svg-icon.js b/Yi.Vue3.X.RuoYi/vite/plugins/svg-icon.js deleted file mode 100644 index 30a4140f..00000000 --- a/Yi.Vue3.X.RuoYi/vite/plugins/svg-icon.js +++ /dev/null @@ -1,10 +0,0 @@ -import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' -import path from 'path' - -export default function createSvgIcon(isBuild) { - return createSvgIconsPlugin({ - iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/svg')], - symbolId: 'icon-[dir]-[name]', - svgoOptions: isBuild - }) -} diff --git a/Yi.Vue3.x.RuoYi/src/api/bbs/articleApi.js b/Yi.Vue3.x.RuoYi/src/api/bbs/articleApi.js deleted file mode 100644 index 403e94c0..00000000 --- a/Yi.Vue3.x.RuoYi/src/api/bbs/articleApi.js +++ /dev/null @@ -1,45 +0,0 @@ -import request from '@/utils/request' - -// 分页查询 -export function listData(query) { - return request({ - url: '/article/pageList', - method: 'get', - params: query - }) -} - -// id查询 -export function getData(code) { - return request({ - url: '/article/getById/' + code, - method: 'get' - }) -} - -// 新增 -export function addData(data) { - return request({ - url: '/article/add', - method: 'post', - data: data - }) -} - -// 修改 -export function updateData(data) { - return request({ - url: '/article/update', - method: 'put', - data: data - }) -} - -// 删除 -export function delData(code) { - return request({ - url: '/article/delList', - method: 'delete', - data:"string"==typeof(code)?[code]:code - }) -} diff --git a/Yi.Vue3.x.RuoYi/src/api/erp/materialApi.js b/Yi.Vue3.x.RuoYi/src/api/erp/materialApi.js deleted file mode 100644 index 80f472e1..00000000 --- a/Yi.Vue3.x.RuoYi/src/api/erp/materialApi.js +++ /dev/null @@ -1,45 +0,0 @@ -import request from '@/utils/request' - -// 分页查询 -export function listData(query) { - return request({ - url: '/material/pageList', - method: 'get', - params: query - }) -} - -// id查询 -export function getData(code) { - return request({ - url: '/material/getById/' + code, - method: 'get' - }) -} - -// 新增 -export function addData(data) { - return request({ - url: '/material/create', - method: 'post', - data: data - }) -} - -// 修改 -export function updateData(id,data) { - return request({ - url: `/material/update/${id}`, - method: 'put', - data: data - }) -} - -// 删除 -export function delData(code) { - return request({ - url: '/material/del', - method: 'delete', - data:"string"==typeof(code)?[code]:code - }) -} diff --git a/Yi.Vue3.x.RuoYi/src/api/erp/purchaseApi.js b/Yi.Vue3.x.RuoYi/src/api/erp/purchaseApi.js deleted file mode 100644 index 98ff7b78..00000000 --- a/Yi.Vue3.x.RuoYi/src/api/erp/purchaseApi.js +++ /dev/null @@ -1,45 +0,0 @@ -import request from '@/utils/request' - -// 分页查询 -export function listData(query) { - return request({ - url: '/purchase/pageList', - method: 'get', - params: query - }) -} - -// id查询 -export function getData(code) { - return request({ - url: '/purchase/getById/' + code, - method: 'get' - }) -} - -// 新增 -export function addData(data) { - return request({ - url: '/purchase/create', - method: 'post', - data: data - }) -} - -// 修改 -export function updateData(id,data) { - return request({ - url: `/purchase/update/${id}`, - method: 'put', - data: data - }) -} - -// 删除 -export function delData(code) { - return request({ - url: '/purchase/del', - method: 'delete', - data:"string"==typeof(code)?[code]:code - }) -} diff --git a/Yi.Vue3.x.RuoYi/src/api/erp/purchaseDetailsApi.js b/Yi.Vue3.x.RuoYi/src/api/erp/purchaseDetailsApi.js deleted file mode 100644 index 1bcbb35d..00000000 --- a/Yi.Vue3.x.RuoYi/src/api/erp/purchaseDetailsApi.js +++ /dev/null @@ -1,45 +0,0 @@ -import request from '@/utils/request' - -// 分页查询 -export function listData(query) { - return request({ - url: '/purchaseDetails/pageList', - method: 'get', - params: query - }) -} - -// id查询 -export function getData(code) { - return request({ - url: '/purchaseDetails/getById/' + code, - method: 'get' - }) -} - -// 新增 -export function addData(data) { - return request({ - url: '/purchaseDetails/create', - method: 'post', - data: data - }) -} - -// 修改 -export function updateData(id,data) { - return request({ - url: `/purchaseDetails/update/${id}`, - method: 'put', - data: data - }) -} - -// 删除 -export function delData(code) { - return request({ - url: '/purchaseDetails/del', - method: 'delete', - data:"string"==typeof(code)?[code]:code - }) -} diff --git a/Yi.Vue3.x.RuoYi/src/api/erp/supplierApi.js b/Yi.Vue3.x.RuoYi/src/api/erp/supplierApi.js deleted file mode 100644 index 8694b055..00000000 --- a/Yi.Vue3.x.RuoYi/src/api/erp/supplierApi.js +++ /dev/null @@ -1,45 +0,0 @@ -import request from '@/utils/request' - -// 分页查询 -export function listData(query) { - return request({ - url: '/supplier/pageList', - method: 'get', - params: query - }) -} - -// id查询 -export function getData(code) { - return request({ - url: '/supplier/getById/' + code, - method: 'get' - }) -} - -// 新增 -export function addData(data) { - return request({ - url: '/supplier/create', - method: 'post', - data: data - }) -} - -// 修改 -export function updateData(id,data) { - return request({ - url: `/supplier/update/${id}`, - method: 'put', - data: data - }) -} - -// 删除 -export function delData(code) { - return request({ - url: '/supplier/del', - method: 'delete', - data:"string"==typeof(code)?[code]:code - }) -} diff --git a/Yi.Vue3.x.RuoYi/src/api/erp/unitApi.js b/Yi.Vue3.x.RuoYi/src/api/erp/unitApi.js deleted file mode 100644 index ca925c04..00000000 --- a/Yi.Vue3.x.RuoYi/src/api/erp/unitApi.js +++ /dev/null @@ -1,53 +0,0 @@ -import request from '@/utils/request' - -// 全查询 -export function allData() { - return request({ - url: '/unit/getList', - method: 'get' - }) -} - -// 分页查询 -export function listData(query) { - return request({ - url: '/unit/pageList', - method: 'get', - params: query - }) -} - -// id查询 -export function getData(code) { - return request({ - url: '/unit/getById/' + code, - method: 'get' - }) -} - -// 新增 -export function addData(data) { - return request({ - url: '/unit/create', - method: 'post', - data: data - }) -} - -// 修改 -export function updateData(id,data) { - return request({ - url: `/unit/update/${id}`, - method: 'put', - data: data - }) -} - -// 删除 -export function delData(code) { - return request({ - url: '/unit/del', - method: 'delete', - data:"string"==typeof(code)?[code]:code - }) -} diff --git a/Yi.Vue3.x.RuoYi/src/api/erp/warehouseApi.js b/Yi.Vue3.x.RuoYi/src/api/erp/warehouseApi.js deleted file mode 100644 index e9f91df4..00000000 --- a/Yi.Vue3.x.RuoYi/src/api/erp/warehouseApi.js +++ /dev/null @@ -1,45 +0,0 @@ -import request from '@/utils/request' - -// 分页查询 -export function listData(query) { - return request({ - url: '/warehouse/pageList', - method: 'get', - params: query - }) -} - -// id查询 -export function getData(code) { - return request({ - url: '/warehouse/getById/' + code, - method: 'get' - }) -} - -// 新增 -export function addData(data) { - return request({ - url: '/warehouse/create', - method: 'post', - data: data - }) -} - -// 修改 -export function updateData(id,data) { - return request({ - url: `/warehouse/update/${id}`, - method: 'put', - data: data - }) -} - -// 删除 -export function delData(code) { - return request({ - url: '/warehouse/del', - method: 'delete', - data:"string"==typeof(code)?[code]:code - }) -} diff --git a/Yi.Vue3.x.RuoYi/src/api/file.js b/Yi.Vue3.x.RuoYi/src/api/file.js deleted file mode 100644 index 2dc681e9..00000000 --- a/Yi.Vue3.x.RuoYi/src/api/file.js +++ /dev/null @@ -1,11 +0,0 @@ -import request from '@/utils/request' - -export function - upload(type,data){ - return request({ - url: `/file/upload/${type}`, - headers:{"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"}, - method: 'POST', - data:data - }); -} diff --git a/Yi.Vue3.x.RuoYi/src/views/ERP/material/index.vue b/Yi.Vue3.x.RuoYi/src/views/ERP/material/index.vue deleted file mode 100644 index 78b54705..00000000 --- a/Yi.Vue3.x.RuoYi/src/views/ERP/material/index.vue +++ /dev/null @@ -1,402 +0,0 @@ - - - \ No newline at end of file diff --git a/Yi.Vue3.x.RuoYi/src/views/ERP/purchase/index.vue b/Yi.Vue3.x.RuoYi/src/views/ERP/purchase/index.vue deleted file mode 100644 index 41697b5c..00000000 --- a/Yi.Vue3.x.RuoYi/src/views/ERP/purchase/index.vue +++ /dev/null @@ -1,488 +0,0 @@ - - - - \ No newline at end of file diff --git a/Yi.Vue3.x.RuoYi/src/views/ERP/supplier/index.vue b/Yi.Vue3.x.RuoYi/src/views/ERP/supplier/index.vue deleted file mode 100644 index 3d9564f8..00000000 --- a/Yi.Vue3.x.RuoYi/src/views/ERP/supplier/index.vue +++ /dev/null @@ -1,390 +0,0 @@ - - - \ No newline at end of file diff --git a/Yi.Vue3.x.RuoYi/src/views/ERP/unit/index.vue b/Yi.Vue3.x.RuoYi/src/views/ERP/unit/index.vue deleted file mode 100644 index f5180285..00000000 --- a/Yi.Vue3.x.RuoYi/src/views/ERP/unit/index.vue +++ /dev/null @@ -1,363 +0,0 @@ - - - \ No newline at end of file diff --git a/Yi.Vue3.x.RuoYi/src/views/ERP/warehouse/index.vue b/Yi.Vue3.x.RuoYi/src/views/ERP/warehouse/index.vue deleted file mode 100644 index 90d2d062..00000000 --- a/Yi.Vue3.x.RuoYi/src/views/ERP/warehouse/index.vue +++ /dev/null @@ -1,368 +0,0 @@ - - - \ No newline at end of file diff --git a/Yi.Vue3.x.RuoYi/src/views/bbs/article/index.vue b/Yi.Vue3.x.RuoYi/src/views/bbs/article/index.vue deleted file mode 100644 index 79065cb0..00000000 --- a/Yi.Vue3.x.RuoYi/src/views/bbs/article/index.vue +++ /dev/null @@ -1,381 +0,0 @@ - - - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/.env.development b/Yi.Vue3.x.Vant/.env.development deleted file mode 100644 index fa4ea55e..00000000 --- a/Yi.Vue3.x.Vant/.env.development +++ /dev/null @@ -1,17 +0,0 @@ -# 页面标题 -VITE_APP_TITLE = 意框架管理系统 - -# 开发环境配置 -VITE_APP_ENV = 'development' - -# 若依管理系统/开发环境 -VITE_APP_BASE_API = '/dev-api' - -# ws/开发环境 -VITE_APP_BASE_WS = '/dev-ws' - - -VITE_APP_BASE_URL='http://localhost:19001/api' - - - diff --git a/Yi.Vue3.x.Vant/.env.production b/Yi.Vue3.x.Vant/.env.production deleted file mode 100644 index 565a45ef..00000000 --- a/Yi.Vue3.x.Vant/.env.production +++ /dev/null @@ -1,15 +0,0 @@ -# 页面标题 -VITE_APP_TITLE = 意框架管理系统 - -# 生产环境配置 -VITE_APP_ENV = 'production' - -# 意框架管理系统/生产环境 -VITE_APP_BASE_API = '/prod-api' - -# ws/开发环境 -VITE_APP_BASE_WS = '/prod-ws' - -# 是否在打包时开启压缩,支持 gzip 和 brotli -VITE_BUILD_COMPRESS = gzip - diff --git a/Yi.Vue3.x.Vant/.env.staging b/Yi.Vue3.x.Vant/.env.staging deleted file mode 100644 index 58e3fbcd..00000000 --- a/Yi.Vue3.x.Vant/.env.staging +++ /dev/null @@ -1,15 +0,0 @@ -# 页面标题 -VITE_APP_TITLE = 意框架管理系统 - -# 生产环境配置 -VITE_APP_ENV = 'staging' - -# 若依管理系统/生产环境 -VITE_APP_BASE_API = '/stage-api' - -# ws/开发环境 -VITE_APP_BASE_WS = '/stage-ws' - -# 是否在打包时开启压缩,支持 gzip 和 brotli -VITE_BUILD_COMPRESS = gzip - diff --git a/Yi.Vue3.x.Vant/.gitignore b/Yi.Vue3.x.Vant/.gitignore deleted file mode 100644 index a547bf36..00000000 --- a/Yi.Vue3.x.Vant/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/Yi.Vue3.x.Vant/.vscode/extensions.json b/Yi.Vue3.x.Vant/.vscode/extensions.json deleted file mode 100644 index a7cea0b0..00000000 --- a/Yi.Vue3.x.Vant/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["Vue.volar"] -} diff --git a/Yi.Vue3.x.Vant/README.md b/Yi.Vue3.x.Vant/README.md deleted file mode 100644 index 30b15e21..00000000 --- a/Yi.Vue3.x.Vant/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Vue 3 + TypeScript + Vite - -This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` - - diff --git a/Yi.Vue3.x.Vant/package-lock.json b/Yi.Vue3.x.Vant/package-lock.json deleted file mode 100644 index 33c14624..00000000 --- a/Yi.Vue3.x.Vant/package-lock.json +++ /dev/null @@ -1,2543 +0,0 @@ -{ - "name": "yi", - "version": "0.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "yi", - "version": "0.0.0", - "dependencies": { - "axios": "^1.1.2", - "json-bigint": "^1.0.0", - "pinia": "^2.0.23", - "vant": "^3.6.3", - "vue": "^3.2.37", - "vue-router": "^4.1.5", - "vuex": "^4.0.2" - }, - "devDependencies": { - "@types/json-bigint": "^1.0.1", - "@types/node": "^18.8.2", - "@vitejs/plugin-vue": "^3.1.0", - "typescript": "^4.6.4", - "unplugin-vue-components": "^0.22.7", - "vite": "^3.1.0", - "vue-tsc": "^0.40.4" - } - }, - "node_modules/@antfu/utils": { - "version": "0.5.2", - "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.5.2.tgz", - "integrity": "sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==", - "dev": true - }, - "node_modules/@babel/parser": { - "version": "7.19.3", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.19.3.tgz", - "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.15.10.tgz", - "integrity": "sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz", - "integrity": "sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", - "dev": true, - "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/@types/json-bigint": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/json-bigint/-/json-bigint-1.0.1.tgz", - "integrity": "sha512-zpchZLNsNuzJHi6v64UBoFWAvQlPhch7XAi36FkH6tL1bbbmimIF+cS7vwkzY4u5RaSWMoflQfu+TshMPPw8uw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.8.2", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.8.2.tgz", - "integrity": "sha512-cRMwIgdDN43GO4xMWAfJAecYn8wV4JbsOGHNfNUIDiuYkUYAR5ec4Rj7IO2SAhFPEfpPtLtUTbbny/TCT7aDwA==", - "dev": true - }, - "node_modules/@vant/icons": { - "version": "1.8.0", - "resolved": "https://registry.npmmirror.com/@vant/icons/-/icons-1.8.0.tgz", - "integrity": "sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg==" - }, - "node_modules/@vant/popperjs": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz", - "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==" - }, - "node_modules/@vant/use": { - "version": "1.4.3", - "resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.4.3.tgz", - "integrity": "sha512-rSnETN7P9qT1WbItMpQxBqe3cHeK2ZFYp1sCxWUXaTeI71TqA8sOdzC36ledZ36NQgFNTch9fsRPYOkrCgZfQA==" - }, - "node_modules/@vitejs/plugin-vue": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.1.2.tgz", - "integrity": "sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==", - "dev": true, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^3.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@volar/code-gen": { - "version": "0.40.13", - "resolved": "https://registry.npmmirror.com/@volar/code-gen/-/code-gen-0.40.13.tgz", - "integrity": "sha512-4gShBWuMce868OVvgyA1cU5WxHbjfEme18Tw6uVMfweZCF5fB2KECG0iPrA9D54vHk3FeHarODNwgIaaFfUBlA==", - "dev": true, - "dependencies": { - "@volar/source-map": "0.40.13" - } - }, - "node_modules/@volar/source-map": { - "version": "0.40.13", - "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-0.40.13.tgz", - "integrity": "sha512-dbdkAB2Nxb0wLjAY5O64o3ywVWlAGONnBIoKAkXSf6qkGZM+nJxcizsoiI66K+RHQG0XqlyvjDizfnTxr+6PWg==", - "dev": true, - "dependencies": { - "@vue/reactivity": "3.2.38" - } - }, - "node_modules/@volar/source-map/node_modules/@vue/reactivity": { - "version": "3.2.38", - "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.38.tgz", - "integrity": "sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==", - "dev": true, - "dependencies": { - "@vue/shared": "3.2.38" - } - }, - "node_modules/@volar/source-map/node_modules/@vue/shared": { - "version": "3.2.38", - "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.38.tgz", - "integrity": "sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==", - "dev": true - }, - "node_modules/@volar/typescript-faster": { - "version": "0.40.13", - "resolved": "https://registry.npmmirror.com/@volar/typescript-faster/-/typescript-faster-0.40.13.tgz", - "integrity": "sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw==", - "dev": true, - "dependencies": { - "semver": "^7.3.7" - } - }, - "node_modules/@volar/vue-language-core": { - "version": "0.40.13", - "resolved": "https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-0.40.13.tgz", - "integrity": "sha512-QkCb8msi2KUitTdM6Y4kAb7/ZlEvuLcbBFOC2PLBlFuoZwyxvSP7c/dBGmKGtJlEvMX0LdCyrg5V2aBYxD38/Q==", - "dev": true, - "dependencies": { - "@volar/code-gen": "0.40.13", - "@volar/source-map": "0.40.13", - "@vue/compiler-core": "^3.2.38", - "@vue/compiler-dom": "^3.2.38", - "@vue/compiler-sfc": "^3.2.38", - "@vue/reactivity": "^3.2.38", - "@vue/shared": "^3.2.38" - } - }, - "node_modules/@volar/vue-typescript": { - "version": "0.40.13", - "resolved": "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-0.40.13.tgz", - "integrity": "sha512-o7bNztwjs8JmbQjVkrnbZUOfm7q4B8ZYssETISN1tRaBdun6cfNqgpkvDYd+VUBh1O4CdksvN+5BUNnwAz4oCQ==", - "dev": true, - "dependencies": { - "@volar/code-gen": "0.40.13", - "@volar/typescript-faster": "0.40.13", - "@volar/vue-language-core": "0.40.13" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.40.tgz", - "integrity": "sha512-2Dc3Stk0J/VyQ4OUr2yEC53kU28614lZS+bnrCbFSAIftBJ40g/2yQzf4mPBiFuqguMB7hyHaujdgZAQ67kZYA==", - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.40", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.40.tgz", - "integrity": "sha512-OZCNyYVC2LQJy4H7h0o28rtk+4v+HMQygRTpmibGoG9wZyomQiS5otU7qo3Wlq5UfHDw2RFwxb9BJgKjVpjrQw==", - "dependencies": { - "@vue/compiler-core": "3.2.40", - "@vue/shared": "3.2.40" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.40.tgz", - "integrity": "sha512-tzqwniIN1fu1PDHC3CpqY/dPCfN/RN1thpBC+g69kJcrl7mbGiHKNwbA6kJ3XKKy8R6JLKqcpVugqN4HkeBFFg==", - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.40", - "@vue/compiler-dom": "3.2.40", - "@vue/compiler-ssr": "3.2.40", - "@vue/reactivity-transform": "3.2.40", - "@vue/shared": "3.2.40", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.40.tgz", - "integrity": "sha512-80cQcgasKjrPPuKcxwuCx7feq+wC6oFl5YaKSee9pV3DNq+6fmCVwEEC3vvkf/E2aI76rIJSOYHsWSEIxK74oQ==", - "dependencies": { - "@vue/compiler-dom": "3.2.40", - "@vue/shared": "3.2.40" - } - }, - "node_modules/@vue/devtools-api": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.4.tgz", - "integrity": "sha512-Ku31WzpOV/8cruFaXaEZKF81WkNnvCSlBY4eOGtz5WMSdJvX1v1WWlSMGZeqUwPtQ27ZZz7B62erEMq8JDjcXw==" - }, - "node_modules/@vue/reactivity": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.40.tgz", - "integrity": "sha512-N9qgGLlZmtUBMHF9xDT4EkD9RdXde1Xbveb+niWMXuHVWQP5BzgRmE3SFyUBBcyayG4y1lhoz+lphGRRxxK4RA==", - "dependencies": { - "@vue/shared": "3.2.40" - } - }, - "node_modules/@vue/reactivity-transform": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.40.tgz", - "integrity": "sha512-HQUCVwEaacq6fGEsg2NUuGKIhUveMCjOk8jGHqLXPI2w6zFoPrlQhwWEaINTv5kkZDXKEnCijAp+4gNEHG03yw==", - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.40", - "@vue/shared": "3.2.40", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.40.tgz", - "integrity": "sha512-U1+rWf0H8xK8aBUZhnrN97yoZfHbjgw/bGUzfgKPJl69/mXDuSg8CbdBYBn6VVQdR947vWneQBFzdhasyzMUKg==", - "dependencies": { - "@vue/reactivity": "3.2.40", - "@vue/shared": "3.2.40" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.40.tgz", - "integrity": "sha512-AO2HMQ+0s2+MCec8hXAhxMgWhFhOPJ/CyRXnmTJ6XIOnJFLrH5Iq3TNwvVcODGR295jy77I6dWPj+wvFoSYaww==", - "dependencies": { - "@vue/runtime-core": "3.2.40", - "@vue/shared": "3.2.40", - "csstype": "^2.6.8" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.40.tgz", - "integrity": "sha512-gtUcpRwrXOJPJ4qyBpU3EyxQa4EkV8I4f8VrDePcGCPe4O/hd0BPS7v9OgjIQob6Ap8VDz9G+mGTKazE45/95w==", - "dependencies": { - "@vue/compiler-ssr": "3.2.40", - "@vue/shared": "3.2.40" - }, - "peerDependencies": { - "vue": "3.2.40" - } - }, - "node_modules/@vue/shared": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.40.tgz", - "integrity": "sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==" - }, - "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/axios": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.2.tgz", - "integrity": "sha512-bznQyETwElsXl2RK7HLLwb5GPpOLlycxHCtrpDR/4RqqBzjARaOTo3jz4IgtntWUYee7Ne4S8UHd92VCuzPaWA==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/bignumber.js": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz", - "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esbuild": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.15.10.tgz", - "integrity": "sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.15.10", - "@esbuild/linux-loong64": "0.15.10", - "esbuild-android-64": "0.15.10", - "esbuild-android-arm64": "0.15.10", - "esbuild-darwin-64": "0.15.10", - "esbuild-darwin-arm64": "0.15.10", - "esbuild-freebsd-64": "0.15.10", - "esbuild-freebsd-arm64": "0.15.10", - "esbuild-linux-32": "0.15.10", - "esbuild-linux-64": "0.15.10", - "esbuild-linux-arm": "0.15.10", - "esbuild-linux-arm64": "0.15.10", - "esbuild-linux-mips64le": "0.15.10", - "esbuild-linux-ppc64le": "0.15.10", - "esbuild-linux-riscv64": "0.15.10", - "esbuild-linux-s390x": "0.15.10", - "esbuild-netbsd-64": "0.15.10", - "esbuild-openbsd-64": "0.15.10", - "esbuild-sunos-64": "0.15.10", - "esbuild-windows-32": "0.15.10", - "esbuild-windows-64": "0.15.10", - "esbuild-windows-arm64": "0.15.10" - } - }, - "node_modules/esbuild-android-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz", - "integrity": "sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz", - "integrity": "sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz", - "integrity": "sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz", - "integrity": "sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz", - "integrity": "sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz", - "integrity": "sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz", - "integrity": "sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz", - "integrity": "sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz", - "integrity": "sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz", - "integrity": "sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz", - "integrity": "sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz", - "integrity": "sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz", - "integrity": "sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz", - "integrity": "sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz", - "integrity": "sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz", - "integrity": "sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz", - "integrity": "sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz", - "integrity": "sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz", - "integrity": "sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz", - "integrity": "sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/local-pkg": { - "version": "0.4.2", - "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.2.tgz", - "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pinia": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.23.tgz", - "integrity": "sha512-N15hFf4o5STrxpNrib1IEb1GOArvPYf1zPvQVRGOO1G1d74Ak0J0lVyalX/SmrzdT4Q0nlEFjbURsmBmIGUR5Q==", - "dependencies": { - "@vue/devtools-api": "^6.4.4", - "vue-demi": "*" - }, - "peerDependencies": { - "@vue/composition-api": "^1.4.0", - "typescript": ">=4.4.4", - "vue": "^2.6.14 || ^3.2.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/pinia/node_modules/vue-demi": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", - "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", - "hasInstallScript": true, - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/postcss": { - "version": "8.4.17", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.17.tgz", - "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "2.78.1", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.78.1.tgz", - "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead" - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", - "devOptional": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unplugin": { - "version": "0.9.6", - "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-0.9.6.tgz", - "integrity": "sha512-YYLtfoNiie/lxswy1GOsKXgnLJTE27la/PeCGznSItk+8METYZErO+zzV9KQ/hXhPwzIJsfJ4s0m1Rl7ZCWZ4Q==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "chokidar": "^3.5.3", - "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.4.5" - } - }, - "node_modules/unplugin-vue-components": { - "version": "0.22.7", - "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.22.7.tgz", - "integrity": "sha512-MJEAKJF9bRykTRvJ4WXF0FNMAyt1PX3iwpu2NN+li35sAKjQv6sC1col5aZDLiwDZDo2AGwxNkzLJFKaun9qHw==", - "dev": true, - "dependencies": { - "@antfu/utils": "^0.5.2", - "@rollup/pluginutils": "^4.2.1", - "chokidar": "^3.5.3", - "debug": "^4.3.4", - "fast-glob": "^3.2.12", - "local-pkg": "^0.4.2", - "magic-string": "^0.26.3", - "minimatch": "^5.1.0", - "resolve": "^1.22.1", - "unplugin": "^0.9.5" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@babel/parser": "^7.15.8", - "vue": "2 || 3" - }, - "peerDependenciesMeta": { - "@babel/parser": { - "optional": true - } - } - }, - "node_modules/unplugin-vue-components/node_modules/magic-string": { - "version": "0.26.5", - "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.26.5.tgz", - "integrity": "sha512-yXUIYOOQnEHKHOftp5shMWpB9ImfgfDJpapa38j/qMtTj5QHWucvxP4lUtuRmHT9vAzvtpHkWKXW9xBwimXeNg==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.8" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/vant": { - "version": "3.6.3", - "resolved": "https://registry.npmmirror.com/vant/-/vant-3.6.3.tgz", - "integrity": "sha512-OmqQXgtgJgNNoGV8FzvGkm/fvXOB70ZmruOUU4iJaEmEwdsdYl+31D6niisWZLVAbGW1Xx9rLrOu9hivdxQbbg==", - "dependencies": { - "@vant/icons": "^1.8.0", - "@vant/popperjs": "^1.2.1", - "@vant/use": "^1.4.2" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/vite": { - "version": "3.1.4", - "resolved": "https://registry.npmmirror.com/vite/-/vite-3.1.4.tgz", - "integrity": "sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==", - "dev": true, - "dependencies": { - "esbuild": "^0.15.6", - "postcss": "^8.4.16", - "resolve": "^1.22.1", - "rollup": "~2.78.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "less": "*", - "sass": "*", - "stylus": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vue": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.40.tgz", - "integrity": "sha512-1mGHulzUbl2Nk3pfvI5aXYYyJUs1nm4kyvuz38u4xlQkLUn1i2R7nDbI4TufECmY8v1qNBHYy62bCaM+3cHP2A==", - "dependencies": { - "@vue/compiler-dom": "3.2.40", - "@vue/compiler-sfc": "3.2.40", - "@vue/runtime-dom": "3.2.40", - "@vue/server-renderer": "3.2.40", - "@vue/shared": "3.2.40" - } - }, - "node_modules/vue-router": { - "version": "4.1.5", - "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.5.tgz", - "integrity": "sha512-IsvoF5D2GQ/EGTs/Th4NQms9gd2NSqV+yylxIyp/OYp8xOwxmU8Kj/74E9DTSYAyH5LX7idVUngN3JSj1X4xcQ==", - "dependencies": { - "@vue/devtools-api": "^6.1.4" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/vue-tsc": { - "version": "0.40.13", - "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-0.40.13.tgz", - "integrity": "sha512-xzuN3g5PnKfJcNrLv4+mAjteMd5wLm5fRhW0034OfNJZY4WhB07vhngea/XeGn7wNYt16r7syonzvW/54dcNiA==", - "dev": true, - "dependencies": { - "@volar/vue-language-core": "0.40.13", - "@volar/vue-typescript": "0.40.13" - }, - "bin": { - "vue-tsc": "bin/vue-tsc.js" - }, - "peerDependencies": { - "typescript": "*" - } - }, - "node_modules/vuex": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.0.2.tgz", - "integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==", - "dependencies": { - "@vue/devtools-api": "^6.0.0-beta.11" - }, - "peerDependencies": { - "vue": "^3.0.2" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-virtual-modules": { - "version": "0.4.5", - "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.5.tgz", - "integrity": "sha512-8bWq0Iluiv9lVf9YaqWQ9+liNgXSHICm+rg544yRgGYaR8yXZTVBaHZkINZSB2yZSWo4b0F6MIxqJezVfOEAlg==", - "dev": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - }, - "dependencies": { - "@antfu/utils": { - "version": "0.5.2", - "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.5.2.tgz", - "integrity": "sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==", - "dev": true - }, - "@babel/parser": { - "version": "7.19.3", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.19.3.tgz", - "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==" - }, - "@esbuild/android-arm": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.15.10.tgz", - "integrity": "sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz", - "integrity": "sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==", - "dev": true, - "optional": true - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@rollup/pluginutils": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", - "dev": true, - "requires": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - } - }, - "@types/json-bigint": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/json-bigint/-/json-bigint-1.0.1.tgz", - "integrity": "sha512-zpchZLNsNuzJHi6v64UBoFWAvQlPhch7XAi36FkH6tL1bbbmimIF+cS7vwkzY4u5RaSWMoflQfu+TshMPPw8uw==", - "dev": true - }, - "@types/node": { - "version": "18.8.2", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.8.2.tgz", - "integrity": "sha512-cRMwIgdDN43GO4xMWAfJAecYn8wV4JbsOGHNfNUIDiuYkUYAR5ec4Rj7IO2SAhFPEfpPtLtUTbbny/TCT7aDwA==", - "dev": true - }, - "@vant/icons": { - "version": "1.8.0", - "resolved": "https://registry.npmmirror.com/@vant/icons/-/icons-1.8.0.tgz", - "integrity": "sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg==" - }, - "@vant/popperjs": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz", - "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==" - }, - "@vant/use": { - "version": "1.4.3", - "resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.4.3.tgz", - "integrity": "sha512-rSnETN7P9qT1WbItMpQxBqe3cHeK2ZFYp1sCxWUXaTeI71TqA8sOdzC36ledZ36NQgFNTch9fsRPYOkrCgZfQA==" - }, - "@vitejs/plugin-vue": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.1.2.tgz", - "integrity": "sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==", - "dev": true, - "requires": {} - }, - "@volar/code-gen": { - "version": "0.40.13", - "resolved": "https://registry.npmmirror.com/@volar/code-gen/-/code-gen-0.40.13.tgz", - "integrity": "sha512-4gShBWuMce868OVvgyA1cU5WxHbjfEme18Tw6uVMfweZCF5fB2KECG0iPrA9D54vHk3FeHarODNwgIaaFfUBlA==", - "dev": true, - "requires": { - "@volar/source-map": "0.40.13" - } - }, - "@volar/source-map": { - "version": "0.40.13", - "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-0.40.13.tgz", - "integrity": "sha512-dbdkAB2Nxb0wLjAY5O64o3ywVWlAGONnBIoKAkXSf6qkGZM+nJxcizsoiI66K+RHQG0XqlyvjDizfnTxr+6PWg==", - "dev": true, - "requires": { - "@vue/reactivity": "3.2.38" - }, - "dependencies": { - "@vue/reactivity": { - "version": "3.2.38", - "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.38.tgz", - "integrity": "sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==", - "dev": true, - "requires": { - "@vue/shared": "3.2.38" - } - }, - "@vue/shared": { - "version": "3.2.38", - "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.38.tgz", - "integrity": "sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==", - "dev": true - } - } - }, - "@volar/typescript-faster": { - "version": "0.40.13", - "resolved": "https://registry.npmmirror.com/@volar/typescript-faster/-/typescript-faster-0.40.13.tgz", - "integrity": "sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw==", - "dev": true, - "requires": { - "semver": "^7.3.7" - } - }, - "@volar/vue-language-core": { - "version": "0.40.13", - "resolved": "https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-0.40.13.tgz", - "integrity": "sha512-QkCb8msi2KUitTdM6Y4kAb7/ZlEvuLcbBFOC2PLBlFuoZwyxvSP7c/dBGmKGtJlEvMX0LdCyrg5V2aBYxD38/Q==", - "dev": true, - "requires": { - "@volar/code-gen": "0.40.13", - "@volar/source-map": "0.40.13", - "@vue/compiler-core": "^3.2.38", - "@vue/compiler-dom": "^3.2.38", - "@vue/compiler-sfc": "^3.2.38", - "@vue/reactivity": "^3.2.38", - "@vue/shared": "^3.2.38" - } - }, - "@volar/vue-typescript": { - "version": "0.40.13", - "resolved": "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-0.40.13.tgz", - "integrity": "sha512-o7bNztwjs8JmbQjVkrnbZUOfm7q4B8ZYssETISN1tRaBdun6cfNqgpkvDYd+VUBh1O4CdksvN+5BUNnwAz4oCQ==", - "dev": true, - "requires": { - "@volar/code-gen": "0.40.13", - "@volar/typescript-faster": "0.40.13", - "@volar/vue-language-core": "0.40.13" - } - }, - "@vue/compiler-core": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.40.tgz", - "integrity": "sha512-2Dc3Stk0J/VyQ4OUr2yEC53kU28614lZS+bnrCbFSAIftBJ40g/2yQzf4mPBiFuqguMB7hyHaujdgZAQ67kZYA==", - "requires": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.40", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-dom": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.40.tgz", - "integrity": "sha512-OZCNyYVC2LQJy4H7h0o28rtk+4v+HMQygRTpmibGoG9wZyomQiS5otU7qo3Wlq5UfHDw2RFwxb9BJgKjVpjrQw==", - "requires": { - "@vue/compiler-core": "3.2.40", - "@vue/shared": "3.2.40" - } - }, - "@vue/compiler-sfc": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.40.tgz", - "integrity": "sha512-tzqwniIN1fu1PDHC3CpqY/dPCfN/RN1thpBC+g69kJcrl7mbGiHKNwbA6kJ3XKKy8R6JLKqcpVugqN4HkeBFFg==", - "requires": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.40", - "@vue/compiler-dom": "3.2.40", - "@vue/compiler-ssr": "3.2.40", - "@vue/reactivity-transform": "3.2.40", - "@vue/shared": "3.2.40", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-ssr": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.40.tgz", - "integrity": "sha512-80cQcgasKjrPPuKcxwuCx7feq+wC6oFl5YaKSee9pV3DNq+6fmCVwEEC3vvkf/E2aI76rIJSOYHsWSEIxK74oQ==", - "requires": { - "@vue/compiler-dom": "3.2.40", - "@vue/shared": "3.2.40" - } - }, - "@vue/devtools-api": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.4.tgz", - "integrity": "sha512-Ku31WzpOV/8cruFaXaEZKF81WkNnvCSlBY4eOGtz5WMSdJvX1v1WWlSMGZeqUwPtQ27ZZz7B62erEMq8JDjcXw==" - }, - "@vue/reactivity": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.40.tgz", - "integrity": "sha512-N9qgGLlZmtUBMHF9xDT4EkD9RdXde1Xbveb+niWMXuHVWQP5BzgRmE3SFyUBBcyayG4y1lhoz+lphGRRxxK4RA==", - "requires": { - "@vue/shared": "3.2.40" - } - }, - "@vue/reactivity-transform": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.40.tgz", - "integrity": "sha512-HQUCVwEaacq6fGEsg2NUuGKIhUveMCjOk8jGHqLXPI2w6zFoPrlQhwWEaINTv5kkZDXKEnCijAp+4gNEHG03yw==", - "requires": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.40", - "@vue/shared": "3.2.40", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - } - }, - "@vue/runtime-core": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.40.tgz", - "integrity": "sha512-U1+rWf0H8xK8aBUZhnrN97yoZfHbjgw/bGUzfgKPJl69/mXDuSg8CbdBYBn6VVQdR947vWneQBFzdhasyzMUKg==", - "requires": { - "@vue/reactivity": "3.2.40", - "@vue/shared": "3.2.40" - } - }, - "@vue/runtime-dom": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.40.tgz", - "integrity": "sha512-AO2HMQ+0s2+MCec8hXAhxMgWhFhOPJ/CyRXnmTJ6XIOnJFLrH5Iq3TNwvVcODGR295jy77I6dWPj+wvFoSYaww==", - "requires": { - "@vue/runtime-core": "3.2.40", - "@vue/shared": "3.2.40", - "csstype": "^2.6.8" - } - }, - "@vue/server-renderer": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.40.tgz", - "integrity": "sha512-gtUcpRwrXOJPJ4qyBpU3EyxQa4EkV8I4f8VrDePcGCPe4O/hd0BPS7v9OgjIQob6Ap8VDz9G+mGTKazE45/95w==", - "requires": { - "@vue/compiler-ssr": "3.2.40", - "@vue/shared": "3.2.40" - } - }, - "@vue/shared": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.40.tgz", - "integrity": "sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==" - }, - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "axios": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.2.tgz", - "integrity": "sha512-bznQyETwElsXl2RK7HLLwb5GPpOLlycxHCtrpDR/4RqqBzjARaOTo3jz4IgtntWUYee7Ne4S8UHd92VCuzPaWA==", - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "bignumber.js": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz", - "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "esbuild": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.15.10.tgz", - "integrity": "sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.15.10", - "@esbuild/linux-loong64": "0.15.10", - "esbuild-android-64": "0.15.10", - "esbuild-android-arm64": "0.15.10", - "esbuild-darwin-64": "0.15.10", - "esbuild-darwin-arm64": "0.15.10", - "esbuild-freebsd-64": "0.15.10", - "esbuild-freebsd-arm64": "0.15.10", - "esbuild-linux-32": "0.15.10", - "esbuild-linux-64": "0.15.10", - "esbuild-linux-arm": "0.15.10", - "esbuild-linux-arm64": "0.15.10", - "esbuild-linux-mips64le": "0.15.10", - "esbuild-linux-ppc64le": "0.15.10", - "esbuild-linux-riscv64": "0.15.10", - "esbuild-linux-s390x": "0.15.10", - "esbuild-netbsd-64": "0.15.10", - "esbuild-openbsd-64": "0.15.10", - "esbuild-sunos-64": "0.15.10", - "esbuild-windows-32": "0.15.10", - "esbuild-windows-64": "0.15.10", - "esbuild-windows-arm64": "0.15.10" - } - }, - "esbuild-android-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz", - "integrity": "sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==", - "dev": true, - "optional": true - }, - "esbuild-android-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz", - "integrity": "sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz", - "integrity": "sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz", - "integrity": "sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz", - "integrity": "sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz", - "integrity": "sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz", - "integrity": "sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz", - "integrity": "sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz", - "integrity": "sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz", - "integrity": "sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz", - "integrity": "sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz", - "integrity": "sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-riscv64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz", - "integrity": "sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==", - "dev": true, - "optional": true - }, - "esbuild-linux-s390x": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz", - "integrity": "sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz", - "integrity": "sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz", - "integrity": "sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz", - "integrity": "sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz", - "integrity": "sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz", - "integrity": "sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.15.10", - "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz", - "integrity": "sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==", - "dev": true, - "optional": true - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "requires": { - "bignumber.js": "^9.0.0" - } - }, - "local-pkg": { - "version": "0.4.2", - "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.2.tgz", - "integrity": "sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pinia": { - "version": "2.0.23", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.23.tgz", - "integrity": "sha512-N15hFf4o5STrxpNrib1IEb1GOArvPYf1zPvQVRGOO1G1d74Ak0J0lVyalX/SmrzdT4Q0nlEFjbURsmBmIGUR5Q==", - "requires": { - "@vue/devtools-api": "^6.4.4", - "vue-demi": "*" - }, - "dependencies": { - "vue-demi": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", - "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", - "requires": {} - } - } - }, - "postcss": { - "version": "8.4.17", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.17.tgz", - "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rollup": { - "version": "2.78.1", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.78.1.tgz", - "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", - "devOptional": true - }, - "unplugin": { - "version": "0.9.6", - "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-0.9.6.tgz", - "integrity": "sha512-YYLtfoNiie/lxswy1GOsKXgnLJTE27la/PeCGznSItk+8METYZErO+zzV9KQ/hXhPwzIJsfJ4s0m1Rl7ZCWZ4Q==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "chokidar": "^3.5.3", - "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.4.5" - } - }, - "unplugin-vue-components": { - "version": "0.22.7", - "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.22.7.tgz", - "integrity": "sha512-MJEAKJF9bRykTRvJ4WXF0FNMAyt1PX3iwpu2NN+li35sAKjQv6sC1col5aZDLiwDZDo2AGwxNkzLJFKaun9qHw==", - "dev": true, - "requires": { - "@antfu/utils": "^0.5.2", - "@rollup/pluginutils": "^4.2.1", - "chokidar": "^3.5.3", - "debug": "^4.3.4", - "fast-glob": "^3.2.12", - "local-pkg": "^0.4.2", - "magic-string": "^0.26.3", - "minimatch": "^5.1.0", - "resolve": "^1.22.1", - "unplugin": "^0.9.5" - }, - "dependencies": { - "magic-string": { - "version": "0.26.5", - "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.26.5.tgz", - "integrity": "sha512-yXUIYOOQnEHKHOftp5shMWpB9ImfgfDJpapa38j/qMtTj5QHWucvxP4lUtuRmHT9vAzvtpHkWKXW9xBwimXeNg==", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.8" - } - } - } - }, - "vant": { - "version": "3.6.3", - "resolved": "https://registry.npmmirror.com/vant/-/vant-3.6.3.tgz", - "integrity": "sha512-OmqQXgtgJgNNoGV8FzvGkm/fvXOB70ZmruOUU4iJaEmEwdsdYl+31D6niisWZLVAbGW1Xx9rLrOu9hivdxQbbg==", - "requires": { - "@vant/icons": "^1.8.0", - "@vant/popperjs": "^1.2.1", - "@vant/use": "^1.4.2" - } - }, - "vite": { - "version": "3.1.4", - "resolved": "https://registry.npmmirror.com/vite/-/vite-3.1.4.tgz", - "integrity": "sha512-JoQI08aBjY9lycL7jcEq4p9o1xUjq5aRvdH4KWaXtkSx7e7RpAh9D3IjzDWRD4Fg44LS3oDAIOG/Kq1L+82psA==", - "dev": true, - "requires": { - "esbuild": "^0.15.6", - "fsevents": "~2.3.2", - "postcss": "^8.4.16", - "resolve": "^1.22.1", - "rollup": "~2.78.0" - } - }, - "vue": { - "version": "3.2.40", - "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.40.tgz", - "integrity": "sha512-1mGHulzUbl2Nk3pfvI5aXYYyJUs1nm4kyvuz38u4xlQkLUn1i2R7nDbI4TufECmY8v1qNBHYy62bCaM+3cHP2A==", - "requires": { - "@vue/compiler-dom": "3.2.40", - "@vue/compiler-sfc": "3.2.40", - "@vue/runtime-dom": "3.2.40", - "@vue/server-renderer": "3.2.40", - "@vue/shared": "3.2.40" - } - }, - "vue-router": { - "version": "4.1.5", - "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.5.tgz", - "integrity": "sha512-IsvoF5D2GQ/EGTs/Th4NQms9gd2NSqV+yylxIyp/OYp8xOwxmU8Kj/74E9DTSYAyH5LX7idVUngN3JSj1X4xcQ==", - "requires": { - "@vue/devtools-api": "^6.1.4" - } - }, - "vue-tsc": { - "version": "0.40.13", - "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-0.40.13.tgz", - "integrity": "sha512-xzuN3g5PnKfJcNrLv4+mAjteMd5wLm5fRhW0034OfNJZY4WhB07vhngea/XeGn7wNYt16r7syonzvW/54dcNiA==", - "dev": true, - "requires": { - "@volar/vue-language-core": "0.40.13", - "@volar/vue-typescript": "0.40.13" - } - }, - "vuex": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.0.2.tgz", - "integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==", - "requires": { - "@vue/devtools-api": "^6.0.0-beta.11" - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true - }, - "webpack-virtual-modules": { - "version": "0.4.5", - "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.5.tgz", - "integrity": "sha512-8bWq0Iluiv9lVf9YaqWQ9+liNgXSHICm+rg544yRgGYaR8yXZTVBaHZkINZSB2yZSWo4b0F6MIxqJezVfOEAlg==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } -} diff --git a/Yi.Vue3.x.Vant/package.json b/Yi.Vue3.x.Vant/package.json deleted file mode 100644 index 1042a10b..00000000 --- a/Yi.Vue3.x.Vant/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "yi", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "vue-tsc --noEmit && vite build", - "preview": "vite preview" - }, - "dependencies": { - "axios": "^1.1.2", - "json-bigint": "^1.0.0", - "pinia": "^2.0.23", - "vant": "^3.6.3", - "vue": "^3.2.37", - "vue-router": "^4.1.5", - "vuex": "^4.0.2" - }, - "devDependencies": { - "@types/json-bigint": "^1.0.1", - "@types/node": "^18.8.2", - "@vitejs/plugin-vue": "^3.1.0", - "typescript": "^4.6.4", - "unplugin-vue-components": "^0.22.7", - "vite": "^3.1.0", - "vue-tsc": "^0.40.4" - } -} diff --git a/Yi.Vue3.x.Vant/public/vite.svg b/Yi.Vue3.x.Vant/public/vite.svg deleted file mode 100644 index e7b8dfb1..00000000 --- a/Yi.Vue3.x.Vant/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/App.vue b/Yi.Vue3.x.Vant/src/App.vue deleted file mode 100644 index 3fd7a8f0..00000000 --- a/Yi.Vue3.x.Vant/src/App.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/Yi.Vue3.x.Vant/src/api/agreeApi.ts b/Yi.Vue3.x.Vant/src/api/agreeApi.ts deleted file mode 100644 index a9b2d164..00000000 --- a/Yi.Vue3.x.Vant/src/api/agreeApi.ts +++ /dev/null @@ -1,11 +0,0 @@ -import myaxios from '@/utils/myaxios' - -export default { - operate(data:any) { - return myaxios({ - url: `/agree/operate`, - method: 'get', - params: {articleId:data} - }) - }, -} \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/api/articleApi.ts b/Yi.Vue3.x.Vant/src/api/articleApi.ts deleted file mode 100644 index c7ad11a1..00000000 --- a/Yi.Vue3.x.Vant/src/api/articleApi.ts +++ /dev/null @@ -1,19 +0,0 @@ -import myaxios from '@/utils/myaxios' -import { ArticleEntity } from '@/type/interface/ArticleEntity' - -export default { - add(data:any) { - return myaxios({ - url: `/article/add`, - method: 'post', - data: data - }) - }, - pageList(data:any) { - return myaxios({ - url: '/article/pageList', - method: 'get', - params: data - }) - } -} \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/api/commentApi.ts b/Yi.Vue3.x.Vant/src/api/commentApi.ts deleted file mode 100644 index edcf0079..00000000 --- a/Yi.Vue3.x.Vant/src/api/commentApi.ts +++ /dev/null @@ -1,17 +0,0 @@ -import myaxios from '@/utils/myaxios' - -export default { - add(data:any) { - return myaxios({ - url: `/comment/add`, - method: 'post', - data: data - }) - }, - getListByArticleId(articleId:any) { - return myaxios({ - url: `/comment/GetListByArticleId/${articleId}`, - method: 'get', - }) - } -} \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/api/fileApi.ts b/Yi.Vue3.x.Vant/src/api/fileApi.ts deleted file mode 100644 index bcd09760..00000000 --- a/Yi.Vue3.x.Vant/src/api/fileApi.ts +++ /dev/null @@ -1,12 +0,0 @@ -import myaxios from '@/utils/myaxios' - -export default{ - upload(type:string,data:any){ - return myaxios({ - url: `/file/upload/${type}`, - headers:{"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"}, - method: 'POST', - data:data - }); -} -} \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/api/login.ts b/Yi.Vue3.x.Vant/src/api/login.ts deleted file mode 100644 index cb1f59c1..00000000 --- a/Yi.Vue3.x.Vant/src/api/login.ts +++ /dev/null @@ -1,59 +0,0 @@ -import myaxios from '@/utils/myaxios' - -// 登录方法 -export function login(username:string, password:string, code:string, uuid:string) { - const data = { - username, - password, - code, - uuid - } - return myaxios({ - url: '/account/login', - headers: { - isToken: false - }, - method: 'post', - data: data - }) -} - -// 注册方法 -export function register(data:any) { - return myaxios({ - url: '/register', - headers: { - isToken: false - }, - method: 'post', - data: data - }) -} - -// 获取用户详细信息 -export function getInfo() { - return myaxios({ - url: '/account/getUserAllInfo', - method: 'get' - }) -} - -// 退出方法 -export function logout() { - return myaxios({ - url: '/account/logout', - method: 'post' - }) -} - -// 获取验证码 -export function getCodeImg() { - return myaxios({ - url: '/account/captchaImage', - headers: { - isToken: false - }, - method: 'get', - timeout: 20000 - }) -} \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/api/skuApi.ts b/Yi.Vue3.x.Vant/src/api/skuApi.ts deleted file mode 100644 index 5c268d36..00000000 --- a/Yi.Vue3.x.Vant/src/api/skuApi.ts +++ /dev/null @@ -1,18 +0,0 @@ -import myaxios from '@/utils/myaxios' - -export default { - add(data:any) { - return myaxios({ - url: `/sku/add`, - method: 'post', - data: data - }) - }, - pageList(data:any) { - return myaxios({ - url: '/sku/pageList', - method: 'get', - params: data - }) - } -} \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/api/spuApi.ts b/Yi.Vue3.x.Vant/src/api/spuApi.ts deleted file mode 100644 index e2a1faf2..00000000 --- a/Yi.Vue3.x.Vant/src/api/spuApi.ts +++ /dev/null @@ -1,25 +0,0 @@ -import myaxios from '@/utils/myaxios' - -export default { - add(data: any) { - return myaxios({ - url: `/spu/add`, - method: 'post', - data: data - }) - }, - pageList(data: any) { - return myaxios({ - url: '/spu/pageList', - method: 'get', - params: data - }) - }, - getById(id: any) { - return myaxios({ - url: `/spu/GetById/${id}`, - method: 'get', - }) - }, - -} \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/assets/vue.svg b/Yi.Vue3.x.Vant/src/assets/vue.svg deleted file mode 100644 index 770e9d33..00000000 --- a/Yi.Vue3.x.Vant/src/assets/vue.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/components/AppCard.vue b/Yi.Vue3.x.Vant/src/components/AppCard.vue deleted file mode 100644 index ad31cbbc..00000000 --- a/Yi.Vue3.x.Vant/src/components/AppCard.vue +++ /dev/null @@ -1,61 +0,0 @@ - - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/components/AppCreateTime.vue b/Yi.Vue3.x.Vant/src/components/AppCreateTime.vue deleted file mode 100644 index 6f38aea9..00000000 --- a/Yi.Vue3.x.Vant/src/components/AppCreateTime.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/components/AppGrid.vue b/Yi.Vue3.x.Vant/src/components/AppGrid.vue deleted file mode 100644 index 42dcc356..00000000 --- a/Yi.Vue3.x.Vant/src/components/AppGrid.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - - diff --git a/Yi.Vue3.x.Vant/src/components/AppUserIcon.vue b/Yi.Vue3.x.Vant/src/components/AppUserIcon.vue deleted file mode 100644 index a0ef5340..00000000 --- a/Yi.Vue3.x.Vant/src/components/AppUserIcon.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - diff --git a/Yi.Vue3.x.Vant/src/components/HelloWorld.vue b/Yi.Vue3.x.Vant/src/components/HelloWorld.vue deleted file mode 100644 index 0d45e0a4..00000000 --- a/Yi.Vue3.x.Vant/src/components/HelloWorld.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - - - diff --git a/Yi.Vue3.x.Vant/src/layout/bottom/index.vue b/Yi.Vue3.x.Vant/src/layout/bottom/index.vue deleted file mode 100644 index 8f9bdbe3..00000000 --- a/Yi.Vue3.x.Vant/src/layout/bottom/index.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - diff --git a/Yi.Vue3.x.Vant/src/layout/head/index.vue b/Yi.Vue3.x.Vant/src/layout/head/index.vue deleted file mode 100644 index d012f2e0..00000000 --- a/Yi.Vue3.x.Vant/src/layout/head/index.vue +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/layout/index.vue b/Yi.Vue3.x.Vant/src/layout/index.vue deleted file mode 100644 index eb8ba425..00000000 --- a/Yi.Vue3.x.Vant/src/layout/index.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/Yi.Vue3.x.Vant/src/layout/main/index.vue b/Yi.Vue3.x.Vant/src/layout/main/index.vue deleted file mode 100644 index 29e21014..00000000 --- a/Yi.Vue3.x.Vant/src/layout/main/index.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/layout/tab/index.vue b/Yi.Vue3.x.Vant/src/layout/tab/index.vue deleted file mode 100644 index 53f85eb4..00000000 --- a/Yi.Vue3.x.Vant/src/layout/tab/index.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - diff --git a/Yi.Vue3.x.Vant/src/main.ts b/Yi.Vue3.x.Vant/src/main.ts deleted file mode 100644 index 50eb4bb1..00000000 --- a/Yi.Vue3.x.Vant/src/main.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { createApp } from 'vue' -import './style.css' -import 'vant/es/image-preview/style'; -import 'vant/es/toast/style'; -import 'vant/es/dialog/style'; -import 'vant/es/notify/style'; -import router from './router' -import store from './store' -import './permission' -import { Lazyload } from 'vant'; -import App from './App.vue' - -const app=createApp(App) -app.use(router) -app.use(store) -app.use(Lazyload); -app.mount('#app'); \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/permission.ts b/Yi.Vue3.x.Vant/src/permission.ts deleted file mode 100644 index 00dae628..00000000 --- a/Yi.Vue3.x.Vant/src/permission.ts +++ /dev/null @@ -1,52 +0,0 @@ -import router from './router' -// import { ElMessage } from 'element-plus' -// import NProgress from 'nprogress' -// import 'nprogress/nprogress.css' -import { getToken } from '@/utils/auth' -// import { isHttp } from '@/utils/validate' -import useUserStore from '@/store/modules/user' -import { isRelogin } from '@/utils/myaxios' -// import useSettingsStore from '@/store/modules/settings' -// import usePermissionStore from '@/store/modules/permission' - -// NProgress.configure({ showSpinner: false }); - -const whiteList = ['/login', '/auth-redirect', '/bind', '/register']; - -router.beforeEach((to, from, next) => { - // NProgress.start() - if (getToken()) { - // to.meta.title && useSettingsStore().setTitle(to.meta.title) - /* has token*/ - if (to.path === '/login') { - next({ path: '/' }) - // NProgress.done() - } else { - if (useUserStore().roles.length === 0) { - isRelogin.show = true - useUserStore().getInfo().then((response: any) => { - next() - }); - - } - else - { - next() - } - } - } else { - - // 没有token - if (whiteList.indexOf(to.path) !== -1) { - // 在免登录白名单,直接进入 - next() - } else { - next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 - // NProgress.done() - } - } -}) - -router.afterEach(() => { - // NProgress.done() -}) diff --git a/Yi.Vue3.x.Vant/src/router/index.ts b/Yi.Vue3.x.Vant/src/router/index.ts deleted file mode 100644 index 2ea52cdf..00000000 --- a/Yi.Vue3.x.Vant/src/router/index.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { createWebHistory, createRouter } from 'vue-router'; -import Layout from '@/layout/index.vue'; -import HeadLayout from '@/layout/head/index.vue' - -export const constantRoutes = [ - - { - name:'Layout', - path: '/', - component: Layout, - redirect:"/recommend", - children: [ - { - path: '/shopIndex', - component: () => import('@/view/shop/shopIndex.vue'), - name: 'ShopIndex', - }, - { - path: '/my', - component: () => import('@/view/my.vue'), - name: 'My', - }, - { - path: '/main', - component: () => import('@/layout/main/index.vue'), - name: 'Main', - children:[ - { - path: '/recommend', - component: () => import('@/view/main/recommend.vue'), - name: 'Recommend', - }, - { - path: '/follow', - component: () => import('@/view/main/follow.vue'), - name: 'Follow', - }, - { - path: '/square', - component: () => import('@/view/main/square.vue'), - name: 'Square', - }, - - ] - } - ] - }, - { - path: '/imageText', - component: () => import('@/view/send/imageText.vue'), - name: 'ImageText', - }, - { - path: '/login', - component: () => import('@/view/login.vue'), - name: 'Login', - }, - - { - name:'Shop', - path: '/shop', - component: HeadLayout, - redirect:"/shopIndex", - children: [ - { - path: '/shopDetails', - component: () => import('@/view/shop/shopDetails.vue'), - name: 'ShopDetails', - }, - { - path: '/shopSearch', - component: () => import('@/view/shop/shopSearch.vue'), - name: 'ShopSearch', - }, - ] - } - ]; - - const router = createRouter({ - history: createWebHistory(), - routes: constantRoutes, - scrollBehavior(to, from, savedPosition) { - if (savedPosition) { - return savedPosition - } else { - return { top: 0 } - } - }, - }); - - export default router; - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/store/index.ts b/Yi.Vue3.x.Vant/src/store/index.ts deleted file mode 100644 index 2e68d207..00000000 --- a/Yi.Vue3.x.Vant/src/store/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { createPinia } from 'pinia' -const store = createPinia() - -export default store \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/store/modules/user.ts b/Yi.Vue3.x.Vant/src/store/modules/user.ts deleted file mode 100644 index bb84d008..00000000 --- a/Yi.Vue3.x.Vant/src/store/modules/user.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { login, logout, getInfo } from '@/api/login' -import { getToken, setToken, removeToken } from '@/utils/auth' -// import defAva from '@/assets/images/profile.jpg' -import {defineStore} from 'pinia' -const useUserStore = defineStore( - 'user', - { - state: () => ({ - token: getToken(), - user:{username:"",nick:"",icon:""}, - roles: [], - permissions: [] - }), - actions: { - // 登录 - login(userInfo:any ) { - const username = userInfo.username.trim() - const password = userInfo.password - const code = userInfo.code - const uuid = userInfo.uuid - return new Promise((resolve, reject) => { - - login(username, password, code, uuid).then(res => { - if(!res.status) - { - reject(res) - } - setToken(res.data.token); - this.token = res.data.token; - resolve(res); - }).catch(error => { - reject(error) - }) - }) - }, - // 获取用户信息 - getInfo() { - return new Promise((resolve, reject) => { - getInfo().then(response => { - const res=response.data; - const user = res.user - // const avatar = (user.avatar == "" || user.avatar == null) ? defAva : import.meta.env.VITE_APP_BASE_API + user.avatar; - - if (res.roleCodes && res.roleCodes.length > 0) { // 验证返回的roles是否是一个非空数组 - this.roles = res.roleCodes - this.permissions = res.permissionCodes - // this.roles = ["admin"]; - // this.permissions=["*:*:*"] - - } else { - this.roles = ["ROLE_DEFAULT"] as never[] - } - // this.roles = ["admin"]; - // this.permissions=["*:*:*"] - this.user.username = user.userName; - this.user.nick=user.nick - this.user.icon = user.icon; - resolve(res) - }).catch(error => { - reject(error) - }) - - - - }) - }, - // 退出系统 - logOut() { - return new Promise((resolve, reject) => { - //this.token - logout().then((response) => { - this.token = '' - this.roles = [] - this.permissions = [] - removeToken() - resolve(response) - }).catch(error => { - reject(error) - }) - }) - } - } - }) - -export default useUserStore diff --git a/Yi.Vue3.x.Vant/src/style.css b/Yi.Vue3.x.Vant/src/style.css deleted file mode 100644 index d5b647e5..00000000 --- a/Yi.Vue3.x.Vant/src/style.css +++ /dev/null @@ -1,87 +0,0 @@ -#app { - max-width: 1280px; - margin: 0 auto; - padding: 0rem; - text-align: center; -} -/* :root { - font-family: Inter, Avenir, Helvetica, Arial, sans-serif; - font-size: 16px; - line-height: 24px; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -webkit-text-size-adjust: 100%; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -.card { - padding: 2em; -} - -#app { - max-width: 1280px; - margin: 0 auto; - padding: 0rem; - text-align: center; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} */ diff --git a/Yi.Vue3.x.Vant/src/type/class/AppGridData.ts b/Yi.Vue3.x.Vant/src/type/class/AppGridData.ts deleted file mode 100644 index 35a78c9d..00000000 --- a/Yi.Vue3.x.Vant/src/type/class/AppGridData.ts +++ /dev/null @@ -1,11 +0,0 @@ -export class AppGridData{ - head!: string; - body!: AppGridBody[]; -} - - - -class AppGridBody{ - icon!: string; - title!: string; -} \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/type/interface/ArticleEntity.ts b/Yi.Vue3.x.Vant/src/type/interface/ArticleEntity.ts deleted file mode 100644 index c8241920..00000000 --- a/Yi.Vue3.x.Vant/src/type/interface/ArticleEntity.ts +++ /dev/null @@ -1,8 +0,0 @@ -export interface ArticleEntity{ - title: string; - content: string; - images:string[]; - isDeleted:boolean; - createTime:string; -} -// import { ArticleEntity } from '@/type/interface/ArticleEntity' \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/utils/auth.ts b/Yi.Vue3.x.Vant/src/utils/auth.ts deleted file mode 100644 index 64a302e3..00000000 --- a/Yi.Vue3.x.Vant/src/utils/auth.ts +++ /dev/null @@ -1,13 +0,0 @@ -const TokenKey = 'Admin-Token' - -export function getToken() { - return localStorage.getItem(TokenKey) -} - -export function setToken(token:string) { - return localStorage.setItem(TokenKey, token) -} - -export function removeToken() { - return localStorage.removeItem(TokenKey) -} diff --git a/Yi.Vue3.x.Vant/src/utils/myaxios.ts b/Yi.Vue3.x.Vant/src/utils/myaxios.ts deleted file mode 100644 index 8b8ee565..00000000 --- a/Yi.Vue3.x.Vant/src/utils/myaxios.ts +++ /dev/null @@ -1,81 +0,0 @@ - -import axios from 'axios' -// import store from '../store/index' -// import vm from '../main' -import JsonBig from 'json-bigint' -import { getToken } from '@/utils/auth' -import { useRouter } from "vue-router"; -import useUserStore from '@/store/modules/user' -import { Notify } from 'vant'; -// import VuetifyDialogPlugin from 'vuetify-dialog/nuxt/index'; -export let isRelogin = { show: false }; -const myaxios = axios.create({ - // baseURL:'/'// - baseURL: import.meta.env.VITE_APP_BASE_API, // /dev-apis - timeout: 50000, - headers: { - 'Authorization': 'Bearer ' + "" - }, - //雪花id精度问题 - transformResponse: [ data => { - const json = JsonBig({ - storeAsString: true - }) - return json.parse(data) - }], - }) - // 请求拦截器 -myaxios.interceptors.request.use(function(config:any) { - const isToken = (config.headers || {}).isToken === false - // 是否需要防止数据重复提交 - const isRepeatSubmit = (config.headers || {}).repeatSubmit === false - if (getToken() && !isToken) { - config.headers['Authorization'] = 'Bearer ' + getToken() - } - // store.dispatch("openLoad"); - return config; -}, function(error) { - return Promise.reject(error); -}); - -// 响应拦截器 -myaxios.interceptors.response.use(async function(response) { -//成功 - const resp = response.data - if(resp.code==401) - { - Notify({ type: 'warning', message: '登录过期' }); - //登出 - useUserStore().logOut().then(() => { - location.href = '/'; - }) - isRelogin.show = false; - } - // store.dispatch("closeLoad"); - return resp; -}, async function(error) { -//未授权、失败 -if(error.response==undefined) -{ - Notify({ type: 'danger', message: `服务器异常:${error.message}` }); - return Promise.reject(error);; -} - -const resp = error.response.data -if (resp.code == undefined && resp.message == undefined) { - Notify({ type: 'danger', message: '未知错误' }); -} else if (resp.code == 401) { - // if (!isRelogin.show) { - Notify({ type: 'warning', message: '登录过期' }); - //登出 - useUserStore().logOut().then(() => { - location.href = '/'; - }) - isRelogin.show = false; - // } -} else if (resp.code !== 200) { - Notify({ type: 'danger', message: `错误代码:${resp.code},原因:${resp.message}` }); -} - return Promise.reject(error); -}); -export default myaxios \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/view/login.vue b/Yi.Vue3.x.Vant/src/view/login.vue deleted file mode 100644 index 0bd37a7e..00000000 --- a/Yi.Vue3.x.Vant/src/view/login.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/view/main/follow.vue b/Yi.Vue3.x.Vant/src/view/main/follow.vue deleted file mode 100644 index e3b8f95a..00000000 --- a/Yi.Vue3.x.Vant/src/view/main/follow.vue +++ /dev/null @@ -1,16 +0,0 @@ - - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/view/main/recommend.vue b/Yi.Vue3.x.Vant/src/view/main/recommend.vue deleted file mode 100644 index cdf9e384..00000000 --- a/Yi.Vue3.x.Vant/src/view/main/recommend.vue +++ /dev/null @@ -1,299 +0,0 @@ - - - - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/view/main/square.vue b/Yi.Vue3.x.Vant/src/view/main/square.vue deleted file mode 100644 index 2515880a..00000000 --- a/Yi.Vue3.x.Vant/src/view/main/square.vue +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/view/my.vue b/Yi.Vue3.x.Vant/src/view/my.vue deleted file mode 100644 index 09eb1644..00000000 --- a/Yi.Vue3.x.Vant/src/view/my.vue +++ /dev/null @@ -1,256 +0,0 @@ - - - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/view/send/imageText.vue b/Yi.Vue3.x.Vant/src/view/send/imageText.vue deleted file mode 100644 index 50026ea1..00000000 --- a/Yi.Vue3.x.Vant/src/view/send/imageText.vue +++ /dev/null @@ -1,185 +0,0 @@ - - - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/view/shop/shopDetails.vue b/Yi.Vue3.x.Vant/src/view/shop/shopDetails.vue deleted file mode 100644 index 563411a4..00000000 --- a/Yi.Vue3.x.Vant/src/view/shop/shopDetails.vue +++ /dev/null @@ -1,44 +0,0 @@ - -> \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/view/shop/shopIndex.vue b/Yi.Vue3.x.Vant/src/view/shop/shopIndex.vue deleted file mode 100644 index 9ce6a541..00000000 --- a/Yi.Vue3.x.Vant/src/view/shop/shopIndex.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/view/shop/shopSearch.vue b/Yi.Vue3.x.Vant/src/view/shop/shopSearch.vue deleted file mode 100644 index 0e478c53..00000000 --- a/Yi.Vue3.x.Vant/src/view/shop/shopSearch.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - \ No newline at end of file diff --git a/Yi.Vue3.x.Vant/src/vite-env.d.ts b/Yi.Vue3.x.Vant/src/vite-env.d.ts deleted file mode 100644 index 323c78a6..00000000 --- a/Yi.Vue3.x.Vant/src/vite-env.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -declare module '*.vue' { - import type { DefineComponent } from 'vue' - const component: DefineComponent<{}, {}, any> - export default component -} diff --git a/Yi.Vue3.x.Vant/tsconfig.json b/Yi.Vue3.x.Vant/tsconfig.json deleted file mode 100644 index 8e905fac..00000000 --- a/Yi.Vue3.x.Vant/tsconfig.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "useDefineForClassFields": true, - "module": "ESNext", - "moduleResolution": "Node", - "strict": true, - "jsx": "preserve", - "sourceMap": true, - "resolveJsonModule": true, - "isolatedModules": true, - "esModuleInterop": true, - "lib": ["ESNext", "DOM"], - "skipLibCheck": true, - // "strictPropertyInitialization": false - "paths": { - "@": ["./src"], - // "@/*": ["./src/*"] // 多加个这个, - "@/*": ["./src/*"] - } - }, - "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], - "references": [{ "path": "./tsconfig.node.json" }] -} diff --git a/Yi.Vue3.x.Vant/tsconfig.node.json b/Yi.Vue3.x.Vant/tsconfig.node.json deleted file mode 100644 index 9d31e2ae..00000000 --- a/Yi.Vue3.x.Vant/tsconfig.node.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "module": "ESNext", - "moduleResolution": "Node", - "allowSyntheticDefaultImports": true - }, - "include": ["vite.config.ts"] -} diff --git a/Yi.Vue3.x.Vant/vite.config.ts b/Yi.Vue3.x.Vant/vite.config.ts deleted file mode 100644 index fbd12138..00000000 --- a/Yi.Vue3.x.Vant/vite.config.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { defineConfig, loadEnv } from 'vite' -import path from 'path' -import vue from '@vitejs/plugin-vue' -import Components from 'unplugin-vue-components/vite'; -import { VantResolver } from 'unplugin-vue-components/resolvers'; - - -// https://vitejs.dev/config/ -export default defineConfig(({ mode, command }) => { - const env = loadEnv(mode, process.cwd()) - const { VITE_APP_ENV, VITE_APP_BASE_URL} = env - return { - plugins: [vue(), Components({ - resolvers: [VantResolver()], - }),], - resolve: { - // https://cn.vitejs.dev/config/#resolve-alias - alias: { - // 设置路径 - '~': path.resolve(__dirname, './'), - // 设置别名 - // '@': path.resolve(__dirname, './src'), - "@": path.join(__dirname, "./src"), - } - }, - server: { - port: 17000, - host: true, - open: true, - - - proxy: { - // https://cn.vitejs.dev/config/#server-proxy - '/dev-api': { - target: VITE_APP_BASE_URL, - changeOrigin: true, - rewrite: (p) => p.replace(/^\/dev-api/, ''), - }, - - '/dev-ws': { - target: VITE_APP_BASE_URL, - changeOrigin: true, - rewrite: (p) => p.replace(/^\/dev-ws/, ''), - ws: true - } - - } - }, - } - -} - -) diff --git a/Yi.Vue3.x.Vant/vite.config.ts.timestamp-1665906237992.mjs b/Yi.Vue3.x.Vant/vite.config.ts.timestamp-1665906237992.mjs deleted file mode 100644 index 0ff3d530..00000000 --- a/Yi.Vue3.x.Vant/vite.config.ts.timestamp-1665906237992.mjs +++ /dev/null @@ -1,46 +0,0 @@ -// vite.config.ts -import { defineConfig, loadEnv } from "vite"; -import path from "path"; -import vue from "@vitejs/plugin-vue"; -import Components from "unplugin-vue-components/vite"; -import { VantResolver } from "unplugin-vue-components/resolvers"; -var __vite_injected_original_dirname = "D:\\CC.Yi\\CC.Yi\\Yi.Vue3.x.Vant"; -var vite_config_default = defineConfig( - ({ mode, command }) => { - const env = loadEnv(mode, process.cwd()); - const { VITE_APP_ENV, VITE_APP_BASE_URL } = env; - return { - plugins: [vue(), Components({ - resolvers: [VantResolver()] - })], - resolve: { - alias: { - "~": path.resolve(__vite_injected_original_dirname, "./"), - "@": path.join(__vite_injected_original_dirname, "./src") - } - }, - server: { - port: 17e3, - host: true, - open: true, - proxy: { - "/dev-api": { - target: VITE_APP_BASE_URL, - changeOrigin: true, - rewrite: (p) => p.replace(/^\/dev-api/, "") - }, - "/dev-ws": { - target: VITE_APP_BASE_URL, - changeOrigin: true, - rewrite: (p) => p.replace(/^\/dev-ws/, ""), - ws: true - } - } - } - }; - } -); -export { - vite_config_default as default -}; -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxDQy5ZaVxcXFxDQy5ZaVxcXFxZaS5WdWUzLnguVmFudFwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRDpcXFxcQ0MuWWlcXFxcQ0MuWWlcXFxcWWkuVnVlMy54LlZhbnRcXFxcdml0ZS5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L0NDLllpL0NDLllpL1lpLlZ1ZTMueC5WYW50L3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZGVmaW5lQ29uZmlnLCBsb2FkRW52IH0gZnJvbSAndml0ZSdcclxuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcclxuaW1wb3J0IHZ1ZSBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUnXHJcbmltcG9ydCBDb21wb25lbnRzIGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3ZpdGUnO1xyXG5pbXBvcnQgeyBWYW50UmVzb2x2ZXIgfSBmcm9tICd1bnBsdWdpbi12dWUtY29tcG9uZW50cy9yZXNvbHZlcnMnO1xyXG5cclxuXHJcbi8vIGh0dHBzOi8vdml0ZWpzLmRldi9jb25maWcvXHJcbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZygoeyBtb2RlLCBjb21tYW5kIH0pID0+IHtcclxuICBjb25zdCBlbnYgPSBsb2FkRW52KG1vZGUsIHByb2Nlc3MuY3dkKCkpXHJcbiAgY29uc3QgeyBWSVRFX0FQUF9FTlYsIFZJVEVfQVBQX0JBU0VfVVJMfSA9IGVudlxyXG4gIHJldHVybiB7XHJcbiAgICBwbHVnaW5zOiBbdnVlKCksIENvbXBvbmVudHMoe1xyXG4gICAgICByZXNvbHZlcnM6IFtWYW50UmVzb2x2ZXIoKV0sXHJcbiAgICB9KSxdLFxyXG4gICAgcmVzb2x2ZToge1xyXG4gICAgICAvLyBodHRwczovL2NuLnZpdGVqcy5kZXYvY29uZmlnLyNyZXNvbHZlLWFsaWFzXHJcbiAgICAgIGFsaWFzOiB7XHJcbiAgICAgICAgLy8gXHU4QkJFXHU3RjZFXHU4REVGXHU1Rjg0XHJcbiAgICAgICAgJ34nOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi8nKSxcclxuICAgICAgICAvLyBcdThCQkVcdTdGNkVcdTUyMkJcdTU0MERcclxuICAgICAgICAvLyAnQCc6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuL3NyYycpLFxyXG4gICAgICAgIFwiQFwiOiBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4vc3JjXCIpLFxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2VydmVyOiB7XHJcbiAgICAgIHBvcnQ6IDE3MDAwLFxyXG4gICAgICBob3N0OiB0cnVlLFxyXG4gICAgICBvcGVuOiB0cnVlLFxyXG4gIFxyXG4gICAgICBcclxuICAgICAgcHJveHk6IHtcclxuICAgICAgICAvLyBodHRwczovL2NuLnZpdGVqcy5kZXYvY29uZmlnLyNzZXJ2ZXItcHJveHlcclxuICAgICAgICAnL2Rldi1hcGknOiB7XHJcbiAgICAgICAgICB0YXJnZXQ6IFZJVEVfQVBQX0JBU0VfVVJMLFxyXG4gICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxyXG4gICAgICAgICAgcmV3cml0ZTogKHApID0+IHAucmVwbGFjZSgvXlxcL2Rldi1hcGkvLCAnJyksXHJcbiAgICAgICAgfSxcclxuICBcclxuICAgICAgICAnL2Rldi13cyc6IHtcclxuICAgICAgICAgIHRhcmdldDogVklURV9BUFBfQkFTRV9VUkwsXHJcbiAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXHJcbiAgICAgICAgICByZXdyaXRlOiAocCkgPT4gcC5yZXBsYWNlKC9eXFwvZGV2LXdzLywgJycpLFxyXG4gICAgICAgICAgd3M6IHRydWVcclxuICAgICAgICB9XHJcbiAgXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfVxyXG5cclxufVxyXG5cclxuKVxyXG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQWlSLFNBQVMsY0FBYyxlQUFlO0FBQ3ZULE9BQU8sVUFBVTtBQUNqQixPQUFPLFNBQVM7QUFDaEIsT0FBTyxnQkFBZ0I7QUFDdkIsU0FBUyxvQkFBb0I7QUFKN0IsSUFBTSxtQ0FBbUM7QUFRekMsSUFBTyxzQkFBUTtBQUFBLEVBQWEsQ0FBQyxFQUFFLE1BQU0sUUFBUSxNQUFNO0FBQ2pELFVBQU0sTUFBTSxRQUFRLE1BQU0sUUFBUSxJQUFJLENBQUM7QUFDdkMsVUFBTSxFQUFFLGNBQWMsa0JBQWlCLElBQUk7QUFDM0MsV0FBTztBQUFBLE1BQ0wsU0FBUyxDQUFDLElBQUksR0FBRyxXQUFXO0FBQUEsUUFDMUIsV0FBVyxDQUFDLGFBQWEsQ0FBQztBQUFBLE1BQzVCLENBQUMsQ0FBRTtBQUFBLE1BQ0gsU0FBUztBQUFBLFFBRVAsT0FBTztBQUFBLFVBRUwsS0FBSyxLQUFLLFFBQVEsa0NBQVcsSUFBSTtBQUFBLFVBR2pDLEtBQUssS0FBSyxLQUFLLGtDQUFXLE9BQU87QUFBQSxRQUNuQztBQUFBLE1BQ0Y7QUFBQSxNQUNBLFFBQVE7QUFBQSxRQUNOLE1BQU07QUFBQSxRQUNOLE1BQU07QUFBQSxRQUNOLE1BQU07QUFBQSxRQUdOLE9BQU87QUFBQSxVQUVMLFlBQVk7QUFBQSxZQUNWLFFBQVE7QUFBQSxZQUNSLGNBQWM7QUFBQSxZQUNkLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxjQUFjLEVBQUU7QUFBQSxVQUM1QztBQUFBLFVBRUEsV0FBVztBQUFBLFlBQ1QsUUFBUTtBQUFBLFlBQ1IsY0FBYztBQUFBLFlBQ2QsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLGFBQWEsRUFBRTtBQUFBLFlBQ3pDLElBQUk7QUFBQSxVQUNOO0FBQUEsUUFFRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFFRjtBQUVBOyIsCiAgIm5hbWVzIjogW10KfQo= diff --git a/src/Yi.Framework/Yi.Framework.Application.Contracts/Class1.cs b/src/Yi.Framework/Yi.Framework.Application.Contracts/Class1.cs new file mode 100644 index 00000000..db294d74 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Application.Contracts/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.Application.Contracts +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Properties/launchSettings.json b/src/Yi.Framework/Yi.Framework.Application.Contracts/Properties/launchSettings.json similarity index 52% rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Properties/launchSettings.json rename to src/Yi.Framework/Yi.Framework.Application.Contracts/Properties/launchSettings.json index 29745205..b96981bb 100644 --- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Properties/launchSettings.json +++ b/src/Yi.Framework/Yi.Framework.Application.Contracts/Properties/launchSettings.json @@ -1,14 +1,12 @@ { "profiles": { - "Yi.Framework.ApiMicroservice": { + "Yi.Framework.Application.Contracts": { "commandName": "Project", - //ǷԶ "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }, - "launchUrl": "swagger", - "applicationUrl": "http://localhost:19001;" + "applicationUrl": "https://localhost:53034;http://localhost:53037" } } } \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Language/Yi.Framework.Language.csproj b/src/Yi.Framework/Yi.Framework.Application.Contracts/Yi.Framework.Application.Contracts.csproj similarity index 100% rename from Yi.Framework.Net6/Yi.Framework.Language/Yi.Framework.Language.csproj rename to src/Yi.Framework/Yi.Framework.Application.Contracts/Yi.Framework.Application.Contracts.csproj diff --git a/src/Yi.Framework/Yi.Framework.Application/Class1.cs b/src/Yi.Framework/Yi.Framework.Application/Class1.cs new file mode 100644 index 00000000..4d36f3a8 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Application/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.Application +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Properties/launchSettings.json b/src/Yi.Framework/Yi.Framework.Application/Properties/launchSettings.json similarity index 62% rename from Yi.Framework.Net6/Yi.Framework.OcelotGateway/Properties/launchSettings.json rename to src/Yi.Framework/Yi.Framework.Application/Properties/launchSettings.json index 40b3a218..d145776a 100644 --- a/Yi.Framework.Net6/Yi.Framework.OcelotGateway/Properties/launchSettings.json +++ b/src/Yi.Framework/Yi.Framework.Application/Properties/launchSettings.json @@ -1,12 +1,12 @@ { "profiles": { - "Yi.Framework.OcelotGateway": { + "Yi.Framework.Application": { "commandName": "Project", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }, - "applicationUrl": "https://localhost:60123;http://localhost:60125" + "applicationUrl": "https://localhost:53032;http://localhost:53036" } } } \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Application/Yi.Framework.Application.csproj b/src/Yi.Framework/Yi.Framework.Application/Yi.Framework.Application.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Application/Yi.Framework.Application.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.AspNetCore/Class1.cs b/src/Yi.Framework/Yi.Framework.AspNetCore/Class1.cs new file mode 100644 index 00000000..db18c875 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.AspNetCore/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.AspNetCore +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.AspNetCore/Yi.Framework.AspNetCore.csproj b/src/Yi.Framework/Yi.Framework.AspNetCore/Yi.Framework.AspNetCore.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.AspNetCore/Yi.Framework.AspNetCore.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.Autofac/Class1.cs b/src/Yi.Framework/Yi.Framework.Autofac/Class1.cs new file mode 100644 index 00000000..83fbc217 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Autofac/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.Autofac +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Properties/launchSettings.json b/src/Yi.Framework/Yi.Framework.Autofac/Properties/launchSettings.json similarity index 60% rename from Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Properties/launchSettings.json rename to src/Yi.Framework/Yi.Framework.Autofac/Properties/launchSettings.json index 045770c2..a8b2dde8 100644 --- a/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Properties/launchSettings.json +++ b/src/Yi.Framework/Yi.Framework.Autofac/Properties/launchSettings.json @@ -1,12 +1,12 @@ { "profiles": { - "Yi.Framework.AuthenticationCenter": { + "Yi.Framework.Autofac": { "commandName": "Project", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }, - "applicationUrl": "https://localhost:60124;http://localhost:60126" + "applicationUrl": "https://localhost:53043;http://localhost:53044" } } } \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Autofac/Yi.Framework.Autofac.csproj b/src/Yi.Framework/Yi.Framework.Autofac/Yi.Framework.Autofac.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Autofac/Yi.Framework.Autofac.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.BackgroundJobs.Quartz/Class1.cs b/src/Yi.Framework/Yi.Framework.BackgroundJobs.Quartz/Class1.cs new file mode 100644 index 00000000..0f13a2fa --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.BackgroundJobs.Quartz/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.BackgroundJobs.Quartz +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.BackgroundJobs.Quartz/Properties/launchSettings.json b/src/Yi.Framework/Yi.Framework.BackgroundJobs.Quartz/Properties/launchSettings.json new file mode 100644 index 00000000..3a6101cf --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.BackgroundJobs.Quartz/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "Yi.Framework.BackgroundJobs.Quartz": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:53041;http://localhost:53042" + } + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.BackgroundJobs.Quartz/Yi.Framework.BackgroundJobs.Quartz.csproj b/src/Yi.Framework/Yi.Framework.BackgroundJobs.Quartz/Yi.Framework.BackgroundJobs.Quartz.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.BackgroundJobs.Quartz/Yi.Framework.BackgroundJobs.Quartz.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.BackgroundJobs/Class1.cs b/src/Yi.Framework/Yi.Framework.BackgroundJobs/Class1.cs new file mode 100644 index 00000000..b1f532b6 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.BackgroundJobs/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.BackgroundJobs +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.BackgroundJobs/Yi.Framework.BackgroundJobs.csproj b/src/Yi.Framework/Yi.Framework.BackgroundJobs/Yi.Framework.BackgroundJobs.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.BackgroundJobs/Yi.Framework.BackgroundJobs.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.Caching.MemoryCache/Class1.cs b/src/Yi.Framework/Yi.Framework.Caching.MemoryCache/Class1.cs new file mode 100644 index 00000000..006cc701 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Caching.MemoryCache/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.Caching.MemoryCache +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Caching.MemoryCache/Properties/launchSettings.json b/src/Yi.Framework/Yi.Framework.Caching.MemoryCache/Properties/launchSettings.json new file mode 100644 index 00000000..bb9c6366 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Caching.MemoryCache/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "Yi.Framework.Caching.MemoryCache": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:53045;http://localhost:53046" + } + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Caching.MemoryCache/Yi.Framework.Caching.MemoryCache.csproj b/src/Yi.Framework/Yi.Framework.Caching.MemoryCache/Yi.Framework.Caching.MemoryCache.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Caching.MemoryCache/Yi.Framework.Caching.MemoryCache.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.Caching.Redis/Class1.cs b/src/Yi.Framework/Yi.Framework.Caching.Redis/Class1.cs new file mode 100644 index 00000000..117b97a5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Caching.Redis/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.Caching.Redis +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Caching.Redis/Yi.Framework.Caching.Redis.csproj b/src/Yi.Framework/Yi.Framework.Caching.Redis/Yi.Framework.Caching.Redis.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Caching.Redis/Yi.Framework.Caching.Redis.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.Caching/Class1.cs b/src/Yi.Framework/Yi.Framework.Caching/Class1.cs new file mode 100644 index 00000000..9613382b --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Caching/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.Caching +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Caching/Yi.Framework.Caching.csproj b/src/Yi.Framework/Yi.Framework.Caching/Yi.Framework.Caching.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Caching/Yi.Framework.Caching.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.Core.Sqlsugar/Class1.cs b/src/Yi.Framework/Yi.Framework.Core.Sqlsugar/Class1.cs new file mode 100644 index 00000000..aba7f49f --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Core.Sqlsugar/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.Core.Sqlsugar +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Core.Sqlsugar/Yi.Framework.Core.Sqlsugar.csproj b/src/Yi.Framework/Yi.Framework.Core.Sqlsugar/Yi.Framework.Core.Sqlsugar.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Core.Sqlsugar/Yi.Framework.Core.Sqlsugar.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.Core/Extensions/ModuleExtensions.cs b/src/Yi.Framework/Yi.Framework.Core/Extensions/ModuleExtensions.cs new file mode 100644 index 00000000..e991ca57 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Core/Extensions/ModuleExtensions.cs @@ -0,0 +1,190 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using StartupModules.Internal; +using StartupModules; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace Yi.Framework.Core.Extensions +{ + + /// + /// 该类来自于StartupModules + /// + public static class ModuleExtensions + { + // + // 摘要: + // Configures startup modules and automatically discovers StartupModules.IStartupModule's + // from the applications entry assembly. + // + // 参数: + // builder: + // The Microsoft.AspNetCore.Hosting.IWebHostBuilder instance. + // + // 返回结果: + // The Microsoft.AspNetCore.Hosting.IWebHostBuilder instance. + public static IWebHostBuilder UseYiModules(this IWebHostBuilder builder) + { + return builder.UseStartupModules(delegate (StartupModulesOptions options) + { + options.DiscoverStartupModules(); + }); + } + + // + // 摘要: + // Configures startup modules and automatically discovers StartupModules.IStartupModule's + // from the specified assemblies. + // + // 参数: + // builder: + // The Microsoft.AspNetCore.Hosting.IWebHostBuilder instance. + // + // assemblies: + // The assemblies to discover startup modules from. + // + // 返回结果: + // The Microsoft.AspNetCore.Hosting.IWebHostBuilder instance. + public static IWebHostBuilder UseYiModules(this IWebHostBuilder builder, params Assembly[] assemblies) + { + Assembly[] assemblies2 = assemblies; + return builder.UseStartupModules(delegate (StartupModulesOptions options) + { + options.DiscoverStartupModules(assemblies2); + }); + } + + // + // 摘要: + // Configures startup modules with the specified configuration for StartupModules.StartupModulesOptions. + // + // 参数: + // builder: + // The Microsoft.AspNetCore.Hosting.IWebHostBuilder instance. + // + // configure: + // A callback to configure StartupModules.StartupModulesOptions. + // + // 返回结果: + // The Microsoft.AspNetCore.Hosting.IWebHostBuilder instance. + public static IWebHostBuilder UseYiModules(this IWebHostBuilder builder, Action configure) + { + Action configure2 = configure; + return builder.ConfigureServices(delegate (WebHostBuilderContext hostContext, IServiceCollection services) + { + services.AddStartupModules(hostContext.Configuration, hostContext.HostingEnvironment, configure2); + }); + } + + // + // 摘要: + // Configures startup modules with the specified configuration for StartupModules.StartupModulesOptions. + // + // 参数: + // builder: + // The Microsoft.AspNetCore.Builder.WebApplicationBuilder instance. + // + // 返回结果: + // The Microsoft.AspNetCore.Builder.WebApplicationBuilder instance. + public static WebApplicationBuilder UseYiModules(this WebApplicationBuilder builder) + { + return builder.UseStartupModules(delegate (StartupModulesOptions options) + { + options.DiscoverStartupModules(); + }); + } + + // + // 摘要: + // Configures startup modules with the specified configuration for StartupModules.StartupModulesOptions. + // + // 参数: + // builder: + // The Microsoft.AspNetCore.Builder.WebApplicationBuilder instance. + // + // assemblies: + // The assemblies to discover startup modules from. + // + // 返回结果: + // The Microsoft.AspNetCore.Builder.WebApplicationBuilder instance. + public static WebApplicationBuilder UseYiModules(this WebApplicationBuilder builder, params Assembly[] assemblies) + { + Assembly[] assemblies2 = assemblies; + return builder.UseStartupModules(delegate (StartupModulesOptions options) + { + options.DiscoverStartupModules(assemblies2); + }); + } + + // + // 摘要: + // Configures startup modules with the specified configuration for StartupModules.StartupModulesOptions. + // + // 参数: + // builder: + // The Microsoft.AspNetCore.Builder.WebApplicationBuilder instance. + // + // configure: + // A callback to configure StartupModules.StartupModulesOptions. + // + // 返回结果: + // The Microsoft.AspNetCore.Builder.WebApplicationBuilder instance. + public static WebApplicationBuilder UseYiModules(this WebApplicationBuilder builder, Action configure) + { + builder.Services.AddStartupModules(builder.Configuration, builder.Environment, configure); + return builder; + } + + // + // 摘要: + // Configures startup modules with the specified configuration for StartupModules.StartupModulesOptions. + // + // 参数: + // services: + // The service collection to add the StartupModules services to. + // + // configuration: + // The application's configuration. + // + // environment: + // The application's environment information. + // + // configure: + // A callback to configure StartupModules.StartupModulesOptions. + public static void AddYiModules(this IServiceCollection services, IConfiguration configuration, IWebHostEnvironment environment, Action configure) + { + if (services == null) + { + throw new ArgumentNullException("services"); + } + + if (configuration == null) + { + throw new ArgumentNullException("configuration"); + } + + if (environment == null) + { + throw new ArgumentNullException("environment"); + } + + StartupModulesOptions startupModulesOptions = new StartupModulesOptions(); + configure(startupModulesOptions); + if (startupModulesOptions.StartupModules.Count != 0 || startupModulesOptions.ApplicationInitializers.Count != 0) + { + StartupModuleRunner runner = new StartupModuleRunner(startupModulesOptions); + services.AddSingleton((Func)((IServiceProvider sp) => ActivatorUtilities.CreateInstance(sp, new object[1] { runner }))); + new ConfigureServicesContext(configuration, environment, startupModulesOptions); + runner.ConfigureServices(services, configuration, environment); + } + } + } +} + diff --git a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/ConstConfig/PurchaseConst.cs b/src/Yi.Framework/Yi.Framework.Core/Module/IYiModule.cs similarity index 55% rename from Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/ConstConfig/PurchaseConst.cs rename to src/Yi.Framework/Yi.Framework.Core/Module/IYiModule.cs index 6018d781..db854bd9 100644 --- a/Yi.Framework.Net6/Yi.Framework.DTOModel/ERP/Purchase/ConstConfig/PurchaseConst.cs +++ b/src/Yi.Framework/Yi.Framework.Core/Module/IYiModule.cs @@ -1,12 +1,13 @@ +using StartupModules; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Yi.Framework.DtoModel.ERP.Purchase.ConstConfig +namespace Yi.Framework.Core.Module { - public class PurchaseConst + public interface IYiModule: IStartupModule { } } diff --git a/Yi.Framework.Net6/Yi.Framework.Task/Yi.Framework.Job.csproj b/src/Yi.Framework/Yi.Framework.Core/Yi.Framework.Core.csproj similarity index 51% rename from Yi.Framework.Net6/Yi.Framework.Task/Yi.Framework.Job.csproj rename to src/Yi.Framework/Yi.Framework.Core/Yi.Framework.Core.csproj index f13bb262..d52f995e 100644 --- a/Yi.Framework.Net6/Yi.Framework.Task/Yi.Framework.Job.csproj +++ b/src/Yi.Framework/Yi.Framework.Core/Yi.Framework.Core.csproj @@ -2,14 +2,16 @@ net6.0 + enable + enable - + - + diff --git a/src/Yi.Framework/Yi.Framework.Core/YiFrameworkCoreModule.cs b/src/Yi.Framework/Yi.Framework.Core/YiFrameworkCoreModule.cs new file mode 100644 index 00000000..0c4cedad --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Core/YiFrameworkCoreModule.cs @@ -0,0 +1,25 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using StartupModules; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Yi.Framework.Core.Module; + +namespace Yi.Framework.Core +{ + public class YiFrameworkCoreModule : IYiModule + { + public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context) + { + throw new NotImplementedException(); + } + + public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context) + { + throw new NotImplementedException(); + } + } +} diff --git a/src/Yi.Framework/Yi.Framework.Ddd.Application.Contracts/Class1.cs b/src/Yi.Framework/Yi.Framework.Ddd.Application.Contracts/Class1.cs new file mode 100644 index 00000000..a0378ac2 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Ddd.Application.Contracts/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.Ddd.Application.Contracts +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Ddd.Application.Contracts/Yi.Framework.Ddd.Application.Contracts.csproj b/src/Yi.Framework/Yi.Framework.Ddd.Application.Contracts/Yi.Framework.Ddd.Application.Contracts.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Ddd.Application.Contracts/Yi.Framework.Ddd.Application.Contracts.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.Ddd.Application/Yi.Framework.Ddd.csproj b/src/Yi.Framework/Yi.Framework.Ddd.Application/Yi.Framework.Ddd.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Ddd.Application/Yi.Framework.Ddd.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.Ddd.Application/YiFrameworkModule.cs b/src/Yi.Framework/Yi.Framework.Ddd.Application/YiFrameworkModule.cs new file mode 100644 index 00000000..692d6460 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Ddd.Application/YiFrameworkModule.cs @@ -0,0 +1,24 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using StartupModules; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yi.Framework.Ddd +{ + public class YiFrameworkModule : IStartupModule + { + public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context) + { + throw new NotImplementedException(); + } + + public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context) + { + throw new NotImplementedException(); + } + } +} diff --git a/src/Yi.Framework/Yi.Framework.Domain.Shared/Class1.cs b/src/Yi.Framework/Yi.Framework.Domain.Shared/Class1.cs new file mode 100644 index 00000000..ecb631e7 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Domain.Shared/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.Domain.Shared +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Domain.Shared/Properties/launchSettings.json b/src/Yi.Framework/Yi.Framework.Domain.Shared/Properties/launchSettings.json new file mode 100644 index 00000000..19804200 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Domain.Shared/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "Yi.Framework.Domain.Shared": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:53033;http://localhost:53038" + } + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Domain.Shared/Yi.Framework.Domain.Shared.csproj b/src/Yi.Framework/Yi.Framework.Domain.Shared/Yi.Framework.Domain.Shared.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Domain.Shared/Yi.Framework.Domain.Shared.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.Domain/Class1.cs b/src/Yi.Framework/Yi.Framework.Domain/Class1.cs new file mode 100644 index 00000000..4ee30659 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Domain/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.Domain +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Domain/Properties/launchSettings.json b/src/Yi.Framework/Yi.Framework.Domain/Properties/launchSettings.json new file mode 100644 index 00000000..3959a78c --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Domain/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "Yi.Framework.Domain": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:53035;http://localhost:53040" + } + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Domain/Yi.Framework.Domain.csproj b/src/Yi.Framework/Yi.Framework.Domain/Yi.Framework.Domain.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Domain/Yi.Framework.Domain.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.Sqlsugar/Class1.cs b/src/Yi.Framework/Yi.Framework.Sqlsugar/Class1.cs new file mode 100644 index 00000000..58452370 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Sqlsugar/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.Sqlsugar +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Sqlsugar/Properties/launchSettings.json b/src/Yi.Framework/Yi.Framework.Sqlsugar/Properties/launchSettings.json new file mode 100644 index 00000000..d1468b60 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Sqlsugar/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "Yi.Framework.Sqlsugar": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:53031;http://localhost:53039" + } + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Sqlsugar/Yi.Framework.Sqlsugar.csproj b/src/Yi.Framework/Yi.Framework.Sqlsugar/Yi.Framework.Sqlsugar.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Sqlsugar/Yi.Framework.Sqlsugar.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.Uow/Class1.cs b/src/Yi.Framework/Yi.Framework.Uow/Class1.cs new file mode 100644 index 00000000..eb664c0d --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Uow/Class1.cs @@ -0,0 +1,7 @@ +namespace Yi.Framework.Uow +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Uow/Properties/launchSettings.json b/src/Yi.Framework/Yi.Framework.Uow/Properties/launchSettings.json new file mode 100644 index 00000000..b638dee4 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Uow/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "Yi.Framework.Uow": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:53047;http://localhost:53048" + } + } +} \ No newline at end of file diff --git a/src/Yi.Framework/Yi.Framework.Uow/Yi.Framework.Uow.csproj b/src/Yi.Framework/Yi.Framework.Uow/Yi.Framework.Uow.csproj new file mode 100644 index 00000000..132c02c5 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Uow/Yi.Framework.Uow.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/src/Yi.Framework/Yi.Framework.Web/Program.cs b/src/Yi.Framework/Yi.Framework.Web/Program.cs new file mode 100644 index 00000000..08dfb798 --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Web/Program.cs @@ -0,0 +1,28 @@ + +using Yi.Framework.Core.Extensions; + +var builder = WebApplication.CreateBuilder(args); +builder.UseYiModules(); +// Add services to the container. + +builder.Services.AddControllers(); +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); + +app.UseAuthorization(); + +app.MapControllers(); + +app.Run(); diff --git a/src/Yi.Framework/Yi.Framework.Web/Properties/launchSettings.json b/src/Yi.Framework/Yi.Framework.Web/Properties/launchSettings.json new file mode 100644 index 00000000..51cff78b --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Web/Properties/launchSettings.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:56921", + "sslPort": 44346 + } + }, + "profiles": { + "Yi.Framework.Web": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "launchUrl": "swagger", + "applicationUrl": "https://localhost:7253;http://localhost:5109", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Yi.Framework.AuthenticationCenter.csproj b/src/Yi.Framework/Yi.Framework.Web/Yi.Framework.Web.csproj similarity index 56% rename from Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Yi.Framework.AuthenticationCenter.csproj rename to src/Yi.Framework/Yi.Framework.Web/Yi.Framework.Web.csproj index 9da1712b..f7fead81 100644 --- a/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/Yi.Framework.AuthenticationCenter.csproj +++ b/src/Yi.Framework/Yi.Framework.Web/Yi.Framework.Web.csproj @@ -2,10 +2,16 @@ net6.0 + enable + enable + + + + diff --git a/src/Yi.Framework/Yi.Framework.Web/YiFrameworkWebModule.cs b/src/Yi.Framework/Yi.Framework.Web/YiFrameworkWebModule.cs new file mode 100644 index 00000000..2fe31c5d --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.Web/YiFrameworkWebModule.cs @@ -0,0 +1,18 @@ +using StartupModules; +using Yi.Framework.Core.Module; + +namespace Yi.Framework.Web +{ + public class YiFrameworkWebModule : IYiModule + { + public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context) + { + + } + public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context) + { + Console.WriteLine("还有谁"); + + } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/appsettings.json b/src/Yi.Framework/Yi.Framework.Web/appsettings.json similarity index 56% rename from Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/appsettings.json rename to src/Yi.Framework/Yi.Framework.Web/appsettings.json index d9d9a9bf..10f68b8c 100644 --- a/Yi.Framework.Net6/Yi.Framework.AuthenticationCenter/appsettings.json +++ b/src/Yi.Framework/Yi.Framework.Web/appsettings.json @@ -2,8 +2,7 @@ "Logging": { "LogLevel": { "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" + "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*" diff --git a/src/Yi.Framework/Yi.Framework.sln b/src/Yi.Framework/Yi.Framework.sln new file mode 100644 index 00000000..b59030ea --- /dev/null +++ b/src/Yi.Framework/Yi.Framework.sln @@ -0,0 +1,146 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.4.33103.184 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "modules", "modules", "{EEF5F221-0E32-4A3D-B647-B4B5E7305806}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{32A813F5-13B2-4DCA-8B59-F27F1B0D5678}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "framework", "framework", "{5F2B846D-96CE-400A-878E-220498F4EE31}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Core", "Yi.Framework.Core\Yi.Framework.Core.csproj", "{83B2D7AD-ED8E-4392-B0AE-4227498CD75F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Application", "Yi.Framework.Application\Yi.Framework.Application.csproj", "{456835D1-4968-4195-9993-B2A580E85056}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Application.Contracts", "Yi.Framework.Application.Contracts\Yi.Framework.Application.Contracts.csproj", "{D2378C23-2CFE-468A-924A-B8C9D4A3A8ED}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Domain", "Yi.Framework.Domain\Yi.Framework.Domain.csproj", "{C02A954D-CCCB-41BD-ADAD-9D7ECBF1A828}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Domain.Shared", "Yi.Framework.Domain.Shared\Yi.Framework.Domain.Shared.csproj", "{26171153-1784-455B-9582-0558AEEC03CF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Sqlsugar", "Yi.Framework.Sqlsugar\Yi.Framework.Sqlsugar.csproj", "{3C3A7BAC-F27F-433E-BF91-289FA42E4995}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Web", "Yi.Framework.Web\Yi.Framework.Web.csproj", "{01CC7B62-F42C-45CE-BACA-F450593A1AF2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.BackgroundJobs.Quartz", "Yi.Framework.BackgroundJobs.Quartz\Yi.Framework.BackgroundJobs.Quartz.csproj", "{1879A863-9864-4E16-8492-504055807684}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Ddd", "Yi.Framework.Ddd.Application\Yi.Framework.Ddd.csproj", "{949F35A7-36E4-4080-9940-24BE52532078}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Autofac", "Yi.Framework.Autofac\Yi.Framework.Autofac.csproj", "{63BA134E-9D23-4EB8-87E4-B45B33D954F5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.AspNetCore", "Yi.Framework.AspNetCore\Yi.Framework.AspNetCore.csproj", "{2F5E5843-14FB-48F1-AEB0-B9FFE103B972}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.BackgroundJobs", "Yi.Framework.BackgroundJobs\Yi.Framework.BackgroundJobs.csproj", "{E569E5AA-3CC1-459A-B5DD-5D340B551A44}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Caching", "Yi.Framework.Caching\Yi.Framework.Caching.csproj", "{8767C5B7-3A17-4729-BCAA-B391B6A215AA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Caching.Redis", "Yi.Framework.Caching.Redis\Yi.Framework.Caching.Redis.csproj", "{F13D4F03-3FA0-43E9-BBAA-F618E1A3CF41}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Caching.MemoryCache", "Yi.Framework.Caching.MemoryCache\Yi.Framework.Caching.MemoryCache.csproj", "{67CF07AB-2A72-4B36-A3A5-4CEB82B7C43C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Yi.Framework.Uow", "Yi.Framework.Uow\Yi.Framework.Uow.csproj", "{3D83BE69-71BB-43BE-B3F1-A532215561CD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.Core.Sqlsugar", "Yi.Framework.Core.Sqlsugar\Yi.Framework.Core.Sqlsugar.csproj", "{58F4071D-66B7-4839-A247-79AF0E4E1C8E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {83B2D7AD-ED8E-4392-B0AE-4227498CD75F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {83B2D7AD-ED8E-4392-B0AE-4227498CD75F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {83B2D7AD-ED8E-4392-B0AE-4227498CD75F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {83B2D7AD-ED8E-4392-B0AE-4227498CD75F}.Release|Any CPU.Build.0 = Release|Any CPU + {456835D1-4968-4195-9993-B2A580E85056}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {456835D1-4968-4195-9993-B2A580E85056}.Debug|Any CPU.Build.0 = Debug|Any CPU + {456835D1-4968-4195-9993-B2A580E85056}.Release|Any CPU.ActiveCfg = Release|Any CPU + {456835D1-4968-4195-9993-B2A580E85056}.Release|Any CPU.Build.0 = Release|Any CPU + {D2378C23-2CFE-468A-924A-B8C9D4A3A8ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2378C23-2CFE-468A-924A-B8C9D4A3A8ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2378C23-2CFE-468A-924A-B8C9D4A3A8ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2378C23-2CFE-468A-924A-B8C9D4A3A8ED}.Release|Any CPU.Build.0 = Release|Any CPU + {C02A954D-CCCB-41BD-ADAD-9D7ECBF1A828}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C02A954D-CCCB-41BD-ADAD-9D7ECBF1A828}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C02A954D-CCCB-41BD-ADAD-9D7ECBF1A828}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C02A954D-CCCB-41BD-ADAD-9D7ECBF1A828}.Release|Any CPU.Build.0 = Release|Any CPU + {26171153-1784-455B-9582-0558AEEC03CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26171153-1784-455B-9582-0558AEEC03CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26171153-1784-455B-9582-0558AEEC03CF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26171153-1784-455B-9582-0558AEEC03CF}.Release|Any CPU.Build.0 = Release|Any CPU + {3C3A7BAC-F27F-433E-BF91-289FA42E4995}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3C3A7BAC-F27F-433E-BF91-289FA42E4995}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3C3A7BAC-F27F-433E-BF91-289FA42E4995}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3C3A7BAC-F27F-433E-BF91-289FA42E4995}.Release|Any CPU.Build.0 = Release|Any CPU + {01CC7B62-F42C-45CE-BACA-F450593A1AF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {01CC7B62-F42C-45CE-BACA-F450593A1AF2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {01CC7B62-F42C-45CE-BACA-F450593A1AF2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {01CC7B62-F42C-45CE-BACA-F450593A1AF2}.Release|Any CPU.Build.0 = Release|Any CPU + {1879A863-9864-4E16-8492-504055807684}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1879A863-9864-4E16-8492-504055807684}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1879A863-9864-4E16-8492-504055807684}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1879A863-9864-4E16-8492-504055807684}.Release|Any CPU.Build.0 = Release|Any CPU + {949F35A7-36E4-4080-9940-24BE52532078}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {949F35A7-36E4-4080-9940-24BE52532078}.Debug|Any CPU.Build.0 = Debug|Any CPU + {949F35A7-36E4-4080-9940-24BE52532078}.Release|Any CPU.ActiveCfg = Release|Any CPU + {949F35A7-36E4-4080-9940-24BE52532078}.Release|Any CPU.Build.0 = Release|Any CPU + {63BA134E-9D23-4EB8-87E4-B45B33D954F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63BA134E-9D23-4EB8-87E4-B45B33D954F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63BA134E-9D23-4EB8-87E4-B45B33D954F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63BA134E-9D23-4EB8-87E4-B45B33D954F5}.Release|Any CPU.Build.0 = Release|Any CPU + {2F5E5843-14FB-48F1-AEB0-B9FFE103B972}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F5E5843-14FB-48F1-AEB0-B9FFE103B972}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F5E5843-14FB-48F1-AEB0-B9FFE103B972}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F5E5843-14FB-48F1-AEB0-B9FFE103B972}.Release|Any CPU.Build.0 = Release|Any CPU + {E569E5AA-3CC1-459A-B5DD-5D340B551A44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E569E5AA-3CC1-459A-B5DD-5D340B551A44}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E569E5AA-3CC1-459A-B5DD-5D340B551A44}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E569E5AA-3CC1-459A-B5DD-5D340B551A44}.Release|Any CPU.Build.0 = Release|Any CPU + {8767C5B7-3A17-4729-BCAA-B391B6A215AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8767C5B7-3A17-4729-BCAA-B391B6A215AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8767C5B7-3A17-4729-BCAA-B391B6A215AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8767C5B7-3A17-4729-BCAA-B391B6A215AA}.Release|Any CPU.Build.0 = Release|Any CPU + {F13D4F03-3FA0-43E9-BBAA-F618E1A3CF41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F13D4F03-3FA0-43E9-BBAA-F618E1A3CF41}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F13D4F03-3FA0-43E9-BBAA-F618E1A3CF41}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F13D4F03-3FA0-43E9-BBAA-F618E1A3CF41}.Release|Any CPU.Build.0 = Release|Any CPU + {67CF07AB-2A72-4B36-A3A5-4CEB82B7C43C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {67CF07AB-2A72-4B36-A3A5-4CEB82B7C43C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {67CF07AB-2A72-4B36-A3A5-4CEB82B7C43C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {67CF07AB-2A72-4B36-A3A5-4CEB82B7C43C}.Release|Any CPU.Build.0 = Release|Any CPU + {3D83BE69-71BB-43BE-B3F1-A532215561CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D83BE69-71BB-43BE-B3F1-A532215561CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D83BE69-71BB-43BE-B3F1-A532215561CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D83BE69-71BB-43BE-B3F1-A532215561CD}.Release|Any CPU.Build.0 = Release|Any CPU + {58F4071D-66B7-4839-A247-79AF0E4E1C8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {58F4071D-66B7-4839-A247-79AF0E4E1C8E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {58F4071D-66B7-4839-A247-79AF0E4E1C8E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {58F4071D-66B7-4839-A247-79AF0E4E1C8E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {83B2D7AD-ED8E-4392-B0AE-4227498CD75F} = {5F2B846D-96CE-400A-878E-220498F4EE31} + {456835D1-4968-4195-9993-B2A580E85056} = {32A813F5-13B2-4DCA-8B59-F27F1B0D5678} + {D2378C23-2CFE-468A-924A-B8C9D4A3A8ED} = {32A813F5-13B2-4DCA-8B59-F27F1B0D5678} + {C02A954D-CCCB-41BD-ADAD-9D7ECBF1A828} = {32A813F5-13B2-4DCA-8B59-F27F1B0D5678} + {26171153-1784-455B-9582-0558AEEC03CF} = {32A813F5-13B2-4DCA-8B59-F27F1B0D5678} + {3C3A7BAC-F27F-433E-BF91-289FA42E4995} = {32A813F5-13B2-4DCA-8B59-F27F1B0D5678} + {01CC7B62-F42C-45CE-BACA-F450593A1AF2} = {32A813F5-13B2-4DCA-8B59-F27F1B0D5678} + {1879A863-9864-4E16-8492-504055807684} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806} + {949F35A7-36E4-4080-9940-24BE52532078} = {5F2B846D-96CE-400A-878E-220498F4EE31} + {63BA134E-9D23-4EB8-87E4-B45B33D954F5} = {5F2B846D-96CE-400A-878E-220498F4EE31} + {2F5E5843-14FB-48F1-AEB0-B9FFE103B972} = {5F2B846D-96CE-400A-878E-220498F4EE31} + {E569E5AA-3CC1-459A-B5DD-5D340B551A44} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806} + {8767C5B7-3A17-4729-BCAA-B391B6A215AA} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806} + {F13D4F03-3FA0-43E9-BBAA-F618E1A3CF41} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806} + {67CF07AB-2A72-4B36-A3A5-4CEB82B7C43C} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806} + {3D83BE69-71BB-43BE-B3F1-A532215561CD} = {5F2B846D-96CE-400A-878E-220498F4EE31} + {58F4071D-66B7-4839-A247-79AF0E4E1C8E} = {5F2B846D-96CE-400A-878E-220498F4EE31} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {6C1A3808-0F4F-43FB-A9FE-5F27A3BB2ECF} + EndGlobalSection +EndGlobal