完成代码生成功能
This commit is contained in:
parent
2172b9ddc6
commit
8903aff642
@ -1,20 +1,15 @@
|
|||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using Infrastructure.Attribute;
|
using Infrastructure.Attribute;
|
||||||
using Infrastructure.Enums;
|
using Infrastructure.Enums;
|
||||||
using Infrastructure.Model;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using ZR.Admin.WebApi.Filters;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using ZR.CodeGenerator;
|
using ZR.CodeGenerator;
|
||||||
using ZR.CodeGenerator.Model;
|
using ZR.CodeGenerator.Model;
|
||||||
using ZR.CodeGenerator.Service;
|
using ZR.CodeGenerator.Service;
|
||||||
using ZR.Model;
|
using ZR.Model;
|
||||||
using ZR.Model.Vo;
|
using ZR.Model.Vo;
|
||||||
using ZR.Service.IService;
|
|
||||||
using ZR.Service.System;
|
|
||||||
|
|
||||||
namespace ZR.Admin.WebApi.Controllers
|
namespace ZR.Admin.WebApi.Controllers
|
||||||
{
|
{
|
||||||
@ -24,11 +19,6 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
[Route("tool/gen")]
|
[Route("tool/gen")]
|
||||||
public class CodeGeneratorController : BaseController
|
public class CodeGeneratorController : BaseController
|
||||||
{
|
{
|
||||||
//public ICodeGeneratorService CodeGeneratorService;
|
|
||||||
//public CodeGeneratorController(ICodeGeneratorService codeGeneratorService)
|
|
||||||
//{
|
|
||||||
// CodeGeneratorService = codeGeneratorService;
|
|
||||||
//}
|
|
||||||
private CodeGeneraterService _CodeGeneraterService = new CodeGeneraterService();
|
private CodeGeneraterService _CodeGeneraterService = new CodeGeneraterService();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -36,7 +26,7 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("getDbList")]
|
[HttpGet("getDbList")]
|
||||||
//[YuebonAuthorize("GetListDataBase")]
|
[ActionPermissionFilter(Permission = "tool:gen:list")]
|
||||||
public IActionResult GetListDataBase()
|
public IActionResult GetListDataBase()
|
||||||
{
|
{
|
||||||
var dbList = _CodeGeneraterService.GetAllDataBases();
|
var dbList = _CodeGeneraterService.GetAllDataBases();
|
||||||
@ -51,7 +41,8 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
/// <param name="tableName">表名</param>
|
/// <param name="tableName">表名</param>
|
||||||
/// <param name="pager">分页信息</param>
|
/// <param name="pager">分页信息</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("FindListTable")]
|
[HttpGet("getTableList")]
|
||||||
|
[ActionPermissionFilter(Permission = "tool:gen:list")]
|
||||||
public IActionResult FindListTable(string dbName, string tableName, PagerInfo pager)
|
public IActionResult FindListTable(string dbName, string tableName, PagerInfo pager)
|
||||||
{
|
{
|
||||||
List<DbTableInfo> list = _CodeGeneraterService.GetAllTables(dbName, tableName, pager);
|
List<DbTableInfo> list = _CodeGeneraterService.GetAllTables(dbName, tableName, pager);
|
||||||
@ -66,7 +57,8 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
/// <param name="dbName"></param>
|
/// <param name="dbName"></param>
|
||||||
/// <param name="tableName"></param>
|
/// <param name="tableName"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("QueryColumnInfo")]
|
[HttpGet("getColumnInfo")]
|
||||||
|
[ActionPermissionFilter(Permission = "tool:gen:list")]
|
||||||
public IActionResult QueryColumnInfo(string dbName, string tableName)
|
public IActionResult QueryColumnInfo(string dbName, string tableName)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(dbName) || string.IsNullOrEmpty(tableName))
|
if (string.IsNullOrEmpty(dbName) || string.IsNullOrEmpty(tableName))
|
||||||
@ -80,18 +72,19 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="dto">数据传输对象</param>
|
/// <param name="dto">数据传输对象</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("Generate")]
|
[HttpPost("genCode")]
|
||||||
[Log(Title = "代码生成", BusinessType = BusinessType.OTHER)]
|
[Log(Title = "代码生成", BusinessType = BusinessType.GENCODE)]
|
||||||
public IActionResult Generate([FromQuery] GenerateDto dto)
|
[ActionPermissionFilter(Permission = "tool:gen:code")]
|
||||||
|
public IActionResult Generate([FromBody] GenerateDto dto)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(dto.tables))
|
if (string.IsNullOrEmpty(dto.tableName))
|
||||||
{
|
{
|
||||||
throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空");
|
throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空");
|
||||||
}
|
}
|
||||||
DbTableInfo dbTableInfo = new() { Name = dto.tables };
|
DbTableInfo dbTableInfo = new() { Name = dto.tableName };
|
||||||
CodeGeneratorTool.Generate(dbTableInfo, dto);
|
CodeGeneratorTool.Generate(dbTableInfo, dto);
|
||||||
|
|
||||||
return SUCCESS(1);
|
return SUCCESS(dbTableInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -54,7 +54,7 @@ namespace ZR.Admin.WebApi.Filters
|
|||||||
bool isDemoMode = ConfigUtils.Instance.GetAppConfig("DemoMode", false);
|
bool isDemoMode = ConfigUtils.Instance.GetAppConfig("DemoMode", false);
|
||||||
|
|
||||||
//演示公开环境屏蔽权限
|
//演示公开环境屏蔽权限
|
||||||
string[] denyPerms = new string[] { "update", "add", "remove", "add", "edit", "delete", "import", "run", "start", "stop", "clear" };
|
string[] denyPerms = new string[] { "update", "add", "remove", "add", "edit", "delete", "import", "run", "start", "stop", "clear", "gen" };
|
||||||
if (isDemoMode && (denyPerms.Any(f => Permission.ToLower().Contains(f.ToLower())) || Permission.Equals("system")))
|
if (isDemoMode && (denyPerms.Any(f => Permission.ToLower().Contains(f.ToLower())) || Permission.Equals("system")))
|
||||||
{
|
{
|
||||||
context.Result = new JsonResult(new { code = ResultCode.FORBIDDEN, msg = "演示模式 , 不允许操作" });
|
context.Result = new JsonResult(new { code = ResultCode.FORBIDDEN, msg = "演示模式 , 不允许操作" });
|
||||||
|
|||||||
@ -64,7 +64,7 @@ namespace ZR.CodeGenerator
|
|||||||
public static void GenerateSingle(List<DbColumnInfo> listField, DbTableInfo tableInfo, GenerateDto dto)
|
public static void GenerateSingle(List<DbColumnInfo> listField, DbTableInfo tableInfo, GenerateDto dto)
|
||||||
{
|
{
|
||||||
bool ifExsitedCovered = dto.coverd;
|
bool ifExsitedCovered = dto.coverd;
|
||||||
var modelTypeName = GetModelName(tableInfo.Name).Replace(_option.ReplaceTableNameStr, "");//表名
|
var modelTypeName = GetModelName(tableInfo.Name);
|
||||||
var modelTypeDesc = tableInfo.Description;//表描述
|
var modelTypeDesc = tableInfo.Description;//表描述
|
||||||
var primaryKey = "id";//主键
|
var primaryKey = "id";//主键
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ namespace ZR.CodeGenerator
|
|||||||
}
|
}
|
||||||
if (dto.genFiles.Contains(1))
|
if (dto.genFiles.Contains(1))
|
||||||
{
|
{
|
||||||
GenerateModels(_option.ModelsNamespace, modelTypeName, tableInfo.Name, modelContent, modelTypeDesc, keyTypeName, ifExsitedCovered);
|
//GenerateModels(_option.ModelsNamespace, modelTypeName, tableInfo.Name, modelContent, modelTypeDesc, keyTypeName, ifExsitedCovered);
|
||||||
}
|
}
|
||||||
if (dto.genFiles.Contains(2))
|
if (dto.genFiles.Contains(2))
|
||||||
{
|
{
|
||||||
@ -478,16 +478,14 @@ namespace ZR.CodeGenerator
|
|||||||
/// <param name="ifExsitedCovered">如果目标文件存在,是否覆盖。默认为false</param>
|
/// <param name="ifExsitedCovered">如果目标文件存在,是否覆盖。默认为false</param>
|
||||||
private static void GenerateVueViews(string modelTypeName, string primaryKey, string modelTypeDesc, string vueViewListContent, string vueViewFromContent, string vueViewEditFromContent, string vueViewEditFromBindContent, string vueViewSaveBindContent, string vueViewEditFromRuleContent, bool ifExsitedCovered = false)
|
private static void GenerateVueViews(string modelTypeName, string primaryKey, string modelTypeDesc, string vueViewListContent, string vueViewFromContent, string vueViewEditFromContent, string vueViewEditFromBindContent, string vueViewSaveBindContent, string vueViewEditFromRuleContent, bool ifExsitedCovered = false)
|
||||||
{
|
{
|
||||||
var servicesNamespace = _option.DtosNamespace;
|
var parentPath = "..\\CodeGenerate";//若要生成到项目中将路径改成 “..\\ZR.Vue\\src”
|
||||||
var path = "..\\CodeGenerate\\";
|
var servicesPath = parentPath + "\\views\\" + FirstLowerCase(modelTypeName);
|
||||||
var parentPath = path.Substring(0, path.LastIndexOf("\\"));
|
|
||||||
var servicesPath = parentPath + "\\" + _option.BaseNamespace + "\\" + servicesNamespace;
|
|
||||||
if (!Directory.Exists(servicesPath))
|
if (!Directory.Exists(servicesPath))
|
||||||
{
|
{
|
||||||
servicesPath = parentPath + "\\" + _option.BaseNamespace + "\\views\\" + FirstLowerCase(modelTypeName);
|
|
||||||
Directory.CreateDirectory(servicesPath);
|
Directory.CreateDirectory(servicesPath);
|
||||||
}
|
}
|
||||||
var fullPath = servicesPath + "\\" + "index.vue";
|
var fullPath = servicesPath + "\\" + "index.vue";
|
||||||
|
Console.WriteLine(fullPath);
|
||||||
if (File.Exists(fullPath) && !ifExsitedCovered)
|
if (File.Exists(fullPath) && !ifExsitedCovered)
|
||||||
return;
|
return;
|
||||||
var content = ReadTemplate("VueTemplate.txt");
|
var content = ReadTemplate("VueTemplate.txt");
|
||||||
@ -505,7 +503,11 @@ namespace ZR.CodeGenerator
|
|||||||
.Replace("{VueViewEditFromRuleContent}", vueViewEditFromRuleContent);
|
.Replace("{VueViewEditFromRuleContent}", vueViewEditFromRuleContent);
|
||||||
WriteAndSave(fullPath, content);
|
WriteAndSave(fullPath, content);
|
||||||
|
|
||||||
|
//api js
|
||||||
|
servicesPath = parentPath + "\\api\\";
|
||||||
|
Directory.CreateDirectory(servicesPath);
|
||||||
fullPath = servicesPath + "\\" + FirstLowerCase(modelTypeName) + ".js";
|
fullPath = servicesPath + "\\" + FirstLowerCase(modelTypeName) + ".js";
|
||||||
|
Console.WriteLine(fullPath);
|
||||||
if (File.Exists(fullPath) && !ifExsitedCovered)
|
if (File.Exists(fullPath) && !ifExsitedCovered)
|
||||||
return;
|
return;
|
||||||
content = ReadTemplate("VueJsTemplate.txt");
|
content = ReadTemplate("VueJsTemplate.txt");
|
||||||
|
|||||||
@ -8,7 +8,7 @@ namespace ZR.CodeGenerator.Model
|
|||||||
{
|
{
|
||||||
public class GenerateDto
|
public class GenerateDto
|
||||||
{
|
{
|
||||||
public string queryColumn { get; set; }
|
public string[] queryColumn { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -20,7 +20,7 @@ namespace ZR.CodeGenerator.Model
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 要生成代码的表
|
/// 要生成代码的表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string tables { get; set; }
|
public string tableName { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 要删除表名的字符串用
|
/// 要删除表名的字符串用
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -1,13 +1,16 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
<head>
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta charset="utf-8">
|
||||||
<meta name="renderer" content="webkit">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
<meta name="renderer" content="webkit">
|
||||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||||
<title><%= webpackConfig.name %></title>
|
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||||
<style>
|
<title>
|
||||||
|
<%= webpackConfig.name %>
|
||||||
|
</title>
|
||||||
|
<style>
|
||||||
html,
|
html,
|
||||||
body,
|
body,
|
||||||
#app {
|
#app {
|
||||||
@ -15,6 +18,7 @@
|
|||||||
margin: 0px;
|
margin: 0px;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chromeframe {
|
.chromeframe {
|
||||||
margin: 0.2em 0;
|
margin: 0.2em 0;
|
||||||
background: #ccc;
|
background: #ccc;
|
||||||
@ -91,6 +95,7 @@
|
|||||||
-ms-transform: rotate(0deg);
|
-ms-transform: rotate(0deg);
|
||||||
transform: rotate(0deg);
|
transform: rotate(0deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
-webkit-transform: rotate(360deg);
|
-webkit-transform: rotate(360deg);
|
||||||
-ms-transform: rotate(360deg);
|
-ms-transform: rotate(360deg);
|
||||||
@ -104,6 +109,7 @@
|
|||||||
-ms-transform: rotate(0deg);
|
-ms-transform: rotate(0deg);
|
||||||
transform: rotate(0deg);
|
transform: rotate(0deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
-webkit-transform: rotate(360deg);
|
-webkit-transform: rotate(360deg);
|
||||||
-ms-transform: rotate(360deg);
|
-ms-transform: rotate(360deg);
|
||||||
@ -193,15 +199,17 @@
|
|||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
|
||||||
<div id="app">
|
<body>
|
||||||
<div id="loader-wrapper">
|
<div id="app">
|
||||||
<div id="loader"></div>
|
<div id="loader-wrapper">
|
||||||
<div class="loader-section section-left"></div>
|
<div id="loader"></div>
|
||||||
<div class="loader-section section-right"></div>
|
<div class="loader-section section-left"></div>
|
||||||
<div class="load_title">正在加载系统资源,请耐心等待</div>
|
<div class="loader-section section-right"></div>
|
||||||
</div>
|
<div class="load_title">Loading...</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -1,92 +1,23 @@
|
|||||||
import request from '@/utils/request'
|
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) {
|
// export function previewTable(tableId) {
|
||||||
return request({
|
// return request({
|
||||||
url: '/tool/gen/preview/' + tableId,
|
// url: '/tool/gen/preview/' + tableId,
|
||||||
method: 'get'
|
// 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'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/**新的代码生成 */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建数据库连接
|
* 创建数据库连接
|
||||||
*/
|
*/
|
||||||
export function createGetDBConn(data) {
|
// export function createGetDBConn(data) {
|
||||||
return request({
|
// return request({
|
||||||
url: 'tool/gen/CreateDBConn',
|
// url: 'tool/gen/CreateDBConn',
|
||||||
method: 'post',
|
// method: 'post',
|
||||||
data: data,
|
// data: data,
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
/**
|
/**
|
||||||
* 获取数据库
|
* 获取数据库
|
||||||
*/
|
*/
|
||||||
@ -101,7 +32,7 @@ export function codeGetDBList() {
|
|||||||
*/
|
*/
|
||||||
export function codeGetTableList(data) {
|
export function codeGetTableList(data) {
|
||||||
return request({
|
return request({
|
||||||
url: 'tool/gen/FindListTable',
|
url: 'tool/gen/getTableList',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: data,
|
params: data,
|
||||||
})
|
})
|
||||||
@ -111,10 +42,9 @@ export function codeGetTableList(data) {
|
|||||||
*/
|
*/
|
||||||
export async function codeGenerator(data) {
|
export async function codeGenerator(data) {
|
||||||
return await request({
|
return await request({
|
||||||
url: '/tool/gen/Generate',
|
url: 'tool/gen/genCode',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data,
|
data: data,
|
||||||
timeout: 0,
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,30 +55,30 @@ export async function codeGenerator(data) {
|
|||||||
*/
|
*/
|
||||||
export function queryColumnInfo(data) {
|
export function queryColumnInfo(data) {
|
||||||
return request({
|
return request({
|
||||||
url: 'tool/gen/queryColumnInfo',
|
url: 'tool/gen/getColumnInfo',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
params: data,
|
params: data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
*
|
// *
|
||||||
* 数据库解密
|
// * 数据库解密
|
||||||
*/
|
// */
|
||||||
export function dbtoolsConnStrDecrypt(data) {
|
// export function dbtoolsConnStrDecrypt(data) {
|
||||||
return request({
|
// return request({
|
||||||
url: 'DbTools/ConnStrDecrypt',
|
// url: 'DbTools/ConnStrDecrypt',
|
||||||
method: 'post',
|
// method: 'post',
|
||||||
params: data,
|
// params: data,
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
/**
|
// /**
|
||||||
* 数据库加密
|
// * 数据库加密
|
||||||
*/
|
// */
|
||||||
export function dbtoolsConnStrEncrypt(data) {
|
// export function dbtoolsConnStrEncrypt(data) {
|
||||||
return request({
|
// return request({
|
||||||
url: 'DbTools/ConnStrEncrypt',
|
// url: 'DbTools/ConnStrEncrypt',
|
||||||
method: 'post',
|
// method: 'post',
|
||||||
params: data,
|
// params: data,
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { login, logOut, getInfo } from '@/api/login'
|
import { login, logOut, getInfo } from '@/api/system/login'
|
||||||
import { getToken, setToken, removeToken } from '@/utils/auth'
|
import { getToken, setToken, removeToken } from '@/utils/auth'
|
||||||
|
|
||||||
const user = {
|
const user = {
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
<div slot="header" class="clearfix">
|
<div slot="header" class="clearfix">
|
||||||
<span>技术选型</span>
|
<span>技术选型</span>
|
||||||
</div>
|
</div>
|
||||||
<el-col :span="6">
|
<el-col :span="10">
|
||||||
<h4>后端技术</h4>
|
<h4>后端技术</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li>NET5</li>
|
<li>NET5</li>
|
||||||
@ -35,7 +35,7 @@
|
|||||||
<li>...</li>
|
<li>...</li>
|
||||||
</ul>
|
</ul>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="10">
|
||||||
<h4>前端技术</h4>
|
<h4>前端技术</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Vue</li>
|
<li>Vue</li>
|
||||||
|
|||||||
@ -36,7 +36,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getCodeImg } from "@/api/login";
|
import { getCodeImg } from "@/api/system/login";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import { encrypt, decrypt } from "@/utils/jsencrypt";
|
import { encrypt, decrypt } from "@/utils/jsencrypt";
|
||||||
|
|
||||||
|
|||||||
@ -27,7 +27,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<el-table ref="gridtable" v-loading="tableloading" :data="tableData" border stripe highlight-current-row style="width: 100%">
|
<el-table ref="gridtable" v-loading="tableloading" :data="tableData" border stripe highlight-current-row height="500px" style="width: 100%;">
|
||||||
<!-- <el-table-column type="selection" width="50" /> -->
|
<!-- <el-table-column type="selection" width="50" /> -->
|
||||||
<el-table-column prop="name" label="表名" sortable="custom" width="380" />
|
<el-table-column prop="name" label="表名" sortable="custom" width="380" />
|
||||||
<el-table-column prop="description" label="表描述" />
|
<el-table-column prop="description" label="表描述" />
|
||||||
@ -50,7 +50,7 @@
|
|||||||
<el-checkbox :label="3">生成Repository</el-checkbox>
|
<el-checkbox :label="3">生成Repository</el-checkbox>
|
||||||
<el-checkbox :label="4">生成Service</el-checkbox>
|
<el-checkbox :label="4">生成Service</el-checkbox>
|
||||||
<el-checkbox :label="5">生成Controller</el-checkbox>
|
<el-checkbox :label="5">生成Controller</el-checkbox>
|
||||||
<el-checkbox :label="6">生成Views和js</el-checkbox>
|
<el-checkbox :label="6">生成Views和api</el-checkbox>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
@ -58,11 +58,7 @@
|
|||||||
<el-radio v-model="coverd" :label="true">是</el-radio>
|
<el-radio v-model="coverd" :label="true">是</el-radio>
|
||||||
<el-radio v-model="coverd" :label="false">否</el-radio>
|
<el-radio v-model="coverd" :label="false">否</el-radio>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="生成查询的列">
|
<!-- <el-form-item label="生成查询的列">
|
||||||
<!-- <el-checkbox-group v-model="checkedQueryColumn">
|
|
||||||
<el-checkbox :label="item.dbColumnName" v-for="item in columnData" :key="item.dbColumnName">{{item.dbColumnName}}</el-checkbox>
|
|
||||||
</el-checkbox-group> -->
|
|
||||||
|
|
||||||
<el-table :data="columnData" height="300px">
|
<el-table :data="columnData" height="300px">
|
||||||
<el-table-column type="selection" width="60" />
|
<el-table-column type="selection" width="60" />
|
||||||
<el-table-column label="字段列名" prop="dbColumnName" />
|
<el-table-column label="字段列名" prop="dbColumnName" />
|
||||||
@ -81,7 +77,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- <el-table-column label="显示类型">
|
<el-table-column label="显示类型">
|
||||||
<el-select v-model="selectType">
|
<el-select v-model="selectType">
|
||||||
<el-option value="input">文本框</el-option>
|
<el-option value="input">文本框</el-option>
|
||||||
<el-option value="textArea">文本域</el-option>
|
<el-option value="textArea">文本域</el-option>
|
||||||
@ -91,9 +87,9 @@
|
|||||||
<el-option value="upload">图片上传</el-option>
|
<el-option value="upload">图片上传</el-option>
|
||||||
<el-option value="fileUpload">文件上传</el-option>
|
<el-option value="fileUpload">文件上传</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-table-column> -->
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button type="primary" @click="handleGenerate">确 定</el-button>
|
<el-button type="primary" @click="handleGenerate">确 定</el-button>
|
||||||
@ -105,7 +101,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
createGetDBConn,
|
// createGetDBConn,
|
||||||
codeGetDBList,
|
codeGetDBList,
|
||||||
codeGetTableList,
|
codeGetTableList,
|
||||||
codeGenerator,
|
codeGenerator,
|
||||||
@ -113,12 +109,8 @@ import {
|
|||||||
} from "@/api/tool/gen";
|
} from "@/api/tool/gen";
|
||||||
// import { downloadFile } from "@/utils/index";
|
// import { downloadFile } from "@/utils/index";
|
||||||
import { Loading } from "element-ui";
|
import { Loading } from "element-ui";
|
||||||
import template from "../../../document/template.vue";
|
|
||||||
|
|
||||||
// import defaultSettings from "@/settings";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: { template },
|
|
||||||
name: "CodeGenerator",
|
name: "CodeGenerator",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -207,12 +199,11 @@ export default {
|
|||||||
this.loadTableData();
|
this.loadTableData();
|
||||||
},
|
},
|
||||||
handlePreview() {
|
handlePreview() {
|
||||||
this.msgSuccess("敬请期待");
|
this.msgError("敬请期待");
|
||||||
},
|
},
|
||||||
handleShowDialog(row) {
|
handleShowDialog(row) {
|
||||||
console.log(row);
|
|
||||||
this.showGenerate = true;
|
this.showGenerate = true;
|
||||||
this.currentSelected = row.name;
|
this.currentSelected = row;
|
||||||
|
|
||||||
queryColumnInfo({
|
queryColumnInfo({
|
||||||
dbName: this.codeform.dbName,
|
dbName: this.codeform.dbName,
|
||||||
@ -220,12 +211,7 @@ export default {
|
|||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
const columnData = res.data;
|
const columnData = res.data;
|
||||||
|
|
||||||
// for (let i = 0; i < columnData.length; i++) {
|
|
||||||
// this.$set(columnData[i], "selectType", 1);
|
|
||||||
// }
|
|
||||||
this.columnData = columnData;
|
this.columnData = columnData;
|
||||||
// this.checkedQueryColumn = res.data.map((r) => r.dbColumnName);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -233,7 +219,7 @@ export default {
|
|||||||
* 点击生成服务端代码
|
* 点击生成服务端代码
|
||||||
*/
|
*/
|
||||||
handleGenerate: async function () {
|
handleGenerate: async function () {
|
||||||
console.log(JSON.stringify(this.checkedCodeGenerateForm));
|
console.log(JSON.stringify(this.currentSelected));
|
||||||
if (!this.currentSelected) {
|
if (!this.currentSelected) {
|
||||||
this.msgError("请先选择要生成代码的数据表");
|
this.msgError("请先选择要生成代码的数据表");
|
||||||
return false;
|
return false;
|
||||||
@ -250,7 +236,7 @@ export default {
|
|||||||
|
|
||||||
var seachdata = {
|
var seachdata = {
|
||||||
dbName: this.codeform.dbName,
|
dbName: this.codeform.dbName,
|
||||||
tables: this.currentSelected.name,
|
tableName: this.currentSelected.name,
|
||||||
baseSpace: this.codeform.baseSpace,
|
baseSpace: this.codeform.baseSpace,
|
||||||
replaceTableNameStr: this.codeform.replaceTableNameStr,
|
replaceTableNameStr: this.codeform.replaceTableNameStr,
|
||||||
genFiles: this.checkedCodeGenerateForm,
|
genFiles: this.checkedCodeGenerateForm,
|
||||||
@ -258,7 +244,7 @@ export default {
|
|||||||
queryColumn: this.checkedQueryColumn,
|
queryColumn: this.checkedQueryColumn,
|
||||||
};
|
};
|
||||||
console.log(JSON.stringify(seachdata));
|
console.log(JSON.stringify(seachdata));
|
||||||
//return;
|
|
||||||
codeGenerator(seachdata)
|
codeGenerator(seachdata)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user