当前位置: 首页 > article >正文

仿照管理系统布局配置

1.vue仿照snowy 配置,如下图:

2.代码实现

<template><div class="theme-settings"><!-- 导航栏 --><div class="nav-bar"><el-breadcrumb separator="/"><el-breadcrumb-item>导航设置</el-breadcrumb-item><el-breadcrumb-item>导航菜单布局</el-breadcrumb-item></el-breadcrumb></div><!-- 设置区域 --><div class="settings-section"><!-- 整体风格设置 --><div class="setting-item"><span class="label">整体风格设置</span><div class="style-options"><divv-for="(style, index) in styles":key="index":class="{ 'style-block': true, selected: selectedStyle === style.value }"@click="selectStyle(style.value)"><div :class="['style-icon', style.class]"><div :class="['header-bar', style.headerClass]"></div></div></div></div></div><!-- 整体界面布局 --><div class="setting-item"><span class="label">整体界面布局</span><div class="layout-options"><divv-for="(layout, index) in layouts":key="index":class="{ 'layout-block': true, selected: selectedLayout === layout.value }"@click="selectLayout(layout.value)"><div :class="['layout-icon', layout.class]"><div :class="['header-bar', layout.headerClass]"></div></div></div></div></div><!-- 主题设置 --><h3>主题设置 <el-button type="text" size="small" @click="resetTheme">恢复默认(黑灰)</el-button></h3><!-- 主题色 --><div class="setting-item"><span class="label">主题色</span><div class="color-picker"><divv-for="(color, index) in themeColors":key="index":style="{ backgroundColor: color }":class="{ 'color-block': true, selected: selectedThemeColor === color }"@click="selectThemeColor(color)"></div></div></div><!-- 页面公用主色 --><div class="setting-item"><span class="label">页面公用主色</span><el-switch v-model="useCommonMainColor"></el-switch></div><!-- 页面公用背景色 --><div class="setting-item"><span class="label">页面公用背景色</span><el-switch v-model="useCommonBgColor"></el-switch></div><!-- 侧边栏 --><div class="setting-item"><span class="label">侧边栏</span><el-switch v-model="showSidebar"></el-switch></div><!-- 侧边栏展开 --><div class="setting-item"><span class="label">侧边栏展开</span><el-switch v-model="expandSidebar"></el-switch></div><!-- 变更模块展开方式 --><div class="setting-item"><span class="label">变更模块展开方式</span><el-switch v-model="changeModuleExpand"></el-switch></div><!-- 变更用户小卡片 --><div class="setting-item"><span class="label">变更用户小卡片</span><el-switch v-model="changeUserCard"></el-switch></div><!-- 页面权限角色 --><div class="setting-item"><span class="label">页面权限角色</span><el-switch v-model="enablePageRole"></el-switch></div><!-- 页面权限 --><div class="setting-item"><span class="label">页面权限</span><el-switch v-model="enablePagePermission"></el-switch></div><!-- 提示信息 --><div class="tip"><el-alerttitle="提示:切换主题需重新登录,开发需先在 config/index.js 中配置默认值,否则不会生效"type="warning":closable="false"></el-alert></div><!-- 操作按钮 --><div class="actions"><el-button type="primary" @click="saveSettings">提交</el-button><el-button @click="resetSettings">重置</el-button></div></div></div>
</template><script>
export default {data() {return {// 整体风格设置选项styles: [{ value: "style1", class: "style1", headerClass: "header-dark" },{ value: "style2", class: "style2", headerClass: "header-light" },{ value: "style3", class: "style3", headerClass: "header-dark" },],selectedStyle: "style3", // 默认选中第三个// 整体界面布局选项layouts: [{ value: "layout1", class: "layout1", headerClass: "header-dark" },{ value: "layout2", class: "layout2", headerClass: "header-dark" },{ value: "layout3", class: "layout3", headerClass: "header-dark" },],selectedLayout: "layout1", // 默认选中第一个// 主题色themeColors: ["#FF0000", // 红"#FF69B4", // 粉"#00CED1", // 青"#00FF00", // 绿"#0000FF", // 蓝"#800080", // 紫"#000000", // 黑],selectedThemeColor: "#000000", // 默认黑色useCommonMainColor: false,useCommonBgColor: false,showSidebar: true,expandSidebar: false,changeModuleExpand: true,changeUserCard: false,enablePageRole: false,enablePagePermission: false,};},methods: {selectStyle(style) {this.selectedStyle = style;this.$message.success(`已选择风格:${style}`);},selectLayout(layout) {this.selectedLayout = layout;this.$message.success(`已选择布局:${layout}`);},selectThemeColor(color) {this.selectedThemeColor = color;this.$message.success(`已选择主题色:${color}`);},resetTheme() {this.selectedThemeColor = "#000000";this.$message.success("已恢复默认主题(黑灰)");},saveSettings() {const settings = {style: this.selectedStyle,layout: this.selectedLayout,themeColor: this.selectedThemeColor,useCommonMainColor: this.useCommonMainColor,useCommonBgColor: this.useCommonBgColor,showSidebar: this.showSidebar,expandSidebar: this.expandSidebar,changeModuleExpand: this.changeModuleExpand,changeUserCard: this.changeUserCard,enablePageRole: this.enablePageRole,enablePagePermission: this.enablePagePermission,};console.log("保存设置:", settings);this.$message.success("设置已保存,请重新登录以生效");},resetSettings() {this.selectedStyle = "style3";this.selectedLayout = "layout1";this.selectedThemeColor = "#000000";this.useCommonMainColor = false;this.useCommonBgColor = false;this.showSidebar = true;this.expandSidebar = false;this.changeModuleExpand = true;this.changeUserCard = false;this.enablePageRole = false;this.enablePagePermission = false;this.$message.success("已重置所有设置");},},
};
</script><style lang="less" scoped>
.theme-settings {padding: 20px;.nav-bar {margin-bottom: 20px;}.settings-section {background: #fff;padding: 20px;border-radius: 4px;box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);h3 {margin-bottom: 20px;font-size: 18px;display: flex;justify-content: space-between;align-items: center;}.setting-item {display: flex;justify-content: space-between;align-items: center;margin-bottom: 20px;.label {font-size: 14px;color: #333;}.style-options,.layout-options {display: flex;gap: 10px;.style-block,.layout-block {width: 60px;height: 40px;border-radius: 4px;border: 2px solid transparent;cursor: pointer;position: relative;transition: border 0.3s;&.selected {border: 2px solid #409eff;&:after {content: "\2713"; /* 勾号 */position: absolute;top: 2px;right: 2px;color: #409eff;font-size: 16px;font-weight: bold;}}.style-icon,.layout-icon {width: 100%;height: 100%;border-radius: 2px;position: relative;overflow: hidden;}/* 头部颜色条 */.header-bar {position: absolute;top: 0;left: 0;width: 100%;height: 8px; /* 头部高度 */}.header-dark {background-color: #2c3e50; /* 深色头部 */}.header-light {background-color: #ecf0f1; /* 浅色头部 */}/* 整体风格设置图标样式 */.style1 {background: linear-gradient(to right, #2c3e50 20%, #ecf0f1 20%);}.style2 {background: linear-gradient(to right, #ecf0f1 20%, #ecf0f1 20%);}.style3 {background: linear-gradient(to right, #2c3e50 20%, #2c3e50 20%);}/* 整体界面布局图标样式 */.layout1 {background: linear-gradient(to right, #2c3e50 20%, #ecf0f1 20%);}.layout2 {background: linear-gradient(to right, #2c3e50 20%, #ecf0f1 20%);}.layout3 {background: linear-gradient(to right, #2c3e50 20%, #2c3e50 20%);}}}.color-picker {display: flex;gap: 10px;.color-block {width: 30px;height: 30px;border-radius: 4px;cursor: pointer;border: 2px solid transparent;transition: border 0.3s;&.selected {border: 2px solid #409eff;}}}}.tip {margin-bottom: 20px;}.actions {text-align: right;.el-button {margin-left: 10px;}}}
}
</style>

相关文章:

仿照管理系统布局配置

1.vue仿照snowy 配置&#xff0c;如下图&#xff1a; 2.代码实现 <template><div class"theme-settings"><!-- 导航栏 --><div class"nav-bar"><el-breadcrumb separator"/"><el-breadcrumb-item>导航设置…...

A2L文件解析

目录 1 摘要2 A2L文件介绍2.1 A2L文件作用2.2 A2L文件格式详解2.2.1 A2L文件基本结构2.2.2 关键元素与声明2.2.3 完整A2L文件示例 3 总结 1 摘要 A2L文件&#xff08;也称为ASAP2文件&#xff09;是ECU开发的核心接口文件&#xff0c;用于标定、测量和诊断的关键配置文件&…...

GPT - 因果掩码(Causal Mask)

本节代码定义了一个函数 causal_mask&#xff0c;用于生成因果掩码&#xff08;Causal Mask&#xff09;。因果掩码通常用于自注意力机制中&#xff0c;以确保模型在解码时只能看到当前及之前的位置&#xff0c;而不能看到未来的信息。这种掩码在自然语言处理任务&#xff08;如…...

SpringBoot 数据库MySql的读写分离 多数据源 Shardingsphere高并发优化

介绍 传统的 MySQL 架构中&#xff0c;所有的数据库操作&#xff08;包括读操作和写操作&#xff09;都在同一个数据库实例上进行。随着应用程序的规模增长&#xff0c;单一数据库实例可能会成为瓶颈&#xff0c;无法满足高并发的需求。为了优化性能&#xff0c;可以将数据库的…...

适合工程建筑行业的OA系统有什么推荐?

工程行业具有项目周期长、协作链条复杂等特性&#xff0c;传统管理模式下的 “人治”“纸质化” 弊端日益凸显。OA 系统作为数字化管理的核心载体&#xff0c;通过流程标准化、数据可视化&#xff0c;精准解决工程行业项目管理核心痛点。 泛微 e-office 深度聚焦工程场景&#…...

如何使用 DeepSeek 帮助自己的工作?

1. 信息检索 信息检索是获取特定信息的过程&#xff0c;尤其是在大量数据或文本中查找相关内容。这个过程应用广泛&#xff0c;从网页搜索引擎到数据库查询&#xff0c;再到企业内部信息系统。在使用 DeepSeek 或其它类似工具进行信息检索时&#xff0c;可以考虑以下几个重要方…...

python对mysql数据库的操作

现在遇到一个问题如何将数据批量的插入mysql数据库中 基础操作 import asyncio from config import config from mysql_pool import MysqlPoolclass MysqlLoop(object):def __init__(self):self.logger config.loggerself.pool MysqlPool()def loop_query(self, queries):lo…...

MFC案例:利用CFileDialog类选择多个文件的实验

在MFC项目中使用CFileDialog打开文件时&#xff0c;一般的使用场景是选择一个文件&#xff0c;今天我们做一个选择多个文件的实验&#xff0c;运行环境是VS2022。 实验目标&#xff1a;在基于对话框的MFC项目中&#xff0c;通过调用CFileDialog类对象&#xff0c;将选择…...

深入解析栈回溯技术:如何通过异常处理精准定位程序崩溃点

一、栈回溯 1.1 栈回溯的原理 调试程序时&#xff0c;经常发生这类错误&#xff1a; 1.读写某个地址&#xff0c;导致程序崩溃 2.调用某个空函数&#xff0c;导致程序崩溃在异常处理函数中&#xff0c;可以打印出”发生错误瞬间”的所有寄存器。 我们调试时&#xff0c;可以…...

封装uniapp request promise化

uniapp request 封装 一、 封装方法1. 使用 promis 封装 request2. 封装 api 在 api.js3.在要请求的页面 调用 api 一、 封装方法 1. 使用 promis 封装 request const BASE_URL 你的url接口 //比如 http://198.12.3.3/pzexport function request(config {}){let {url,dat…...

重构居家养老安全网:从 “被动响应” 到 “主动守护”

随着全球老龄化加剧&#xff0c;居家养老安全成为社会关注的核心议题。 传统养老模式依赖人工巡检或单一传感器&#xff0c;存在响应滞后、隐私泄露、场景覆盖不足等问题。 由此智绅科技应运而生&#xff0c;七彩喜智慧养老系统构筑居家养老安全网。 而物联网&#xff08;Io…...

深入理解 GLOG_minloglevel 与 GLOG_v:原理与使用示例

文章目录 深入理解 GLOG_minloglevel 与 GLOG_v&#xff1a;原理与使用示例1. GLOG_minloglevel&#xff1a;最低日志等级控制2. GLOG_v&#xff1a;控制 VLOG() 的详细输出等级3. GLOG_minloglevel 与 GLOG_v 的优先级关系4. 使用示例4.1 基础示例&#xff1a;不同日志等级4.2…...

Unity6下架中国区,团结引擎接棒:这是分裂,还是本地化的开始?

就在近日&#xff0c;一则消息在国内游戏开发圈内迅速传播开来&#xff1a;Unity 6 及其后续版本已在中国大陆及港澳地区下架。这意味着&#xff0c;未来中国用户将无法直接使用 Unity 最新的主线版本。而取而代之的&#xff0c;是由 Unity 中国主导推出的本地化产品 —— 团结…...

ESP8266水位监测以及温湿度数据采集

上面就是ESP8266的引脚图&#xff0c;水温检测使用的是水位监测传感器&#xff0c;温湿度测量使用的是DHT11&#xff0c;DHT11的反应时间是2秒&#xff0c;这里要注意。开发采用Arduino程序 1. 传感器初始化 功能&#xff1a;初始化DHT11温湿度传感器和串口通信。 代码实现&…...

国产信创数据库:PolarDB 分布式版 V2.0,支持集中分布式一体化

阿里云PolarDB数据库管理软件&#xff08;分布式版&#xff09;V2.0 &#xff0c;安全可靠的集中分布式一体化数据库管理软件。点此查看详情https://www.aliyun.com/activity/database/polardbx-v2?spma2c6h.13046898.publish-article.8.44146ffaE0lEWT 立即咨询专家&#xf…...

iOS按键精灵辅助工具在游戏开发中的创新应用

一、iOS自动化测试辅助工具 在移动游戏开发领域&#xff0c;iOS按键精灵类辅助工具不同于传统的安卓自动化方案&#xff0c;iOS环境下的自动化测试面临更严峻的技术挑战&#xff0c;但通过创新方法仍可实现精准控制。 # 基于图像识别的智能定位算法示例 def find_button(butt…...

淘宝 API 与 AI 图像识别整合:开启商品主图智能解析新时代

在电商蓬勃发展的当下&#xff0c;淘宝作为行业巨头&#xff0c;承载着海量的商品信息。如何让买家更高效地筛选心仪好物&#xff0c;让卖家精准把握商品展示要点&#xff1f;淘宝 API 与 AI 图像识别技术的整合为这一难题提供了创新性解法&#xff0c;实现对商品主图实时解析&…...

Axure PR 9 中继器 09 删除行

大家好&#xff0c;我是大明同学。 接着上期的内容&#xff0c;这期内容&#xff0c;我们来了解一下Axure中继器数据表删除行交互设计。 预览地址&#xff1a;https://vvlmqu.axshare.com 删除行 1.打开上期RP 文件&#xff0c;设计一个删除弹窗元件&#xff0c; 创建为动态面…...

HDCP(五)

HDCP 2.2 测试用例设计详解 基于HDCP 2.2 CTS v1.1规范及协议核心机制&#xff0c;以下从正常流程与异常场景两大方向拆解测试用例设计要点&#xff0c;覆盖认证、密钥管理、拓扑验证等关键环节&#xff1a; 1. 正常流程测试 1.1 单设备认证 • 测试目标&#xff1a;验证源设…...

商城APP打包教程

下载 HBuilderX 工具 HBuilderX支持插件拓展功能。App开发版已集成相关插件、开箱即用 根据自身电脑系统选择对应软件下载&#xff0c;建议选择APP开发版 2. 下载好软件安装后打开 建议直接在uniapp插件页面一键导入&#xff0c;正常情况下uniapp插件都是最新的&#xff0c;大家…...

Spring 框架的核心基础:IoC 和 AOP

一、IoC&#xff08;Inversion of Control&#xff0c;控制反转&#xff09; 定义&#xff1a; IoC&#xff08;Inversion of Control&#xff0c;控制反转&#xff09;&#xff0c;就是把对象创建和依赖关系的管理交给 Spring 容器&#xff0c;而不是由程序员手动去创建对象…...

SpringBoot 基础知识,HTTP 概述

1. 概述 1.1 Spring Spring 提供若干个子项目&#xff0c;每个项目用于完成特定功能 Spring 的若干个子项目都基于一个基础的框架&#xff1a;Spring Framework 框架类似于 房屋的地基 但 Spring Framework 配置繁琐&#xff0c;入门难度大 1.2 Spring Boot 于是&#xf…...

《网络管理》实践环节04:SNMP监控数据采集流程及SNMP协议详细分析

兰生幽谷&#xff0c;不为莫服而不芳&#xff1b; 君子行义&#xff0c;不为莫知而止休。 1 实验目标 1. 理解SNMP网络管理原理 2. 掌握SNMP服务器采集SNMP Agent数据的方法 3. 掌握SNMP报文发送和应答流程 4. 掌握典型GetResponsePDU数据结构分析的方法 4. 具备SNMP通信…...

RTX30系显卡运行Tensorflow 1.15 GPU版本

​ 30系显卡只支持cuda11.0及以上版本&#xff0c;但很多tensorflow项目用的仍然是1.1x版本&#xff0c;这些版本需要cuda10或者以下版本&#xff0c;这就导致在30系显卡上无法正常运1.1x版本的tensorflow&#xff0c;最近几天我也因为这个问题头疼不已&#xff0c;网上一番搜索…...

debian系统中文输入法失效解决

在 Debian 9.6 上无法切换中文输入法的问题通常与输入法框架&#xff08;如 Fcitx 或 IBus&#xff09;的配置或依赖缺失有关。以下是详细的解决步骤&#xff1a; 1. 安装中文语言包 确保系统已安装中文语言支持&#xff1a; sudo apt update sudo apt install locales sudo…...

《Uniapp-Vue 3-TS 实战开发》构建HTTP请求拦截器

引言 在 UniApp 结合 TypeScript 和 Vue3 的项目开发中&#xff0c;请求拦截器起着至关重要的作用。它能够在请求发送前和响应接收后对数据进行统一处理&#xff0c;极大地提高了代码的可维护性和功能性。本文将详细解析上述代码中请求拦截器的实现及其在 UniApp-Ts-Vue3 项目中…...

C#基础类型系统-接口

接口 - 定义多种类型的行为 接口包含非抽象 class 或 struct 必须实现的一组相关功能的定义。接口可以定义 static 方法&#xff0c;此类方法必须具有实现。接口可为成员定义默认实现。接口不能声明实例数据&#xff0c;如字段、自动实现的属性或类似属性的事件。C#不支持类的…...

StringTemplate修仙指南:字符串处理的“言出法随“大法

各位在字符串处理苦海中挣扎的道友们&#xff01;今天要解锁的是StringTemplate这门"言出法随"的绝学——用模板语法让字符串替换变得优雅如诗&#xff01;无论是代码生成、邮件模板还是动态SQL&#xff0c;都能一键搞定&#xff01;准备好告别String.format()的混沌…...

从PDF中提取表格:以GB/T2260—2007为例

文章目录 先说结论前因后果思路1、PDF2CSV2、PDF2MD → MD2CSV3、针对不同表格的两种思路1&#xff09; 竖形三线表2&#xff09;五元素为一组 还没结束批量处理1、分割markdown文档2、跳过另一种格式的文档 总结一下 先说结论 结论就是&#xff0c;博主用了一天的时间去研究如…...

初识MySQL · 复合查询(内外连接)

目录 前言&#xff1a; 基本查询回顾 笛卡尔积和子查询 笛卡尔积 内外连接 子查询 单行子查询 多行子查询 多列子查询 from中使用子查询 合并查询 前言&#xff1a; 在前文我们学习了MySQL的基本查询&#xff0c;就是简单的套用了select语句&#xff0c;最多不过是…...