优化代码生成

This commit is contained in:
不做码农
2022-05-24 18:42:40 +08:00
21 changed files with 300 additions and 280 deletions

View File

@@ -204,7 +204,7 @@ namespace ZR.Admin.WebApi.Controllers
var genTable = genTableDto.Adapt<GenTable>().ToUpdate(HttpContext);
//将前端额外参数转成字符串存入Options中
genTable.Options = JsonConvert.SerializeObject(genTableDto.Params);
genTable.Options = genTableDto.Params.Adapt<Options>();
DbResult<bool> result = GenTableService.UseTran(() =>
{
int rows = GenTableService.UpdateGenTable(genTable);

View File

@@ -38,12 +38,13 @@ namespace ZR.Admin.WebApi.Hubs
public override Task OnConnectedAsync()
{
var name = Context.User.Identity.Name;
var ip = HttpContextExtension.GetClientUserIp(App.HttpContext);
LoginUser loginUser = JwtUtil.GetLoginUser(App.HttpContext);
var user = clientUsers.Any(u => u.ConnnectionId == Context.ConnectionId);
//判断用户是否存在,否则添加集合
if (!user && Context.User.Identity.IsAuthenticated)
{
clientUsers.Add(new OnlineUsers(Context.ConnectionId, name, loginUser?.UserId));
clientUsers.Add(new OnlineUsers(Context.ConnectionId, name, loginUser?.UserId, ip));
Console.WriteLine($"{DateTime.Now}{name},{Context.ConnectionId}连接服务端success当前已连接{clientUsers.Count}个");
//Clients.All.SendAsync("welcome", $"欢迎您:{name},当前时间:{DateTime.Now}");
Clients.All.SendAsync(HubsConstant.MoreNotice, SendNotice());

View File

@@ -16,13 +16,15 @@ namespace ZR.Admin.WebApi.Hubs
public long? Userid { get; set; }
public string Name { get; set; }
public DateTime LoginTime { get; set; }
public OnlineUsers(string clientid, string name, long? userid)
public string UserIP { get; set; }
public OnlineUsers(string clientid, string name, long? userid, string? userip)
{
ConnnectionId = clientid;
Name = name;
LoginTime = DateTime.Now;
Userid = userid;
UserIP = userip;
}
}
}

View File

@@ -3,7 +3,6 @@ $set(labelName = "")
$set(labelDisabled = "")
$set(columnName = column.CsharpFieldFl)
$set(value = "item.dictValue")
$if(column.ColumnComment != "")
$set(labelName = column.ColumnComment)
$else

View File

@@ -2,7 +2,7 @@
-- 菜单
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by, create_time)
VALUES ('${genTable.functionName}', ${parentId}, 999, '${genTable.BusinessName}', '${tool.FirstLowerCase(genTable.ModuleName)}/${genTable.BusinessName}', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', '', 'system', sysdate());
VALUES ('${genTable.functionName}', ${parentId}, 999, '${genTable.BusinessName}', '${tool.FirstLowerCase(genTable.ModuleName)}/${genTable.BusinessName}', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', 'icon1', 'system', sysdate());
-- 按钮父菜单id
SELECT @menuId := LAST_INSERT_ID();

View File

@@ -2,7 +2,7 @@
-- ${genTable.functionName}菜单
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by, create_time)
VALUES ('${genTable.functionName}', ${parentId}, 999, '${genTable.BusinessName}', '${tool.FirstLowerCase(genTable.ModuleName)}/${genTable.BusinessName}', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', '', 'system', GETDATE());
VALUES ('${genTable.functionName}', ${parentId}, 999, '${genTable.BusinessName}', '${tool.FirstLowerCase(genTable.ModuleName)}/${genTable.BusinessName}', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', 'icon1', 'system', GETDATE());
-- 按钮父菜单id
declare @menuId int = @@identity

View File

@@ -16,7 +16,7 @@ namespace ${options.ModelsNamespace}.Models
{
$foreach(item in genTable.Columns)
/// <summary>
/// 描述 : ${item.ColumnComment}
/// 描述 :${item.ColumnComment} ${item.Remark}
/// 空值 :$if(item.IsRequired == "True") false $else true $end
/// </summary>
$if(replaceDto.ShowBtnExport)

View File

@@ -56,8 +56,8 @@ $end
$if(null != genTable.SubTableName && "" != genTable.SubTableName)
.Includes(it => it.Sub.MappingField(z => z.${genTable.SubTableFkName}, () => it.${replaceDto.PKName}))
$end
$if(genTable.SortField != "" && genTable.SortField != null)
.OrderBy("${genTable.SortField} ${genTable.SortType}")
$if(genTable.Options.SortField != "" && genTable.Options.SortField != null)
.OrderBy("${genTable.Options.SortField} ${genTable.Options.SortType}")
$end
.Where(predicate.ToExpression())
.ToPage(parm);
@@ -88,7 +88,7 @@ $end
$end
var response = _${replaceDto.ModelTypeName}Repository.Queryable().Where(predicate.ToExpression())
.ToTree(it => it.Children, it => it.${genTable.TreeParentCode}, 0);
.ToTree(it => it.Children, it => it.${genTable.Options.TreeParentCode}, 0);
return response;
}

View File

@@ -38,7 +38,7 @@ $end
<!-- 数据区域 -->
<el-table v-if="refreshTable" :data="dataList" v-loading="loading" ref="table" border highlight-current-row @selection-change="handleSelectionChange"
:default-expand-all="isExpandAll" row-key="${tool.FirstLowerCase(genTable.TreeCode)}" :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
:default-expand-all="isExpandAll" row-key="${tool.FirstLowerCase(genTable.Options.TreeCode)}" :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
<el-table-column type="selection" width="50" align="center"/>
${VueViewListContent}
<el-table-column label="操作" align="center" width="140">
@@ -204,8 +204,8 @@ $end
delete node.children;
}
return {
id: node.${tool.FirstLowerCase(genTable.TreeCode)},
label: node.${tool.FirstLowerCase(genTable.TreeName)},
id: node.${tool.FirstLowerCase(genTable.Options.TreeCode)},
label: node.${tool.FirstLowerCase(genTable.Options.TreeName)},
children: node.children,
};
},

View File

@@ -156,8 +156,7 @@ $end
$foreach(column in genTable.Columns)
$if(column.IsRequired && column.IsIncrement == false)
${column.CsharpFieldFl}: [
{ required: true, message: "${column.ColumnComment}不能为空", trigger: $if(column.htmlType == "select")"change"$else"blur"$end
$if(column.CsharpType == "int" || column.CsharpType == "long"), type: "number"$end }
{ required: true, message: "${column.ColumnComment}不能为空", trigger: $if(column.htmlType == "select")"change"$else"blur"$end }
],
$end
$end

View File

@@ -88,7 +88,7 @@ $end
highlight-current-row
@selection-change="handleSelectionChange"
:default-expand-all="isExpandAll"
row-key="${tool.FirstLowerCase(genTable.TreeCode)}"
row-key="${tool.FirstLowerCase(genTable.Options.TreeCode)}"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
>
<el-table-column type="selection" width="50" align="center"/>
@@ -278,7 +278,7 @@ $end
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="text" @click="cancel">{{ ${t}t('btn.cancel') }}</el-button>
<el-button text @click="cancel">{{ ${t}t('btn.cancel') }}</el-button>
<el-button type="primary" @click="submitForm">{{ ${t}t('btn.submit') }}</el-button>
</div>
</template>

View File

@@ -124,7 +124,7 @@ $elseif(column.HtmlType == "imageUpload")
</template>
</el-table-column>
$elseif(column.HtmlType == "checkbox" || column.HtmlType == "select" || column.HtmlType == "radio")
<el-table-column prop="${columnName}" label="${labelName}" align="center">
<el-table-column prop="${columnName}" label="${labelName}" align="center"${column.sortStr}>
<template #default="scope">
$if(column.HtmlType == "checkbox")
<dict-tag :options="$if(column.DictType != "") ${column.DictType} $else ${column.CsharpFieldFl}Options$end" :value="scope.row.${columnName} ? scope.row.${columnName}.split(',') : []" />
@@ -134,11 +134,10 @@ $end
</template>
</el-table-column>
$else
<el-table-column prop="${columnName}" label="${labelName}" align="center"${showToolTipHtml} />
<el-table-column prop="${columnName}" label="${labelName}" align="center"${showToolTipHtml}${column.sortStr} />
$end
$end
$end
<el-table-column label="操作" align="center" width="140">
<template #default="scope">
$if(replaceDto.ShowBtnEdit)
@@ -160,7 +159,6 @@ $end
<el-row :gutter="20">
$foreach(column in genTable.Columns)
$set(labelName = "")
$set(labelDisabled = "")
$set(columnName = column.CsharpFieldFl)
$set(value = "item.dictValue")
$if(column.ColumnComment != "")
@@ -168,19 +166,12 @@ $set(labelName = column.ColumnComment)
$else
$set(labelName = column.CsharpFieldFl)
$end
$if(column.IsPk == true)
$set(labelDisabled = ":disabled=true")
$end
$if(column.CsharpType == "int" || column.CsharpType == "long")
$set(value = "parseInt(item.dictValue)")
$end
$if(column.IsInsert == false && column.IsEdit == false)
<el-col :lg="12" v-if="opertype == 2">
<el-form-item label="${labelName}">{{form.${columnName}}}</el-form-item>
</el-col>
$elseif(column.IsPK || column.IsIncrement)
<el-col :lg="12">
$if(column.IsPK || column.IsIncrement)
<el-col :lg="${options.ColNum}">
<el-form-item label="${labelName}" prop="${columnName}">
$if(column.IsIncrement == false)
<el-input-number v-model.number="form.${columnName}" controls-position="right" placeholder="请输入${labelName}" :disabled="title=='修改数据'"/>
@@ -191,15 +182,15 @@ $end
</el-col>
$else
$if(column.HtmlType == "inputNumber")
<el-col :lg="12">
<el-col :lg="${options.ColNum}">
<el-form-item label="${labelName}" prop="${columnName}">
<el-input-number v-model.number="form.${columnName}" controls-position="right" placeholder="请输入${labelName}" ${labelDisabled}/>
<el-input-number v-model.number="form.${columnName}" controls-position="right" placeholder="请输入${labelName}" ${column.DisabledStr}/>
</el-form-item>
</el-col>
$elseif(column.HtmlType == "datetime")
<el-col :lg="12">
<el-col :lg="${options.ColNum}">
<el-form-item label="${labelName}" prop="${columnName}">
<el-date-picker v-model="form.${columnName}" type="datetime" placeholder="选择日期时间"></el-date-picker>
<el-date-picker v-model="form.${columnName}" type="datetime" placeholder="选择日期时间"${column.DisabledStr}></el-date-picker>
</el-form-item>
</el-col>
$elseif(column.HtmlType == "imageUpload")
@@ -215,9 +206,9 @@ $elseif(column.HtmlType == "fileUpload")
</el-form-item>
</el-col>
$elseif(column.HtmlType == "radio")
<el-col :lg="12">
<el-col :lg="${options.ColNum}">
<el-form-item label="${labelName}" prop="${columnName}">
<el-radio-group v-model="form.${columnName}">
<el-radio-group v-model="form.${columnName}"${column.DisabledStr}>
<el-radio v-for="item in $if(column.DictType != "") ${column.DictType} $else ${column.CsharpFieldFl}Options$end" :key="item.dictValue" :label="${value}">{{item.dictLabel}}</el-radio>
</el-radio-group>
</el-form-item>
@@ -225,7 +216,7 @@ $elseif(column.HtmlType == "radio")
$elseif(column.HtmlType == "textarea")
<el-col :lg="24">
<el-form-item label="${labelName}" prop="${columnName}">
<el-input type="textarea" v-model="form.${columnName}" placeholder="请输入${labelName}"/>
<el-input type="textarea" v-model="form.${columnName}" placeholder="请输入${labelName}"${column.DisabledStr}/>
</el-form-item>
</el-col>
$elseif(column.HtmlType == "editor")
@@ -235,9 +226,9 @@ $elseif(column.HtmlType == "editor")
</el-form-item>
</el-col>
$elseif(column.HtmlType == "select")
<el-col :lg="12">
<el-col :lg="${options.ColNum}">
<el-form-item label="${labelName}" prop="${columnName}">
<el-select v-model="form.${columnName}" placeholder="请选择${labelName}">
<el-select v-model="form.${columnName}" placeholder="请选择${labelName}"${column.DisabledStr}>
<el-option v-for="item in $if(column.DictType != "") ${column.DictType} $else ${column.CsharpFieldFl}Options$end" :key="item.dictValue" :label="item.dictLabel" :value="${value}"></el-option>
</el-select>
</el-form-item>
@@ -245,15 +236,15 @@ $elseif(column.HtmlType == "select")
$elseif(column.HtmlType == "checkbox")
<el-col :lg="24">
<el-form-item label="${labelName}" prop="${columnName}">
<el-checkbox-group v-model="form.${columnName}Checked">
<el-checkbox-group v-model="form.${columnName}Checked"${column.DisabledStr}>
<el-checkbox v-for="item in $if(column.DictType != "") ${column.DictType} $else ${column.CsharpFieldFl}Options$end" :key="item.dictValue" :label="item.dictValue">{{item.dictLabel}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
$else
<el-col :lg="12">
<el-col :lg="${options.ColNum}">
<el-form-item label="${labelName}" prop="${columnName}">
<el-input v-model="form.${columnName}" placeholder="请输入${labelName}" ${labelDisabled}/>
<el-input v-model="form.${columnName}" placeholder="请输入${labelName}" ${column.DisabledStr}/>
</el-form-item>
</el-col>
$end
@@ -262,10 +253,8 @@ $end
</el-row>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="text" @click="cancel">{{ ${t}t('btn.cancel') }}</el-button>
<el-button type="primary" @click="submitForm">{{ ${t}t('btn.submit') }}</el-button>
</div>
<el-button text @click="cancel">{{ ${t}t('btn.cancel') }}</el-button>
<el-button type="primary" @click="submitForm">{{ ${t}t('btn.submit') }}</el-button>
</template>
</el-dialog>