From f44393b4b9c0e7967f4ec81cea9ef90063a08b64 Mon Sep 17 00:00:00 2001
From: izory <791736813@qq.com>
Date: Thu, 23 Sep 2021 10:58:25 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=E6=89=93=E5=8C=85=E5=8E=8B=E7=BC=A9=E4=B8=8B=E8=BD=BD?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=E3=80=81=E5=85=B6=E4=BB=96=E5=8A=9F=E8=83=BD?=
=?UTF-8?q?=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/CodeGeneratorController.cs | 26 +++---
ZR.Admin.WebApi/NLog.config | 1 +
ZR.Admin.WebApi/appsettings.json | 3 +-
.../wwwroot/CodeGenTemplate/VueTemplate.txt | 13 +--
ZR.CodeGenerator/GenConstants.cs | 2 +-
ZR.CodeGenerator/Model/GenerateDto.cs | 18 ++++-
ZR.Vue/src/api/tool/gen.js | 2 +-
ZR.Vue/src/router/index.js | 2 +-
ZR.Vue/src/utils/zipdownload.js | 27 ++++++-
ZR.Vue/src/views/gendemo/index.vue | 81 +++++++++----------
ZR.Vue/src/views/tool/gen/index.vue | 54 ++++++-------
ZRAdmin.xml | 6 +-
12 files changed, 133 insertions(+), 102 deletions(-)
diff --git a/ZR.Admin.WebApi/Controllers/CodeGeneratorController.cs b/ZR.Admin.WebApi/Controllers/CodeGeneratorController.cs
index ddb766d..c145514 100644
--- a/ZR.Admin.WebApi/Controllers/CodeGeneratorController.cs
+++ b/ZR.Admin.WebApi/Controllers/CodeGeneratorController.cs
@@ -8,11 +8,9 @@ using Microsoft.Extensions.Hosting;
using SqlSugar;
using System;
using System.Collections.Generic;
-using System.Linq;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
using ZR.CodeGenerator;
-using ZR.CodeGenerator.CodeGenerator;
using ZR.CodeGenerator.Model;
using ZR.CodeGenerator.Service;
using ZR.Common;
@@ -85,31 +83,31 @@ namespace ZR.Admin.WebApi.Controllers
{
throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空");
}
+ dto.ZipPath = WebHostEnvironment.WebRootPath + "\\Generatecode\\";
+ dto.GenCodePath = dto.ZipPath + DateTime.Now.ToString("yyyyMMdd") + "\\";
+
var genTableInfo = GenTableService.GetGenTableInfo(dto.TableId);
var getTableColumn = GenTableColumnService.GenTableColumns(dto.TableId);
genTableInfo.Columns = getTableColumn;
- dto.ParentPath = WebHostEnvironment.WebRootPath + "\\Generatecode\\" + DateTime.Now.ToString("yyyyMMdd") + "\\";
-
+ //生成代码
CodeGeneratorTool.Generate(genTableInfo, dto);
- string zipPath = CodeGeneratorTool.ZipGenCode(dto);
+ //下载文件
+ CodeGeneratorTool.ZipGenCode(dto);
- return SUCCESS(new { zipPath });
+ //HttpContext.Response.Headers.Add("Content-disposition", $"attachment; filename={zipFileName}");
+ return SUCCESS(new { zipPath = "/Generatecode/" + dto.ZipFileName, fileName = dto.ZipFileName });
}
///
- /// 获取表详细信息
+ /// 获取代码生成表列表
///
- ///
+ /// 表名
/// 分页信息
///
- [HttpGet("getGenTable")]
+ [HttpGet("listGenTable")]
public IActionResult GetGenTable(string tableName, PagerInfo pagerInfo)
{
- //if (string.IsNullOrEmpty(tableName))
- //{
- // throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空");
- //}
//查询原表数据,部分字段映射到代码生成表字段
var rows = GenTableService.GetGenTables(new GenTable() { TableName = tableName }, pagerInfo);
@@ -119,7 +117,7 @@ namespace ZR.Admin.WebApi.Controllers
///
/// 查询表字段列表
///
- ///
+ /// genTable表id
///
[HttpGet("column/{tableId}")]
public IActionResult GetColumnList(long tableId)
diff --git a/ZR.Admin.WebApi/NLog.config b/ZR.Admin.WebApi/NLog.config
index a9d6783..9921814 100644
--- a/ZR.Admin.WebApi/NLog.config
+++ b/ZR.Admin.WebApi/NLog.config
@@ -24,6 +24,7 @@
- 编辑
+ 编辑
- 删除
+ 删除
-
+
@@ -67,7 +67,7 @@ export default {
return {
labelWidth: "100px",
formLabelWidth:"100px",
- // 选中数组
+ // 选中{primaryKey}数组
ids: [],
// 非单个禁用
single: true,
@@ -129,7 +129,7 @@ export default {
reset() {
this.form = {
{VueViewEditFormContent}
- //需个性化处理内容
+ //TODO 根据实际内容调整
};
this.resetForm("form");
},
@@ -142,8 +142,9 @@ export default {
pageSize: 20,
//TODO 重置字段
};
+ this.handleQuery();
},
- // 多选框选中数据
+ // 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.{primaryKey});
this.single = selection.length!=1
diff --git a/ZR.CodeGenerator/GenConstants.cs b/ZR.CodeGenerator/GenConstants.cs
index 71aecaf..5b62292 100644
--- a/ZR.CodeGenerator/GenConstants.cs
+++ b/ZR.CodeGenerator/GenConstants.cs
@@ -72,7 +72,7 @@ namespace ZR.CodeGenerator
public static string[] COLUMNNAME_NOT_EDIT = { "id", "create_by", "create_time", "delFlag" };
/** 页面不需要显示的列表字段 */
- public static string[] COLUMNNAME_NOT_LIST = { "id", "create_by", "create_time", "delFlag", "update_by",
+ public static string[] COLUMNNAME_NOT_LIST = { "create_by", "create_time", "delFlag", "update_by",
"update_time" , "password"};
/** 页面不需要查询字段 */
diff --git a/ZR.CodeGenerator/Model/GenerateDto.cs b/ZR.CodeGenerator/Model/GenerateDto.cs
index 8f8c36e..bceb59d 100644
--- a/ZR.CodeGenerator/Model/GenerateDto.cs
+++ b/ZR.CodeGenerator/Model/GenerateDto.cs
@@ -9,7 +9,7 @@ namespace ZR.CodeGenerator.Model
public class GenerateDto
{
public long TableId { get; set; }
- public string[] queryColumn { get; set; }
+ public string[] QueryColumn { get; set; }
///
///
///
@@ -17,7 +17,7 @@ namespace ZR.CodeGenerator.Model
///
/// 项目命名空间
///
- public string baseSpace { get; set; }
+ //public string baseSpace { get; set; }
///
/// 要生成代码的表
///
@@ -43,7 +43,19 @@ namespace ZR.CodeGenerator.Model
//public string VuePath { get; set; }
//public string VueApiPath { get; set; }
- public string ParentPath { get; set; } = "..";
+ //public string ParentPath { get; set; } = "..";
+ ///
+ /// 代码生成路径
+ ///
+ public string GenCodePath { get; set; }
+ ///
+ /// 代码生成压缩包路径
+ ///
+ public string ZipPath { get; set; }
+ ///
+ /// 代码生成压缩包名称
+ ///
+ public string ZipFileName { get; set; }
#endregion
}
}
diff --git a/ZR.Vue/src/api/tool/gen.js b/ZR.Vue/src/api/tool/gen.js
index 0033408..14bbcb1 100644
--- a/ZR.Vue/src/api/tool/gen.js
+++ b/ZR.Vue/src/api/tool/gen.js
@@ -64,7 +64,7 @@ export function queryColumnInfo(tableId) {
// 查询表详细信息
export function getGenTable(params) {
return request({
- url: 'tool/gen/getGenTable',
+ url: 'tool/gen/listGenTable',
method: 'get',
params: params
})
diff --git a/ZR.Vue/src/router/index.js b/ZR.Vue/src/router/index.js
index cd682e2..3dd9d34 100644
--- a/ZR.Vue/src/router/index.js
+++ b/ZR.Vue/src/router/index.js
@@ -44,7 +44,7 @@ export const constantRoutes = [
},
{
path: '/demo',
- component: (resolve) => require(['@/views/userInfo/index'], resolve),
+ component: (resolve) => require(['@/views/gendemo/index'], resolve),
hidden: true
},
{
diff --git a/ZR.Vue/src/utils/zipdownload.js b/ZR.Vue/src/utils/zipdownload.js
index faa613c..cffbc9a 100644
--- a/ZR.Vue/src/utils/zipdownload.js
+++ b/ZR.Vue/src/utils/zipdownload.js
@@ -1,4 +1,5 @@
import axios from 'axios'
+import request from '@/utils/request'
import { getToken } from '@/utils/auth'
const mimeMap = {
@@ -9,9 +10,9 @@ const mimeMap = {
const baseUrl = process.env.VUE_APP_BASE_API
export function downLoadZip(str, filename) {
var url = baseUrl + str
- axios({
+ request({
method: 'get',
- url: url,
+ url: str,
responseType: 'blob',
headers: { 'Token': getToken() }
}).then(res => {
@@ -40,7 +41,7 @@ export function resolveBlob(res, mimeType) {
// //从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 设置的文件名;
var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*')
- var contentDisposition = decodeURI(res.headers['content-disposition'])
+ var contentDisposition = decodeURI(res.headers['Content-disposition'])
var result = patt.exec(contentDisposition)
var fileName = result[1]
fileName = fileName.replace(/\"/g, '')
@@ -68,3 +69,23 @@ export function resolveExcel(res, fileName) {
// 5.释放这个临时的对象url
// window.URL.revokeObjectURL(aLink.href);
}
+
+/**
+ * 下载文件调用
+ * @param 接口返回数据 文件名
+ */
+ export function downloadFile(resUrl, fileName) {
+ if (!resUrl) {
+ return
+ }
+ // 创建下载链接
+ const url = resUrl
+ const link = document.createElement('a')
+ link.style.display = 'none'
+ link.href = url
+ link.setAttribute('download', fileName)// 文件名
+ document.body.appendChild(link)
+ link.click()
+ document.body.removeChild(link) // 下载完成移除元素
+ window.URL.revokeObjectURL(url) // 释放掉blob对象
+}
diff --git a/ZR.Vue/src/views/gendemo/index.vue b/ZR.Vue/src/views/gendemo/index.vue
index 8bb4ec9..e26ec42 100644
--- a/ZR.Vue/src/views/gendemo/index.vue
+++ b/ZR.Vue/src/views/gendemo/index.vue
@@ -2,23 +2,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
搜索
@@ -43,49 +26,55 @@
-
-
+
+
-
-
+
+
+
+
- 编辑
-
- 删除
+ 编辑
+
+ 删除
-
+
-
-
-
-
+
-
+
+ 是
+ 否
+
-
-
+
+
+
+
+
+
+
@@ -112,7 +101,7 @@ export default {
return {
labelWidth: "100px",
formLabelWidth: "100px",
- // 选中数组
+ // 选中id数组
ids: [],
// 非单个禁用
single: true,
@@ -132,8 +121,8 @@ export default {
form: {},
// 时间范围数组
timeRange: [],
- // xxx下拉框
- statusOptions: [],
+ // 用户性别选项列表
+ sexOptions: [],
// 数据列表
dataList: [],
// 总记录数
@@ -142,6 +131,7 @@ export default {
btnSubmitVisible: true,
// 表单校验
rules: {
+ id: [{ type: "number", message: "id必须为数字值", trigger: "blur" }],
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
showStatus: [
{ required: true, message: "请输入显示状态", trigger: "blur" },
@@ -156,6 +146,9 @@ export default {
// this.getDicts("sys_normal_disable").then((response) => {
// this.statusOptions = response.data;
// });
+ this.getDicts("sys_user_sex").then((response) => {
+ this.sexOptions = response.data;
+ });
},
methods: {
// 查询数据
@@ -178,13 +171,14 @@ export default {
// 重置数据表单
reset() {
this.form = {
- id: undefined,
name: undefined,
icon: undefined,
showStatus: undefined,
addTime: undefined,
+ sex: undefined,
+ sort: undefined,
- //需个性化处理内容
+ //TODO 根据实际内容调整
};
this.resetForm("form");
},
@@ -197,6 +191,7 @@ export default {
pageSize: 20,
//TODO 重置字段
};
+ this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
@@ -222,7 +217,8 @@ export default {
},
/** 删除按钮操作 */
handleDelete(row) {
- delGendemo(row.id).then((res) => {
+ const ids = row.id || this.ids;
+ delGendemo(ids.toString()).then((res) => {
this.msgSuccess("删除成功");
this.handleQuery();
});
@@ -241,10 +237,14 @@ export default {
},
beforeFileUpload(file) {},
//文件上传成功方法
- handleUploadiconSuccess(res, file) {
+ handleUploadIconSuccess(res, file) {
this.form.icon = URL.createObjectURL(file.raw);
// this.$refs.upload.clearFiles();
},
+ // 用户性别字典翻译
+ sexFormat(row, column) {
+ return this.selectDictLabel(this.sexOptions, row.sex);
+ },
/** 提交按钮 */
submitForm: function () {
@@ -274,6 +274,5 @@ export default {
diff --git a/ZR.Vue/src/views/tool/gen/index.vue b/ZR.Vue/src/views/tool/gen/index.vue
index d75b1c1..e15b4b6 100644
--- a/ZR.Vue/src/views/tool/gen/index.vue
+++ b/ZR.Vue/src/views/tool/gen/index.vue
@@ -35,11 +35,7 @@
预览
编辑
-
-
- 删除
-
-
+ 删除
生成代码
@@ -77,7 +73,7 @@