
vue
1024_Byte
你的双手拥有改变世界的力量
展开
-
Vue项目中监听全屏事件,实现全屏功能和按esc退出全屏(解决全屏踩坑难题)
分析浏览器全屏和requestFullscreen全屏Api区别,requestFullscreen() 方法用于发出异步请求使元素进入全屏模式,exitFullscreen退出全屏事件,原创 2022-06-22 12:05:31 · 12798 阅读 · 5 评论 -
el-input文本域字数限制,超过显示变红并禁止输入
el-input根据字数长度限制输入,超过变红并禁止输入原创 2022-06-22 10:47:29 · 6958 阅读 · 0 评论 -
VUE项目中el-table动态合并列单元格(附带代码解析注释)
el-table动态列合并原创 2022-06-21 15:02:20 · 8760 阅读 · 3 评论 -
当鼠标移入Echarts出现抖动并滚动条迅速出现消失
Bug效果:当鼠标初次移入Echars,下方出现滚动条并且迅速消失原因:当时设置了tooltip时,鼠标移入会触发悬浮事件,并且会有一个默认的0.4秒过渡时间值当我们把值设置为0时,紧跟着鼠标移动就会解决抖动问题tooltip: { transitionDuration:0,//[defaule:0.4] echart防止tooltip的抖动}...原创 2022-03-21 17:50:05 · 1552 阅读 · 0 评论 -
CSS解决position:fixed基于父元素定位而不是浏览器窗口
众所周知fixed是基于浏览器窗口定位,但是今天遇到个问题,发现fixed并不一定是这样有一个例外会使fixed是基于祖先元素定位。当元素祖先的 transform 属性非 none 时,定位容器由视口改为该祖先。<div class="container" style="transform:rotate(360deg);"> <div> <div class="box" style="position:fixed;"></div&原创 2022-03-08 15:08:31 · 15424 阅读 · 3 评论 -
elementUI中Tooltip背景颜色样式修改
文档描述使用这个属性popper-class添加一个class<el-tooltip content="Top center" placement="top" popper-class="atooltip"> <el-button>Dark</el-button></el-tooltip>.atooltip.el-tooltip__popper[x-placement^="top"] .popper__arrow { border-top-c原创 2022-03-08 15:01:49 · 2542 阅读 · 0 评论 -
ElementUI中table表格自定义表头Tooltip文字提示
实现效果:ElementUI文档:el-table组件 <el-table-column label="水位高程(m)" header-align="center" align="center"> <el-table-column prop="swlel" label="传感器监测" align="center" :render-header="(h, { col原创 2022-03-08 14:57:53 · 4360 阅读 · 2 评论 -
Vue项目中常见的公共方法汇总(五):通用校验处理
// 初始化时间(通用型) initTm(queryForm, isTwo = true) { const limitTm = window.HT_EnvConfig.limitTm || 8 let day = 0 if (moment().hours() < limitTm) { day = 1 } let fmtStr = 'YYYY-MM-DD ' if (limitTm < 10) {原创 2022-03-07 14:16:20 · 821 阅读 · 1 评论 -
ElementUI中解决使用dropdown等弹窗时定位body而非template创建的dom节点
在使用element-ui组件库的时候,其中有tooltip和dropdown组件,它们在显示弹出部分的内容时,实际上这部分内容是被放在body根节点下的。而如果放在根节点有时候我们的某一些需求就无法得到实现,不得不将其放在我们指定的地方。例如图例中dropdown出现不随div滚动条滚动的情况一、解决办法这里直接给出解决办法,先介绍tooltip组件,其实两者是差不多的、下面是方法:1、解决tooltip<template> <div> <原创 2022-02-15 14:48:22 · 7068 阅读 · 1 评论 -
Vue登录模块中基于canvas实现验证码组件
组件元素<template> <div class="s-canvas"> <canvas id="s-canvas" :width="contentWidth" :height="contentHeight"></canvas> </div></template>父传子propprops: { identifyCode: { type: String, default: '12原创 2022-02-11 15:51:12 · 260 阅读 · 0 评论 -
通过Vue+flvjs在HTML5中播放flv格式视频文件—demo及api
目前主流浏览器不能直接嵌入并且播放FLV文件,所以直接用video标签播放是行不通的。因此提供两种解析方法嵌入一个swf媒体播放文件,并利用该文件来播放你预设的文件。这里推荐dplayer——http://dplayer.js.org/zh/guide.html#flv(亲测同样好用)利用B站开源的flv.js,通过将FLV文件流转换为ISO BMFF(Fragmented MP4)段,然后通过Media Source Extensions API 将mp4段提供给HTML5 元素。git原创 2022-01-21 12:12:51 · 1480 阅读 · 1 评论 -
Vue项目中对登陆密码使用crypto-js进行Aes加密
安装npm i crypto-js在utils下创建secret.js文件import CryptoJS from 'crypto-js'// 十六进制密钥const CRYPTOJSKEY = CryptoJS.enc.Utf8.parse('HTKJhtkjHTkj1234') // 加密 function encrypt(plaintText) { var plaintTexts = plaintText var options = { mode: Crypto原创 2022-01-10 19:17:23 · 595 阅读 · 0 评论 -
Vue组件递归渲染
父级菜单<template> <div> <ul> <li v-for="(item,index) in asideList" ::key = "index" > <p class="main-title"> <span class="title">{{item.title}}</span> <span class="iconfont icon-arrow-right-1"&g原创 2021-12-29 17:02:40 · 1169 阅读 · 0 评论 -
给Echarts添加遮罩层
this.$refs['rainChart'].showLoading({ text: '请稍后......', color: '#327EF3', textColor: '#327EF3', maskColor: 'rgba(28,31,99,0.31)' }) this.$refs['rainChart'].hideLoading();原创 2021-12-02 14:44:34 · 1678 阅读 · 0 评论 -
前端框架中常见的公共方法汇总(二):时间格式处理/数字格式处理
时间格式处理// 把时间的分秒值去掉export const formatTM = item => { if (item) { let newItem = item.replace(':00.0', '') if (newItem.indexOf('.') > 0) { newItem = newItem.substr(0, 16) } return newItem } else { return '' }}//原创 2021-09-18 11:47:00 · 333 阅读 · 0 评论 -
Vue中实现通过外部的CheckedBox对echarts(legend)进行动态显示/隐藏
需求原型开发工作中有一项,需使用复选框控制echarts的显隐,找了很多办法没有实现直到看到一篇文章,echarts配置项中自带legend可以控制图标的数据显示隐藏因此我们可以通过checkBox的来对selected对象进行操作来修改图标的状态首先配置legend并让他不显示 legend: { data: ['水位', '流量', '温度'], show: false },其次通过组件的checkBox组件..原创 2021-08-30 06:21:51 · 2767 阅读 · 5 评论 -
Element UI 上传文件Upload 限制上传文件格式
<el-upload class="upload-demo" :limit="3" :before-upload="beforeUpload" :action="fileUpload" :on-exceed="handleExceed" :on-success="handleSuccessZl" > ...原创 2021-08-05 09:56:53 · 2396 阅读 · 0 评论 -
Vue - 父子组件通信 - $emit传多个参数父组件如何接收
子组件正常触发$emit传参:// 子组件this.$emit('test',this.param)// 父组件@test='test($event,scoped.row)'当子组件传出多个参数时:如果仍用$event接收,只能接收子组件传出的第一个参数因此我们通过设定为数组来进行接收子组件传来的数据// 子组件this.$emit('test',this.param1,this.param2, this.param3)// 父组件 arguments 是以数组的形式传原创 2021-07-23 18:05:35 · 2396 阅读 · 0 评论 -
elementUI日期选择器里禁用选择未来时间
添加picker-options属性在data中声明属性disabledDate禁用效果原创 2021-06-23 14:09:40 · 1265 阅读 · 0 评论 -
elementUI树结构Tree修改/编辑原节点变为input输入框
思路分析点击修改,节点由span变input,input中显示的内容为原节点内容,并获得焦点全选修改后,失去焦点,由input变回span,节点内容修改<h4>那这样我们需要一个数据内容来控制input和span切换的值</h4>数据内容.在接口返回的数据中,添加showInput字段,来控制什么时间切换节点标签Html结构 <el-tree class="tree" :data="t原创 2021-05-24 16:17:57 · 6536 阅读 · 17 评论 -
ElementUI中table表格中的prop属性是个数组的处理方法
数据格式是数组这时候渲染出来的数据都是undefined需要提前处理这个数组的数据内容我们查看elementUI 的 table文档之后,发现Table-column Attributes 中包含一个格式化文档的属性questionData(row){ let arr = [] row.file.forEach((item, index)=>{ if (index > 2) { retur..原创 2021-05-19 15:47:47 · 6522 阅读 · 11 评论 -
elementUI树形组件添加连线和自定义图标
1.elementUI的树形组件官网样例节点之间是没有连线的,想要实现如下图节点之间出现连线需要自己定义树形插件的样式覆盖el-tree内部的样式类首先要给el-tree添加两个样式类一个添加到el-tree本身的class上,另外一个添加到包裹el-tree的外层div,具体的样式代码如下/* 树形结构节点添加连线 */.tree /deep/ .el-tree-node { position: relative; padding-left: 16px;}.tree...转载 2021-05-19 14:42:48 · 1476 阅读 · 1 评论 -
Vue中使用watch侦听器来监听数据变化的4种使用情况
知识铺垫:计算属性:computed — 数据的二次加工,降低数据的逻辑的复杂程度作用:当模板当中使用较复杂的js表达式进行数据的转换,会造成你的模板逻辑过于复杂,不好维护,所以用计算属性来进行转换,返回一个新的数据,便与你对数据内容进行维护特点:在函数中也可以处理逻辑,也可以返回值,同时在模板中也可以通过调用来获得二次加工的数据优点:计算属性有缓存,如果数据没变化,再次使用不会重新执行场景:当你需要进行复杂逻辑的处理才需要进行计算属性的处理侦听器:watch作用:监听某个数据的变化原创 2021-03-23 20:51:26 · 2761 阅读 · 5 评论 -
Vue中模块开发如何对(父子组件相互传值)两个独立组件进行双向数据绑定,
如何让组件支持v-model指令前置知识:父组件如何给子组件传值父组件:<template> <my-child :value="title"><my-child></template><script>export default{ name:'my-parent', data(){ return{ title:'父组件数据' } }}<原创 2021-03-22 16:22:25 · 1399 阅读 · 14 评论 -
Vue中请求的响应数据preview预览和response数值不准确问题,覆盖默认js最大安全整数解决方案
分析问题原因network中预览的idnetwork中response的id数值不相符原因原因 js有自己的最大安全整数(相应数据数值太大,导致有误差)js在解析数据时会自动执行 json.parse(方法)通过number.MAX_SAFE_INTEGER可以查看js最大安全整数当请求回的数据超过这个数值就会导致不准确解决方案下载json-bigint包来覆盖默认的json.parse方法axios官方文档// `transformResponse` 在传递给 then/c原创 2021-03-20 16:54:32 · 2418 阅读 · 3 评论 -
Vue中通过作用域插槽+插件封装组件
创建组件.vue文件在template中添加插槽标签并导出组件<template> <span>内容</span> <slot /></template><script> export defalut{ name:组件名 }</script>创建plugin.js插件js文件引入插件文件,创建install属性import 组件名 from '@/components/xxx.vue'exp原创 2021-03-18 10:18:08 · 477 阅读 · 3 评论 -
作用域插槽具体使用步骤,具名插槽+匿名插槽的使用方法详解
插槽:提升组件的复用度,通过提高的方式具名插槽(默认插槽):当只有一处内容需要填充时候定义组件:my-com<template><header>头部</header><main><slot><slot></main><footer>底部</footer></template>使用组件:<template> <my-com> <原创 2021-03-17 20:31:07 · 3453 阅读 · 9 评论