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