Explorar o código

生成代码增加绑定打印模版功能

orzMaster %!s(int64=2) %!d(string=hai) anos
pai
achega
86dd450d55

+ 14 - 0
Admin.NET/Admin.NET.Core/Entity/SysCodeGen.cs

@@ -16,6 +16,20 @@ namespace Admin.NET.Core;
 [SysTable]
 public class SysCodeGen : EntityBase
 {
+    /// <summary>
+    /// 支持打印类型
+    /// </summary>
+    [SugarColumn(ColumnDescription = "支持打印类型", Length = 32)]
+    [MaxLength(32)]
+    public string? PrintType { get; set; }
+
+    /// <summary>
+    /// 打印模版Id
+    /// </summary>
+    [SugarColumn(ColumnDescription = "打印模版Id", Length = 20)]
+    [MaxLength(20)]
+    public long? PrintId { get; set; }
+
     /// <summary>
     /// 作者姓名
     /// </summary>

+ 3 - 0
Admin.NET/Admin.NET.Core/SeedData/SysDictDataSeedData.cs

@@ -74,6 +74,9 @@ public class SysDictDataSeedData : ISqlSugarEntitySeedData<SysDictData>
             new SysDictData{ Id=1300000000603, DictTypeId=1300000000106, Value="部门", Code="301", OrderNo=102, Remark="部门", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") },
             new SysDictData{ Id=1300000000604, DictTypeId=1300000000106, Value="区域", Code="401", OrderNo=103, Remark="区域", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") },
             new SysDictData{ Id=1300000000605, DictTypeId=1300000000106, Value="组", Code="501", OrderNo=104, Remark="组", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") },
+
+            new SysDictData{ Id=1300000000701, DictTypeId=1300000000107, Value="不需要", Code="off", OrderNo=100, Remark="不需要打印支持", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-12-04 00:00:00") },
+            new SysDictData{ Id=1300000000702, DictTypeId=1300000000107, Value="绑定打印模版", Code="custom", OrderNo=101, Remark="绑定打印模版", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-12-04 00:00:00") },
         };
     }
 }

+ 1 - 0
Admin.NET/Admin.NET.Core/SeedData/SysDictTypeSeedData.cs

@@ -28,6 +28,7 @@ public class SysDictTypeSeedData : ISqlSugarEntitySeedData<SysDictType>
             new SysDictType{ Id=1300000000104, Name="代码生成方式", Code="code_gen_create_type", OrderNo=103, Remark="代码生成方式", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
             new SysDictType{ Id=1300000000105, Name="代码生成基类", Code="code_gen_base_class", OrderNo=104, Remark="代码生成基类", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
             new SysDictType{ Id=1300000000106, Name="机构类型", Code="org_type", OrderNo=105, Remark="机构类型", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") },
+            new SysDictType{ Id=1300000000107, Name="代码生成支持打印类型", Code="code_gen_print_type", OrderNo=106, Remark="代码生成支持打印类型", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-12-04 00:00:00") },
         };
     }
 }

+ 10 - 0
Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenInput.cs

@@ -14,6 +14,16 @@ namespace Admin.NET.Core.Service;
 /// </summary>
 public class CodeGenInput : BasePageInput
 {
+    /// <summary>
+    /// 是否支持打印
+    /// </summary>
+    public virtual string PrintType { get; set; }
+
+    /// <summary>
+    /// 打印模版编号
+    /// </summary>
+    public virtual long PrintId { get; set; }
+
     /// <summary>
     /// 作者姓名
     /// </summary>

+ 10 - 0
Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenOutput.cs

@@ -19,6 +19,16 @@ public class CodeGenOutput
     /// </summary>
     public long Id { get; set; }
 
+    /// <summary>
+    /// 是否支持打印
+    /// </summary>
+    public string PrintType { get; set; }
+
+    /// <summary>
+    /// 打印模版编号
+    /// </summary>
+    public long PrintId { get; set; }
+
     /// <summary>
     /// 作者姓名
     /// </summary>

+ 23 - 1
Web/src/views/system/codeGen/component/editCodeGenDialog.vue

@@ -92,6 +92,20 @@
 							</el-select>
 						</el-form-item>
 					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="支持打印" prop="printType">
+							<el-select v-model="state.ruleForm.printType" filterable class="w100">
+								<el-option v-for="item in state.printTypeList" :key="item.value" :label="item.value" :value="item.code" />
+							</el-select>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="state.ruleForm.printType == 'custom'">
+						<el-form-item label="打印模版" prop="printId">
+							<el-select v-model="state.ruleForm.printId" filterable class="w100">
+								<el-option v-for="item in state.printIdList" :key="item.id" :label="item.name" :value="item.id" />
+							</el-select>
+						</el-form-item>
+					</el-col>
 				</el-row>
 			</el-form>
 			<template #footer>
@@ -108,7 +122,7 @@
 import { onMounted, reactive, ref } from 'vue';
 
 import { getAPI } from '/@/utils/axios-utils';
-import { SysCodeGenApi, SysDictDataApi, SysMenuApi } from '/@/api-services/api';
+import { SysCodeGenApi, SysDictDataApi, SysMenuApi, SysPrintApi } from '/@/api-services/api';
 import { UpdateCodeGenInput, AddCodeGenInput, SysMenu } from '/@/api-services/models';
 
 const props = defineProps({
@@ -124,6 +138,8 @@ const state = reactive({
 	dbData: [] as any,
 	menuData: [] as Array<SysMenu>,
 	codeGenTypeList: [] as any,
+	printTypeList: [] as any,
+	printIdList: [] as any,
 });
 
 onMounted(async () => {
@@ -135,6 +151,12 @@ onMounted(async () => {
 
 	let resDicData = await getAPI(SysDictDataApi).apiSysDictDataDataListCodeGet('code_gen_create_type');
 	state.codeGenTypeList = resDicData.data.result;
+
+	let printTypeResDicData = await getAPI(SysDictDataApi).apiSysDictDataDataListCodeGet('print_type');
+	state.printTypeList = printTypeResDicData.data.result;
+
+	let resPrintIdData = await getAPI(SysPrintApi).apiSysPrintPagePost();
+	state.printIdList = resPrintIdData.data.result?.items ?? [];
 });
 
 // db改变