update README.md

This commit is contained in:
izory 2021-09-26 17:27:31 +08:00
commit 48e14b4d4f
32 changed files with 175 additions and 185 deletions

View File

@ -5,7 +5,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace ZR.Common.Extension namespace Infrastructure.Extensions
{ {
public static partial class Extensions public static partial class Extensions
{ {

View File

@ -7,7 +7,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
//using Newtonsoft.Json; //using Newtonsoft.Json;
namespace ZR.Common.Extension namespace Infrastructure.Extensions
{ {
public static partial class Extensions public static partial class Extensions
{ {

View File

@ -4,7 +4,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace ZR.Common.Extension namespace Infrastructure.Extensions
{ {
public static partial class Extensions public static partial class Extensions
{ {

View File

@ -5,7 +5,7 @@ using System.Linq.Expressions;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace ZR.Common.Extension namespace Infrastructure.Extensions
{ {
public static class LinqExtensions public static class LinqExtensions
{ {

View File

@ -5,7 +5,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace ZR.Common.Extension namespace Infrastructure.Extensions
{ {
public static partial class Extensions public static partial class Extensions
{ {

View File

@ -1,10 +1,10 @@
using System; using Infrastructure.Extensions;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Text; using System.Text;
using ZR.Common.Extension;
namespace ZR.Common namespace Infrastructure
{ {
public class ComputerHelper public class ComputerHelper
{ {

View File

@ -2,7 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
namespace ZR.Common namespace Infrastructure
{ {
public class DateTimeHelper public class DateTimeHelper
{ {

View File

@ -4,7 +4,7 @@ using System.IO;
using System.Security.Cryptography; using System.Security.Cryptography;
using System.Text; using System.Text;
namespace ZR.Common namespace Infrastructure
{ {
public class FileUtil public class FileUtil
{ {

View File

@ -4,7 +4,7 @@ using System.Net.Http;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace ZR.Common namespace Infrastructure
{ {
public class HttpHelper public class HttpHelper
{ {

View File

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Text; using System.Text;
namespace ZR.Common namespace Infrastructure
{ {
public class ShellHelper public class ShellHelper
{ {

142
README.md
View File

@ -9,15 +9,18 @@
* 权限认证使用Jwt支持多终端认证系统。 * 权限认证使用Jwt支持多终端认证系统。
* 支持加载动态权限菜单,多方式轻松权限控制 * 支持加载动态权限菜单,多方式轻松权限控制
> 如果对您有帮助点击右上角⭐Star⭐关注 ,感谢支持开源! ```
如果对您有帮助您可以点右上角⭐Star⭐ 收藏一下 ,这样作者才有继续免费下去的动力,谢谢!~
```
## 🍿在线体验 ## 🍿在线体验
体验地址http://www.izhaorui.cn:8080/ - 体验地址http://www.izhaorui.cn:8080/
管理员admin - 管理员admin
密 码123456 - 密 码123456
**由于是个人项目,资金有限,体验服是低配,请大家爱惜,轻戳,不胜感激!!!**
```
由于是个人项目,资金有限,体验服是低配,请大家爱惜,轻戳,不胜感激!!!
```
## 🍁前端技术 ## 🍁前端技术
Vue版前端技术栈 基于vue、vuex、vue-router 、vue-cli 、axios 和 element-ui前端采用vscode工具开发 Vue版前端技术栈 基于vue、vuex、vue-router 、vue-cli 、axios 和 element-ui前端采用vscode工具开发
@ -34,86 +37,93 @@ Vue版前端技术栈 基于vue、vuex、vue-router 、vue-cli 、axios 和 e
## 🍄快速启动 ## 🍄快速启动
需要安装VS2019最新版、npm或yarn最新版 需要安装VS2019最新版、npm或yarn最新版
准备工作将document文件夹下面的admin.sql脚本导入到数据库中修改ZR.Admin.WebApi项目里面配置文件中的conn_zrAdmin数据库连接字符串以及DbType选择对应的数据库类型目前仅支持MySQL、SQL server - 准备工作将document文件夹下面的xxx.sql脚本导入到数据库中修改appsettings.json配置文件里面中的conn_zrAdmin数据库连接字符串以及conn_zrAdmin_Type选择对应的数据库类型目前仅支持MySQL、SQL server
启动后台打开项目根目录的startup.bat即可启动数据库默认MySQL - 启动后台打开项目根目录的startup.bat即可启动或者打开ZRAdmin.sln解决方案直接运行F5)即可启动
启动前端打开ZR.Vue文件夹运行npm install命令再运行npm run serve启动 - 启动前端打开ZR.Vue文件夹运行npm install命令下载安装依赖再运行npm run serve启动
浏览器访问http://localhost:8887 默认前端端口为8887后台端口为8888 - 浏览器访问http://localhost:8887 默认前端端口为8887后台端口为8888
## 🍖内置功能 ## 🍖内置功能
1. [X] 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
2. [X] 部门管理:配置系统组织机构(公司、部门、小组),树结构展现。 2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现。
3. [X] 岗位管理:配置系统用户所属担任职务。 3. 岗位管理:配置系统用户所属担任职务。
4. [X] 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
5. [X] 角色管理:角色菜单权限分配。 5. 角色管理:角色菜单权限分配。
6. [X] 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
7. [ ] 参数管理:对系统动态配置常用参数。 6. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
8. [X] 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 7. 登录日志:系统登录日志记录查询包含登录异常。
9. [X] 登录日志:系统登录日志记录查询包含登录异常。 8. 系统接口使用swagger生成相关api接口文档。
10. [ ] 在线用户:当前系统中活跃用户状态监控。 9. 服务监控监视当前系统CPU、内存、磁盘、堆栈等相关信息。
11. [X] 系统接口使用swagger生成相关api接口文档。 10. 在线构建器拖动表单元素生成相应的VUE代码。
12. [X] 服务监控监视当前系统CPU、内存、磁盘、堆栈等相关信息。 11. 任务系统基于Quartz.NET定时任务执行。
13. [X] 在线构建器拖动表单元素生成相应的VUE代码。 12. 文章管理:可以写文章记录。
14. [X] 任务系统基于Quartz.NET定时任务执行。 13. 代码生成:可以一键生成前后端代码(.cs、.vue、.js、sql),自定义配置前端展示控件、让开发更快捷高效。
15. [X] 文章管理:可以写文章记录。
16. [X] 代码生成:可以一键生成前后端代码(.cs、.vue、.js),自定义配置前端展示控件、让开发更快捷高效。
## 项目结构
ZRAdmin解决方案包含 ## 🍻项目结构
ZR.Service[服务层类库]提供WebApi接口调用 ```
- ZR.Service[服务层类库]提供WebApi接口调用
- ZR.Repository[仓库层类库]:方便提供有执行存储过程的操作;
- ZR.Model[实体层类库],提供项目中的数据库表、数据传输对象;
- ZR.Admin.WebApi[webapi接口]为Vue版或其他三方系统提供接口服务。
- ZR.Vue[前端UI]vue版本UI层。
- ZR.Tasks[定时任务类库]:提供项目定时任务实现功能;
- ZR.CodeGenerator[代码生成功能],包含代码生成的模板、方法、代码生成的下载。
```
## ⚡ 近期计划
ZR.Tasks[定时任务类库]:提供项目定时任务实现功能; - [ ] 参数管理
- [ ] 在线用户
- [ ] 文件管理
- [ ] 邮件发送
- [ ] 集成微信开发
ZR.Repository[仓库层类库]:方便提供有执行存储过程的操作; ## 📖 帮助文档
👉快捷部署到Linux文档
ZR.Model[实体层类库],提供项目中的数据库表、数据传输对象; - [本地md文件](./document/nginx部署文档.md "代码生成")
ZR.CodeGenerator[代码生成功能],包含代码生成的模板、方法、代码生成的下载。
ZR.Admin.WebApi[webapi接口]为Vue版或其他三方系统提供接口服务。
ZR.Vue[前端UI]vue版本UI层。
DataBase是最新数据库备份文件目前支持MS SQL Server和MySql。
👉代码生成器使用教程:
- [本地md文件](./document/代码生成器使用.md "代码生成")
## 🍎演示图 ## 🍎演示图
<table> <table>
<tr> <tr>
<td><img src="https://www.izhaorui.cn/images/zradmin/1.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/1.png"/></td>
<td><img src="https://www.izhaorui.cn/images/zradmin/2.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/2.png"/></td>
</tr> </tr>
<tr> <tr>
<td><img src="https://www.izhaorui.cn/images/zradmin/3.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/3.png"/></td>
<td><img src="https://www.izhaorui.cn/images/zradmin/4.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/4.png"/></td>
</tr> </tr>
<tr> <tr>
<td><img src="https://www.izhaorui.cn/images/zradmin/5.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/5.png"/></td>
<td><img src="https://www.izhaorui.cn/images/zradmin/6.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/6.png"/></td>
</tr> </tr>
<tr> <tr>
<td><img src="https://www.izhaorui.cn/images/zradmin/7.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/7.png"/></td>
<td><img src="https://www.izhaorui.cn/images/zradmin/8.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/8.png"/></td>
</tr> </tr>
<tr> <tr>
<td><img src="https://www.izhaorui.cn/images/zradmin/9.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/9.png"/></td>
<td><img src="https://www.izhaorui.cn/images/zradmin/10.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/10.png"/></td>
</tr> </tr>
<tr> <tr>
<td><img src="https://www.izhaorui.cn/images/zradmin/11.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/11.png"/></td>
<td><img src="https://www.izhaorui.cn/images/zradmin/12.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/12.png"/></td>
</tr> </tr>
<tr> <tr>
<td><img src="https://www.izhaorui.cn/images/zradmin/13.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/13.png"/></td>
<td><img src="https://www.izhaorui.cn/images/zradmin/14.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/14.png"/></td>
</tr> </tr>
<tr> <tr>
<td><img src="https://www.izhaorui.cn/images/zradmin/15.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/15.png"/></td>
<td><img src="https://www.izhaorui.cn/images/zradmin/16.png"/></td> <td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/16.png"/></td>
</tr>
<tr>
<td><img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/17.png"/></td>
</tr> </tr>
</table> </table>
@ -127,17 +137,17 @@ DataBase是最新数据库备份文件目前支持MS SQL Server和MySql。
## 💐 特别鸣谢 ## 💐 特别鸣谢
- 👉Ruoyi.vue[Ruoyi](http://www.ruoyi.vip/) - 👉Ruoyi.vue[Ruoyi](http://www.ruoyi.vip/)
- 👉SqlSugarhttps://gitee.com/dotnetchina/SqlSugar - 👉SqlSugar[SqlSugar](https://gitee.com/dotnetchina/SqlSugar)
## 🍻参与贡献 ## 😎联系作者
- Fork 本项目
- 新建 Feat_xxx 分支
- 提交代码
- 新建 Pull Request
## 联系作者
QQ599854767 QQ599854767
## 🎀捐赠 ## 🎀捐赠
如果这个项目对您有所帮助,请扫下方二维码打赏一杯咖啡。 如果这个项目对您有所帮助,请扫下方二维码打赏一杯咖啡。
<img src="https://www.izhaorui.cn/static/pay.jpg"/> <img src="https://gitee.com/izory/ZrAdminNetCore/raw/master/document/images/pay.jpg"/>
## 源码地址
[Gitee码云中国](https://gitee.com/izory/ZrAdminNetCore)
[Github](https://github.com/izhaorui/ZrAdmin.NET)

View File

@ -9,6 +9,7 @@ using ZR.Admin.WebApi.Filters;
using ZR.Common; using ZR.Common;
using Infrastructure.Enums; using Infrastructure.Enums;
using ZR.Service.System.IService; using ZR.Service.System.IService;
using Infrastructure;
namespace ZR.Admin.WebApi.Controllers.System namespace ZR.Admin.WebApi.Controllers.System
{ {

View File

@ -58,7 +58,7 @@ import {
del{ModelTypeName}, del{ModelTypeName},
update{ModelTypeName}, update{ModelTypeName},
get{ModelTypeName} get{ModelTypeName}
} from '@/api/{fileClassName}.js' } from '@/api/{fileClassName}.js';
export default { export default {
name: '{ModelTypeName}', name: '{ModelTypeName}',

View File

@ -29,12 +29,12 @@ namespace ZR.CodeGenerator
sb.AppendLine($" }},"); sb.AppendLine($" }},");
} }
//有下拉框选项初列表查询数据 //有下拉框选项初列表查询数据
if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT && !string.IsNullOrEmpty(dbFieldInfo.DictType)) if ((dbFieldInfo.HtmlType == GenConstants.HTML_SELECT || dbFieldInfo.HtmlType == GenConstants.HTML_RADIO) && !string.IsNullOrEmpty(dbFieldInfo.DictType))
{ {
sb.AppendLine(@$" // {dbFieldInfo.ColumnComment}字典翻译"); sb.AppendLine(@$" // {dbFieldInfo.ColumnComment}字典翻译");
sb.AppendLine($" {columnName}Format(row, column) {{"); sb.AppendLine($" {columnName}Format(row, column) {{");
sb.AppendLine(@$" return this.selectDictLabel(this.{columnName}Options, row.{columnName});"); sb.AppendLine(@$" return this.selectDictLabel(this.{columnName}Options, row.{columnName});");
sb.Append(@" },"); sb.AppendLine(@" },");
} }
return sb.ToString(); return sb.ToString();
@ -74,7 +74,7 @@ namespace ZR.CodeGenerator
public static string GetModelRequired(GenTableColumn dbFieldInfo) public static string GetModelRequired(GenTableColumn dbFieldInfo)
{ {
string str = ""; string str = "";
if (!dbFieldInfo.IsRequired && (dbFieldInfo.CsharpType == "int" || dbFieldInfo.CsharpType == "long" || dbFieldInfo.CsharpType == "DateTime")) if (!dbFieldInfo.IsRequired && (CodeGeneratorTool.IsNumber(dbFieldInfo.ColumnType) || dbFieldInfo.CsharpType == "DateTime"))
{ {
str = "?"; str = "?";
} }
@ -104,7 +104,7 @@ namespace ZR.CodeGenerator
public static string GetQueryDtoProperty(GenTableColumn dbFieldInfo) public static string GetQueryDtoProperty(GenTableColumn dbFieldInfo)
{ {
string QueryDtoContent = ""; string QueryDtoContent = "";
if (dbFieldInfo.IsQuery && !GenConstants.inputDtoNoField.Any(f => f.Replace("_", "").ToLower().Contains(dbFieldInfo.CsharpField.ToLower().Replace("_", "")))) if (dbFieldInfo.IsQuery && !GenConstants.inputDtoNoField.Any(f => f.ToLower().Contains(dbFieldInfo.CsharpField.ToLower())))
{ {
QueryDtoContent += $" public {dbFieldInfo.CsharpType} {dbFieldInfo.CsharpField} {{ get; set; }}\r\n"; QueryDtoContent += $" public {dbFieldInfo.CsharpType} {dbFieldInfo.CsharpField} {{ get; set; }}\r\n";
} }
@ -120,7 +120,7 @@ namespace ZR.CodeGenerator
string labelDisabled = dbFieldInfo.IsPk ? ":disabled=\"true\"" : ""; string labelDisabled = dbFieldInfo.IsPk ? ":disabled=\"true\"" : "";
string placeHolder = dbFieldInfo.IsIncrement ? "" : $"请输入{labelName}"; string placeHolder = dbFieldInfo.IsIncrement ? "" : $"请输入{labelName}";
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
if (GenConstants.inputDtoNoField.Any(f => f.Replace("_", "").ToLower().Contains(dbFieldInfo.CsharpField.ToLower().Replace("_", "")))) if (GenConstants.inputDtoNoField.Any(f => f.ToLower().Contains(dbFieldInfo.CsharpField.ToLower())))
{ {
return sb.ToString(); return sb.ToString();
} }
@ -194,7 +194,7 @@ namespace ZR.CodeGenerator
if (dbFieldInfo.HtmlType == GenConstants.HTML_DATETIME) if (dbFieldInfo.HtmlType == GenConstants.HTML_DATETIME)
{ {
sb.AppendLine(" <el-form-item label=\"时间\">"); sb.AppendLine(" <el-form-item label=\"时间\">");
sb.AppendLine(" <el-date-picker v-model=\"dateRange\" size=\"small\" value-format=\"yyyy-MM-dd\" type=\"daterange\" range-separator=\"-\" start-placeholder=\"开始日期\" end-placeholder=\"结束日期\"></el-date-picker>"); sb.AppendLine(" <el-date-picker v-model=\"timeRange\" size=\"small\" value-format=\"yyyy-MM-dd\" type=\"daterange\" range-separator=\"-\" start-placeholder=\"开始日期\" end-placeholder=\"结束日期\"></el-date-picker>");
sb.AppendLine(" </el-form-item>"); sb.AppendLine(" </el-form-item>");
} }
else else

View File

@ -4,6 +4,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text;
using ZR.CodeGenerator.Model; using ZR.CodeGenerator.Model;
using ZR.Model.System.Generate; using ZR.Model.System.Generate;
@ -57,6 +58,9 @@ namespace ZR.CodeGenerator
replaceDto.ViewsFileName = FirstLowerCase(replaceDto.ModelTypeName); replaceDto.ViewsFileName = FirstLowerCase(replaceDto.ModelTypeName);
replaceDto.Author = tableInfo.FunctionAuthor; replaceDto.Author = tableInfo.FunctionAuthor;
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
//循环表字段信息 //循环表字段信息
foreach (GenTableColumn dbFieldInfo in listField) foreach (GenTableColumn dbFieldInfo in listField)
{ {
@ -86,14 +90,15 @@ namespace ZR.CodeGenerator
//{ //{
// replaceDto.Querycondition += $"predicate = predicate.And(m => m.{dbFieldInfo.CsharpField}.Contains(parm.Name));"; // replaceDto.Querycondition += $"predicate = predicate.And(m => m.{dbFieldInfo.CsharpField}.Contains(parm.Name));";
//} //}
if ((dbFieldInfo.HtmlType == GenConstants.HTML_SELECT || dbFieldInfo.HtmlType == GenConstants.HTML_RADIO) && !string.IsNullOrEmpty(dbFieldInfo.DictType)) if ((dbFieldInfo.HtmlType == GenConstants.HTML_SELECT || dbFieldInfo.HtmlType == GenConstants.HTML_RADIO) && !string.IsNullOrEmpty(dbFieldInfo.DictType))
{ {
replaceDto.VueDataContent += $" // {dbFieldInfo.ColumnComment}选项列表\n"; sb1.AppendLine($" // {dbFieldInfo.ColumnComment}选项列表");
replaceDto.VueDataContent += $" {FirstLowerCase(dbFieldInfo.CsharpField)}Options: [],\n"; sb1.AppendLine($" {FirstLowerCase(dbFieldInfo.CsharpField)}Options: [],");
replaceDto.MountedMethod += $" this.getDicts(\"{dbFieldInfo.DictType}\").then((response) => {{\n"; sb2.AppendLine($" this.getDicts(\"{dbFieldInfo.DictType}\").then((response) => {{");
replaceDto.MountedMethod += $" this.{FirstLowerCase(dbFieldInfo.CsharpField)}Options = response.data;\n"; sb2.AppendLine($" this.{FirstLowerCase(dbFieldInfo.CsharpField)}Options = response.data;");
replaceDto.MountedMethod += " })\n"; sb2.AppendLine(" })");
} }
replaceDto.QueryProperty += CodeGenerateTemplate.GetQueryDtoProperty(dbFieldInfo); replaceDto.QueryProperty += CodeGenerateTemplate.GetQueryDtoProperty(dbFieldInfo);
@ -105,6 +110,9 @@ namespace ZR.CodeGenerator
replaceDto.InputDtoProperty += CodeGenerateTemplate.GetDtoProperty(dbFieldInfo); replaceDto.InputDtoProperty += CodeGenerateTemplate.GetDtoProperty(dbFieldInfo);
replaceDto.VueQueryFormHtml += CodeGenerateTemplate.GetQueryFormHtml(dbFieldInfo); replaceDto.VueQueryFormHtml += CodeGenerateTemplate.GetQueryFormHtml(dbFieldInfo);
} }
replaceDto.VueDataContent = sb1.ToString();
replaceDto.MountedMethod = sb2.ToString();
replaceDto.PKName = PKName; replaceDto.PKName = PKName;
replaceDto.PKType = PKType; replaceDto.PKType = PKType;
@ -201,7 +209,7 @@ namespace ZR.CodeGenerator
.Replace("{Author}", replaceDto.Author) .Replace("{Author}", replaceDto.Author)
.Replace("{DateTime}", replaceDto.AddTime); .Replace("{DateTime}", replaceDto.AddTime);
//generateDto.GenCodes.Add(new GenCode(2, "数据传输实体类", fullPath, content)); generateDto.GenCodes.Add(new GenCode(2, "数据传输实体类", fullPath, content));
} }
#endregion #endregion
@ -255,7 +263,7 @@ namespace ZR.CodeGenerator
.Replace("{Author}", replaceDto.Author) .Replace("{Author}", replaceDto.Author)
.Replace("{DateTime}", replaceDto.AddTime); .Replace("{DateTime}", replaceDto.AddTime);
//generateDto.GenCodes.Add(new GenCode(4, "接口层", fullPath, content)); generateDto.GenCodes.Add(new GenCode(4, "接口层", fullPath, content));
} }
/// <summary> /// <summary>

View File

@ -16,7 +16,7 @@ namespace ZR.CodeGenerator
/// <summary> /// <summary>
/// InputDto输入实体是不包含字段 /// InputDto输入实体是不包含字段
/// </summary> /// </summary>
public static readonly string[] inputDtoNoField = new string[] { "createTime", "updateTime", "addtime" }; public static readonly string[] inputDtoNoField = new string[] { "createTime", "updateTime", "addtime", "create_time", "update_time" };
/// <summary> /// <summary>
/// 图片字段 /// 图片字段
/// </summary> /// </summary>

View File

@ -11,7 +11,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="SqlSugarCoreNoDrive" Version="5.0.3.4" /> <PackageReference Include="SqlSugarCoreNoDrive" Version="5.0.4" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -12,7 +12,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="Npoi.Mapper" Version="3.5.1" /> <PackageReference Include="Npoi.Mapper" Version="3.5.1" />
<PackageReference Include="SqlSugarCoreNoDrive" Version="5.0.3.4" /> <PackageReference Include="SqlSugarCoreNoDrive" Version="5.0.4" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" /> <PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
</ItemGroup> </ItemGroup>

View File

@ -13,7 +13,7 @@
<PackageReference Include="Microsoft.Extensions.Options" Version="5.0.0" /> <PackageReference Include="Microsoft.Extensions.Options" Version="5.0.0" />
<PackageReference Include="MySql.Data" Version="8.0.25" /> <PackageReference Include="MySql.Data" Version="8.0.25" />
<PackageReference Include="NETCore.Encrypt" Version="2.0.9" /> <PackageReference Include="NETCore.Encrypt" Version="2.0.9" />
<PackageReference Include="SqlSugarCoreNoDrive" Version="5.0.3.4" /> <PackageReference Include="SqlSugarCoreNoDrive" Version="5.0.4" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -1,11 +1,11 @@
using Infrastructure.Attribute; using Infrastructure.Attribute;
using System.Collections.Generic; using System.Collections.Generic;
using ZR.Common;
using ZR.Model; using ZR.Model;
using ZR.Model.System.Dto; using ZR.Model.System.Dto;
using ZR.Model.System; using ZR.Model.System;
using ZR.Repository.System; using ZR.Repository.System;
using ZR.Service.System.IService; using ZR.Service.System.IService;
using Infrastructure;
namespace ZR.Service.System namespace ZR.Service.System
{ {

View File

@ -1,59 +0,0 @@
import request from '@/utils/request'
/**
* 代码生成测试表分页查询
* @param {查询条件} data
*/
export function listGendemo(query) {
return request({
url: 'business/Gendemo/list',
method: 'get',
params: query,
})
}
/**
* 新增代码生成测试表
* @param data
*/
export function addGendemo(data) {
return request({
url: 'business/Gendemo',
method: 'post',
data: data,
})
}
/**
* 修改代码生成测试表
* @param data
*/
export function updateGendemo(data) {
return request({
url: 'business/Gendemo',
method: 'PUT',
data: data,
})
}
/**
* 获取代码生成测试表详情
* @param {Id} 代码生成测试表Id
*/
export function getGendemo(id) {
return request({
url: 'business/Gendemo/' + id,
method: 'get'
})
}
/**
* 删除
* @param {主键} pid
*/
export function delGendemo(pid) {
return request({
url: 'business/Gendemo/' + pid,
method: 'delete'
})
}

View File

@ -56,7 +56,7 @@
</div> </div>
<div class="body"> <div class="body">
<span class="tip">如果觉得有用你可以请作者喝杯咖啡表示鼓励</span> <span class="tip">如果觉得有用你可以请作者喝杯咖啡表示鼓励</span>
<img src="http://www.izhaorui.cn/static/pay.jpg" alt="donate" width="100%" /> <img src="http://ss.izhaorui.cn/pay.jpg" alt="donate" width="100%" />
</div> </div>
</el-card> </el-card>
</el-col> </el-col>

View File

@ -19,7 +19,7 @@
<el-button type="danger" :disabled="multiple" plain icon="el-icon-delete" @click="handleDelete" size="mini" v-hasPermi="['tool:gen:delete']">删除</el-button> <el-button type="danger" :disabled="multiple" plain icon="el-icon-delete" @click="handleDelete" size="mini" v-hasPermi="['tool:gen:delete']">删除</el-button>
</el-col> </el-col>
</el-row> </el-row>
<el-table ref="gridtable" v-loading="tableloading" :data="tableData" border @selection-change="handleSelectionChange" highlight-current-row height="500px"> <el-table ref="gridtable" v-loading="tableloading" :data="tableData" border @selection-change="handleSelectionChange" highlight-current-row height="480px">
<el-table-column type="selection" align="center" width="55"></el-table-column> <el-table-column type="selection" align="center" width="55"></el-table-column>
<el-table-column label="序号" type="index" width="50" align="center"> <el-table-column label="序号" type="index" width="50" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
@ -45,7 +45,7 @@
<!-- 预览界面 --> <!-- 预览界面 -->
<el-dialog :title="preview.title" :visible.sync="preview.open" width="80%" top="5vh" append-to-body> <el-dialog :title="preview.title" :visible.sync="preview.open" width="80%" top="5vh" append-to-body>
<el-tabs v-model="preview.activeName"> <el-tabs v-model="preview.activeName">
<el-tab-pane v-for="(item, key) in preview.data" :label="item.title" :name="item.type.toString()" :key="key"> <el-tab-pane v-for="(item, key) in preview.data" :label="item.title" :name="key.toString()" :key="key">
<pre v-html="highlightedCode(item.content)"> <pre v-html="highlightedCode(item.content)">
</pre> </pre>
</el-tab-pane> </el-tab-pane>
@ -115,7 +115,7 @@ export default {
open: false, open: false,
title: "代码预览", title: "代码预览",
data: {}, data: {},
activeName: "1", activeName: "0",
}, },
showGenerate: false, showGenerate: false,
checkedCodeGenerateForm: [1, 2, 3, 4, 5, 6, 7, 8], checkedCodeGenerateForm: [1, 2, 3, 4, 5, 6, 7, 8],
@ -199,10 +199,10 @@ export default {
var seachdata = { var seachdata = {
tableId: this.currentSelected.tableId, tableId: this.currentSelected.tableId,
tableName: this.currentSelected.name, tableName: this.currentSelected.name,
genFiles: this.checkedCodeGenerateForm, genCodeFiles: this.checkedCodeGenerateForm,
coverd: this.coverd, coverd: this.coverd,
dbType: this.dbType, dbType: this.dbType,
queryColumn: this.checkedQueryColumn, // queryColumn: this.checkedQueryColumn,
}; };
console.log(JSON.stringify(seachdata)); console.log(JSON.stringify(seachdata));

View File

@ -27,44 +27,47 @@
<param name="data"></param> <param name="data"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="T:ZR.Admin.WebApi.Controllers.UserInfoController"> <member name="T:ZR.Admin.WebApi.Controllers.GendemoController">
<summary> <summary>
代码自动生成 代码生成演示Controller
@author zhaorui
@date 2021-09-24
</summary> </summary>
</member> </member>
<member name="F:ZR.Admin.WebApi.Controllers.UserInfoController._UserInfoService"> <member name="F:ZR.Admin.WebApi.Controllers.GendemoController._GendemoService">
<summary> <summary>
用户信息接口 代码生成演示接口
</summary> </summary>
</member> </member>
<member name="M:ZR.Admin.WebApi.Controllers.UserInfoController.QueryUserInfo(ZR.Model.Dto.UserInfoQueryDto)"> <member name="M:ZR.Admin.WebApi.Controllers.GendemoController.QueryGendemo(ZR.Model.Dto.GendemoQueryDto)">
<summary> <summary>
查询用户信息列表 查询代码生成演示列表
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:ZR.Admin.WebApi.Controllers.UserInfoController.GetUserInfo(System.Int32)"> <member name="M:ZR.Admin.WebApi.Controllers.GendemoController.GetGendemo(System.Int32)">
<summary> <summary>
查询用户信息详情 查询代码生成演示详情
</summary> </summary>
<param name="Luid"></param> <param name="Id"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:ZR.Admin.WebApi.Controllers.UserInfoController.AddUserInfo(ZR.Model.Dto.UserInfoDto)"> <member name="M:ZR.Admin.WebApi.Controllers.GendemoController.AddGendemo(ZR.Model.Dto.GendemoDto)">
<summary> <summary>
添加用户信息 添加代码生成演示
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:ZR.Admin.WebApi.Controllers.UserInfoController.UpdateUserInfo(ZR.Model.Dto.UserInfoDto)"> <member name="M:ZR.Admin.WebApi.Controllers.GendemoController.UpdateGendemo(ZR.Model.Dto.GendemoDto)">
<summary> <summary>
更新用户信息 更新代码生成演示
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:ZR.Admin.WebApi.Controllers.UserInfoController.DeleteUserInfo(System.String)"> <member name="M:ZR.Admin.WebApi.Controllers.GendemoController.DeleteGendemo(System.String)">
<summary> <summary>
删除用户信息 删除代码生成演示
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 6.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 6.6 MiB

BIN
document/images/15-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 MiB

BIN
document/images/17.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 MiB

BIN
document/images/pay.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

View File

@ -0,0 +1,9 @@
## nginx部署文档.md
1. 拷贝zradmin.ini文件代码到nginx配置文件http模块中
2. 在nginx安装目录中的html目录中创建文件夹zradmin_vue
3. 发布ZR.Admin.WebApi项目并部署到服务器中启动
4. 发布ZR.Vue项目并拷贝dist文件中的代码到刚刚创建的zradmin_vue中
5. 浏览器中访问 http://localhost:8080
注意服务器防火墙的设置开放8080 端口

View File

@ -0,0 +1,18 @@
## 代码生成器使用教程
### 修改配置文件appsettings.json
```
"gen": {
"conn": "server=127.0.0.1;user=zr;pwd=abc;database={database}",
"dbType": 0, //MySql = 0, SqlServer = 1
"autoPre": true, //自动去除表前缀
"author": "zr",
"tablePrefix": "sys_" //"表前缀(生成类名不会包含表前缀,多个用","分隔)",
}
```
修改conn数据库连接字符串其中{database}为动态要替换的数据库名
<img src="http://ss.izhaorui.cn/zradmin/15-1.png"/>
👉视频教程:
- [观看视频](http://ss.izhaorui.cn/zradmin/%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E6%BC%94%E7%A4%BA202109250747.mp4)