Merge branch '3.7.0'

This commit is contained in:
不做码农 2021-12-07 19:52:06 +08:00
commit e93f069389
23 changed files with 187 additions and 121 deletions

2
.gitignore vendored
View File

@ -267,3 +267,5 @@ __pycache__/
/ZR.Admin.WebApi/wwwroot/export /ZR.Admin.WebApi/wwwroot/export
/ZR.Vue/src/views/business/Gendemo.vue /ZR.Vue/src/views/business/Gendemo.vue
/ZR.Admin.WebApi/Properties/launchSettings.json /ZR.Admin.WebApi/Properties/launchSettings.json
/ZR.Admin.WebApi/ZRAdmin.xml
/ZR.Admin.WebApi/DataProtection

View File

@ -37,7 +37,7 @@ namespace ZR.Admin.WebApi.Controllers
/// 心跳 /// 心跳
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpGet, Route("health/index")] [HttpGet]
public IActionResult Health() public IActionResult Health()
{ {
return SUCCESS(true); return SUCCESS(true);

View File

@ -16,7 +16,7 @@ using System;
namespace ZR.Admin.WebApi.Controllers namespace ZR.Admin.WebApi.Controllers
{ {
/// <summary> /// <summary>
/// T4代码自动生成 /// 文章管理
/// </summary> /// </summary>
[Verify] [Verify]
[Route("article")] [Route("article")]

View File

@ -143,17 +143,19 @@ namespace ZR.Admin.WebApi.Controllers.System
string uuid = Guid.NewGuid().ToString().Replace("-", ""); string uuid = Guid.NewGuid().ToString().Replace("-", "");
SysConfig sysConfig = sysConfigService.GetSysConfigByKey("sys.account.captchaOnOff"); SysConfig sysConfig = sysConfigService.GetSysConfigByKey("sys.account.captchaOnOff");
var captchaOff = sysConfig?.ConfigValue ?? "0";
var code = SecurityCodeHelper.GetRandomEnDigitalText(4); var code = SecurityCodeHelper.GetRandomEnDigitalText(4);
byte[] imgByte; byte[] imgByte;
if (sysConfig.ConfigValue == "1") if (captchaOff == "1")
{ {
imgByte = SecurityCodeHelper.GetGifEnDigitalCodeByte(code);//动态gif数字字母 imgByte = SecurityCodeHelper.GetGifEnDigitalCodeByte(code);//动态gif数字字母
} }
else if (sysConfig.ConfigValue == "2") else if (captchaOff == "2")
{ {
imgByte = SecurityCodeHelper.GetGifBubbleCodeByte(code);//动态gif泡泡 imgByte = SecurityCodeHelper.GetGifBubbleCodeByte(code);//动态gif泡泡
} }
else if (sysConfig.ConfigValue == "3") else if (captchaOff == "3")
{ {
imgByte = SecurityCodeHelper.GetBubbleCodeByte(code);//泡泡 imgByte = SecurityCodeHelper.GetBubbleCodeByte(code);//泡泡
} }

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<key id="b6498f45-218a-4853-a182-0e86942ab496" version="1">
<creationDate>2021-08-02T06:58:41.3050198Z</creationDate>
<activationDate>2021-08-02T06:58:41.2698484Z</activationDate>
<expirationDate>2021-10-31T06:58:41.2698484Z</expirationDate>
<descriptor deserializerType="Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptorDeserializer, Microsoft.AspNetCore.DataProtection, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
<descriptor>
<encryption algorithm="AES_256_CBC" />
<validation algorithm="HMACSHA256" />
<masterKey p4:requiresEncryption="true" xmlns:p4="http://schemas.asp.net/2015/03/dataProtection">
<!-- Warning: the key below is in an unencrypted form. -->
<value>gmFBOJQxBXoKTqyvLeEnS6IDsf61vG/s0krHG1MfcZwQlu/D2XUaCms+xzpFc2c2JGdaJh5LiLIyJuoRR20Mug==</value>
</masterKey>
</descriptor>
</descriptor>
</key>

View File

@ -27,11 +27,16 @@ namespace ZR.Admin.WebApi.Extensions
Version = "v1", Version = "v1",
Description = "", Description = "",
}); });
//if (CurrentEnvironment.IsDevelopment()) try
//{ {
//添加文档注释 //添加文档注释
c.IncludeXmlComments(Path.Combine(hostEnvironment.ContentRootPath, "ZRAdmin.xml"), true); c.IncludeXmlComments(Path.Combine(hostEnvironment.ContentRootPath, "ZRAdmin.xml"), true);
//} }
catch (Exception ex)
{
Console.WriteLine("swagger 文档加载失败" + ex.Message);
}
//参考文章http://www.zyiz.net/tech/detail-134965.html //参考文章http://www.zyiz.net/tech/detail-134965.html
//需要安装包Swashbuckle.AspNetCore.Filters //需要安装包Swashbuckle.AspNetCore.Filters
// 开启权限小锁 需要在对应的Action上添加[Authorize]才能看到 // 开启权限小锁 需要在对应的Action上添加[Authorize]才能看到

View File

@ -32,7 +32,7 @@ namespace ZR.Admin.WebApi
Configuration = configuration; Configuration = configuration;
CurrentEnvironment = hostEnvironment; CurrentEnvironment = hostEnvironment;
} }
private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
private IWebHostEnvironment CurrentEnvironment { get; } private IWebHostEnvironment CurrentEnvironment { get; }
public IConfiguration Configuration { get; } public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services) public void ConfigureServices(IServiceCollection services)
@ -167,13 +167,14 @@ namespace ZR.Admin.WebApi
}); });
//调式代码 用来打印SQL //调式代码 用来打印SQL
DbScoped.SugarScope.GetConnection("0").Aop.OnLogExecuting = (sql, pars) => DbScoped.SugarScope.GetConnection(0).Aop.OnLogExecuting = (sql, pars) =>
{ {
Console.WriteLine("【SQL语句】" + sql.ToLower() + "\r\n" var param = DbScoped.SugarScope.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value));
+ DbScoped.SugarScope.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value))); //Console.WriteLine("【SQL语句】" + sql.ToLower() + "\r\n" + param);
logger.Info($"Sql语句{sql}{param}");
}; };
//出错打印日志 //出错打印日志
DbScoped.SugarScope.GetConnection("0").Aop.OnError = (e) => DbScoped.SugarScope.GetConnection(0).Aop.OnError = (e) =>
{ {
Console.WriteLine($"[执行Sql出错]{e.Message}SQL={e.Sql}"); Console.WriteLine($"[执行Sql出错]{e.Message}SQL={e.Sql}");
Console.WriteLine(); Console.WriteLine();
@ -182,14 +183,14 @@ namespace ZR.Admin.WebApi
//调式代码 用来打印SQL //调式代码 用来打印SQL
DbScoped.SugarScope.GetConnection(1).Aop.OnLogExecuting = (sql, pars) => DbScoped.SugarScope.GetConnection(1).Aop.OnLogExecuting = (sql, pars) =>
{ {
Console.WriteLine("【SQL语句Bus】" + sql.ToLower() + "\r\n" var param = DbScoped.SugarScope.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value));
+ DbScoped.SugarScope.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value))); //Console.WriteLine("【SQL语句Bus】" + sql.ToLower() + "\r\n" + param);
logger.Info($"Sql语句{sql}, {param}");
}; };
//Bus Db错误日志 //Bus Db错误日志
DbScoped.SugarScope.GetConnection(1).Aop.OnError = (e) => DbScoped.SugarScope.GetConnection(1).Aop.OnError = (e) =>
{ {
Console.WriteLine($"[执行Sql出错Bus]{e.Message}SQL={e.Sql}"); logger.Error($"执行Sql语句失败{e.Sql},原因:{e.Message}");
Console.WriteLine();
}; };
} }
} }

View File

@ -60,6 +60,9 @@
<None Update="ip2region.db"> <None Update="ip2region.db">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None> </None>
<None Update="ZRAdmin.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -15,7 +15,7 @@
"urls": "http://localhost:8888", //url "urls": "http://localhost:8888", //url
"sysConfig": { "sysConfig": {
"DBCommandTimeout": 10, "DBCommandTimeout": 10,
"cors": "http://localhost:8887" //"," "cors": "http://localhost:8887" //","
}, },
"JwtSettings": { "JwtSettings": {
"Issuer": "https://localhost:8888", "Issuer": "https://localhost:8888",

View File

@ -1,6 +1,6 @@
@echo off @echo off
docker build -t ZRAdmin:latest -f ./Dockerfile . docker build -t ZRAdmin.NET:latest -f ./Dockerfile .
echo "==============查看镜像===========" echo "==============查看镜像==========="
docker images docker images

View File

@ -52,7 +52,7 @@ namespace ${options.ApiControllerNamespace}.Controllers
//搜索条件查询语法参考Sqlsugar //搜索条件查询语法参考Sqlsugar
${QueryCondition} ${QueryCondition}
$if(genTable.SortField != "") $if(genTable.SortField != "" && genTable.SortField != null)
var response = _${replaceDto.ModelTypeName}Service.GetPages(predicate.ToExpression(), parm, x => x.${genTable.SortField}, "${genTable.SortType}"); var response = _${replaceDto.ModelTypeName}Service.GetPages(predicate.ToExpression(), parm, x => x.${genTable.SortField}, "${genTable.SortType}");
$else $else
var response = _${replaceDto.ModelTypeName}Service.GetPages(predicate.ToExpression(), parm); var response = _${replaceDto.ModelTypeName}Service.GetPages(predicate.ToExpression(), parm);
@ -160,25 +160,23 @@ ${end}
string sFileName = ExportExcel(list, "${replaceDto.ModelTypeName}", "${genTable.FunctionName}"); string sFileName = ExportExcel(list, "${replaceDto.ModelTypeName}", "${genTable.FunctionName}");
return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName }); return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName });
} }
$if(genTable.SortField != "" && genTable.SortField != null)
$if(genTable.SortField != "") ////// <summary>
/// <summary> ////// 代码自动生成(不用可删除) 保存排序
/// 保存排序 ////// </summary>
/// </summary> ////// <param name="id"></param>
/// <param name="id"></param> ////// <param name="orderNum"></param>
/// <param name="orderNum"></param> ////// <returns></returns>
/// <returns></returns> /////[ActionPermissionFilter(Permission = "${replaceDto.PermissionPrefix}:update")]
[ActionPermissionFilter(Permission = "${replaceDto.PermissionPrefix}:update")] //////[HttpGet("ChangeSort")]
[HttpGet("ChangeSort")] /////[Log(Title = "保存排序", BusinessType = BusinessType.UPDATE)]
[Log(Title = "保存排序", BusinessType = BusinessType.UPDATE)] //public IActionResult ChangeSort(int id = 0, int orderNum = 0)
public IActionResult ChangeSort(int id = 0, int orderNum = 0) //{
{ // if (id <= 0) { return ToResponse(ApiResult.Error(101, "请求参数错误")); }
if (id <= 0) { return ToResponse(ApiResult.Error(101, "请求参数错误")); } // bool result = _${replaceDto.ModelTypeName}Service.Update(w => w.${replaceDto.PKName} == id, it => new ${replaceDto.ModelTypeName}() { ${genTable.SortField} = orderNum });;
bool result = _${replaceDto.ModelTypeName}Service.Update(w => w.${replaceDto.PKName} == id, it => new ${replaceDto.ModelTypeName}() { ${genTable.SortField} = orderNum });;
return SUCCESS(result); // return SUCCESS(result);
} //}
$end $end
} }
} }

View File

@ -23,12 +23,12 @@ ${end}
public class ${replaceDto.ModelTypeName}QueryDto : PagerInfo public class ${replaceDto.ModelTypeName}QueryDto : PagerInfo
{ {
$foreach(item in genTable.Columns) $foreach(item in genTable.Columns)
$if(item.IsQuery) $if(item.IsQuery && item.htmlType == "datetime")
public DateTime? Begin$item.CsharpField { get; set; }
public DateTime? End$item.CsharpField { get; set; }
$elseif(item.IsQuery)
public $item.CsharpType $item.CsharpField { get; set; } public $item.CsharpType $item.CsharpField { get; set; }
$end $end
${end} ${end}
public DateTime? BeginTime { get; set; }
public DateTime? EndTime { get; set; }
} }
} }

View File

@ -20,7 +20,10 @@ ${vueQueryFormHtml}
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="danger" :disabled="multiple" v-hasPermi="['${replaceDto.PermissionPrefix}:delete']" plain icon="el-icon-delete" size="mini" @click="handleDelete">删除</el-button> <el-button type="danger" :disabled="multiple" v-hasPermi="['${replaceDto.PermissionPrefix}:delete']" plain icon="el-icon-delete" size="mini" @click="handleDelete">删除</el-button>
</el-col> </el-col>
$if(genTable.SortField != "") <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['${replaceDto.PermissionPrefix}:export']">导出</el-button>
</el-col>
$if(genTable.SortField != "" && 1 == 2)
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="info" plain icon="el-icon-edit" size="mini" @click="handleShowSort" v-hasPermi="['${replaceDto.PermissionPrefix}:update']">修改排序</el-button> <el-button type="info" plain icon="el-icon-edit" size="mini" @click="handleShowSort" v-hasPermi="['${replaceDto.PermissionPrefix}:update']">修改排序</el-button>
</el-col> </el-col>
@ -30,7 +33,7 @@ $end
<!-- 数据区域 --> <!-- 数据区域 -->
<el-table :data="dataList" ref="table" border @selection-change="handleSelectionChange"> <el-table :data="dataList" ref="table" border @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" /> <el-table-column type="selection" width="50" align="center"/>
${VueViewListContent} ${VueViewListContent}
<el-table-column label="操作" align="center" width="200"> <el-table-column label="操作" align="center" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
@ -43,16 +46,16 @@ ${VueViewListContent}
</el-table> </el-table>
<pagination class="mt10" background :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> <pagination class="mt10" background :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改菜单对话框 --> <!-- 添加或修改${genTable.functionName}对话框 -->
<el-dialog :title="title" :lock-scroll="false" :visible.sync="open" > <el-dialog :title="title" :lock-scroll="false" :visible.sync="open" >
<el-form ref="form" :model="form" :rules="rules" :label-width="formLabelWidth"> <el-form ref="form" :model="form" :rules="rules" :label-width="formLabelWidth">
<el-row> <el-row>
${VueViewFormContent} ${VueViewFormContent}
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer" v-if="btnSubmitVisible"> <div slot="footer" class="dialog-footer" v-if="btnSubmitVisible">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="submitForm">确 定</el-button> <el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -65,7 +68,8 @@ import {
del${genTable.BusinessName}, del${genTable.BusinessName},
update${genTable.BusinessName}, update${genTable.BusinessName},
get${genTable.BusinessName}, get${genTable.BusinessName},
$if(genTable.SortField != "") export${genTable.BusinessName},
$if(genTable.SortField != "" && genTable.SortField != null)
changeSort changeSort
$end $end
} from '@/api/${genTable.ModuleName}/${lowerBusinessName}.js'; } from '@/api/${genTable.ModuleName}/${lowerBusinessName}.js';
@ -100,9 +104,13 @@ $foreach(item in genTable.Columns)
$if((item.HtmlType == "radio" || item.HtmlType == "select")) $if((item.HtmlType == "radio" || item.HtmlType == "select"))
// ${item.ColumnComment}选项列表 // ${item.ColumnComment}选项列表
${item.ColumnName}Options: [], ${item.ColumnName}Options: [],
$elseif(item.HtmlType == "datetime" && item.IsQuery == true)
//${item.ColumnComment}时间范围
dateRange${item.CsharpField}: [],
$end $end
$end $end
$if(genTable.SortField != "")
$if(genTable.SortField != "" && genTable.SortField != null)
// 是否显示编辑排序 // 是否显示编辑排序
showEditSort: false, showEditSort: false,
$end $end
@ -118,7 +126,7 @@ ${VueViewEditFormRuleContent}
}, },
}; };
}, },
mounted() { created() {
// 列表数据查询 // 列表数据查询
this.getList(); this.getList();
@ -133,8 +141,14 @@ $end
methods: { methods: {
// 查询数据 // 查询数据
getList() { getList() {
$foreach(item in genTable.Columns)
$if(item.HtmlType == "datetime" && item.IsQuery == true)
this.queryParams["begin${item.CsharpField}"] = this.addDateRange2(this.dateRange${item.CsharpField}, 0);
this.queryParams["end${item.CsharpField}"] = this.addDateRange2(this.dateRange${item.CsharpField}, 1);
$end
$end
console.log(JSON.stringify(this.queryParams)); console.log(JSON.stringify(this.queryParams));
list${genTable.BusinessName}(this.addDateRange(this.queryParams, this.timeRange)).then(res => { list${genTable.BusinessName}(this.queryParams).then(res => {
if (res.code == 200) { if (res.code == 200) {
this.dataList = res.data.result; this.dataList = res.data.result;
this.total = res.data.totalNum; this.total = res.data.totalNum;
@ -160,6 +174,12 @@ $end
/** 重置查询操作 */ /** 重置查询操作 */
resetQuery() { resetQuery() {
this.timeRange = []; this.timeRange = [];
$foreach(item in genTable.Columns)
$if(item.HtmlType == "datetime" && item.IsQuery == true)
//${item.ColumnComment}时间范围
this.dateRange${item.CsharpField}= [];
$end
$end
this.resetForm("queryForm"); this.resetForm("queryForm");
this.queryParams = { this.queryParams = {
pageNum: 1, pageNum: 1,
@ -204,7 +224,7 @@ $end
} }
}); });
}, },
$if(genTable.SortField != "") $if(genTable.SortField != "" && genTable.SortField != null)
// 显示编辑排序 // 显示编辑排序
handleShowSort() { handleShowSort() {
this.showEditSort = !this.showEditSort; this.showEditSort = !this.showEditSort;
@ -223,9 +243,8 @@ $end
$if(replaceDto.UploadFile == 1) $if(replaceDto.UploadFile == 1)
//图片上传成功方法 //图片上传成功方法
handleUploadSuccess(res, columnName) { handleUploadSuccess(res, columnName) {
console.log(columnName, res)
this.form[columnName] = res.data; this.form[columnName] = res.data;
console.log(JSON.stringify(this.form)) console.log(JSON.stringify(this.form), JSON.stringify(res))
}, },
$end $end
$foreach(item in genTable.Columns) $foreach(item in genTable.Columns)
@ -266,6 +285,21 @@ $end
} }
}); });
}, },
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.${confirm}confirm("是否确认导出所有${genTable.functionName}数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return export${genTable.BusinessName}(queryParams);
})
.then((response) => {
this.download(response.data.path);
});
},
}, },
}; };
</script> </script>

View File

@ -57,6 +57,7 @@ export function del${genTable.BusinessName}(pid) {
method: 'delete' method: 'delete'
}) })
} }
// 导出${genTable.functionName} // 导出${genTable.functionName}
export function export${replaceDto.ModelTypeName}(query) { export function export${replaceDto.ModelTypeName}(query) {
return request({ return request({
@ -66,7 +67,7 @@ export function export${replaceDto.ModelTypeName}(query) {
}) })
} }
$if(genTable.SortField != "") $if(genTable.SortField != "" && genTable.SortField != null)
//排序 //排序
export function changeSort(data) { export function changeSort(data) {
return request({ return request({
@ -75,5 +76,4 @@ export function changeSort(data) {
params: data params: data
}) })
} }
$end $end

View File

@ -34,8 +34,8 @@ namespace ZR.CodeGenerator
//时间类型 //时间类型
if (tbColumn.CsharpType == GenConstants.TYPE_DATE) if (tbColumn.CsharpType == GenConstants.TYPE_DATE)
{ {
replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.BeginTime != null, it => it.{tbColumn.CsharpField} >= parm.BeginTime);\n"; replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.Begin{tbColumn.CsharpField} != null, it => it.{tbColumn.CsharpField} >= parm.Begin{tbColumn.CsharpField});\n";
replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.EndTime != null, it => it.{tbColumn.CsharpField} <= parm.EndTime);\n"; replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.End{tbColumn.CsharpField} != null, it => it.{tbColumn.CsharpField} <= parm.End{tbColumn.CsharpField});\n";
} }
} }
} }
@ -72,21 +72,22 @@ namespace ZR.CodeGenerator
string columnName = dbFieldInfo.ColumnName; string columnName = dbFieldInfo.ColumnName;
string labelName = CodeGeneratorTool.GetLabelName(dbFieldInfo.ColumnComment, columnName); string labelName = CodeGeneratorTool.GetLabelName(dbFieldInfo.ColumnComment, columnName);
string labelDisabled = dbFieldInfo.IsPk ? ":disabled=\"true\"" : ""; string labelDisabled = dbFieldInfo.IsPk ? ":disabled=\"true\"" : "";
string placeHolder = dbFieldInfo.IsIncrement ? "" : $"请输入{labelName}";
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue";
if (GenConstants.inputDtoNoField.Any(f => f.ToLower().Contains(dbFieldInfo.CsharpField.ToLower()))) if (GenConstants.inputDtoNoField.Any(f => f.ToLower().Contains(dbFieldInfo.CsharpField.ToLower())))
{ {
return sb.ToString(); return sb.ToString();
} }
if (!dbFieldInfo.IsInsert || !dbFieldInfo.IsEdit) if (!dbFieldInfo.IsInsert && !dbFieldInfo.IsEdit && !dbFieldInfo.IsPk)
{ {
return sb.ToString(); return sb.ToString();
} }
if (dbFieldInfo.HtmlType == GenConstants.HTML_INPUT_NUMBER) if (dbFieldInfo.HtmlType == GenConstants.HTML_INPUT_NUMBER)
{ {
sb.AppendLine(" <el-col :span=\"12\">"); sb.AppendLine(" <el-col :span=\"12\">");
sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{CodeGeneratorTool.FirstLowerCase(columnName)}\">"); sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">");
sb.AppendLine($" <el-input-number v-model.number=\"form.{CodeGeneratorTool.FirstLowerCase(columnName)}\" placeholder=\"{placeHolder}\" {labelDisabled}/>"); sb.AppendLine($" <el-input-number v-model.number=\"form.{columnName}\" placeholder=\"请输入{labelName}\" {labelDisabled}/>");
sb.AppendLine(" </el-form-item>"); sb.AppendLine(" </el-form-item>");
sb.AppendLine(" </el-col>"); sb.AppendLine(" </el-col>");
} }
@ -104,18 +105,12 @@ namespace ZR.CodeGenerator
//图片 //图片
sb.AppendLine(" <el-col :span=\"24\">"); sb.AppendLine(" <el-col :span=\"24\">");
sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">"); sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">");
//sb.AppendLine($" <el-upload class=\"avatar-uploader\" name=\"file\" :action=\"uploadUrl\" :show-file-list=\"false\" :on-success=\"handleUpload{dbFieldInfo.CsharpField}Success\" :before-upload=\"beforeFileUpload\">");
//sb.AppendLine($" <el-image v-if=\"form.{columnName}\" :src=\"form.{columnName}\" class=\"icon\"/>");
//sb.AppendLine(" <i v-else class=\"el-icon-plus uploader-icon\"></i>");
//sb.AppendLine(" </el-upload>");
//sb.AppendLine($" <el-input v-model=\"form.{columnName}\" placeholder=\"请上传文件或手动输入文件地址\"></el-input>");
sb.AppendLine($@" <UploadImage :icon=""form.{columnName}"" column='{columnName}' :key=""form.{columnName}"" @handleUploadSuccess=""handleUploadSuccess"" />"); sb.AppendLine($@" <UploadImage :icon=""form.{columnName}"" column='{columnName}' :key=""form.{columnName}"" @handleUploadSuccess=""handleUploadSuccess"" />");
sb.AppendLine(" </el-form-item>"); sb.AppendLine(" </el-form-item>");
sb.AppendLine(" </el-col>"); sb.AppendLine(" </el-col>");
} }
else if (dbFieldInfo.HtmlType == GenConstants.HTML_RADIO && !string.IsNullOrEmpty(dbFieldInfo.DictType)) else if (dbFieldInfo.HtmlType == GenConstants.HTML_RADIO && !string.IsNullOrEmpty(dbFieldInfo.DictType))
{ {
string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue";
sb.AppendLine(" <el-col :span=\"12\">"); sb.AppendLine(" <el-col :span=\"12\">");
sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">"); sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">");
sb.AppendLine($" <el-radio-group v-model=\"form.{columnName}\">"); sb.AppendLine($" <el-radio-group v-model=\"form.{columnName}\">");
@ -129,8 +124,7 @@ namespace ZR.CodeGenerator
sb.AppendLine(" <el-col :span=\"12\">"); sb.AppendLine(" <el-col :span=\"12\">");
sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">"); sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">");
sb.AppendLine($" <el-radio-group v-model=\"form.{columnName}\">"); sb.AppendLine($" <el-radio-group v-model=\"form.{columnName}\">");
sb.AppendLine(" <el-radio :key=\"1\" :label=\"1\">是</el-radio>"); sb.AppendLine(" <el-radio :label=\"1\">请选择字典生成</el-radio>");
sb.AppendLine(" <el-radio :key=\"0\" :label=\"0\">否</el-radio>");
sb.AppendLine(" </el-radio-group>"); sb.AppendLine(" </el-radio-group>");
sb.AppendLine(" </el-form-item>"); sb.AppendLine(" </el-form-item>");
sb.AppendLine(" </el-col>"); sb.AppendLine(" </el-col>");
@ -146,28 +140,37 @@ namespace ZR.CodeGenerator
else if (dbFieldInfo.HtmlType == GenConstants.HTML_EDITOR) else if (dbFieldInfo.HtmlType == GenConstants.HTML_EDITOR)
{ {
sb.AppendLine(" <el-col :span=\"24\">"); sb.AppendLine(" <el-col :span=\"24\">");
sb.AppendLine($" <el-form-item label=\"{ labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">"); sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">");
sb.AppendLine($" <editor v-model=\"form.{columnName}\" :min-height=\"200\" />"); sb.AppendLine($" <editor v-model=\"form.{columnName}\" :min-height=\"200\" />");
sb.AppendLine(" </el-form-item>"); sb.AppendLine(" </el-form-item>");
sb.AppendLine(" </el-col>"); sb.AppendLine(" </el-col>");
} }
else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT && !string.IsNullOrEmpty(dbFieldInfo.DictType)) else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT && !string.IsNullOrEmpty(dbFieldInfo.DictType))
{ {
string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue";
sb.AppendLine(" <el-col :span=\"12\">"); sb.AppendLine(" <el-col :span=\"12\">");
sb.AppendLine($" <el-form-item label=\"{ labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">"); sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">");
sb.AppendLine($" <el-select v-model=\"form.{columnName}\">"); sb.AppendLine($" <el-select v-model=\"form.{columnName}\" placeholder=\"请选择{labelName}\"> ");
sb.AppendLine($" <el-option v-for=\"item in {columnName}Options\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"{value}\"></el-option>"); sb.AppendLine($" <el-option v-for=\"item in {columnName}Options\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"{value}\"></el-option>");
sb.AppendLine(" </el-select>"); sb.AppendLine(" </el-select>");
sb.AppendLine(" </el-form-item>"); sb.AppendLine(" </el-form-item>");
sb.AppendLine(" </el-col>"); sb.AppendLine(" </el-col>");
} }
else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT && string.IsNullOrEmpty(dbFieldInfo.DictType))
{
sb.AppendLine(" <el-col :span=\"12\">");
sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">");
sb.AppendLine($" <el-select v-model=\"form.{columnName}\">");
sb.AppendLine($" <el-option label=\"\"></el-option>");
sb.AppendLine(" </el-select>");
sb.AppendLine(" </el-form-item>");
sb.AppendLine(" </el-col>");
}
else else
{ {
string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : ""; string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : "";
sb.AppendLine(" <el-col :span=\"12\">"); sb.AppendLine(" <el-col :span=\"12\">");
sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{CodeGeneratorTool.FirstLowerCase(columnName)}\">"); sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">");
sb.AppendLine($" <el-input v-model{inputNumTxt}=\"form.{CodeGeneratorTool.FirstLowerCase(columnName)}\" placeholder=\"{placeHolder}\" {labelDisabled}/>"); sb.AppendLine($" <el-input v-model{inputNumTxt}=\"form.{columnName}\" placeholder=\"请输入{labelName}\" {labelDisabled}/>");
sb.AppendLine(" </el-form-item>"); sb.AppendLine(" </el-form-item>");
sb.AppendLine(" </el-col>"); sb.AppendLine(" </el-col>");
} }
@ -187,16 +190,25 @@ namespace ZR.CodeGenerator
if (!dbFieldInfo.IsQuery || dbFieldInfo.HtmlType == GenConstants.HTML_FILE_UPLOAD) return sb.ToString(); if (!dbFieldInfo.IsQuery || dbFieldInfo.HtmlType == GenConstants.HTML_FILE_UPLOAD) return sb.ToString();
if (dbFieldInfo.HtmlType == GenConstants.HTML_DATETIME) if (dbFieldInfo.HtmlType == GenConstants.HTML_DATETIME)
{ {
sb.AppendLine(" <el-form-item label=\"时间\">"); sb.AppendLine($" <el-form-item label=\"{labelName}\">");
sb.AppendLine(" <el-date-picker v-model=\"timeRange\" size=\"small\" value-format=\"yyyy-MM-dd\" type=\"daterange\" range-separator=\"-\" start-placeholder=\"开始日期\""); sb.AppendLine($" <el-date-picker v-model=\"dateRange{dbFieldInfo.CsharpField}\" size=\"small\" value-format=\"yyyy-MM-dd\" type=\"daterange\" range-separator=\"-\" start-placeholder=\"开始日期\"");
sb.AppendLine(" end-placeholder=\"结束日期\"></el-date-picker>"); sb.AppendLine($" end-placeholder=\"\" placeholder=\"请选择{dbFieldInfo.ColumnComment}\" ></el-date-picker>");
sb.AppendLine(" </el-form-item>"); sb.AppendLine(" </el-form-item>");
} }
else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT && !string.IsNullOrEmpty(dbFieldInfo.DictType)) else if ((dbFieldInfo.HtmlType == GenConstants.HTML_SELECT || dbFieldInfo.HtmlType == GenConstants.HTML_RADIO) && !string.IsNullOrEmpty(dbFieldInfo.DictType))
{ {
//string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue"; //string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue";
sb.AppendLine($" <el-form-item label=\"{ labelName}\" :label-width=\"labelWidth\" prop=\"{dbFieldInfo.ColumnName}\">"); sb.AppendLine($" <el-form-item label=\"{ labelName}\" :label-width=\"labelWidth\" prop=\"{dbFieldInfo.ColumnName}\">");
sb.AppendLine($" <el-select v-model=\"queryParams.{dbFieldInfo.ColumnName}\">"); sb.AppendLine($" <el-select v-model=\"queryParams.{dbFieldInfo.ColumnName}\"> placeholder=\"请选择{dbFieldInfo.ColumnComment}\" size=\"small\"");
sb.AppendLine($" <el-option v-for=\"item in {dbFieldInfo.ColumnName}Options\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"item.dictValue\"></el-option>");
sb.AppendLine(" </el-select>");
sb.AppendLine(" </el-form-item>");
}
else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT)
{
//string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue";
sb.AppendLine($" <el-form-item label=\"{ labelName}\" :label-width=\"labelWidth\" prop=\"{dbFieldInfo.ColumnName}\">");
sb.AppendLine($" <el-select v-model=\"queryParams.{dbFieldInfo.ColumnName}\" placeholder=\"请选择{dbFieldInfo.ColumnComment}\" size=\"small\">");
sb.AppendLine($" <el-option v-for=\"item in {dbFieldInfo.ColumnName}Options\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"item.dictValue\"></el-option>"); sb.AppendLine($" <el-option v-for=\"item in {dbFieldInfo.ColumnName}Options\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"item.dictValue\"></el-option>");
sb.AppendLine(" </el-select>"); sb.AppendLine(" </el-select>");
sb.AppendLine(" </el-form-item>"); sb.AppendLine(" </el-form-item>");
@ -205,7 +217,7 @@ namespace ZR.CodeGenerator
{ {
string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : ""; string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : "";
sb.AppendLine($" <el-form-item label=\"{ labelName}\" :label-width=\"labelWidth\">"); sb.AppendLine($" <el-form-item label=\"{ labelName}\" :label-width=\"labelWidth\">");
sb.AppendLine($" <el-input v-model{inputNumTxt}=\"queryParams.{CodeGeneratorTool.FirstLowerCase(dbFieldInfo.CsharpField)}\" />"); sb.AppendLine($" <el-input v-model{inputNumTxt}=\"queryParams.{dbFieldInfo.ColumnName}\" placeholder=\"请输入{dbFieldInfo.ColumnComment}\" size=\"small\"/>");
sb.AppendLine(" </el-form-item>"); sb.AppendLine(" </el-form-item>");
} }
@ -225,11 +237,11 @@ namespace ZR.CodeGenerator
string showToolTip = dbFieldInfo.CsharpType == "string" ? ":show-overflow-tooltip=\"true\"" : ""; string showToolTip = dbFieldInfo.CsharpType == "string" ? ":show-overflow-tooltip=\"true\"" : "";
string formatter = !string.IsNullOrEmpty(dbFieldInfo.DictType) ? $" :formatter=\"{columnName}Format\"" : ""; string formatter = !string.IsNullOrEmpty(dbFieldInfo.DictType) ? $" :formatter=\"{columnName}Format\"" : "";
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
var sortField = genTable?.SortField ?? "";
//有排序字段 //有排序字段
if (!string.IsNullOrEmpty(genTable?.SortField.ToString()) && genTable?.SortField.ToString() == dbFieldInfo.CsharpField) if (!string.IsNullOrEmpty(sortField.ToString()) && sortField.ToString() == dbFieldInfo.CsharpField && !dbFieldInfo.IsPk && CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType))
{ {
sb.AppendLine($@" <el-table-column prop=""{columnName}"" label=""排序"" width=""90"" sortable align=""center"">"); sb.AppendLine($@" <el-table-column prop=""{columnName}"" label=""{label}"" width=""90"" sortable align=""center"">");
sb.AppendLine(@" <template slot-scope=""scope"">"); sb.AppendLine(@" <template slot-scope=""scope"">");
sb.AppendLine($@" <el-input size=""mini"" style=""width:50px"" controls-position=""no"" v-model.number=""scope.row.{columnName}"" @blur=""handleChangeSort(scope.row, scope.row.{columnName})"" v-if=""showEditSort"" />"); sb.AppendLine($@" <el-input size=""mini"" style=""width:50px"" controls-position=""no"" v-model.number=""scope.row.{columnName}"" @blur=""handleChangeSort(scope.row, scope.row.{columnName})"" v-if=""showEditSort"" />");
sb.AppendLine($" <span v-else>{{{{scope.row.{columnName}}}}}</span>"); sb.AppendLine($" <span v-else>{{{{scope.row.{columnName}}}}}</span>");
@ -238,7 +250,7 @@ namespace ZR.CodeGenerator
} }
else if (dbFieldInfo.IsList && dbFieldInfo.HtmlType.Equals(GenConstants.HTML_IMAGE_UPLOAD)) else if (dbFieldInfo.IsList && dbFieldInfo.HtmlType.Equals(GenConstants.HTML_IMAGE_UPLOAD))
{ {
sb.AppendLine($" <el-table-column prop=\"{columnName}\" label=\"图片\">"); sb.AppendLine($" <el-table-column prop=\"{columnName}\" label=\"{label}\">");
sb.AppendLine(" <template slot-scope=\"scope\">"); sb.AppendLine(" <template slot-scope=\"scope\">");
sb.AppendLine($" <el-image class=\"table-td-thumb\" :src=\"scope.row.{columnName}\" :preview-src-list=\"[scope.row.{columnName}]\"></el-image>"); sb.AppendLine($" <el-image class=\"table-td-thumb\" :src=\"scope.row.{columnName}\" :preview-src-list=\"[scope.row.{columnName}]\"></el-image>");
sb.AppendLine(" </template>"); sb.AppendLine(" </template>");

View File

@ -46,7 +46,7 @@ namespace ZR.CodeGenerator
/// <param name="dto"></param> /// <param name="dto"></param>
public static void GenerateSingle(GenerateDto dto) public static void GenerateSingle(GenerateDto dto)
{ {
string PKName = "id"; string PKName = "Id";
string PKType = "int"; string PKType = "int";
ReplaceDto replaceDto = new(); ReplaceDto replaceDto = new();
replaceDto.ModelTypeName = dto.GenTable.ClassName;//表名对应C# 实体类名 replaceDto.ModelTypeName = dto.GenTable.ClassName;//表名对应C# 实体类名
@ -66,7 +66,7 @@ namespace ZR.CodeGenerator
replaceDto.UploadFile = 1; replaceDto.UploadFile = 1;
} }
CodeGenerateTemplate.GetQueryDtoProperty(dbFieldInfo, replaceDto); CodeGenerateTemplate.GetQueryDtoProperty(dbFieldInfo, replaceDto);
replaceDto.VueViewFormHtml += CodeGenerateTemplate.TplVueFormContent(dbFieldInfo); replaceDto.VueViewFormHtml += CodeGenerateTemplate.TplVueFormContent(dbFieldInfo);
replaceDto.VueViewListHtml += CodeGenerateTemplate.TplTableColumn(dbFieldInfo, dto.GenTable); replaceDto.VueViewListHtml += CodeGenerateTemplate.TplTableColumn(dbFieldInfo, dto.GenTable);
replaceDto.VueViewEditFormRuleContent += CodeGenerateTemplate.TplFormRules(dbFieldInfo); replaceDto.VueViewEditFormRuleContent += CodeGenerateTemplate.TplFormRules(dbFieldInfo);
@ -177,7 +177,7 @@ namespace ZR.CodeGenerator
{ {
var fullPath = Path.Combine(generateDto.GenCodePath, _option.ApiControllerNamespace, "Controllers", generateDto.GenTable.ModuleName, $"{replaceDto.ModelTypeName}Controller.cs"); var fullPath = Path.Combine(generateDto.GenCodePath, _option.ApiControllerNamespace, "Controllers", generateDto.GenTable.ModuleName, $"{replaceDto.ModelTypeName}Controller.cs");
var tpl = FileHelper.ReadJtTemplate("TplControllers.txt"); var tpl = FileHelper.ReadJtTemplate("TplControllers.txt");
tpl.Set("QueryCondition", replaceDto.QueryCondition); tpl.Set("QueryCondition", replaceDto.QueryCondition);
var result = tpl.Render(); var result = tpl.Render();
generateDto.GenCodes.Add(new GenCode(5, "Controller", fullPath, result)); generateDto.GenCodes.Add(new GenCode(5, "Controller", fullPath, result));
@ -278,10 +278,11 @@ namespace ZR.CodeGenerator
/// <returns>业务名</returns> /// <returns>业务名</returns>
public static string GetBusinessName(string tableName) public static string GetBusinessName(string tableName)
{ {
int lastIndex = tableName.LastIndexOf("_"); int lastIndex = tableName.IndexOf("_");//_前缀长度
int nameLength = tableName.Length; int nameLength = tableName.Length;
string businessName = tableName[(nameLength - lastIndex + 1)..]; int subLength = (nameLength - lastIndex) - 1;
return businessName.ToLower(); string businessName = tableName[(lastIndex + 1)..];
return businessName.Replace("_", "").ToLower();
} }
/// <summary> /// <summary>
@ -396,7 +397,11 @@ namespace ZR.CodeGenerator
{ {
genTableColumn.IsList = true; genTableColumn.IsList = true;
} }
//时间类型初始化between范围查询
if (genTableColumn.CsharpType == GenConstants.TYPE_DATE)
{
genTableColumn.QueryType = "BETWEEN";
}
genTableColumns.Add(genTableColumn); genTableColumns.Add(genTableColumn);
} }
return genTableColumns; return genTableColumns;
@ -420,6 +425,7 @@ namespace ZR.CodeGenerator
options.OutMode = OutMode.Auto; options.OutMode = OutMode.Auto;
//options.DisableeLogogram = true;//禁用简写 //options.DisableeLogogram = true;//禁用简写
options.Data.Set("refs", "$");//特殊标签替换 options.Data.Set("refs", "$");//特殊标签替换
options.Data.Set("confirm", "$");//特殊标签替换
options.Data.Set("replaceDto", replaceDto); options.Data.Set("replaceDto", replaceDto);
options.Data.Set("options", dto.GenOptions); options.Data.Set("options", dto.GenOptions);
options.Data.Set("genTable", dto.GenTable); options.Data.Set("genTable", dto.GenTable);

View File

@ -3,7 +3,7 @@
ENV = 'development' ENV = 'development'
# ZR管理系统/开发环境 # ZR管理系统/开发环境
VUE_APP_BASE_API = 'http://localhost:8888/' VUE_APP_BASE_API = '/dev-api'
# 路由前缀 # 路由前缀
VUE_APP_ROUTER_PREFIX = '/' VUE_APP_ROUTER_PREFIX = '/'

8
ZR.Vue/.env.staging Normal file
View File

@ -0,0 +1,8 @@
# 测试环境配置
ENV = 'staging'
# ZR管理系统/生产环境
VUE_APP_BASE_API = '/stage-api'
# 路由前缀
VUE_APP_ROUTER_PREFIX = '/'

View File

@ -16,7 +16,7 @@ import './assets/icons' // icon
import './permission' // permission control import './permission' // permission control
import { getDicts } from "@/api/system/dict/data"; import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/system/config"; import { getConfigKey } from "@/api/system/config";
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, download, handleTree } from "@/utils/ruoyi"; import { parseTime, resetForm, addDateRange, addDateRange2, selectDictLabel, selectDictLabels, download, handleTree } from "@/utils/ruoyi";
//分页组件 //分页组件
import Pagination from "@/components/Pagination"; import Pagination from "@/components/Pagination";
//自定义表格工具扩展 //自定义表格工具扩展
@ -36,6 +36,7 @@ Vue.prototype.getConfigKey = getConfigKey
Vue.prototype.parseTime = parseTime Vue.prototype.parseTime = parseTime
Vue.prototype.resetForm = resetForm Vue.prototype.resetForm = resetForm
Vue.prototype.addDateRange = addDateRange Vue.prototype.addDateRange = addDateRange
Vue.prototype.addDateRange2 = addDateRange2
Vue.prototype.selectDictLabel = selectDictLabel Vue.prototype.selectDictLabel = selectDictLabel
Vue.prototype.selectDictLabels = selectDictLabels Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.download = download Vue.prototype.download = download

View File

@ -65,6 +65,17 @@ export function addDateRange(params, dateRange) {
return search; return search;
} }
export function addDateRange2(dateRange, index) {
console.log(dateRange);
var time = "";
if (null != dateRange && '' != dateRange) {
if (dateRange.length <= 2) {
time = dateRange[index];
}
}
return time;
}
// 回显数据字典 // 回显数据字典
export function selectDictLabel(datas, value) { export function selectDictLabel(datas, value) {
var actions = []; var actions = [];

View File

@ -53,8 +53,7 @@
</el-table-column> </el-table-column>
<el-table-column label="查询" min-width="5%"> <el-table-column label="查询" min-width="5%">
<template slot-scope="scope"> <template slot-scope="scope">
<el-checkbox v-model="scope.row.isQuery" <el-checkbox v-model="scope.row.isQuery" :disabled="scope.row.htmlType == 'imageUpload' || scope.row.htmlType == 'fileUpload'">
:disabled="scope.row.htmlType == 'imageUpload' || scope.row.htmlType == 'fileUpload'">
</el-checkbox> </el-checkbox>
</template> </template>
</el-table-column> </el-table-column>
@ -90,7 +89,7 @@
</el-table-column> </el-table-column>
<el-table-column label="字典类型" min-width="12%"> <el-table-column label="字典类型" min-width="12%">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.dictType" clearable filterable placeholder="请选择"> <el-select v-model="scope.row.dictType" clearable filterable placeholder="请选择" :disabled="scope.row.htmlType == 'datetime'">
<el-option v-for="dict in dictOptions" :key="dict.dictType" :label="dict.dictName" :value="dict.dictType"> <el-option v-for="dict in dictOptions" :key="dict.dictType" :label="dict.dictName" :value="dict.dictType">
<span style="float: left">{{ dict.dictName }}</span> <span style="float: left">{{ dict.dictName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ dict.dictType }}</span> <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.dictType }}</span>
@ -101,7 +100,7 @@
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="生成信息" name="genInfo"> <el-tab-pane label="生成信息" name="genInfo">
<gen-info-form ref="genInfo" :info="info" :tables="tables" :menus="menus" :columns="cloumns"/> <gen-info-form ref="genInfo" :info="info" :tables="tables" :menus="menus" :columns="cloumns" />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<el-form label-width="100px"> <el-form label-width="100px">

View File

@ -75,7 +75,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item> <el-form-item>
<span slot="label"> <span slot="label">
排序字段 查询排序字段
</span> </span>
<el-select v-model="info.sortField" placeholder="请选择字段" class="mr10" clearable=""> <el-select v-model="info.sortField" placeholder="请选择字段" class="mr10" clearable="">

View File

@ -34,11 +34,11 @@ module.exports = {
open: true, open: true,
proxy: { proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
'/api': { [process.env.VUE_APP_BASE_API]: {
target: process.env.VUE_APP_BASE_API, target: 'http://localhost:8888/',// 后端接口地址
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
'^/api': ''//需要rewrite的 ['^' + process.env.VUE_APP_BASE_API]: ''//需要rewrite的
} }
} }
}, },