代码生成新增加排序生成

This commit is contained in:
不做码农 2021-12-02 21:38:05 +08:00
parent 84aeb9b27b
commit 60f2d9934c
9 changed files with 116 additions and 40 deletions

1
.gitignore vendored
View File

@ -267,3 +267,4 @@ __pycache__/
/ZR.Admin.WebApi/wwwroot/uploads
/ZR.Admin.WebApi/wwwroot/Generatecode
/ZR.Admin.WebApi/wwwroot/export
/ZR.Vue/src/views/business/Gendemo.vue

View File

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

View File

@ -51,7 +51,6 @@ namespace ${options.ApiControllerNamespace}.Controllers
var predicate = Expressionable.Create<${replaceDto.ModelTypeName}>();
//搜索条件查询语法参考Sqlsugar
//predicate = predicate.And(m => m.Name.Contains(parm.Name));
${QueryCondition}
$if(genTable.SortField != "")
var response = _${replaceDto.ModelTypeName}Service.GetPages(predicate.ToExpression(), parm, x => x.${genTable.SortField}, "${genTable.SortType}");
@ -161,5 +160,25 @@ ${end}
string sFileName = ExportExcel(list, "${replaceDto.ModelTypeName}", "${genTable.FunctionName}");
return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName });
}
$if(genTable.SortField != "")
/// <summary>
/// 保存排序
/// </summary>
/// <param name="id"></param>
/// <param name="orderNum"></param>
/// <returns></returns>
[ActionPermissionFilter(Permission = "${replaceDto.PermissionPrefix}:update")]
[HttpGet("ChangeSort")]
[Log(Title = "保存排序", BusinessType = BusinessType.UPDATE)]
public IActionResult ChangeSort(int id = 0, int orderNum = 0)
{
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 });;
return SUCCESS(result);
}
$end
}
}

View File

@ -20,6 +20,11 @@ ${vueQueryFormHtml}
<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-col>
$if(genTable.SortField != "")
<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-col>
$end
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -59,7 +64,10 @@ import {
add${genTable.BusinessName},
del${genTable.BusinessName},
update${genTable.BusinessName},
get${genTable.BusinessName}
get${genTable.BusinessName},
$if(genTable.SortField != "")
changeSort
$end
} from '@/api/${genTable.ModuleName}/${lowerBusinessName}.js';
export default {
@ -68,7 +76,7 @@ export default {
return {
labelWidth: "100px",
formLabelWidth:"100px",
// 选中${replaceDto.PKName}数组
// 选中${replaceDto.FistLowerPk}数组
ids: [],
// 非单个禁用
single: true,
@ -91,12 +99,16 @@ export default {
$foreach(item in genTable.Columns)
$if((item.HtmlType == "radio" || item.HtmlType == "select"))
// ${item.ColumnComment}选项列表
${item.CsharpField2}Options: [],
${item.ColumnName}Options: [],
$end
$end
$if(replaceDto.UploadFile == 1)
//文件上传地址
uploadUrl: process.env.VUE_APP_BASE_API + "upload/SaveFile",
$end
$if(genTable.SortField != "")
// 是否显示编辑排序
showEditSort: false,
$end
// 数据列表
dataList: [],
@ -117,7 +129,7 @@ ${VueViewEditFormRuleContent}
$foreach(item in genTable.Columns)
$if((item.HtmlType == "radio" || item.HtmlType == "select") && item.DictType != "")
this.getDicts("${item.DictType}").then((response) => {
this.${item.CsharpField2}Options = response.data;
this.${item.ColumnName}Options = response.data;
})
$end
$end
@ -162,7 +174,7 @@ $end
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.${replaceDto.PKName});
this.ids = selection.map((item) => item.${replaceDto.FistLowerPk});
this.single = selection.length != 1
this.multiple = !selection.length;
},
@ -178,7 +190,7 @@ $end
},
/** 删除按钮操作 */
handleDelete(row) {
const Ids = row.${replaceDto.PKName} || this.ids;
const Ids = row.${replaceDto.FistLowerPk} || this.ids;
del${genTable.BusinessName}(Ids).then((res) => {
this.msgSuccess("删除成功");
this.handleQuery();
@ -187,8 +199,8 @@ $end
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const ${replaceDto.PKName} = row.${replaceDto.PKName} || this.ids;
get${genTable.BusinessName}(${replaceDto.PKName}).then((res) => {
const id = row.${replaceDto.FistLowerPk} || this.ids;
get${genTable.BusinessName}(id).then((res) => {
if (res.code == 200) {
this.form = res.data;
this.open = true;
@ -196,6 +208,22 @@ $end
}
});
},
$if(genTable.SortField != "")
// 显示编辑排序
handleShowSort() {
this.showEditSort = !this.showEditSort;
},
// 保存排序
handleChangeSort(item, orderNum) {
changeSort({ orderNum: orderNum, id: item.${replaceDto.FistLowerPk} }).then(
(response) => {
this.msgSuccess("修改成功");
this.getList();
this.showEditSort = false;
}
);
},
$end
$if(replaceDto.UploadFile == 1)
//文件上传前判断方法
beforeFileUpload(file) {
@ -231,7 +259,7 @@ $end
if (valid) {
console.log(JSON.stringify(this.form));
if (this.form.${replaceDto.PKName} != undefined || this.title === "修改数据") {
if (this.form.${replaceDto.FistLowerPk} != undefined || this.title === "修改数据") {
update${genTable.BusinessName}(this.form).then((res) => {
if (!res.data) {
this.msgError("修改失败");

View File

@ -64,4 +64,16 @@ export function export${replaceDto.ModelTypeName}(query) {
method: 'get',
params: query
})
}
}
$if(genTable.SortField != "")
//排序
export function changeSort(data) {
return request({
url: '${genTable.ModuleName}/${replaceDto.ModelTypeName}/ChangeSort',
method: 'get',
params: data
})
}
$end

View File

@ -215,15 +215,27 @@ namespace ZR.CodeGenerator
/// Vue 查询列表
/// </summary>
/// <param name="dbFieldInfo"></param>
/// <param name="genTable"></param>
/// <returns></returns>
public static string TplTableColumn(GenTableColumn dbFieldInfo)
public static string TplTableColumn(GenTableColumn dbFieldInfo, GenTable genTable)
{
string columnName = dbFieldInfo.ColumnName;
string label = CodeGeneratorTool.GetLabelName(dbFieldInfo.ColumnComment, columnName);
string showToolTip = dbFieldInfo.CsharpType == "string" ? ":show-overflow-tooltip=\"true\"" : "";
string formatter = !string.IsNullOrEmpty(dbFieldInfo.DictType) ? $" :formatter=\"{columnName}Format\"" : "";
StringBuilder sb = new StringBuilder();
if (dbFieldInfo.IsList && dbFieldInfo.HtmlType.Equals(GenConstants.HTML_IMAGE_UPLOAD))
//有排序字段
if (!string.IsNullOrEmpty(genTable?.SortField.ToString()) && genTable?.SortField.ToString() == dbFieldInfo.CsharpField)
{
sb.AppendLine($@" <el-table-column prop=""{columnName}"" label=""排序"" width=""90"" sortable align=""center"">");
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($" <span v-else>{{{{scope.row.{columnName}}}}}</span>");
sb.AppendLine(@" </template>");
sb.AppendLine(@" </el-table-column>");
}
else if (dbFieldInfo.IsList && dbFieldInfo.HtmlType.Equals(GenConstants.HTML_IMAGE_UPLOAD))
{
sb.AppendLine($" <el-table-column prop=\"{columnName}\" label=\"图片\">");
sb.AppendLine(" <template slot-scope=\"scope\">");

View File

@ -53,14 +53,9 @@ namespace ZR.CodeGenerator
replaceDto.PermissionPrefix = $"{dto.GenTable.ModuleName}:{dto.GenTable.ClassName.ToLower()}";//权限
replaceDto.Author = dto.GenTable.FunctionAuthor;
//StringBuilder sb1 = new StringBuilder();
//StringBuilder sb2 = new StringBuilder();
//循环表字段信息
foreach (GenTableColumn dbFieldInfo in dto.GenTable.Columns)
{
string columnName = dbFieldInfo.ColumnName;
if (dbFieldInfo.IsPk || dbFieldInfo.IsIncrement)
{
PKName = dbFieldInfo.CsharpField;
@ -73,13 +68,14 @@ namespace ZR.CodeGenerator
CodeGenerateTemplate.GetQueryDtoProperty(dbFieldInfo, replaceDto);
replaceDto.VueViewFormHtml += CodeGenerateTemplate.TplVueFormContent(dbFieldInfo);
replaceDto.VueViewListHtml += CodeGenerateTemplate.TplTableColumn(dbFieldInfo);
replaceDto.VueViewListHtml += CodeGenerateTemplate.TplTableColumn(dbFieldInfo, dto.GenTable);
replaceDto.VueViewEditFormRuleContent += CodeGenerateTemplate.TplFormRules(dbFieldInfo);
replaceDto.VueQueryFormHtml += CodeGenerateTemplate.TplQueryFormHtml(dbFieldInfo);
}
replaceDto.PKName = PKName;
replaceDto.PKType = PKType;
replaceDto.FistLowerPk = FirstLowerCase(PKName);
InitJntTemplate(dto, replaceDto);
GenerateModels(replaceDto, dto);
@ -308,16 +304,6 @@ namespace ZR.CodeGenerator
{
return string.IsNullOrEmpty(columnDescription) ? columnName : columnDescription;
}
///// <summary>
///// 判断是否给属性添加?
///// </summary>
///// <param name="dbFieldInfo"></param>
///// <returns></returns>
//public static string GetModelRequired(GenTableColumn dbFieldInfo)
//{
// return (!dbFieldInfo.IsRequired && (IsNumber(dbFieldInfo.ColumnType) || dbFieldInfo.CsharpType == "DateTime")) ? "?" : "";
//}
/// <summary>
/// 获取C# 类型
/// </summary>

View File

@ -9,6 +9,10 @@ namespace ZR.CodeGenerator.Model
/// </summary>
public string PKName { get; set; }
/// <summary>
/// 首字母小写主键
/// </summary>
public string FistLowerPk{ get; set; }
/// <summary>
/// 主键类型
/// </summary>
public string PKType { get; set; }

View File

@ -13,26 +13,33 @@ namespace ZR.Model.System.Generate
{
[SugarColumn(IsIdentity = true, IsPrimaryKey = true)]
public int ColumnId { get; set; }
/// <summary>
/// 导入代码生成表列名 首字母转了小写
/// </summary>
public string ColumnName { get; set; }
[SugarColumn(IsOnlyIgnoreUpdate = true)]
public int TableId { get; set; }
[SugarColumn(IsOnlyIgnoreUpdate = true)]
public string TableName { get; set; }
/// <summary>
/// 列说明
/// </summary>
public string ColumnComment { get; set; }
/// <summary>
/// 数据库列类型
/// </summary>
[SugarColumn(IsOnlyIgnoreUpdate = true)]
public string ColumnType { get; set; }
/// <summary>
/// C#类型
/// </summary>
public string CsharpType { get; set; }
/// <summary>
/// C# 字段名 首字母大写
/// </summary>
public string CsharpField { get; set; }
[SugarColumn(IsIgnore = true)]
public string CsharpField2
{
get
{
return CsharpField.Substring(0, 1).ToLower() + CsharpField[1..];
}
}
/// <summary>
/// 是否主键1是
/// </summary>
@ -42,20 +49,26 @@ namespace ZR.Model.System.Generate
/// 是否必填1是
/// </summary>
public bool IsRequired { get; set; }
/// <summary>
/// 是否自增1是
/// </summary>
[SugarColumn(IsOnlyIgnoreUpdate = true)]
public bool IsIncrement { get; set; }
/// <summary>
/// 是否插入
/// 是否插入1是
/// </summary>
public bool IsInsert { get; set; }
/// <summary>
/// 是否需要编辑
/// 是否需要编辑1是
/// </summary>
public bool IsEdit { get; set; }
/// <summary>
/// isList
/// 是否显示列表1是
/// </summary>
public bool IsList { get; set; }
/// <summary>
/// 是否查询1是
/// </summary>
public bool IsQuery { get; set; }
/// <summary>
/// 显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)