Weben_CMS专用代码生成器/Code/Generate/Web/Controllers/EntityModeDrawer_Generate.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Weben_CMS专用代码生成器/Code/GenerateCode_WeiBen_CMS.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Weben_CMS专用代码生成器/Code/MainForm.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Weben_CMS专用代码生成器/Code/Templete/Web/Controllers/EntityModeDrawer模板.txt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Weben_CMS专用代码生成器/Code/Utility/ListHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Weben_CMS专用代码生成器/Code/Utility/StructStrHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Generate/Web/Controllers/EntityModeDrawer_Generate.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,46 @@  using GenerateCode_WeiBen_WMS.Model; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace GenerateCode_GEBrilliantFactory { /// <summary> /// çææ¥è¯¢å®ä½ç±» /// </summary> public class EntityModeDrawer_Generate : BaseGenerate { public static string CreateText(GenerateCodeParam param) { var str = TextHelper.ReadText(@"Templete\Web\Controllers\EntityModeDrawer模æ¿.txt"); CommonReplace(ref str); CommonHelper.CommonReplaceStr(param, ref str); //æ¿æ¢æ°å¢formåè¡¨å±æ§ string attrString = ""; List<ColumnModel> newColumnNameList = ListHelper.RemoveAttrForUpdateMode(param.ColumnNameList); attrString += StructStrHelper.GetVueFormOptionsStrForPageAddFormAttributes(param.ColumnNameList, param); str = str.Replace("$PageAddFormAttributes$", attrString); attrString = ""; attrString += StructStrHelper.GetVueFormOptionsStrForSave_PageAddFormAttributes(param.ColumnNameList,param); str = str.Replace("$Save_PageAddFormAttributes$", attrString); attrString = ""; attrString += StructStrHelper.GetVueFormOptionsStrForCommonQueryEnumForFrom(param.ColumnNameList, param); str = str.Replace("$CommonQueryEnumForFrom$", attrString); attrString = ""; attrString += StructStrHelper.GetVueFormOptionsStrForPageAddFormAttributesByOpen(param.ColumnNameList, param); str = str.Replace("$PageAddFormAttributesByOpen$", attrString); return str; } } } Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/GenerateCode_WeiBen_CMS.csproj
@@ -128,6 +128,7 @@ <Compile Include="Generate\BLL_Generate.cs" /> <Compile Include="Generate\DAL_Generate.cs" /> <Compile Include="Generate\Procedure_Generate.cs" /> <Compile Include="Generate\Web\Controllers\EntityModeDrawer_Generate.cs" /> <Compile Include="Generate\Web\Controllers\EntityMode_Generate.cs" /> <Compile Include="Generate\Web\Controllers\File_Generate.cs" /> <Compile Include="Generate\Web\enum_Generate.cs" /> @@ -282,6 +283,9 @@ <Content Include="Templete\InitSQL模æ¿.txt"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> <Content Include="Templete\Web\Controllers\EntityModeDrawer模æ¿.txt"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> <Content Include="Templete\Web\Controllers\EntityMode模æ¿.txt"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/MainForm.cs
@@ -309,6 +309,11 @@ str_generate = EntityMode_Generate.CreateText(param); tf = TextHelper.Export2File_V2(webRootPath + @"\Controllers", $"{tb_EntityName.Text.Trim()}.ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); //17ãçæ Controllers\EntityModeDrawer æä»¶ str_generate = EntityModeDrawer_Generate.CreateText(param); tf = TextHelper.Export2File_V2(webRootPath + @"\Controllers", $"{tb_EntityName.Text.Trim()}Drawer.tsx", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); #endregion Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Templete/Web/Controllers/EntityModeDrawerÄ£°å.txt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,160 @@ import { ref, onMounted, reactive, computed, Ref, watch, SetupContext, h, } from 'vue' import { injectModel } from '@/libs/Provider/Provider' import { $EntityName$Drawer } from '../Models/$EntityName$Drawer' import { ElMessage } from 'element-plus' import isEqual from 'lodash/isEqual' import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' import { cloneDeep } from 'lodash' export const use$EntityName$Drawer = (props: any, ctx?: any) => { const $PageMenuInstanceName$Drawer = injectModel<$EntityName$Drawer>('$PageMenuInstanceName$Drawer') /** * ç¨æ¥å¯¹æ¯çåå§åæ°æ® */ const initiateData: Ref<Record<string, any>> = ref({}) const formData = ref<Record<string, any>>({}) // ref const formRef = ref() const disabled = ref(false) const current = computed(() => { return props.row || null }) const inputNumber = (attrs) => { return ( <el-input-number min="1" step="1" precision="0" {...attrs} ></el-input-number> ) } const visible = computed({ get() { return props.modelValue }, set(val) { ctx.emit('update:modelValue', val) }, }) /** * æ·»å çformåæ®µ */ const formItems = reactive([ $PageAddFormAttributes$ ]) /** * æ ¡éªæ¯å¦ææ°æ®åå */ const checkIsEqualObject = () => { const data = { formData: formData.value, } const check = isEqual(initiateData.value, data) return check } const onClose = (done: () => void) => { if (visible.value) { if (checkIsEqualObject()) { visible.value = false done && done() } else { ConfirmBox('æ¯å¦ä¿å设置ï¼') .then(() => { onConfirm() }) .catch(() => { visible.value = false done && done() }) } } } /** * ä¿å */ const onConfirm = async () => { await formRef.value?.validate() const data = { $Save_PageAddFormAttributes$ } if (!current.value) { await $PageMenuInstanceName$Drawer.add$EntityName$(data) } else { const id = current.value.id await $PageMenuInstanceName$Drawer.update$EntityName$(id, data) } ElMessage.success('ä¿åæå') ctx.emit('confirm') } const updateCheckData = () => { initiateData.value = { formData: { ...formData.value, }, } } const updateFormItemOptions = (propName: string, enumData: any[]) => { const item = formItems.find((item) => item.prop === propName) if (item && enumData) { item.options = enumData.map((item) => ({ label: item.description, value: item.value, })) } } /** * éç¨æ¥è¯¢æä¸¾ */ const commonQueryEnumForFrom = async () => { $CommonQueryEnumForFrom$ } commonQueryEnumForFrom() /** * å¼¹çªæå¼è·å详æ */ const onOpen = async () => { if (current.value) { const res = await $PageMenuInstanceName$Drawer.get$EntityName$Detail(current.value) formData.value = { $PageAddFormAttributesByOpen$ id: res.id, } disabled.value = true updateCheckData() } else { formData.value = {} disabled.value = false updateCheckData() } } watch(() => current.value, onOpen) return { formItems, formData, visible, formRef, onOpen, onClose, onConfirm, } } Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Utility/ListHelper.cs
@@ -143,6 +143,42 @@ return newList; } /// <summary> /// å端页é¢ï¼æ°å¢ãä¿®æ¹è¡¨åçé项çéä¸ç¨ï¼ /// </summary> /// <param name="columnNameList"></param> /// <returns></returns> public static List<ColumnModel> RemoveForPageAddFormAttributes(List<ColumnModel> columnNameList) { List<ColumnModel> newList = new List<ColumnModel>(); ColumnModel columnModel = null; for (int i = 0; i < columnNameList.Count; i++) { columnModel = columnNameList[i]; if (columnModel.ColumnName.ToUpper() == SystemCommonVar.c_creator.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_createTime.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifier.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifyTime.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyTime.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Id.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ExtraProperties.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ConcurrencyStamp.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_DeleterId.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_delFlag.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_CreateId.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyId.ToUpper() || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Sort.ToUpper() ) { continue; } newList.Add(columnModel); } return newList; } /// <summary> /// è·åææ°çåListéå(廿 Idï¼CreateIdï¼ModifyId) /// </summary> Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Utility/StructStrHelper.cs
@@ -1790,6 +1790,224 @@ /// <summary> /// è·åVUE formOptionså符串(é«çº§æ¥è¯¢ä¸ç) /// </summary> /// <param name="columnModelList"></param> /// <returns></returns> public static string GetVueFormOptionsStrForPageAddFormAttributes(List<ColumnModel> columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* { label: 'ç©æç¼ç ', prop: 'materialCode', el: 'input', disabled: disabled, placeholder: '请è¾å ¥ç©æç¼ç ', rules: [{ required: true, message: 'ç©æç¼ç ä¸è½ä¸ºç©º', trigger: 'blur' }], }, */ List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList); foreach (var columnModel in newList) { DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString()); var elment = "input"; switch (enumDT) { case DataTypeEnum.dt_datetime: elment = "date-picker"; break; case DataTypeEnum.dt_bit: case DataTypeEnum.dt_tinyint: elment = "select"; break; default: break; } sb.Append(" { \n"); sb.Append(" label: '" + columnModel.Description + "', \n"); sb.Append(" prop: '" + columnModel.ColumnName + "', \n"); //æ·»å ç±»å switch (enumDT) { case DataTypeEnum.dt_datetime: sb.Append(" type: 'datetimerange', \n"); break; default: break; } if (enumDT == DataTypeEnum.dt_decimal) { sb.Append(" el: (props: any, { attrs }: SetupContext) => { \n"); sb.Append(" return h(inputNumber, { { \n"); sb.Append(" ...props, { \n"); sb.Append(" clearable: true, { \n"); sb.Append(" ...attrs, { \n"); sb.Append(" }) \n"); sb.Append(" },\n"); //é 置精度ï¼è¿ééè¦è·åæ°æ®åºä¸ç精度ï¼ï¼ï¼TODOï¼ sb.Append(" step: 0.01,\n"); sb.Append(" precision: 2, \n"); } else if (enumDT == DataTypeEnum.dt_int) { //夿æ¯å¦æ¯ä¸æç±»å //å¢å 对æä¸¾ç±»åçæ¯æ if (param.EnumList?.Count > 0) { var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == columnModel.ColumnName).FirstOrDefault(); if (findEnumObj != null) { elment = "select"; sb.Append(" el: '" + elment + "', \n"); } } else { sb.Append(" el: (props: any, { attrs }: SetupContext) => { \n"); sb.Append(" return h(inputNumber, { { \n"); sb.Append(" ...props, { \n"); sb.Append(" clearable: true, { \n"); sb.Append(" ...attrs, { \n"); sb.Append(" }) \n"); sb.Append(" },\n"); //é ç½®ç²¾åº¦ï¼ sb.Append(" step: 1,\n"); sb.Append(" precision: 0, \n"); } } else { sb.Append(" el: '" + elment + "', \n"); } sb.Append(" disabled: disabled, \n"); sb.Append(" placeholder: '请è¾å ¥" + columnModel.Description + "', \n"); if (columnModel.IsNullable == false) { sb.Append(" rules: [{required: true, message: '" + columnModel.Description + "ä¸è½ä¸ºç©º', trigger: 'blur' }], \n"); } //æ·»å ç±»å //switch (enumDT) //{ // case DataTypeEnum.dt_bit: // case DataTypeEnum.dt_tinyint: // sb.Append(" options: [{label: 'æ¯',value: 'true'}, {label: 'å¦',value: 'false'}] \n"); // break; // default: // break; //} sb.Append(" }, \n"); } //廿æåä¸ä¸ª, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } catch (Exception ex) { throw ex; } } /// <summary> /// è·åVUE formOptionså符串(é«çº§æ¥è¯¢ä¸ç) /// </summary> /// <param name="columnModelList"></param> /// <returns></returns> public static string GetVueFormOptionsStrForCommonQueryEnumForFrom(List<ColumnModel> columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* const materialTypeEnum = await wmsMaterialDrawer.getWmsEnumData({ EnumName: 'MaterialTypeEnum', }) updateFormItemOptions('materialType', materialTypeEnum) */ if (param.EnumList?.Count > 0) { foreach (var item in param.EnumList) { //屿§å°å var instanceName = CommonHelper.FirstLowercase(item.EnumType); sb.Append("const "+ instanceName + "Enum = await "+param.PageMenuInstanceName+"Drawer.getWmsEnumData({ \n"); sb.Append(" EnumName: '" + item.EnumType + "', \n"); sb.Append("}) \n"); sb.Append("updateFormItemOptions('\"+ instanceName + \"', \"+ instanceName + \"Enum) \n"); } } var res = sb.ToString(); return res; } catch (Exception ex) { throw ex; } } /// <summary> /// è·åVUE formOptionså符串(é«çº§æ¥è¯¢ä¸ç) /// </summary> /// <param name="columnModelList"></param> /// <returns></returns> public static string GetVueFormOptionsStrForSave_PageAddFormAttributes(List<ColumnModel> columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* materialCode: formData.value.materialCode, */ List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList); foreach (var columnModel in newList) { sb.Append($"{columnModel.ColumnName}: formData.value.{columnModel.ColumnName}, \n"); } //廿æåä¸ä¸ª, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } catch (Exception ex) { throw ex; } } public static string GetVueFormOptionsStrForPageAddFormAttributesByOpen(List<ColumnModel> columnModelList, GenerateCodeParam param) { StringBuilder sb = new StringBuilder(); try { /* materialCode: res.materialCode, */ List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList); foreach (var columnModel in newList) { sb.Append($"{columnModel.ColumnName}: res.{columnModel.ColumnName}, \n"); } //廿æåä¸ä¸ª, var res = sb.ToString(); res = res.Substring(0, res.Length - 1); return res; } catch (Exception ex) { throw ex; } } /// <summary> /// è·åVUE å¯¼åºæ°ç»å符串-æ±å+屿§ /// </summary> /// <param name="columnModelList"></param>