Pārlūkot izejas kodu

优化样式细节,修复ts错误提示

夜鹰 7 mēneši atpakaļ
vecāks
revīzija
a84281a592

+ 2 - 2
Web/src/components/table/index.vue

@@ -138,10 +138,10 @@ import { ElMessage } from 'element-plus';
 import Sortable from 'sortablejs';
 import { storeToRefs } from 'pinia';
 import printJs from 'print-js';
-import { EmptyObjectType } from "/@/types/global";
+//import { EmptyObjectType } from "/@/types/global";
 import formatter from '/@/components/table/formatter.vue';
 import { useThemeConfig } from '/@/stores/themeConfig';
-import { exportExcel } from '/@/utils/exportExcel';
+import { exportExcel } from '/@/utils/exportExcel';  //TODO: 此包会引起浏览器控制台报 Module "stream" has been externalized for browser compatibility. Cannot access "stream.Readable" in client code. 警告,建议替换
 
 // 定义父组件传过来的值
 const props = defineProps({

+ 3 - 0
Web/src/theme/app.scss

@@ -230,6 +230,9 @@ body,
 	width: 100%;
 	overflow: hidden;
 }
+.flex-items-center {
+    align-items: center;
+}
 .flex-margin {
 	margin: auto;
 }

+ 112 - 114
Web/src/views/home/notice/index.vue

@@ -1,80 +1,78 @@
 <template>
-	<div class="notice-container">
-		<el-card shadow="hover" :body-style="{ padding: 5 }">
-			<el-form :model="state.queryParams" ref="queryForm" :inline="true">
-				<el-form-item label="标题">
-					<el-input v-model="state.queryParams.title" placeholder="标题" clearable />
-				</el-form-item>
-				<el-form-item label="类型">
-					<el-select v-model="state.queryParams.type" placeholder="类型" clearable>
-						<el-option label="通知" :value="1" />
-						<el-option label="公告" :value="2" />
-					</el-select>
-				</el-form-item>
-				<el-form-item>
-					<el-button-group>
-						<el-button type="primary" icon="ele-Search" @click="handleQuery"> 查询 </el-button>
-						<el-button icon="ele-Refresh" @click="resetQuery"> 重置 </el-button>
-					</el-button-group>
-				</el-form-item>
-			</el-form>
-		</el-card>
+    <div class="notice-container">
+        <el-card shadow="hover" :body-style="{ padding: 5 }">
+            <el-form :model="state.queryParams" ref="queryForm" :inline="true">
+                <el-form-item label="标题">
+                    <el-input v-model="state.queryParams.title" placeholder="标题" clearable />
+                </el-form-item>
+                <el-form-item label="类型">
+                    <el-select v-model="state.queryParams.type" placeholder="类型" clearable>
+                        <el-option label="通知" :value="1" />
+                        <el-option label="公告" :value="2" />
+                    </el-select>
+                </el-form-item>
+                <el-form-item>
+                    <el-button-group>
+                        <el-button type="primary" icon="ele-Search" @click="handleQuery"> 查询 </el-button>
+                        <el-button icon="ele-Refresh" @click="resetQuery"> 重置 </el-button>
+                    </el-button-group>
+                </el-form-item>
+            </el-form>
+        </el-card>
 
-		<el-card class="full-table" shadow="hover" style="margin-top: 5px">
-			<el-table :data="state.noticeData" style="width: 100%" v-loading="state.loading" border :row-class-name="tableRowClassName">
-				<el-table-column type="index" label="序号" width="55" align="center" />
-				<el-table-column prop="sysNotice.title" label="标题" header-align="center" show-overflow-tooltip />
-				<el-table-column prop="sysNotice.content" label="内容" header-align="center" show-overflow-tooltip>
-					<template #default="scope"> {{ removeHtml(scope.row.sysNotice.content) }} </template>
-				</el-table-column>
-				<el-table-column prop="sysNotice.type" label="类型" width="100" align="center" show-overflow-tooltip>
-					<template #default="scope">
-            <g-sys-dict v-model="scope.row.sysNotice.type" code="NoticeTypeEnum"/>
-					</template>
-				</el-table-column>
-				<el-table-column prop="sysNotice.createTime" label="创建时间" align="center" show-overflow-tooltip />
-				<el-table-column prop="readStatus" label="阅读状态" width="100" align="center" show-overflow-tooltip>
-					<template #default="scope">
-            <g-sys-dict v-model="scope.row.readStatus" code="NoticeUserStatusEnum" />
-					</template>
-				</el-table-column>
-				<el-table-column prop="sysNotice.publicUserName" label="发布者" align="center" show-overflow-tooltip />
-				<el-table-column prop="sysNotice.publicTime" label="发布时间" align="center" show-overflow-tooltip />
-				<el-table-column label="操作" width="80" fixed="right" align="center" show-overflow-tooltip>
-					<template #default="scope">
-						<el-button icon="ele-InfoFilled" size="small" text type="primary" @click="viewDetail(scope.row)"> 详情 </el-button>
-					</template>
-				</el-table-column>
-			</el-table>
-			<el-pagination
-				v-model:currentPage="state.tableParams.page"
-				v-model:page-size="state.tableParams.pageSize"
-				:total="state.tableParams.total"
-				:page-sizes="[10, 20, 50, 100]"
-				size="small"
-				background
-				@size-change="handleSizeChange"
-				@current-change="handleCurrentChange"
-				layout="total, sizes, prev, pager, next, jumper"
-			/>
-		</el-card>
-		<el-dialog v-model="state.dialogVisible" draggable width="769px">
-			<template #header>
-				<div style="color: #fff">
-					<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Bell /> </el-icon>
-					<span> 消息详情 </span>
-				</div>
-			</template>
-			<div class="w-e-text-container">
-				<div v-html="state.content" data-slate-editor></div>
-			</div>
-			<template #footer>
-				<span class="dialog-footer">
-					<el-button type="primary" @click="state.dialogVisible = false">确认</el-button>
-				</span>
-			</template>
-		</el-dialog>
-	</div>
+        <el-card class="full-table" shadow="hover" style="margin-top: 5px">
+            <el-table :data="state.noticeData" style="width: 100%" v-loading="state.loading" border
+                :row-class-name="tableRowClassName">
+                <el-table-column type="index" label="序号" width="55" align="center" />
+                <el-table-column prop="sysNotice.title" label="标题" width="250" header-align="center" show-overflow-tooltip />
+                <el-table-column prop="sysNotice.content" label="内容" header-align="center" show-overflow-tooltip>
+                    <template #default="scope"> {{ removeHtml(scope.row.sysNotice.content) }} </template>
+                </el-table-column>
+                <el-table-column prop="sysNotice.type" label="类型" width="100" align="center">
+                    <template #default="scope">
+                        <g-sys-dict v-model="scope.row.sysNotice.type" code="NoticeTypeEnum" />
+                    </template>
+                </el-table-column>
+                <el-table-column prop="sysNotice.createTime" label="创建时间" width="180" align="center" />
+                <el-table-column prop="readStatus" label="阅读状态" width="100" align="center">
+                    <template #default="scope">
+                        <g-sys-dict v-model="scope.row.readStatus" code="NoticeUserStatusEnum" />
+                    </template>
+                </el-table-column>
+                <el-table-column prop="sysNotice.publicUserName" label="发布者" width="130" align="center" />
+                <el-table-column prop="sysNotice.publicTime" label="发布时间" width="180" align="center" />
+                <el-table-column label="操作" width="100" align="center" fixed="right">
+                    <template #default="scope">
+                        <el-button icon="ele-InfoFilled" size="small" text type="primary" @click="viewDetail(scope.row)"> 详情 </el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination size="small" background layout="total, sizes, prev, pager, next, jumper" 
+                v-model:currentPage="state.tableParams.page" 
+                v-model:page-size="state.tableParams.pageSize"
+                :total="state.tableParams.total" 
+                :page-sizes="[10, 20, 50, 100]"
+                @size-change="handleSizeChange" 
+                @current-change="handleCurrentChange"
+            />
+        </el-card>
+        <el-dialog v-model="state.dialogVisible" draggable width="769px">
+            <template #header>
+                <div style="color: #fff">
+                    <el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Bell /></el-icon>
+                    <span> 消息详情 </span>
+                </div>
+            </template>
+            <div class="w-e-text-container">
+                <div v-html="state.content" data-slate-editor></div>
+            </div>
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button type="primary" @click="state.dialogVisible = false">确认</el-button>
+                </span>
+            </template>
+        </el-dialog>
+    </div>
 </template>
 
 <script setup lang="ts" name="notice">
@@ -87,68 +85,68 @@ import commonFunction from '/@/utils/commonFunction';
 
 const { removeHtml } = commonFunction();
 const state = reactive({
-	loading: false,
-	noticeData: [] as Array<SysNoticeUser>,
-	queryParams: {
-		title: undefined,
-		type: undefined,
-	},
-	tableParams: {
-		page: 1,
-		pageSize: 50,
-		total: 0 as any,
-	},
-	editNoticeTitle: '',
-	dialogVisible: false,
-	content: '',
+    loading: false,
+    noticeData: [] as Array<SysNoticeUser>,
+    queryParams: {
+        title: undefined,
+        type: undefined,
+    },
+    tableParams: {
+        page: 1,
+        pageSize: 50,
+        total: 0 as any,
+    },
+    editNoticeTitle: '',
+    dialogVisible: false,
+    content: '',
 });
 onMounted(async () => {
-	handleQuery();
+    handleQuery();
 });
 
 // 查询操作
 const handleQuery = async () => {
-	state.loading = true;
-	const pageNoticeInput = {
-		title: state.queryParams.title,
-		type: state.queryParams.type,
-		page: state.tableParams.page,
-		pageSize: state.tableParams.pageSize
-	};
-	var res = await getAPI(SysNoticeApi).apiSysNoticePageReceivedPost(pageNoticeInput);
-	state.noticeData = res.data.result?.items ?? [];
-	state.tableParams.total = res.data.result?.total;
-	state.loading = false;
+    state.loading = true;
+    const pageNoticeInput = {
+        title: state.queryParams.title,
+        type: state.queryParams.type,
+        page: state.tableParams.page,
+        pageSize: state.tableParams.pageSize
+    };
+    var res = await getAPI(SysNoticeApi).apiSysNoticePageReceivedPost(pageNoticeInput);
+    state.noticeData = res.data.result?.items ?? [];
+    state.tableParams.total = res.data.result?.total;
+    state.loading = false;
 };
 // 重置操作
 const resetQuery = () => {
-	state.queryParams.title = undefined;
-	state.queryParams.type = undefined;
-	handleQuery();
+    state.queryParams.title = undefined;
+    state.queryParams.type = undefined;
+    handleQuery();
 };
 // 改变页面容量
 const handleSizeChange = (val: number) => {
-	state.tableParams.pageSize = val;
-	handleQuery();
+    state.tableParams.pageSize = val;
+    handleQuery();
 };
 // 改变页码序号
 const handleCurrentChange = (val: number) => {
-	state.tableParams.page = val;
-	handleQuery();
+    state.tableParams.page = val;
+    handleQuery();
 };
 // 查看详情
 const viewDetail = async (row: any) => {
-	state.content = row.sysNotice.content;
-	state.dialogVisible = true;
+    state.content = row.sysNotice.content;
+    state.dialogVisible = true;
 
-	row.readStatus = 1;
-	// mittBus.emit('noticeRead', row.sysNotice.id);
-	await getAPI(SysNoticeApi).apiSysNoticeSetReadPost({ id: row.sysNotice.id });
+    row.readStatus = 1;
+    // mittBus.emit('noticeRead', row.sysNotice.id);
+    await getAPI(SysNoticeApi).apiSysNoticeSetReadPost({ id: row.sysNotice.id });
 };
 
 // eslint-disable-next-line @typescript-eslint/no-unused-vars
 const tableRowClassName = ({ row, rowIndex }: { row: SysNoticeUser; rowIndex: number }) => {
-	return row.readStatus === 1 ? 'info-row' : '';
+    return row.readStatus === 1 ? 'info-row' : '';
 };
 </script>
 

+ 23 - 1
Web/src/views/system/database/index.vue

@@ -9,7 +9,18 @@
 				</el-form-item>
 				<el-form-item label="表名">
 					<el-select v-model="state.tableName" placeholder="表名" filterable clearable @change="handleQueryColumn">
-						<el-option v-for="item in state.tableData" :key="item.name" :label="item.name + '[' + item.description + ']'" :value="item.name" />
+                        <template #label="{ label, value }">
+                            <div class="flex flex-items-center">
+                                <span>{{ value }}</span>
+                                <span class="desc">{{ label }}</span>
+                            </div>
+                        </template>
+						<el-option v-for="item in state.tableData" :key="item.name" :data="item" :label="item.description" :value="item.name">
+                            <div class="flex flex-items-center">
+                                <span style="flex: 1">{{ item.name }}</span>
+                                <el-tag type="info" size="small">{{ item.description }}</el-tag>
+                            </div>
+                        </el-option>
 					</el-select>
 				</el-form-item>
 				<el-form-item>
@@ -377,3 +388,14 @@ const visualTable = () => {
 	router.push(`/develop/database/visual?configId=${state.configId}`);
 };
 </script>
+
+<style lang="scss" scoped>
+.el-select__placeholder {
+    .desc {
+        color: var(--el-color-info); 
+        font-size: var(--el-font-size-extra-small);
+        //font-style: italic;
+        margin-left: 5px;
+    }
+}
+</style>

+ 114 - 114
Web/src/views/system/notice/index.vue

@@ -1,68 +1,68 @@
 <template>
-	<div class="sys-notice-container">
-		<el-card shadow="hover" :body-style="{ padding: 5 }">
-			<el-form :model="state.queryParams" ref="queryForm" :inline="true">
-				<el-form-item label="标题">
-					<el-input v-model="state.queryParams.title" placeholder="标题" clearable />
-				</el-form-item>
-				<el-form-item label="类型">
-          <g-sys-dict v-model="state.queryParams.type" code="NoticeTypeEnum" render-as="select" clearable />
-				</el-form-item>
-				<el-form-item>
-					<el-button-group>
-						<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysNotice:page'"> 查询 </el-button>
-						<el-button icon="ele-Refresh" @click="resetQuery"> 重置 </el-button>
-					</el-button-group>
-				</el-form-item>
-				<el-form-item>
-					<el-button type="primary" icon="ele-Plus" @click="openAddNotice" v-auth="'sysNotice:add'"> 新增 </el-button>
-				</el-form-item>
-			</el-form>
-		</el-card>
+    <div class="sys-notice-container">
+        <el-card shadow="hover" :body-style="{ padding: 5 }">
+            <el-form :model="state.queryParams" ref="queryForm" :inline="true">
+                <el-form-item label="标题">
+                    <el-input v-model="state.queryParams.title" placeholder="标题" clearable />
+                </el-form-item>
+                <el-form-item label="类型">
+                    <g-sys-dict v-model="state.queryParams.type" code="NoticeTypeEnum" render-as="select" clearable />
+                </el-form-item>
+                <el-form-item>
+                    <el-button-group>
+                        <el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysNotice:page'"> 查询 </el-button>
+                        <el-button icon="ele-Refresh" @click="resetQuery"> 重置 </el-button>
+                    </el-button-group>
+                </el-form-item>
+                <el-form-item>
+                    <el-button type="primary" icon="ele-Plus" @click="openAddNotice" v-auth="'sysNotice:add'"> 新增 </el-button>
+                </el-form-item>
+            </el-form>
+        </el-card>
 
-		<el-card class="full-table" shadow="hover" style="margin-top: 5px">
-			<el-table :data="state.noticeData" v-loading="state.loading" border>
-				<el-table-column type="index" label="序号" width="55" align="center" />
-				<el-table-column prop="title" label="标题" header-align="center" show-overflow-tooltip />
-				<el-table-column prop="content" label="内容" header-align="center" show-overflow-tooltip>
-					<template #default="scope"> {{ removeHtml(scope.row.content) }} </template>
-				</el-table-column>
-				<el-table-column prop="type" label="类型" width="100" align="center" show-overflow-tooltip>
-					<template #default="scope">
-            <g-sys-dict v-model="scope.row.type" code="NoticeTypeEnum" />
-					</template>
-				</el-table-column>
-				<el-table-column prop="createTime" label="创建时间" align="center" show-overflow-tooltip />
-				<el-table-column prop="status" label="状态" width="100" align="center" show-overflow-tooltip>
-					<template #default="scope">
-            <g-sys-dict v-model="scope.row.status" code="NoticeStatusEnum" />
-					</template>
-				</el-table-column>
-				<el-table-column prop="publicUserName" label="发布者" align="center" show-overflow-tooltip />
-				<el-table-column prop="publicTime" label="发布时间" align="center" show-overflow-tooltip />
-				<el-table-column label="操作" width="200" fixed="right" align="center" show-overflow-tooltip>
-					<template #default="scope">
-						<el-button icon="ele-Position" size="small" text type="primary" @click="publicNotice(scope.row)" v-auth="'sysNotice:public'" :disabled="scope.row.status === 1"> 发布 </el-button>
-						<el-button icon="ele-Edit" size="small" text type="primary" @click="openEditNotice(scope.row)" v-auth="'sysNotice:update'" :disabled="scope.row.status === 1"> 编辑 </el-button>
-						<el-button icon="ele-Delete" size="small" text type="danger" @click="delNotice(scope.row)" v-auth="'sysNotice:delete'" :disabled="scope.row.status === 1"> 删除 </el-button>
-					</template>
-				</el-table-column>
-			</el-table>
-			<el-pagination
-				v-model:currentPage="state.tableParams.page"
-				v-model:page-size="state.tableParams.pageSize"
-				:total="state.tableParams.total"
-				:page-sizes="[10, 20, 50, 100]"
-				size="small"
-				background
-				@size-change="handleSizeChange"
-				@current-change="handleCurrentChange"
-				layout="total, sizes, prev, pager, next, jumper"
-			/>
-		</el-card>
+        <el-card class="full-table" shadow="hover" style="margin-top: 5px">
+            <el-table :data="state.noticeData" v-loading="state.loading" border>
+                <el-table-column type="index" label="序号" width="55" align="center" />
+                <el-table-column prop="title" label="标题" width="250" header-align="center" show-overflow-tooltip />
+                <el-table-column prop="content" label="内容" header-align="center" show-overflow-tooltip>
+                    <template #default="scope"> {{ removeHtml(scope.row.content) }} </template>
+                </el-table-column>
+                <el-table-column prop="type" label="类型" width="100" align="center">
+                    <template #default="scope">
+                        <g-sys-dict v-model="scope.row.type" code="NoticeTypeEnum" />
+                    </template>
+                </el-table-column>
+                <el-table-column prop="createTime" label="创建时间" width="180" align="center" />
+                <el-table-column prop="status" label="状态" width="100" align="center">
+                    <template #default="scope">
+                        <g-sys-dict v-model="scope.row.status" code="NoticeStatusEnum" />
+                    </template>
+                </el-table-column>
+                <el-table-column prop="publicUserName" label="发布者" width="130" align="center" />
+                <el-table-column prop="publicTime" label="发布时间" width="180" align="center" />
+                <el-table-column label="操作" width="200" fixed="right" align="center">
+                    <template #default="scope">
+                        <el-button icon="ele-Position" size="small" text type="primary" @click="publicNotice(scope.row)" v-auth="'sysNotice:public'" :disabled="scope.row.status === 1"> 发布 </el-button>
+                        <el-button icon="ele-Edit" size="small" text type="primary" @click="openEditNotice(scope.row)" v-auth="'sysNotice:update'" :disabled="scope.row.status === 1"> 编辑 </el-button>
+                        <el-button icon="ele-Delete" size="small" text type="danger" @click="delNotice(scope.row)" v-auth="'sysNotice:delete'" :disabled="scope.row.status === 1"> 删除 </el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination 
+                v-model:currentPage="state.tableParams.page" 
+                v-model:page-size="state.tableParams.pageSize"
+                :total="state.tableParams.total" 
+                :page-sizes="[10, 20, 50, 100]" 
+                size="small" 
+                background
+                @size-change="handleSizeChange" 
+                @current-change="handleCurrentChange"
+                layout="total, sizes, prev, pager, next, jumper" 
+            />
+        </el-card>
 
-		<EditNotice ref="editNoticeRef" :title="state.editNoticeTitle" @handleQuery="handleQuery" />
-	</div>
+        <EditNotice ref="editNoticeRef" :title="state.editNoticeTitle" @handleQuery="handleQuery" />
+    </div>
 </template>
 
 <script lang="ts" setup name="sysNotice">
@@ -77,92 +77,92 @@ import EditNotice from '/@/views/system/notice/component/editNotice.vue';
 const editNoticeRef = ref<InstanceType<typeof EditNotice>>();
 const { removeHtml } = commonFunction();
 const state = reactive({
-	loading: false,
-	noticeData: [] as Array<SysNotice>,
-	queryParams: {
-		title: undefined,
-		type: undefined,
-	},
-	tableParams: {
-		page: 1,
-		pageSize: 50,
-		total: 0 as any,
-	},
-	editNoticeTitle: '',
+    loading: false,
+    noticeData: [] as Array<SysNotice>,
+    queryParams: {
+        title: undefined,
+        type: undefined,
+    },
+    tableParams: {
+        page: 1,
+        pageSize: 50,
+        total: 0 as any,
+    },
+    editNoticeTitle: '',
 });
 
 onMounted(async () => {
-	handleQuery();
+    handleQuery();
 });
 
 // 查询操作
 const handleQuery = async () => {
-	state.loading = true;
-	let params = Object.assign(state.queryParams, state.tableParams);
-	var res = await getAPI(SysNoticeApi).apiSysNoticePagePost(params);
-	state.noticeData = res.data.result?.items ?? [];
-	state.tableParams.total = res.data.result?.total;
-	state.loading = false;
+    state.loading = true;
+    let params = Object.assign(state.queryParams, state.tableParams);
+    var res = await getAPI(SysNoticeApi).apiSysNoticePagePost(params);
+    state.noticeData = res.data.result?.items ?? [];
+    state.tableParams.total = res.data.result?.total;
+    state.loading = false;
 };
 
 // 重置操作
 const resetQuery = () => {
-	state.queryParams.title = undefined;
-	state.queryParams.type = undefined;
-	handleQuery();
+    state.queryParams.title = undefined;
+    state.queryParams.type = undefined;
+    handleQuery();
 };
 
 // 打开新增页面
 const openAddNotice = () => {
-	state.editNoticeTitle = '添加通知公告';
-	editNoticeRef.value?.openDialog({ type: 1 });
+    state.editNoticeTitle = '添加通知公告';
+    editNoticeRef.value?.openDialog({ type: 1 });
 };
 
 // 打开编辑页面
 const openEditNotice = (row: any) => {
-	state.editNoticeTitle = '编辑通知公告';
-	editNoticeRef.value?.openDialog(row);
+    state.editNoticeTitle = '编辑通知公告';
+    editNoticeRef.value?.openDialog(row);
 };
 
 // 删除
 const delNotice = (row: any) => {
-	ElMessageBox.confirm(`确定删除通知公告:【${row.title}】?`, '提示', {
-		confirmButtonText: '确定',
-		cancelButtonText: '取消',
-		type: 'warning',
-	})
-		.then(async () => {
-			await getAPI(SysNoticeApi).apiSysNoticeDeletePost({ id: row.id });
-			handleQuery();
-			ElMessage.success('删除成功');
-		})
-		.catch(() => {});
+    ElMessageBox.confirm(`确定删除通知公告:【${row.title}】?`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+    })
+        .then(async () => {
+            await getAPI(SysNoticeApi).apiSysNoticeDeletePost({ id: row.id });
+            handleQuery();
+            ElMessage.success('删除成功');
+        })
+        .catch(() => { });
 };
 
 // 发布
 const publicNotice = (row: any) => {
-	ElMessageBox.confirm(`确定发布通知公告:【${row.title}】,不可撤销?`, '提示', {
-		confirmButtonText: '确定',
-		cancelButtonText: '取消',
-		type: 'warning',
-	})
-		.then(async () => {
-			await getAPI(SysNoticeApi).apiSysNoticePublicPost({ id: row.id });
-			handleQuery();
-			ElMessage.success('发布成功');
-		})
-		.catch(() => {});
+    ElMessageBox.confirm(`确定发布通知公告:【${row.title}】,不可撤销?`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+    })
+        .then(async () => {
+            await getAPI(SysNoticeApi).apiSysNoticePublicPost({ id: row.id });
+            handleQuery();
+            ElMessage.success('发布成功');
+        })
+        .catch(() => { });
 };
 
 // 改变页面容量
 const handleSizeChange = (val: number) => {
-	state.tableParams.pageSize = val;
-	handleQuery();
+    state.tableParams.pageSize = val;
+    handleQuery();
 };
 
 // 改变页码序号
 const handleCurrentChange = (val: number) => {
-	state.tableParams.page = val;
-	handleQuery();
+    state.tableParams.page = val;
+    handleQuery();
 };
 </script>

+ 2 - 2
Web/src/views/system/tenantConfig/index.vue

@@ -34,7 +34,7 @@ import { getAPI } from '/@/utils/axios-utils';
 import { SysTenantConfigApi } from '/@/api-services/api';
 import ModifyRecord from '/@/components/table/modifyRecord.vue';
 import EditConfig from '/@/views/system/tenantConfig/component/editConfig.vue';
-import { EmptyObjectType, RefType } from '/@/types/global';
+//import { EmptyObjectType, RefType } from '/@/types/global';
 
 // 引入组件
 const Table = defineAsyncComponent(() => import('/@/components/table/index.vue'));
@@ -122,7 +122,7 @@ const getGroupList = async () => {
 	} as TableSearchType;
 	state.groupList = res.data.result ?? [];
 	res.data.result?.forEach((item) => {
-		groupSearch.options?.push({ label: item, value: item });
+		if(item) groupSearch.options?.push({ label: item, value: item });
 	});
 	let group = tb.tableData.search.filter((item) => {
 		return item.prop == 'groupCode';