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 @@