package.json

"antd-theme-generator": "^1.2.5",
"antd-theme-webpack-plugin": "1.2.0",
"less": "^3.9.0",
"less-loader": "^4.1.0",
//如果高版本的less不能实现主题颜色切换less就换成2.7.3版本的
//less这个2.7.3版本应该是版本太低有个bug,在我的项目中页面加载完后会闪一下变成白屏再重新加载

vue.config.js

const AntDesignThemePlugin = require("antd-theme-webpack-plugin");
const options = {antDir: path.join(__dirname, "./node_modules/ant-design-vue"), //antd包位置stylesDir: path.join(__dirname, "./src/styles"), //主题文件所在文件夹varFile: path.join(__dirname, "./src/styles/variables.less"), // 自定义默认的主题色mainLessFile: path.join(__dirname, "./src/styles/index.less"), // 项目中其他自定义的样式(如果不需要动态修改其他样式,该文件可以为空)themeVariables: ["@primary-color","@success-color"], //要改变的主题变量indexFileName: "./public/index.html", // index.html所在位置outputFilePath: path.join(__dirname, "./public/color.less"), //提取的less文件输出到什么地方generateOnce: false // 是否只生成一次(if you don't want to generate color.less on each chnage in code to make build process fast in development mode, assign it true value. But if you have new changes in your styles, you need to re-run your build process npm start.)
};
module.exports ={configureWebpack: {// webpack pluginsplugins: [// 引入依赖配置new AntDesignThemePlugin(options)],},
}

在src目录下创建style文件夹,文件夹中创建index.less和variables.less文件

variables.less 配置如下:

// 这段样式引入必须添加
@import "~ant-design-vue/lib/style/themes/default.less";
//动态设置默认主题变量
@primary-color: #bfa;

public目录下index.html中添加less执行程序,注意下列代码添加在body标签下

<body>
<link rel="stylesheet/less" type="text/css" href="./color.less" />
<script>window.less = {async: false,env: 'production',javascriptEnabled: true};
</script>
<script src="https://cdn.bootcdn.net/ajax/libs/less.js/3.9.0/less.min.js"></script>
</body>
引入的less要和package.json中的less版本一致,

在页面中设置按钮更换主题

<div><a-button type="primary" @click="changetheme()" style="position:absolute;right: 30%;top: 30%">Primary</a-button>
</div>
changetheme(){
window.less.modifyVars(//更换主题颜色要这么写{'@primary-color': '#e64e14','@success-color': '#fafafa'//这个@...在node_modules\ant-design-vue\lib\style\themes\default.less应该是ant定义好的找找有没有自己能用的//这里写了啥@...也要在vue.config.js中themeVariables里也要写@...}
)
.then(() => {console.log('success')})
.catch(error => {console.log(error);
});
},

注意事项:

  1. 如果项目运行报错

/node_modules/ant-design-vue/lib/style/themes/default.less 文件中添加上述报错信息中的extract中的less变量

@table-header-sort-active-bg: darken(@table-header-bg, 3%);
@table-header-filter-active-bg: darken(@table-header-sort-active-bg, 5%);
@table-selection-column-width: 60px;

原先的./public/color.less要先可以删掉,以上步骤不出错会再新生成个color.less文件;不删的话会把原先的覆盖掉。

Ant-design-vue更换主题颜色相关推荐

  1. Ant design vue动态主题切换的坑与一般性方法

    本文原创,并且以吐槽为主,下面开始: Ant design vue是很优秀的框架,不过对于一般小白用户(比如我),文档方面不够友好.官方给出了主题自定义色彩的方案,但是太过于简陋,网上很多技术解决方案 ...

  2. ant design vue treeDefaultExpandAll 更换数据后没有自动展开

    ​ ant design vue treeDefaultExpandAll 更换数据后没有自动展开,找了官网,看到也没什么解决办法在vue当中,所以只好这样子做 原理很简单,就是销毁tree-sele ...

  3. 基于 Vue3.0 和 Ant Design Vue ,高颜值管理后台UI框架vue-vben-admin运行

    简介 Vue Vben Admin 是一个免费开源的中后台模版.使用了最新的vue3,vite2,TypeScript等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考. Github地址 ...

  4. ABP vNext 对接 Ant Design Vue 实现分页查询

    本文内容 ABP vNext中的分页查询 STable组件中的分页查询 实现参数转换层 最终对接效果 在 上一篇 博客中,博主和大家分享了如何在 EF Core 中实现多租户架构.在这一过程中,博主主 ...

  5. ant design vue table表格组件实现隔行变色

    ant design vue table表格组件实现隔行变色 一.使用方法 html代码: <a-table:columns="patient":data-source=&q ...

  6. Ant Design Vue select下拉列表设置默认值

    在项目中需要为Ant Design Vue 的 select 组件设置一个默认值,如下图所示的状态下拉选择框,默认选择全部 代码如下: 1 <a-select v-model="que ...

  7. iviewui php,Vue UI框架对比:Element UI、Ant Design Vue、iView

    Element UI 文档:https://element.eleme.io/#/zh-CN/component/installation vue-element-admin预览:https://pa ...

  8. 解决ant design vue中的modal弹框样式修改无效问题 修改modal样式无效

    ant design vue中的modal弹框修改样式无效问题 ant中的弹框样式是修改不了的 原因在于弹框modal被挂载在最大的元素div外面了 所以需要将挂载在某个html元素上 在modal外 ...

  9. 【Ant Design Vue】之Grid栅格和Space间距

    文章目录 Grid 栅格 Space 间距 Grid 栅格 Ant Design Vue 将整个设计建议区域按照 24 等分的原则进行划分,划分之后的信息区块我们称之为『盒子』.建议横向排列的盒子数量 ...

最新文章

  1. java io在文件结尾持续添加内容
  2. MySQL select后面的子查询使用
  3. Flex实现分页显示功能(mx:DataGrid)
  4. Dnslog在SQL注入中的利用
  5. Spring Boot Initilizr - 使用Spring Boot CLI
  6. python 安装xlwt失败_安装python库xlwt的时候遇到超时的情况。
  7. java jtextpane_java – 从JTextPane获取原始文本
  8. 嵌入式linux离线地图,基于gmap.net制作离线地图下载器
  9. ubuntu18.04安装nvidia显卡驱动的正确方法
  10. win7原版镜像_(超详细)WIN7原版系统win镜像安装教程
  11. 【Python 小白到精通 | 课程笔记】第三章:数据处理就像侦探游戏(函数和包)
  12. Elasticsearch版本客户端与服务端版本不一致问题
  13. 举个栗子~Minitab 技巧(6):使用 T 检验 分析产品质量
  14. 微信打开链接被拦截怎么处理 如何预防微信中域名投诉
  15. CDN: trunk URL couldn‘t be downloaded的解决办法
  16. ArcGIS基础实验操作100例--实验13 数字化面图形的技巧
  17. java线程池介绍(一)
  18. 你的代码值多少钱 ?你算过吗
  19. CSS代码样式生成器工具网站
  20. 苹果ipad邮箱找不到服务器,iPad收发邮件配置教程

热门文章

  1. 用 JavaScript 实现手势库 — 支持多键触发【前端组件化】
  2. vue支付项目-APP微信支付功能
  3. 《一个人上东京》读后感
  4. php taint扩展,利用PHP扩展Taint找出网站的潜在安全漏洞实践
  5. “1+X“大数据平台运维职业技能等级证书(中级)模拟题-Storm组件部署
  6. 华为鸿蒙 nova7pro,为何华为nova7 Pro如此受欢迎?这几点让人欲罢不能
  7. 20个经典的Java代码片段
  8. javascript之10秒倒计时
  9. 用python通过PAT考试分题型讲解——总论
  10. android material design icon generator,傻瓜式 Material Design 风格矢量图标生成器