From 71a29934b04038b983772819e129d7c63202e565 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周二, 06 5月 2025 08:24:48 +0800
Subject: [PATCH] 2222

---
 Weben_CMS专用代码生成器/Code/MainForm.cs                                     |    8 +
 Weben_CMS专用代码生成器/Code/Templete/Web/Controllers/File模板.txt             |   31 ++++
 Weben_CMS专用代码生成器/Code/Templete/Web/Controllers/EntityMode模板.txt       |  275 +++++++++++++++++++++++++++++++++++++++
 Weben_CMS专用代码生成器/Code/Generate/Web/Controllers/EntityMode_Generate.cs |   27 +++
 Weben_CMS专用代码生成器/Code/常用.txt                                          |    5 
 Weben_CMS专用代码生成器/Code/GenerateCode_WeiBen_CMS.csproj                  |    8 +
 Weben_CMS专用代码生成器/Code/Generate/Web/Controllers/File_Generate.cs       |   27 +++
 7 files changed, 380 insertions(+), 1 deletions(-)

diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Web/Controllers/EntityMode_Generate.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Web/Controllers/EntityMode_Generate.cs"
new file mode 100644
index 0000000..4805e1e
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Web/Controllers/EntityMode_Generate.cs"
@@ -0,0 +1,27 @@
+锘�
+
+using GenerateCode_WeiBen_WMS.Model;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GenerateCode_GEBrilliantFactory
+{
+    /// <summary>
+    /// 鐢熸垚鏌ヨ瀹炰綋绫�
+    /// </summary>
+    public class EntityMode_Generate : BaseGenerate
+    {
+        public static string CreateText(GenerateCodeParam param)
+        {
+            var str = TextHelper.ReadText(@"Templete\Web\Controllers\EntityMode妯℃澘.txt");
+            CommonReplace(ref str);
+
+            CommonHelper.CommonReplaceStr(param, ref str);
+
+
+            return str;
+        }
+    }
+}
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Web/Controllers/File_Generate.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Web/Controllers/File_Generate.cs"
new file mode 100644
index 0000000..ade88ee
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Generate/Web/Controllers/File_Generate.cs"
@@ -0,0 +1,27 @@
+锘�
+
+using GenerateCode_WeiBen_WMS.Model;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace GenerateCode_GEBrilliantFactory
+{
+    /// <summary>
+    /// 鐢熸垚鏌ヨ瀹炰綋绫�
+    /// </summary>
+    public class File_Generate : BaseGenerate
+    {
+        public static string CreateText(GenerateCodeParam param)
+        {
+            var str = TextHelper.ReadText(@"Templete\Web\Controllers\File妯℃澘.txt");
+            CommonReplace(ref str);
+
+            CommonHelper.CommonReplaceStr(param, ref str);
+
+
+            return str;
+        }
+    }
+}
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/GenerateCode_WeiBen_CMS.csproj" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/GenerateCode_WeiBen_CMS.csproj"
index 4286f30..f3cc73a 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/GenerateCode_WeiBen_CMS.csproj"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/GenerateCode_WeiBen_CMS.csproj"
@@ -128,6 +128,8 @@
     <Compile Include="Generate\BLL_Generate.cs" />
     <Compile Include="Generate\DAL_Generate.cs" />
     <Compile Include="Generate\Procedure_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" />
     <Compile Include="Generate\Web\Index_Generate.cs" />
     <Compile Include="Model\GenerateCodeParam.cs" />
@@ -280,6 +282,12 @@
     <Content Include="Templete\InitSQL妯℃澘.txt">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
+    <Content Include="Templete\Web\Controllers\EntityMode妯℃澘.txt">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Templete\Web\Controllers\File妯℃澘.txt">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
     <Content Include="Templete\Web\enum妯℃澘.txt">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs"
index 39a34fb..cc17f85 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs"
@@ -301,6 +301,14 @@
                 tf = TextHelper.Export2File_V2(webRootPath, $"enum.ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
 
 
+                //15銆佺敓鎴� Controllers\File 鏂囦欢
+                str_generate = File_Generate.CreateText(param);
+                tf = TextHelper.Export2File_V2(webRootPath+ @"\Controllers", $"File.ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
+
+                //16銆佺敓鎴� Controllers\EntityMode 鏂囦欢
+                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);
+
                 #endregion
 
 
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityMode\346\250\241\346\235\277.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityMode\346\250\241\346\235\277.txt"
new file mode 100644
index 0000000..8aca535
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityMode\346\250\241\346\235\277.txt"
@@ -0,0 +1,275 @@
+import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { $EntityName$ } from '../Models/$EntityName$'
+import { ElMessage } from 'element-plus'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { useFile } from './File'
+
+interface CurrentType {
+  row: any
+  index: number
+}
+export const use$EntityName$ = (props: any, ctx?: any) => {
+  const $PageMenuInstanceName$ = injectModel<$EntityName$>('$PageMenuInstanceName$')
+  const { exportFile } = useFile()
+  /**
+   * 头部配置
+   */
+  const headers = ref({})
+  /**
+   * 动态列配置
+   */
+  const $PageMenuInstanceName$Columns = ref<Record<string, any>>([])
+  /**
+   * 搜索值
+   */
+  const search = ref('')
+
+  /**
+   * 排序
+   */
+  const sort = ref(0)
+  /**
+   * 选择项
+   */
+  const selection = ref([])
+  /**
+   * 当前选中的行
+   */
+  const current = ref<any>(null)
+  /**
+   * 数据源
+   */
+  const dataSource: Ref<any[]> = ref([])
+
+  /**
+   * 表格
+   */
+  const tableRef = ref()
+  const dialogConfig = reactive({
+    visible: false,
+    title: '',
+    isAdd: false,
+  })
+  const dialogConfigForQuery = reactive({
+    visible: false,
+    title: '',
+    isAdd: false,
+  })
+
+
+  const dialogSettingConfig = reactive({
+    visible: false,
+    title: '',
+  })
+
+  /**
+   * 分页数据
+   */
+  const paginationParams = ref({})
+
+  /**
+   * 打开详情
+   * @param row
+   */
+  const openDetail = (row: any) => {
+    current.value = row
+    dialogConfig.visible = true
+    dialogConfig.title = row.name
+    dialogConfig.isAdd = false
+    sort.value = row.sort
+  }
+
+  const contextMenu = [
+    {
+      label: '展开详情',
+      fn: (c: CurrentType) => {
+        current.value = null
+        sort.value = c.row.sort
+        nextTick(() => openDetail(c.row))
+      },
+      divided: true,
+      icon: 'o',
+    },
+    // {
+    //   label: '向上添加',
+    //   fn: (c: CurrentType, pageNum: number) => {
+    //     current.value = null
+    //     sort.value = c.index + 1 + (pageNum - 1) * 50
+    //     dialogConfig.visible = true
+    //     dialogConfig.title = '添加'
+    //     dialogConfig.isAdd = false
+    //   },
+    //   divided: true,
+    //   icon: 'up',
+    // },
+    // {
+    //   label: '向下添加',
+    //   fn: (c: CurrentType, pageNum: number) => {
+    //     current.value = null
+    //     sort.value = c.index + 2 + (pageNum - 1) * 50
+    //     dialogConfig.visible = true
+    //     dialogConfig.title = '添加'
+    //     dialogConfig.isAdd = false
+    //   },
+    //   divided: true,
+    //   icon: 'down',
+    // },
+    // {
+    //   label: '创建副本',
+    //   fn: async ({ row }: CurrentType) => {
+    //     await $PageMenuInstanceName$.cloneData([row.id])
+    //     ElMessage.success('创建副本成功')
+    //     tableRef.value?.getList()
+    //   },
+    //   divided: true,
+    //   icon: 'copy',
+    // },
+    {
+      label: '删除',
+      fn: async (c: CurrentType) => {
+        const names = selection.value.map((item: { name: string }) => item.name)
+        ConfirmBox(
+          `是否删除${names.length ? names.join(',') : c.row.name}`
+        ).then(async () => {
+          const ids = selection.value.map((item: { id: string }) => item.id)
+          await $PageMenuInstanceName$.delete$EntityName$s(ids.length ? ids : [c.row.id])
+          ElMessage.success('删除成功')
+          tableRef.value.getList()
+        })
+      },
+      icon: 'close',
+    },
+  ]
+
+  const onCheck = (records: any) => {
+    selection.value = records
+  }
+
+  const onAdd$EntityName$ = () => {
+    const params = tableRef.value?.getPaginationParams()
+    current.value = null
+    dialogConfig.visible = true
+    dialogConfig.isAdd = true
+    dialogConfig.title = '添加'
+    sort.value = params.totalCount + 1
+  }
+
+  //点击按钮【高级查询】
+  const onAdvancedQuery = () => {
+    const params = tableRef.value?.getPaginationParams()
+    current.value = null
+    dialogConfigForQuery.visible = true
+    dialogConfigForQuery.isAdd = true
+    dialogConfigForQuery.title = '高级查询'
+  }
+ 
+  const onConfirm$EntityName$ = async () => {
+    dialogConfig.visible = false
+    if (dialogConfig.isAdd) {
+      tableRef.value?.scrollToRow({
+        skip: true,
+      })
+    } else {
+      await tableRef.value?.getList()
+    }
+  }
+  /**
+   * 行点击时更新current
+   */
+  const onRowClick = ({ row }: any) => {
+    if (dialogConfig.visible && current.value) {
+      current.value = row
+    }
+  }
+  /**
+   * 导出
+   */
+  const onExport = (data={}) => {
+    //const params = tableRef.value?.getParams()
+    exportFile('/api/v1/hIAWms/$PageMenuInstanceName$/export', data, 'hIAWms')
+  }
+
+  /**
+   * 关键字搜索
+   */
+  const onSearch = () => {
+    tableRef.value?.getList({
+      Filter: search.value,
+    })
+  }
+
+  /**
+   * 重置表格数据
+   */
+  const reloadList = () => {
+    tableRef.value?.getList()
+  }
+  /**
+   * 上传成功
+   */
+  const onSuccess = () => {
+    tableRef.value?.getList()
+    ElMessage.success('导入成功')
+  }
+  /**
+   * 失败
+   * @param err
+   */
+  const onError = (err: any) => {
+    try {
+      const message = JSON.parse(err.message)
+      ElMessage.error(message.msg)
+    } catch (error) {
+      ElMessage.error('导入失败')
+    }
+  }
+  /**
+   * 上传钩子
+   */
+  const onBeforeUpload = (file: File) => {
+    const format = ['xlsx', 'xls', 'csv']
+    if (!format.includes(file.name.split('.')[1])) {
+      ElMessage.error('导入文件格式不正确,请导入.xlsx/.xls与.csv格式的文件')
+      return false
+    }
+    return true
+  }
+
+  onMounted(() => {
+    headers.value = {
+      Authorization: `Bearer ${sessionStorage.getItem('Token')}`,
+      'X-Project': sessionStorage.getItem('X-Project'),
+    }
+  })
+
+  ctx.expose({
+    reloadList,
+  })
+
+  return {
+    dataSource,
+    contextMenu,
+    dialogConfig,
+    dialogConfigForQuery,
+    dialogSettingConfig,
+    tableRef,
+    current,
+    search,
+    sort,
+    $PageMenuInstanceName$Columns,
+    paginationParams,
+    headers,
+    onBeforeUpload,
+    onError,
+    onSuccess,
+    openDetail,
+    onSearch,
+    onExport,
+    onRowClick,
+    onConfirm$EntityName$,
+    onCheck,
+    onAdd$EntityName$,
+    onAdvancedQuery
+  }
+}
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/File\346\250\241\346\235\277.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/File\346\250\241\346\235\277.txt"
new file mode 100644
index 0000000..c79b5d5
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/File\346\250\241\346\235\277.txt"
@@ -0,0 +1,31 @@
+import { importFileToService, exportFileToClient } from '@/api/file'
+import { ElMessage } from 'element-plus'
+import { downloadFile } from '@/utils'
+import dayjs from 'dayjs'
+
+export const useFile = () => {
+  /**
+   * 导入文件
+   * @param url
+   */
+  const importFile = async (url: string, file: File) => {
+    const formData = new FormData()
+    formData.append('file', file)
+    await importFileToService(url, formData)
+    ElMessage('导入成功')
+  }
+  /**
+   * 导出文件
+   * @param url
+   */
+  const exportFile = async (url: string, params: any, name: string) => {
+    const res = await exportFileToClient(url, params)
+    downloadFile(res, `${name}_${dayjs().format('YYYYMMDDHHMMss')}.xlsx`)
+    ElMessage.success('导出成功')
+  }
+
+  return {
+    importFile,
+    exportFile,
+  }
+}
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/\345\270\270\347\224\250.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/\345\270\270\347\224\250.txt"
index 6f3d785..fcfe59b 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/\345\270\270\347\224\250.txt"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/\345\270\270\347\224\250.txt"
@@ -7,4 +7,7 @@
 
 $NameSpacePath$
 
-$EntityInstanceName$
\ No newline at end of file
+$EntityInstanceName$
+
+
+$PageMenuInstanceName$
\ No newline at end of file

--
Gitblit v1.9.3