Ver código fonte

增加系统参数配置页面

zuohuaijun 3 anos atrás
pai
commit
de7dc0ef35

+ 0 - 80
Admin.NET/Admin.NET.Core/Admin.NET.Core.xml

@@ -4522,86 +4522,6 @@
             编码
             </summary>
         </member>
-        <member name="P:Admin.NET.Core.Service.AddConfigInput.Name">
-            <summary>
-            名称
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.AddConfigInput.Code">
-            <summary>
-            编码
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.AddConfigInput.Value">
-            <summary>
-            属性值
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.AddConfigInput.SysFlag">
-            <summary>
-            是否是系统参数(Y-是,N-否)
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.AddConfigInput.GroupCode">
-            <summary>
-            常量所属分类的编码
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.AddConfigInput.Order">
-            <summary>
-            排序
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.AddConfigInput.Remark">
-            <summary>
-            备注
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.AddConfigInput.Status">
-            <summary>
-            状态
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.UpdateConfigInput.Name">
-            <summary>
-            名称
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.UpdateConfigInput.Code">
-            <summary>
-            编码
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.UpdateConfigInput.Value">
-            <summary>
-            属性值
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.UpdateConfigInput.SysFlag">
-            <summary>
-            是否是系统参数(Y-是,N-否)
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.UpdateConfigInput.GroupCode">
-            <summary>
-            常量所属分类的编码
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.UpdateConfigInput.Order">
-            <summary>
-            排序
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.UpdateConfigInput.Remark">
-            <summary>
-            备注
-            </summary>
-        </member>
-        <member name="P:Admin.NET.Core.Service.UpdateConfigInput.Status">
-            <summary>
-            状态
-            </summary>
-        </member>
         <member name="T:Admin.NET.Core.Service.SysConfigService">
             <summary>
             系统参数配置服务

+ 5 - 84
Admin.NET/Admin.NET.Core/Service/Config/Dto/ConfigInput.cs

@@ -4,9 +4,6 @@ public class ConfigInput : BaseIdInput
 {
 }
 
-/// <summary>
-/// 参数配置分页
-/// </summary>
 public class PageConfigInput : BasePageInput
 {
     /// <summary>
@@ -20,92 +17,16 @@ public class PageConfigInput : BasePageInput
     public string Code { get; set; }
 }
 
-public class AddConfigInput
+[NotTable]
+public class AddConfigInput : SysConfig
 {
-    /// <summary>
-    /// 名称
-    /// </summary>
-    public string Name { get; set; }
-
-    /// <summary>
-    /// 编码
-    /// </summary>
-    public string Code { get; set; }
-
-    /// <summary>
-    /// 属性值
-    /// </summary>
-    public string Value { get; set; }
-
-    /// <summary>
-    /// 是否是系统参数(Y-是,N-否)
-    /// </summary>
-    public int SysFlag { get; set; }
-
-    /// <summary>
-    /// 常量所属分类的编码
-    /// </summary>
-    public string GroupCode { get; set; }
-
-    /// <summary>
-    /// 排序
-    /// </summary>
-    public int Order { get; set; }
-
-    /// <summary>
-    /// 备注
-    /// </summary>
-    public string Remark { get; set; }
-
-    /// <summary>
-    /// 状态
-    /// </summary>
-    public int Status { get; set; }
 }
 
-public class DeleteConfigInput : BaseIdInput
+[NotTable]
+public class UpdateConfigInput : AddConfigInput
 {
 }
 
-public class UpdateConfigInput : BaseIdInput
+public class DeleteConfigInput : BaseIdInput
 {
-    /// <summary>
-    /// 名称
-    /// </summary>
-    public string Name { get; set; }
-
-    /// <summary>
-    /// 编码
-    /// </summary>
-    public string Code { get; set; }
-
-    /// <summary>
-    /// 属性值
-    /// </summary>
-    public string Value { get; set; }
-
-    /// <summary>
-    /// 是否是系统参数(Y-是,N-否)
-    /// </summary>
-    public int SysFlag { get; set; }
-
-    /// <summary>
-    /// 常量所属分类的编码
-    /// </summary>
-    public string GroupCode { get; set; }
-
-    /// <summary>
-    /// 排序
-    /// </summary>
-    public int Order { get; set; }
-
-    /// <summary>
-    /// 备注
-    /// </summary>
-    public string Remark { get; set; }
-
-    /// <summary>
-    /// 状态
-    /// </summary>
-    public int Status { get; set; }
 }

+ 41 - 10
vue-next-admin/src/api-services/models/add-config-input.ts

@@ -11,18 +11,55 @@
  * https://github.com/swagger-api/swagger-codegen.git
  * Do not edit the class manually.
  */
+import { YesNoEnum } from './yes-no-enum';
 /**
  * 
  * @export
  * @interface AddConfigInput
  */
 export interface AddConfigInput {
+    /**
+     * 雪花Id
+     * @type {number}
+     * @memberof AddConfigInput
+     */
+    id?: number;
+    /**
+     * 创建时间
+     * @type {Date}
+     * @memberof AddConfigInput
+     */
+    createTime?: Date | null;
+    /**
+     * 更新时间
+     * @type {Date}
+     * @memberof AddConfigInput
+     */
+    updateTime?: Date | null;
+    /**
+     * 创建者Id
+     * @type {number}
+     * @memberof AddConfigInput
+     */
+    createUserId?: number | null;
+    /**
+     * 修改者Id
+     * @type {number}
+     * @memberof AddConfigInput
+     */
+    updateUserId?: number | null;
+    /**
+     * 软删除
+     * @type {boolean}
+     * @memberof AddConfigInput
+     */
+    isDelete?: boolean;
     /**
      * 名称
      * @type {string}
      * @memberof AddConfigInput
      */
-    name?: string | null;
+    name: string;
     /**
      * 编码
      * @type {string}
@@ -36,11 +73,11 @@ export interface AddConfigInput {
      */
     value?: string | null;
     /**
-     * 是否是系统参数(Y-是,N-否)
-     * @type {number}
+     * 
+     * @type {YesNoEnum}
      * @memberof AddConfigInput
      */
-    sysFlag?: number;
+    sysFlag?: YesNoEnum;
     /**
      * 常量所属分类的编码
      * @type {string}
@@ -59,10 +96,4 @@ export interface AddConfigInput {
      * @memberof AddConfigInput
      */
     remark?: string | null;
-    /**
-     * 状态
-     * @type {number}
-     * @memberof AddConfigInput
-     */
-    status?: number;
 }

+ 37 - 12
vue-next-admin/src/api-services/models/update-config-input.ts

@@ -11,6 +11,7 @@
  * https://github.com/swagger-api/swagger-codegen.git
  * Do not edit the class manually.
  */
+import { YesNoEnum } from './yes-no-enum';
 /**
  * 
  * @export
@@ -18,17 +19,47 @@
  */
 export interface UpdateConfigInput {
     /**
-     * 主键Id
+     * 雪花Id
      * @type {number}
      * @memberof UpdateConfigInput
      */
-    id: number;
+    id?: number;
+    /**
+     * 创建时间
+     * @type {Date}
+     * @memberof UpdateConfigInput
+     */
+    createTime?: Date | null;
+    /**
+     * 更新时间
+     * @type {Date}
+     * @memberof UpdateConfigInput
+     */
+    updateTime?: Date | null;
+    /**
+     * 创建者Id
+     * @type {number}
+     * @memberof UpdateConfigInput
+     */
+    createUserId?: number | null;
+    /**
+     * 修改者Id
+     * @type {number}
+     * @memberof UpdateConfigInput
+     */
+    updateUserId?: number | null;
+    /**
+     * 软删除
+     * @type {boolean}
+     * @memberof UpdateConfigInput
+     */
+    isDelete?: boolean;
     /**
      * 名称
      * @type {string}
      * @memberof UpdateConfigInput
      */
-    name?: string | null;
+    name: string;
     /**
      * 编码
      * @type {string}
@@ -42,11 +73,11 @@ export interface UpdateConfigInput {
      */
     value?: string | null;
     /**
-     * 是否是系统参数(Y-是,N-否)
-     * @type {number}
+     * 
+     * @type {YesNoEnum}
      * @memberof UpdateConfigInput
      */
-    sysFlag?: number;
+    sysFlag?: YesNoEnum;
     /**
      * 常量所属分类的编码
      * @type {string}
@@ -65,10 +96,4 @@ export interface UpdateConfigInput {
      * @memberof UpdateConfigInput
      */
     remark?: string | null;
-    /**
-     * 状态
-     * @type {number}
-     * @memberof UpdateConfigInput
-     */
-    status?: number;
 }

+ 135 - 0
vue-next-admin/src/views/system/config/component/editConfig.vue

@@ -0,0 +1,135 @@
+<template>
+	<div class="sys-config-container">
+		<el-dialog v-model="isShowDialog" width="600px">
+			<template #header>
+				<div style="font-size: large" v-drag="['.el-dialog', '.el-dialog__header']">
+					{{ title }}
+				</div>
+			</template>
+			<el-form :model="ruleForm" :rules="ruleRules" ref="ruleFormRef" size="default" label-width="80px">
+				<el-row :gutter="35">
+					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+						<el-form-item label="配置名称" prop="name">
+							<el-input v-model="ruleForm.name" placeholder="配置名称" clearable></el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+						<el-form-item label="配置编码" prop="code">
+							<el-input v-model="ruleForm.code" placeholder="配置编码" clearable :disabled="ruleForm.sysFlag == 1"></el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="值" prop="value">
+							<el-input v-model="ruleForm.value" placeholder="值" clearable></el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="系统参数" prop="sysFlag">
+							<el-radio-group v-model="ruleForm.sysFlag" :disabled="ruleForm.sysFlag == 1">
+								<el-radio :label="1">是</el-radio>
+								<el-radio :label="2">否</el-radio>
+							</el-radio-group>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="所属分类" prop="groupCode">
+							<el-input v-model="ruleForm.groupCode" placeholder="所属分类" clearable :disabled="ruleForm.sysFlag == 1"></el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+						<el-form-item label="排序">
+							<el-input-number v-model="ruleForm.order" placeholder="排序" class="w100" />
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+						<el-form-item label="备注">
+							<el-input v-model="ruleForm.remark" placeholder="请输入备注内容" clearable type="textarea"> </el-input>
+						</el-form-item>
+					</el-col>
+				</el-row>
+			</el-form>
+			<template #footer>
+				<span class="dialog-footer">
+					<el-button @click="cancel" size="default">取 消</el-button>
+					<el-button type="primary" @click="submit" size="default">确 定</el-button>
+				</span>
+			</template>
+		</el-dialog>
+	</div>
+</template>
+
+<script lang="ts">
+import { reactive, toRefs, defineComponent, getCurrentInstance, ref } from 'vue';
+
+import { getAPI } from '/@/utils/axios-utils';
+import { SysConfigApi } from '/@/api-services/api';
+
+export default defineComponent({
+	name: 'sysEditPos',
+	components: {},
+	props: {
+		// 弹窗标题
+		title: {
+			type: String,
+			default: '',
+		},
+	},
+	setup() {
+		const { proxy } = getCurrentInstance() as any;
+		const ruleFormRef = ref();
+		const state = reactive({
+			isShowDialog: false,
+			ruleForm: {
+				id: 0, // Id
+				name: '', // 配置名称
+				code: '', // 配置编码
+				value: '', // 值
+				sysFlag: 1, // 系统参数
+				groupCode: '', // 所属分类
+				order: 100, // 排序
+				remark: '', // 备注
+			},
+			ruleRules: {
+				name: [{ required: true, message: '配置名称不能为空', trigger: 'blur' }],
+				code: [{ required: true, message: '配置编码不能为空', trigger: 'blur' }],
+				value: [{ required: true, message: '值不能为空', trigger: 'blur' }],
+				sysFlag: [{ required: true, message: '系统参数不能为空', trigger: 'blur' }],
+			},
+		});
+		// 打开弹窗
+		const openDialog = (row: any) => {
+			state.ruleForm = row;
+			state.isShowDialog = true;
+		};
+		// 关闭弹窗
+		const closeDialog = () => {
+			proxy.mittBus.emit('submitRefresh');
+			state.isShowDialog = false;
+		};
+		// 取消
+		const cancel = () => {
+			state.isShowDialog = false;
+		};
+		// 提交
+		const submit = () => {
+			ruleFormRef.value.validate(async (valid: boolean) => {
+				if (!valid) return;
+				if (state.ruleForm.id != undefined && state.ruleForm.id > 0) {
+					await getAPI(SysConfigApi).sysConfigUpdatePost(state.ruleForm);
+				} else {
+					await getAPI(SysConfigApi).sysConfigAddPost(state.ruleForm);
+				}
+				closeDialog();
+			});
+		};
+		return {
+			ruleFormRef,
+			openDialog,
+			closeDialog,
+			cancel,
+			submit,
+			...toRefs(state),
+		};
+	},
+});
+</script>

+ 157 - 0
vue-next-admin/src/views/system/config/index.vue

@@ -0,0 +1,157 @@
+<template>
+	<div class="sys-config-container">
+		<el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
+			<el-form :model="queryParams" ref="queryForm" :inline="true">
+				<el-form-item label="配置名称" prop="name">
+					<el-input placeholder="配置名称" clearable @keyup.enter="handleQuery" v-model="queryParams.name" />
+				</el-form-item>
+				<el-form-item label="配置编码" prop="code">
+					<el-input placeholder="配置编码" clearable @keyup.enter="handleQuery" v-model="queryParams.code" />
+				</el-form-item>
+				<el-form-item>
+					<el-button icon="ele-Refresh" @click="resetQuery"> 重置 </el-button>
+					<el-button type="primary" icon="ele-Search" @click="handleQuery"> 查询 </el-button>
+					<el-button icon="ele-Plus" @click="openAddConfig"> 新增 </el-button>
+				</el-form-item>
+			</el-form>
+		</el-card>
+
+		<el-card shadow="hover" style="margin-top: 8px">
+			<el-table :data="configData" style="width: 100%" v-loading="loading" border>
+				<el-table-column type="index" label="序号" width="55" align="center" />
+				<el-table-column prop="name" label="配置名称" show-overflow-tooltip></el-table-column>
+				<el-table-column prop="code" label="配置编码" show-overflow-tooltip></el-table-column>
+				<el-table-column prop="value" label="属性值" show-overflow-tooltip></el-table-column>
+				<el-table-column prop="sysFlag" label="平台参数" width="100" align="center" show-overflow-tooltip>
+					<template #default="scope">
+						<el-tag v-if="scope.row.sysFlag === 1"> 是 </el-tag>
+						<el-tag type="danger" v-else> 否 </el-tag>
+					</template>
+				</el-table-column>
+				<el-table-column prop="groupCode" label="所属分类" show-overflow-tooltip></el-table-column>
+				<el-table-column prop="order" label="排序" width="70" align="center" show-overflow-tooltip> </el-table-column>
+				<el-table-column prop="createTime" label="修改时间" align="center" show-overflow-tooltip></el-table-column>
+				<el-table-column prop="remark" label="备注" show-overflow-tooltip></el-table-column>
+				<el-table-column label="操作" width="140" fixed="right" align="center" show-overflow-tooltip>
+					<template #default="scope">
+						<el-button icon="ele-Edit" size="small" text type="primary" @click="openEditConfig(scope.row)"> 编辑 </el-button>
+						<el-button icon="ele-Delete" size="small" text type="primary" @click="delConfig(scope.row)"> 删除 </el-button>
+					</template>
+				</el-table-column>
+			</el-table>
+			<el-pagination
+				v-model:currentPage="tableParams.page"
+				v-model:page-size="tableParams.pageSize"
+				:total="tableParams.total"
+				:page-sizes="[10, 20, 50, 100]"
+				small
+				background
+				@size-change="handleSizeChange"
+				@current-change="handleCurrentChange"
+				layout="total, sizes, prev, pager, next, jumper"
+			/>
+		</el-card>
+		<EditConfig ref="editConfigRef" :title="editConfigTitle" />
+	</div>
+</template>
+
+<script lang="ts">
+import { toRefs, reactive, onMounted, ref, defineComponent, onUnmounted, getCurrentInstance } from 'vue';
+import { ElMessageBox, ElMessage } from 'element-plus';
+import EditConfig from '/@/views/system/config/component/editConfig.vue';
+
+import { getAPI } from '/@/utils/axios-utils';
+import { SysConfigApi } from '/@/api-services';
+
+export default defineComponent({
+	name: 'sysConfig',
+	components: { EditConfig },
+	setup() {
+		const { proxy } = getCurrentInstance() as any;
+		const editConfigRef = ref();
+		const state = reactive({
+			loading: true,
+			configData: [] as any,
+			queryParams: {
+				name: undefined,
+				code: undefined,
+			},
+			tableParams: {
+				page: 1,
+				pageSize: 10,
+				total: 0 as any,
+			},
+			editConfigTitle: '',
+		});
+		onMounted(async () => {
+			handleQuery();
+
+			proxy.mittBus.on('submitRefresh', () => {
+				handleQuery();
+			});
+		});
+		onUnmounted(() => {
+			proxy.mittBus.off('submitRefresh');
+		});
+		// 查询操作
+		const handleQuery = async () => {
+			state.loading = true;
+			var res = await getAPI(SysConfigApi).sysConfigPageGet(state.queryParams.name, state.queryParams.code, state.tableParams.page, state.tableParams.pageSize);
+			state.configData = res.data.result?.items;
+			state.tableParams.total = res.data.result?.total;
+			state.loading = false;
+		};
+		// 重置操作
+		const resetQuery = () => {
+			state.queryParams.name = undefined;
+			state.queryParams.code = undefined;
+			handleQuery();
+		};
+		// 打开新增页面
+		const openAddConfig = () => {
+			state.editConfigTitle = '添加配置';
+			editConfigRef.value.openDialog({});
+		};
+		// 打开编辑页面
+		const openEditConfig = (row: any) => {
+			state.editConfigTitle = '编辑配置';
+			editConfigRef.value.openDialog(row);
+		};
+		// 删除
+		const delConfig = (row: any) => {
+			ElMessageBox.confirm(`确定删除配置:【${row.name}】?`, '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning',
+			})
+				.then(async () => {
+					await getAPI(SysConfigApi).sysConfigDeletePost({ id: row.id });
+					handleQuery();
+					ElMessage.success('删除成功');
+				})
+				.catch(() => {});
+		};
+		// 改变页面容量
+		const handleSizeChange = (val: number) => {
+			state.tableParams.pageSize = val;
+			handleQuery();
+		};
+		// 改变页码序号
+		const handleCurrentChange = (val: number) => {
+			state.tableParams.page = val;
+			handleQuery();
+		};
+		return {
+			handleQuery,
+			resetQuery,
+			editConfigRef,
+			openAddConfig,
+			openEditConfig,
+			delConfig,
+			handleSizeChange,
+			handleCurrentChange,
+			...toRefs(state),
+		};
+	},
+});
+</script>