优化代码生成功能

This commit is contained in:
不做码农 2021-12-08 13:31:31 +08:00
parent c169ec18cd
commit ca9fadaef6
6 changed files with 52 additions and 44 deletions

View File

@ -67,7 +67,6 @@
<ItemGroup>
<Folder Include="Controllers\business\" />
<Folder Include="Controllers\demo\" />
<Folder Include="wwwroot\export\" />
<Folder Include="wwwroot\Generatecode\" />
<Folder Include="wwwroot\uploads\" />

View File

@ -18,10 +18,10 @@
"cors": "http://localhost:8887" //","
},
"JwtSettings": {
"Issuer": "https://localhost:8888",
"Audience": "https://localhost:8888",
"SecretKey": "Hello-key-ZRADMIN.NET-20210101",
"Expire": 5
"Issuer": "ZRAdmin.NET",
"Audience": "ZRAdmin.NET",
"SecretKey": "SecretKey-ZRADMIN.NET-20210101",
"Expire": 30
},
"DemoMode": false, //
"DbKey": "", //key

View File

@ -38,9 +38,7 @@ ${VueViewListContent}
<el-table-column label="操作" align="center" width="200">
<template slot-scope="scope">
<el-button v-hasPermi="['${replaceDto.PermissionPrefix}:update']" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">编辑</el-button>
<el-popconfirm title="确定删除吗?" @confirm="handleDelete(scope.row)" style="margin-left:10px">
<el-button slot="reference" v-hasPermi="['${replaceDto.PermissionPrefix}:delete']" type="text" icon="el-icon-delete">删除</el-button>
</el-popconfirm>
<el-button v-hasPermi="['${replaceDto.PermissionPrefix}:delete']" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@ -50,7 +48,7 @@ ${VueViewListContent}
<el-dialog :title="title" :lock-scroll="false" :visible.sync="open" >
<el-form ref="form" :model="form" :rules="rules" :label-width="formLabelWidth">
<el-row>
${VueViewFormContent}
${VueViewFormContent}
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" v-if="btnSubmitVisible">
@ -91,7 +89,10 @@ export default {
// 显示搜索条件
showSearch: true,
// 查询参数
queryParams: {},
queryParams: {
pageNum: 1,
pageSize: 20
},
// 弹出层标题
title: "",
// 是否显示弹出层
@ -109,7 +110,6 @@ $elseif(item.HtmlType == "datetime" && item.IsQuery == true)
dateRange${item.CsharpField}: [],
$end
$end
$if(genTable.SortField != "" && genTable.SortField != null)
// 是否显示编辑排序
showEditSort: false,
@ -122,7 +122,14 @@ $end
btnSubmitVisible: true,
// 表单校验
rules: {
${VueViewEditFormRuleContent}
$foreach(column in genTable.Columns)
$if(column.IsRequired)
${column.ColumnName}: [
{ required: true, message: "${column.ColumnComment}不能为空", trigger: $if(column.htmlType == "select")"change"$else"blur"$end
$if(column.CsharpType == "int" || column.CsharpType == "long"), type: "number"$end }
],
$end
$end
},
};
},
@ -181,11 +188,6 @@ $if(item.HtmlType == "datetime" && item.IsQuery == true)
$end
$end
this.resetForm("queryForm");
this.queryParams = {
pageNum: 1,
pageSize: 20,
//TODO 重置字段
};
this.handleQuery();
},
// 多选框选中数据
@ -196,6 +198,7 @@ $end
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 新增按钮操作 */
@ -207,10 +210,16 @@ $end
/** 删除按钮操作 */
handleDelete(row) {
const Ids = row.${replaceDto.FistLowerPk} || this.ids;
del${genTable.BusinessName}(Ids).then((res) => {
this.msgSuccess("删除成功");
this.handleQuery();
});
this.${confirm}confirm('是否确认删除参数编号为"' + Ids + '"的数据项?')
.then(function () {
return del${genTable.BusinessName}(Ids);
})
.then(() => {
this.handleQuery();
this.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 修改按钮操作 */
handleUpdate(row) {

View File

@ -42,25 +42,25 @@ namespace ZR.CodeGenerator
#region vue
/// <summary>
/// Vue rules
/// </summary>
/// <param name="dbFieldInfo"></param>
/// <returns></returns>
public static string TplFormRules(GenTableColumn dbFieldInfo)
{
StringBuilder sbRule = new StringBuilder();
//Rule 规则验证
if (!dbFieldInfo.IsPk && !dbFieldInfo.IsIncrement && dbFieldInfo.IsRequired)
{
sbRule.AppendLine($" {dbFieldInfo.ColumnName}: [{{ required: true, message: '请输入{dbFieldInfo.ColumnComment}', trigger: \"blur\"}}],");
}
else if (CodeGeneratorTool.IsNumber(dbFieldInfo.ColumnType) && dbFieldInfo.IsRequired)
{
sbRule.AppendLine($" {dbFieldInfo.ColumnName}: [{{ type: 'number', message: '{dbFieldInfo.ColumnName}必须为数字值', trigger: \"blur\"}}],");
}
return sbRule.ToString();
}
///// <summary>
///// Vue rules
///// </summary>
///// <param name="dbFieldInfo"></param>
///// <returns></returns>
//public static string TplFormRules(GenTableColumn dbFieldInfo)
//{
// StringBuilder sbRule = new StringBuilder();
// //Rule 规则验证
// if (!dbFieldInfo.IsPk && !dbFieldInfo.IsIncrement && dbFieldInfo.IsRequired)
// {
// sbRule.AppendLine($" {dbFieldInfo.ColumnName}: [{{ required: true, message: '请输入{dbFieldInfo.ColumnComment}', trigger: \"blur\"}}],");
// }
// else if (CodeGeneratorTool.IsNumber(dbFieldInfo.ColumnType) && dbFieldInfo.IsRequired)
// {
// sbRule.AppendLine($" {dbFieldInfo.ColumnName}: [{{ type: 'number', message: '{dbFieldInfo.ColumnName}必须为数字值', trigger: \"blur\"}}],");
// }
// return sbRule.ToString();
//}
/// <summary>
/// Vue 添加修改表单
@ -133,7 +133,7 @@ namespace ZR.CodeGenerator
{
sb.AppendLine(" <el-col :span=\"24\">");
sb.AppendLine($" <el-form-item label=\"{ labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">");
sb.AppendLine($" <el-input type=\"textarea\" v-model=\"form.{columnName}\" placeholder=\"请输入内容\"/>");
sb.AppendLine($" <el-input type=\"textarea\" v-model=\"form.{columnName}\" placeholder=\"请输入{labelName}\"/>");
sb.AppendLine(" </el-form-item>");
sb.AppendLine(" </el-col>");
}

View File

@ -69,7 +69,7 @@ namespace ZR.CodeGenerator
replaceDto.VueViewFormHtml += CodeGenerateTemplate.TplVueFormContent(dbFieldInfo);
replaceDto.VueViewListHtml += CodeGenerateTemplate.TplTableColumn(dbFieldInfo, dto.GenTable);
replaceDto.VueViewEditFormRuleContent += CodeGenerateTemplate.TplFormRules(dbFieldInfo);
//replaceDto.VueViewEditFormRuleContent += CodeGenerateTemplate.TplFormRules(dbFieldInfo);
replaceDto.VueQueryFormHtml += CodeGenerateTemplate.TplQueryFormHtml(dbFieldInfo);
}

View File

@ -79,7 +79,7 @@
<el-option label="文本域" value="textarea" />
<el-option label="下拉框" value="select" />
<el-option label="单选框" value="radio" />
<el-option label="复选框" value="checkbox" />
<!-- <el-option label="复选框" value="checkbox" /> -->
<el-option label="日期控件" value="datetime" />
<el-option label="图片上传" value="imageUpload" />
<el-option label="文件上传" value="fileUpload" />
@ -89,7 +89,7 @@
</el-table-column>
<el-table-column label="字典类型" min-width="12%">
<template slot-scope="scope">
<el-select v-model="scope.row.dictType" clearable filterable placeholder="请选择" :disabled="scope.row.htmlType == 'datetime'">
<el-select v-model="scope.row.dictType" clearable filterable placeholder="请选择" v-if="scope.row.htmlType == 'select' || scope.row.htmlType == 'radio' || scope.row.htmlType =='checkbox'">
<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: right; color: #8492a6; font-size: 13px">{{ dict.dictType }}</span>