diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db index 616040b2..41e9f4b6 100644 Binary files a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db and b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db differ diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Abstract/AbstractTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Abstract/AbstractTemplateProvider.cs new file mode 100644 index 00000000..9c2ca37c --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Template/Abstract/AbstractTemplateProvider.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Yi.Framework.Common.Helper; + +namespace Yi.Framework.Template.Abstract +{ + public abstract class AbstractTemplateProvider : ITemplateProvider + { + public string BuildPath { get; set; } + public string TemplatePath { get; set; } + public string BakPath { get; set; } + private Dictionary TemplateDic { get; set; } + + public void Bak() { + + } + + public virtual void Build() + { + var templateData = GetTemplateData(); + foreach (var ky in TemplateDic) + { + templateData = templateData.Replace(ky.Key, ky.Value); + } + File.WriteAllText(BuildPath, templateData); + } + + + protected virtual string GetTemplateData() + { + return File.ReadAllText(TemplatePath); + } + + protected void AddTemplateDic(string oldStr, string newStr) + { + TemplateDic=new Dictionary(); + 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 new file mode 100644 index 00000000..b57d17be --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Template/Abstract/ITemplateProvider.cs @@ -0,0 +1,41 @@ +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/FileHelper.cs b/Yi.Framework.Net6/Yi.Framework.Template/FileHelper.cs new file mode 100644 index 00000000..7ae1c0c4 --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Template/FileHelper.cs @@ -0,0 +1,490 @@ +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.Template/Program.cs b/Yi.Framework.Net6/Yi.Framework.Template/Program.cs new file mode 100644 index 00000000..8e300ecd --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Template/Program.cs @@ -0,0 +1,14 @@ +using Yi.Framework.Template; +using Yi.Framework.Template.Provider; + +TemplateFactory templateFactory = new(); + +//选择需要生成的模板提供者 +templateFactory.CreateTemplateProviders((option) => +{ + option.Add(new ServceTemplateProvider()); + +}); + +//开始构建模板 +templateFactory.BuildTemplate(); \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Provider/ServceTemplateProvider.cs b/Yi.Framework.Net6/Yi.Framework.Template/Provider/ServceTemplateProvider.cs new file mode 100644 index 00000000..5259b5ee --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Template/Provider/ServceTemplateProvider.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Yi.Framework.Template.Abstract; + +namespace Yi.Framework.Template.Provider +{ + public class ServceTemplateProvider : AbstractTemplateProvider + { + public ServceTemplateProvider() + { + BuildPath = "E:\\Yi\\Yi.Framework.Net6\\Yi.Framework.Template\\Code\\ServiceNewTemplate.txt"; + TemplatePath = "E:\\Yi\\Yi.Framework.Net6\\Yi.Framework.Template\\Template\\ServiceTemplate.txt"; + AddTemplateDic("Yi.Framework", "Yi.TTT"); + } + } +} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/Template/ServiceTemplate.txt b/Yi.Framework.Net6/Yi.Framework.Template/Template/ServiceTemplate.txt new file mode 100644 index 00000000..c22f11eb --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Template/Template/ServiceTemplate.txt @@ -0,0 +1,32 @@ +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 SupplierService(IRepository repository, IMapper mapper) : base(repository, mapper) + { + } + 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.Template/TemplateFactory.cs b/Yi.Framework.Net6/Yi.Framework.Template/TemplateFactory.cs new file mode 100644 index 00000000..76c879fc --- /dev/null +++ b/Yi.Framework.Net6/Yi.Framework.Template/TemplateFactory.cs @@ -0,0 +1,38 @@ +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; + + public void CreateTemplateProviders(Action> action) + { + _templateProviders=new List(); + 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 index 2a3b0053..eca3d7cc 100644 --- a/Yi.Framework.Net6/Yi.Framework.Template/Yi.Framework.Template.csproj +++ b/Yi.Framework.Net6/Yi.Framework.Template/Yi.Framework.Template.csproj @@ -4,47 +4,16 @@ net6.0 enable enable + Exe - - - True - True - view.tt - - - - - - True - True - view.tt - - - - - - view.vue - TextTemplatingFileGenerator - - - TextTemplatingFileGenerator - api.js - - - True - True - api.tt - - - True - True - view.tt - - - + + + + + diff --git a/Yi.Framework.Net6/Yi.Framework.Template/vue3-ruoyi/api.js b/Yi.Framework.Net6/Yi.Framework.Template/vue3-ruoyi/api.js deleted file mode 100644 index 403e94c0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/vue3-ruoyi/api.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.Framework.Net6/Yi.Framework.Template/vue3-ruoyi/api.tt b/Yi.Framework.Net6/Yi.Framework.Template/vue3-ruoyi/api.tt deleted file mode 100644 index a32440e8..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/vue3-ruoyi/api.tt +++ /dev/null @@ -1,54 +0,0 @@ -<#@ template debug="false" hostspecific="false" language="C#" #> -<#@ assembly name="System.Core" #> -<#@ import namespace="System.Linq" #> -<#@ import namespace="System.Text" #> -<#@ import namespace="System.Collections.Generic" #> -<#@ output extension=".js" #> -<# -var entityName="article"; -#> -import request from '@/utils/request' - -// 分页查询 -export function listData(query) { - return request({ - url: '/<#= entityName #>/pageList', - method: 'get', - params: query - }) -} - -// id查询 -export function getData(code) { - return request({ - url: '/<#= entityName #>/getById/' + code, - method: 'get' - }) -} - -// 新增 -export function addData(data) { - return request({ - url: '/<#= entityName #>/add', - method: 'post', - data: data - }) -} - -// 修改 -export function updateData(data) { - return request({ - url: '/<#= entityName #>/update', - method: 'put', - data: data - }) -} - -// 删除 -export function delData(code) { - return request({ - url: '/<#= entityName #>/delList', - method: 'delete', - data:"string"==typeof(code)?[code]:code - }) -} diff --git a/Yi.Framework.Net6/Yi.Framework.Template/vue3-ruoyi/view.tt b/Yi.Framework.Net6/Yi.Framework.Template/vue3-ruoyi/view.tt deleted file mode 100644 index af02e22f..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/vue3-ruoyi/view.tt +++ /dev/null @@ -1,315 +0,0 @@ -<#@ template debug="false" hostspecific="false" language="C#" #> -<#@ assembly name="System.Core" #> -<#@ import namespace="System.Linq" #> -<#@ import namespace="System.Text" #> -<#@ import namespace="System.Collections.Generic" #> -<#@ output extension=".vue" #> -<# -var entityName="article"; -var path="/business/articleApi"; -var entityRemark="文章"; -var perCode="business:article"; -var dataDic=new Dictionary(){ -{"title","文章标题"}, -}; -var isStart=false; -#> -// -<#if(isStart){ - -#> - - - - - -<#} - #> \ No newline at end of file diff --git a/Yi.Framework.Net6/Yi.Framework.Template/vue3-ruoyi/view.vue b/Yi.Framework.Net6/Yi.Framework.Template/vue3-ruoyi/view.vue deleted file mode 100644 index 6eae1eb0..00000000 --- a/Yi.Framework.Net6/Yi.Framework.Template/vue3-ruoyi/view.vue +++ /dev/null @@ -1 +0,0 @@ -//