17vue3实战-----使用配置文件生成简易页面

server/2025/2/13 0:03:44/

17vue3实战-----使用配置文件生成简易页面

  • 1.写在前面
  • 2.背景
  • 3.实现
    • 3.1界面效果
    • 3.2新建config配置文件
    • 3.3封装组件
    • 3.4使用组件

1.写在前面

后台管理系统的开发很简单。无论是用户模块、部门模块、角色模块还是其它模块,界面和业务逻辑都相对比较简单,我会省略这些模块的搭建过程,而着重去讲述一些比较复杂或者新颖的技术点。

2.背景

后台管理项目,经常会出现以下情况:
在这里插入图片描述
在很多模块中,都有类似以上红色区域的情况。这些表单的个数、种类(可能是select、input…)、具体内容都不同。但他们却又有一些相关的地方。如果一个一个界面搭建会比较麻烦,如果能通过配置文件将红色区域的东西表达出来,根据配置文件来确定红色区域的页面,那这万事大吉了。

3.实现

3.1界面效果

这里我以部门模块为例,以下有两个input和一个date-picker。
在这里插入图片描述

3.2新建config配置文件

在department新建config配置文件:
在这里插入图片描述
department/config/search.config.ts:

const searchConfig = {formItems: [{type: 'input',prop: 'name',label: '部门名称',placeholder: '请输入查询的部门名称',initialValue: 'bbb'},{type: 'input',prop: 'leader',label: '部门领导',placeholder: '请输入查询的领导名称'},{type: 'date-picker',prop: 'createAt',label: '创建时间'}]
}
export default searchConfig

3.3封装组件

将红色搜索区域封装成一个组件:
在这里插入图片描述
components/page-search/page-search.vue:

<template><div class="search"><!-- 1.输入搜索关键字的表单 --><el-form:model="searchForm"ref="formRef":label-width="searchConfig.labelWidth ?? '80px'"size="large"><el-row :gutter="20"><template v-for="item in searchConfig.formItems" :key="item.prop"><el-col :span="8"><el-form-item :label="item.label" :prop="item.prop"><template v-if="item.type === 'input'"><el-inputv-model="searchForm[item.prop]":placeholder="item.placeholder"/></template><template v-if="item.type === 'date-picker'"><el-date-pickerv-model="searchForm[item.prop]"type="daterange"range-separator="-"start-placeholder="开始时间"end-placeholder="结束时间"/></template><template v-if="item.type === 'select'"><el-selectv-model="searchForm[item.prop]":placeholder="item.placeholder"style="width: 100%"><template v-for="option in item.options" :key="option.value"><el-option :label="option.label" :value="option.value" /></template></el-select></template></el-form-item></el-col></template></el-row></el-form><!-- 2.重置和搜索的按钮 --><div class="btns"><el-button icon="Refresh" @click="handleResetClick">重置</el-button><el-button icon="Search" type="primary" @click="handleQueryClick">查询</el-button></div></div>
</template><script setup lang="ts">
import { reactive, ref } from 'vue'
import type { ElForm } from 'element-plus'// 定义自定义事件/接收的属性
interface IProps {searchConfig: {labelWidth?: stringformItems: any[]}
}
const props = defineProps<IProps>()
// 定义form的数据
const initialForm: any = {}
for (const item of props.searchConfig.formItems) {initialForm[item.prop] = item.initialValue ?? ''
}
const searchForm = reactive(initialForm)...
</script><style lang="less" scoped>
...
</style>

3.4使用组件

<template><div class="department"><page-search//将配置传给子组件:search-config="searchConfig"@query-click="handleQueryClick"@reset-click="handleResetClick"/>...</div>
</template><script setup lang="ts" name="department">
import { ref } from 'vue'
import PageSearch from '@/components/page-search/page-search.vue'
import searchConfig from './config/search.config'
...
</script>
<style scoped></style>

其它模块也是一样配置,比如角色模块:

const searchConfig = {formItems: [{type: 'input',prop: 'name',label: '角色名称',placeholder: '请输入查询的角色名称',initialValue: 'abc'},{type: 'input',prop: 'leader',label: '权限介绍',placeholder: '请输入查询的权限介绍'},{type: 'date-picker',prop: 'createAt',label: '创建时间'}]
}export default searchConfig

甚至有些时候还需要动态改动配置,这些都可以自己去思考。


http://www.ppmy.cn/server/167194.html

相关文章

通过 UserFeedback 创建浮动联系表单的完整指南

在当今数字时代&#xff0c;网站的用户体验至关重要。而让用户能够随时与网站管理员联系&#xff0c;是提升用户体验的重要方式。浮动联系表单作为一种始终可见的联系途径&#xff0c;可以大大提高用户的参与度和网站转化率。本文将为你详细介绍如何通过 UserFeedback 插件在 W…

Java 大视界 -- 5G 与 Java 大数据融合的行业应用与发展趋势(82)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

vue2 多页面pdf预览

使用pdfjs-dist预览pdf&#xff0c;实现预加载&#xff0c;滚动条翻页。pdfjs的版本很重要&#xff0c;换了好多版本&#xff0c;终于有一个能用的 node 20.18.1 "pdfjs-dist": "^2.2.228", vue页面代码如下 <template><div v-loading"loa…

uniapp中使用uCharts折线图X轴数据间隔显示

1、先看官网 https://www.ucharts.cn/ 2、设置代码 "xAxisDemo3":function(val, index, opts){if(index % 2 0){return val}else {return }}, 再在数据中引入设置好样式

Kotlin Android 环境搭建

Kotlin Android 环境搭建 引言 随着移动应用的日益普及,Android 开发成为了一个热门的技术领域。Kotlin 作为一种现代的编程语言,因其简洁、安全、互操作性强等特点,被越来越多的开发者所喜爱。本文将详细介绍 Kotlin Android 环境搭建的步骤,帮助您快速上手 Kotlin Andr…

渗透利器:Burp Suite 联动 XRAY 图形化工具.(主动扫描+被动扫描)

Burp Suite 联动 XRAY 图形化工具.&#xff08;主动扫描被动扫描&#xff09; Burp Suite 和 Xray 联合使用&#xff0c;能够将 Burp 的强大流量拦截与修改功能&#xff0c;与 Xray 的高效漏洞检测能力相结合&#xff0c;实现更全面、高效的网络安全测试&#xff0c;同时提升漏…

【C#零基础从入门到精通】(三)——C#变量和数据类型详解

【C#零基础从入门到精通】(三)——C#变量和数据类型详解 数据类型 在 C# 中,数据类型是对数据进行分类的方式,它定义了变量可以存储的数据的种类、范围以及可以对这些数据执行的操作。C# 的数据类型主要分为值类型、引用类型和指针类型(指针类型通常在不安全代码中使用),…

Linux内核模块参数与性能优化:__read_mostly属性的深度剖析

在Linux内核开发中,模块参数和性能优化是两个至关重要的主题。模块参数允许开发者和用户在加载内核模块时动态配置模块的行为,而性能优化则是确保内核高效运行的关键。本文将深入探讨Linux内核中的模块参数机制以及__read_mostly属性的使用,通过实际代码示例和详细解释,帮助…