首页 > 其他分享 >el-color-picker 样式修改:去掉确定按钮,失去焦点生效

el-color-picker 样式修改:去掉确定按钮,失去焦点生效

时间:2024-01-31 14:01:42浏览次数:30  
标签:picker el node color npm 源码 报错

分析

el-color-picker 样式如下:

image

操作:

  1. 隐藏确定按钮;
  2. 点击组件外区域时,实现确定功能。

解决

隐藏确定按钮

添加自定义类名 popper-class="my-color-picker",然后添加如下全局样式:

<style lang="scss">
// 隐藏确定按钮
.my-color-picker .el-color-dropdown__btns .el-color-dropdown__btn {
  display: none;
}
</style>

点击组件外区域时,实现确定功能

image

image

分析源码可知:点击确定按钮时调用了 confirmValue 函数。点击组件外区域时,调用了 hide 函数。

因此,只要修改 hide函数,在其中调用 confirmValue 函数即可实现功能。

此处若二次封装 el-color-picker,逻辑较复杂。最简单的方式是利用 npx-patch 修改源码。

参考: 手把手教你使用patch-package给npm包打补丁

修改源码

父组件

image

image

image

增加 hideConfirm 属性,默认为 false,若为 true,则隐藏确定按钮,并且点击组件外区域实现确定功能。

注意:hide 函数中要确保 showPicker 为 true(即颜色选择器打开时)才执行下一步,否则会出现:清空后点击组件外区域显示上一次的颜色

子组件

image

image

image

使用

只需要给 el-color-picker 添加 :hide-confirm="true" 即可。

npm run dist 打包后,替换 lib

npm run dev 重新启动,验证更改是否生效。

npx patch-package element-ui

会在根目录下生成 patches 文件。打开里面有改动部分的代码。

image

在 package.json 的 script 中添加如下代码

{
    "postinstall":"patch-package"
}

这样,别人使用 npm install 后会自动下载补丁内容,保证代码一致。


一些问题

npm install 报错

参考 npm 淘宝镜像到期了,尽快切换(npm使用淘宝镜像安装时报错)
更新 npm 镜像源,原淘宝镜像过期了。

修改源码不生效

参考 修改element ui源码无效
克隆源码,修改后,再打包、替换。

克隆指定版本的源码

gitee 上的 element-ui 为例,上面显示的不是想要的版本的,点击版本下拉框,选择标签,再选择想要的版本,就可以点击右侧的下载按钮。

image

克隆源码后,npm install 报错

加上 --force 后缀
image

node-sass 报错,原因:与 node 版本不兼容,需要安装低版本的 node。参考 npm install运行报错npm ERR! gyp ERR! not ok问题解决

image

node-sass 版本:
image

node 版本:
image

参考:

  1. nodejs安装与卸载(高版本降为低版本)
  2. 将nodejs的高版本降级为低版本(切换node版本)

卸载原 node,安装 nvm,nvm use 11.15.0 使用 11.15.0 版本的 node。

npm i 报错

参考:npm install报错[email protected] postinstall: node scripts/build.js,一定要删除之前下载过的 node_modules后,再执行上述命令。

npm run dev 报错

image

eslint 报错,关闭即可(注释 .eslintrc),不影响使用。

image

线上地址为 http://http://0.0.0.0:8080/:8080/,启动后打开页面无法正常显示。

参考:无法访问此网站网址为 http://0.0.0.0:8080/ 的网页可能暂时无法连接,或者它已永久性地移动到了新网址。 ERR_ADDRESS_INVALID

解决:把代码中的 0.0.0.0 地址替换为主机 localhost,再重新 npm run dev 即可。

npm run dist 报错

npm ERR! Failed at the [email protected] lint script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

参考 修改element ui 源码 npm run dist 报错以及解决方案,将 pakage.json 中的 script 的 dist 命令中的 &&npm run lint 删掉即可。

报错 You may need an additional loader to handle the result of these loaders.其中报错的部分是无法编译下图的代码。

image

网上搜索一番都没找到合适的解决办法。最后,更换了代码写法(如下图所示),即可正常编译。

image

修改源码后无效

打包后,将 node_modules/element-ui/lib/color-picker.jsnode_modules/element-ui/packages/color-picker 分别替换。重新启动后发现修改源码无效。

解决:不要只替换 lib 中更改的部分,要把整个 lib 替换掉。

标签:picker,el,node,color,npm,源码,报错
From: https://www.cnblogs.com/shayloyuki/p/17996922

相关文章

  • Xshell7、Xftp7安装破解版教程(亲测可用)
    Xftp7和Xshell7是大家常用的终端工具,让您在访问终端的同时能进行多窗口传输、编辑文件,提高工作效率。下载安装包链接:https://pan.baidu.com/s/1pr-AectkEKEvz0cF0vfi_w?pwd=08aq提取码:08aq软件安装双击下载好的安装包,打开安装向导,选择“下一步”。  请您仔细阅......
  • php 导出excel表格
    <?phpnamespaceapp\common\services;classOfficeExportService{/***导出excelcsv格式*建议使用,导出数据量大的时候csv格式会快很多!!!!!*@paramstring$filename文件名*@paramarray$tileArray表头标题列表格式一维数组[标题1,标题2,......
  • [office] excel表格如何设置公式锁定
    Excel中的公式具体该如何操作才能实现锁定呢?对于新手来说还是有一定难度,怎么办?接下来是小编为大家带来的excel表格公式锁定的方法,欢迎大家来到学习。excel表格公式设置锁定的方法锁定公式步骤1:小编以目前在使用的表格为例,为大家演示。Ctrl+A选定全部单元格,点击右键–......
  • 无涯教程-Label with Continue函数
    在"continue"或"break"语句及其Label名称之间不允许使用换行符。outerloop://Thisisthelabelnamefor(vari=0;i<3;i++){console.log("Outerloop:"+i);for(varj=0;j<5;j++){if(j==3){con......
  • [office] Excel旋转图表的两种方法介绍
    Excel的图表本身是不可以旋转放置的,那么怎么可以通过其他方式来实现对图表的旋转呢?下面我向大家介绍二种方法。步骤一:把图表复制为静态图片1、按“shift”键,单击图表区,然后执行“编辑——复制图片”命令,弹出“复制图片”对话框,然后按确定。2、在一个空白的单元格处,点鼠标右键,然后粘......
  • [office] Excel的if函数应用小盘点
    今天跟大家分享下if函数的用法IF函数可以单条件、多条件、嵌套条件或是搭配其他函数一起使用。首先介绍一下IF函数的基本语法IF函数语法如下:if(条件判断,返回值1,返回值2),如条件判断结果为真,则输出返回值1,否则输出返回值2。返回值可以是固定的数值、字符,也可以是空值或计算表达式。......
  • React.ReactNode 和 React.ReactElement ,更推荐使用哪个?
    React.ReactNode和React.ReactElement,更推荐使用哪个?在React中,React.ReactNode和React.ReactElement是不同类型,它们适用于不同的场景:React.ReactNode:类型定义:typeReactNode=ReactChild|ReactFragment|ReactPortal|boolean|null|undefined;描述:这是一......
  • createDelegatingPasswordEncoder只有在spring 5.1.13才能用吗?
    springboot和spring版本对应关系:SpringBoot1.x支持SpringFramework4.x系列,包括4.0、4.1、4.2和4.3等版本。SpringBoot2.x支持SpringFramework5.x系列,包括5.0、5.1和5.2等版本。 下载springboot会一并下载 ......
  • PowerShell 基本语法
    前言全局说明PowerShell基本语法一、运算符#加减乘除取余+-*/%#自增、自减运算符,和C#或C++完全一致++$i$i++$i----$i#且-and#并-or#非-not!#样例$true-and$false-or-not0!$true#输出TrueFalse#等于(equalto)-eq#不等于(noteq......
  • element实现大图预览和图片动态加载
    element的el-image组件支持大图预览模式,但需要和小图模式配合使用,项目中刚好有需求需要直接使用大图预览并且需要支持图片的动态加载,研究了一下el-image组件的源码发现el-image组件是通过引用image-viewer组件实现的大图预览的,刚好可以利用一下!image-viewer属性urlList:图......