
vue
听听那晚风
这个作者很懒,什么都没留下…
展开
-
element Upload上传多张图片后,如何进行增加 删除操作并将编辑后的图片数组传参
编辑信息时,因为后端返的图片数组,和Upload的api回调fileList数组不相同,导致在删除图片后,不知道自己删的具体是那一张图以至于删除不了图片 只能新增,后面采用了下面方法解决这个问题<el-upload list-type="picture-card" :action="action" :file-list="userForm.hyfile" :before-remove="beforehyRemove" :before-upload="handlehySu原创 2022-05-10 18:20:03 · 2032 阅读 · 0 评论 -
将一个对象数组合并为带子集children的树形结构
var arr=[ { banci: "09:00-21:00", nowday: "5月18日", shiftName: "白班", sid: "21381668786929665", }, { banci: "21:00-09:00", nowday: "5月18日", shiftName: "晚班", sid: "2138166878692原创 2021-08-13 11:03:41 · 859 阅读 · 0 评论 -
echarts报错: Can‘t get DOM width or height. Please check dom.clientWidth and dom.c
具体报错:echarts.js?a670:2220 Can’t get DOM width or height. Please check dom.clientWidth and dom.clientHeight. They should not be 0.For example, you may need to call this in the callback of window.onload.出现问题的场景:我是在tab分页中需要插入echarts柱形图,默认开始是设备oee报表这个分页。报错原创 2021-07-13 19:55:24 · 11941 阅读 · 5 评论 -
vue中在echarts里设置的定时器清除不掉问题
在动态图里,往往需要用到定时器去动态渲染数据,我的需求是:当x轴类目过多的时候,就让它自动滚动,这个时候需要用到定时器去动态的控制dataZoom里endValue的值,this.barInter = setInterval(() => { // 每次向后滚动一个,最后一个从头开始。 // console.log(this.xNum) if (option.dataZoom[0].endValue >= option.series[0].data原创 2021-06-29 11:27:41 · 1609 阅读 · 0 评论 -
让echarts 柱形图x轴的刻度显示在柱形中间,刻度和标签对齐
关键点:xAixs.axisTick.alignWithLabel:truexAxis: { type: "category", //类名轴 data: [ "3月1日", "3月2日", "3月3日", "3月4日", "3月5日", "3月6日", "3月7日", ], .原创 2021-05-27 20:24:25 · 16458 阅读 · 0 评论 -
实现echarts数据堆叠柱状图,并自定义每个类目柱形的颜色
关键点:series.stack: “”, 同个类目轴上系列配置相同的stack值可以堆叠放置。具体实现series: [ { name: "绿灯", type: "bar", stack: "total", emphasis: { focus: "series", }, data: [95, 90, 80, 6.原创 2021-05-27 20:19:38 · 11209 阅读 · 3 评论 -
echarts x轴长度不够时导致文本显示不全,让标签文本倾斜展示
关键点:xAxis.axisLabel.interval:0 强制显示所有标签、 xAxis.axisLabel.rotate:旋转角度 xAxis: { type: "category", //类名轴 data: [ "待人", "中途调模", "换料", "待料", "设备故障", "换款", .原创 2021-05-27 20:11:40 · 862 阅读 · 0 评论 -
echarts如何将柱形图的柱子分割成一小块一小块,也就是象形柱图
关键点:series.type: “pictorialBar”,<div class="cl-top-content" id="deviceOee" style="width:500px;height:200px"></div>mounted() { this.barChart(); },//设备OEE barChart() { let myChart = this.$echarts.init(document.getElementById.原创 2021-05-27 20:05:31 · 6080 阅读 · 0 评论 -
自定义echarts x轴 y轴每个刻度的文本颜色
关键点:yAxis.axisLabel.textStyle.color、xAxis.axisLabel.textStyle.color具体实现yAxis: [ { type: "category", show: true, inverse: false, data: ["80%以上", "50%-80%", "50%以下"], axisLine: {//刻度线显.原创 2021-05-27 19:57:57 · 1068 阅读 · 0 评论 -
echarts自定义每个柱形颜色不一样
关键点 smeries-bar.itemStyle 设置图形样式series: [{ type: "bar", itemStyle: { normal: { // barBorderRadius: [4, 4, 4, 4], color: function (params) { var colorlist = ["#81D3F8", "#FF6600", "#FF004D".原创 2021-05-27 19:52:37 · 433 阅读 · 0 评论 -
vue 点击遮罩层功能区以外的地方关闭遮罩层
点击红色框外的遮罩层区域关闭遮罩层方法一:关键点:@click=“close($event)” ref=“msk”<div v-if="popup.winning" class="coupon-popup" @touchmove.prevent @click="close($event)"> <div class="popup-content" ref="msk"> <img class="coupon-page" :src="popup.couponpage.原创 2021-04-29 16:35:14 · 2970 阅读 · 0 评论 -
vue弹出遮罩层弹窗后禁止底部页面滑动
方法一:在遮罩层标签上添加@touchmove.prevent方法二:遮罩层显示时把下方的父盒子css设置为固定定位宽100%高100vh 超出隐藏.content{ width:100%; height:100vh; overflow:hidden}原创 2021-04-29 14:13:23 · 1865 阅读 · 0 评论 -
Vue 后端返回的时间戳如何解析为“yyyy-mm-dd hh:mm:ss“格式
方法一:js函数里var d=new Date(res.data.list[0].createTime);//res.data.list[0].createTime后端返的时间var time=d.toLocaleDateString()方法二:行内 <el-table-column align="center" width="180" label="创建时间"><template slot-scope="scope"> {{ new Date(.原创 2021-04-29 09:28:53 · 1547 阅读 · 0 评论 -
Vue 将监听函数addEventListener获取到的值 赋值给其他变量为undefined
先看看bug可以看到这里我们想把监听函数获取到的 duration push进file这个数组里,结果因为事件监听后执行(先打印出579行file的值,再打印出573行 duration的值),导致file里的duration为undefined解决办法:方法一:使用 setTimeout 异步处理successVideo: function (response, file, fileList) { this.file = []; for (let i = 0; i &l原创 2021-04-02 10:30:51 · 2609 阅读 · 1 评论 -
vue element-upload上传视频或音频获取视频时长
做这步操作主要是后端要求传视频的时长duration这个字段,获取方法第一种:<el-upload class="upload-demo" :multiple="multiple" :before-upload="getVideoToken" action="http://up-z2.qiniu.com" :on-success="successVideo" :data="up原创 2021-04-02 10:12:51 · 10115 阅读 · 9 评论 -
Vue前端如何与后端进行数据交互
1、安装npm install axios --save2、在main.js文件引入import Axios from 'axios';//后台交互Vue.prototype.$http=Axios//defaults 设置全局默认路径Axios.defaults.baseURL="/bigData"3、使用//第一种this.$http.post('/index/customer/').then(function(res) { // console.log('这是返回的客户数据')原创 2021-03-03 11:15:31 · 13218 阅读 · 1 评论 -
Vue如何使用element-UI
1、安装npm install element-ui -S2、在main.js文件引入import ElementUI from 'element-ui';//引入ui框架import 'element-ui/lib/theme-chalk/index.css'Vue.use(ElementUI)3、使用根据官网 element-UI官网文档 就可以使用ui组件如:<el-row> <el-button>默认按钮</el-button>原创 2021-03-03 10:45:44 · 272 阅读 · 0 评论 -
Vue如何使用echarts插件,以及简单的 柱形图 折线图 饼图 多列柱形图案例
1、安装npm install echarts --save2、引入全局引入在main.js文件引入import echarts from 'echarts'Vue.prototype.$echarts = echarts按需引入// 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。import * as echarts from 'echarts/core';// 引入柱状图图表,图表后缀都为 Chartimport { BarChart原创 2021-03-03 10:38:05 · 755 阅读 · 0 评论 -
【vue】后端返回一个文件流(blob对象)时,如何将其下载下来
关键要点:responseType: “blob”,this.$axios({ url: "/api/device/deviceInfo/createDeviceInfoByExcel", method: "post", headers: { "Content-Type": "multipart/form-data", token: localStorage.getItem("token"), },原创 2021-01-29 10:07:39 · 2456 阅读 · 9 评论 -
2、【上传文件】vue+iview如何上传文件并携带请求头和参数实现批量导入数据?
<template> <div class="app"> <Upload ref="upload" action="/api/device/deviceInfo/createDeviceInfoByExcel"//接口地址 :headers="{//请求头 token: token, 'Content-Type': 'multipart/form-data', }" ...原创 2021-01-25 16:51:02 · 2800 阅读 · 2 评论 -
1、【Vue上传文件】当接口Content-Type为multipart/form-data时,如何上传文件到后端并现实批量上传
<input type="file" id="people-export" ref="inputer" @change="fileUpload" />//方法:fileUpload(event) { console.log(event); let file = event.target.files;//一个文件流 let formData = new FormData(); formData.append("file", file[0]);.原创 2021-01-25 16:34:13 · 12240 阅读 · 2 评论 -
Vue中对象如何新增、修改、删除、筛选属性key值
1、新增属性以及修改value值方法:this.$set(this.obj,‘key’,value)或var vm = new Vue({…})vm.set(this.obj, “key”, value)var demo={a:"1",b:"2"}this.$set(demo,"c","3")console.log(demo)//{a:"1",b:"2",c:"3"}//如果对象中存在该key值,那么就不是新增属性,而是修改该key值的value值this.$set(demo,"c","4原创 2021-01-22 10:21:48 · 10551 阅读 · 1 评论 -
解决Vue 后台管理平台离开页面清除定时器失效问题
我们正常来说清除定时器是在页面销毁的时候清除,如this.timer= setInterval(()=>{ console.log("我刷新了")},15000)destroyed(){ clearInterval(this.timer)}但是在后台管理页面的时候这样做却失效了。问题所在:我们的在写后台时,习惯性设置一个主页面(也就是包含头部、侧边导航栏、底部、中心内容)。在子页面设置定时器时,切换其他子页面并不是真正的离开了页面,实质上还是在主页面上,所以在dest原创 2021-01-14 16:54:34 · 2475 阅读 · 7 评论 -
详解Vue 如何使用最新3.0版本百度地图
准备流程:注册百度账号——申请成为百度开发者——获取服务密钥(ak)——使用相关服务功能使用流程:1、安装npm install vue-baidu-map --save2、在index.html页面引入<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=您的密钥"></script>3、使用<template> <div class="b原创 2021-01-12 14:34:47 · 3004 阅读 · 0 评论 -
Vue使用百度地图 自定义信息窗口InfoWindow的样式
效果1、首先可以找到百度地图信息窗口的class名,根据class名去修改样式我这里只修改了标题的样式//百度地图信息弹窗标题.BMap_bubble_title{ font-weight: 700!important; margin-bottom: 10px; font-size: 16px;}2、窗口中心内容的样式,是自己写标签已经样式var marker = new BMap.Marker(new BMap.Point(112.14,22.125));map.addO原创 2021-01-12 11:58:14 · 6929 阅读 · 0 评论 -
vue 使用百度地图详解: 1、默认展开地图缩略图;2、自定义图标;3、自身定位;4、隐藏底部百度logo以及字体 5、创建多个标注点并给标注点添加信息弹窗,解决所有信息弹窗取的值都一样的问题
功能1:默认展开鹰眼map.addControl( new BMap.OverviewMapControl({ isOpen: true,//默认展开 anchor: BMAP_ANCHOR_BOTTOM_RIGHT, })); 功能2:自定义图标 // 创建小车图标 var myIcon = new BMap.Icon( "../../../static/useing.png", new BMap.Size(原创 2021-01-07 15:59:59 · 1229 阅读 · 0 评论 -
Vue 用js for循环动态生成变量名并赋值
想要的效果:var marker1 = new BMap.Marker(new BMap.Point(res.data.data[0].gpsX, res.data.data[0].gpsY),{icon:myIcon});var marker2 = new BMap.Marker(new BMap.Point(res.data.data[1].gpsX, res.data.data[1].gpsY),{icon:myIcon2});var marker3 = new BMap.Marker(new原创 2021-01-07 11:19:50 · 5529 阅读 · 0 评论 -
Vue 如何触发键盘enter事件
写法:@keyup.enter.native=“自定义事件”<Input v-model="form.checkCode" placeholder="请输入校验码" @keyup.enter.native="searchAllCompany"> <span slot="append"> {{ code }} </span></Input>methods:{ searchAllCompany(){ .原创 2021-01-05 11:38:04 · 4046 阅读 · 0 评论 -
JS 随机生成4位、6位或其他位数字,实现验证码功能
我这里是生成4位数字验证码关键知识点:Math.random()返回介于0-1 之间随机数 包含小数 比如 0.123456Math.floor()向下取整createCode() { var demo="" //这里取的是4位,所以for循环4次,如果是6位数字验证码则为6 for(var i=0;i<4;i++){ //设置随机数范围,这设置为0 ~ 9 var a = Math.floor(Math.random()原创 2020-12-31 10:06:42 · 1589 阅读 · 2 评论 -
详解Vue+iview 使用vue-i18n实现国际化
功能点:1、国际化,中文、英文、繁体相互切换;2、根据浏览器默认语言设置页面的默认语言;3、手动切换语言;4、给变量添加国际化效果:1、安装npm install vue-i18n --save2、在src文件夹新建locale文件夹,并在locale文件夹新建en-US.js、zh-CN、zh-TW文件,以及载入文件index.jsen-US.js 这个为英文翻译文件module.exports = { navbar: { English: 'Engl原创 2020-12-21 18:37:44 · 2400 阅读 · 0 评论 -
Vue获取下拉框的选中值以及下标
<select class="select" v-on:change="indexSelect($event)" v-model="pcNum"> <option v-for="(item, index) in pcArr" :key="index" v-bind:value="item.pcNum">{{ item.pcNum }}</option></select>js:data() { return { pcNum:'PC20200原创 2020-12-10 10:37:32 · 9802 阅读 · 10 评论 -
使vxe-table以及element-ui table第一行 操作栏的操作项与其他行的操作项不一样
我这里的场景是第一行的操作栏 只有计算这一个按钮并且点击计算 计算按钮会变成停止,其他行的操作项有 计算和删除两个按钮代码:<vxe-table-column title="操作" width="200"> <template v-slot="{ row, rowIndex }"> <template v-if="rowIndex == 0"> <vxe-button v-if="row.show"原创 2020-12-10 10:29:55 · 1158 阅读 · 0 评论 -
Vue点击table表格某一行让其置顶
我这里的使用场景是点击某一行的使用,该行的数据就调整在第一行显示了//给使用按钮添加方法,方法如下use(row) { let values = this.tableData; let value = row; let res = [value].concat(values.filter(item => item != value));//concat() 方法用于连接两个或多个数组 console.log(res); this.tableData = res;}...原创 2020-12-10 10:22:11 · 4212 阅读 · 3 评论 -
vue改变element-ui 表格第一行或某一行样式
关键点:给表格添加属性 :cell-style=“cellStyle”cellStyle(row, column, rowIndex, columnIndex) { // console.log(row, column, rowIndex, columnIndex); if (row.seq == '1') {//判断条件,如果想要改变其他行样式,就写那一行的下标 return `background-color: #ffe5bb !important;fontSize: 16px; c.原创 2020-12-10 10:14:27 · 4187 阅读 · 1 评论 -
Vue 实现数字滚动效果
效果就是显示某个数值不是直接显示,而是从0开始滚动,直到为那个数值时停止滚动1、新建数字滚动组件:test.vue文件<template> <div class="number-grow-warp"> <span ref="numberGrow" :data-time="time" class="number-grow" :data-value="value">0</span> </div></template> &l原创 2020-12-10 10:06:29 · 4672 阅读 · 0 评论 -
Vue定义全局变量,方便各个页面进行调用
在main.js中定义new Vue({ el: '#app', router, data: function(){ return { pcNumnow: 'PC20200924',//定义的全局变量 } }, components: { App }, template: '<App/>'})在页面调用let demo= this.$root.pcNumnow//即demo的值为PC20200924//修改全局变量的值this.$root.pc原创 2020-11-30 17:57:34 · 3134 阅读 · 0 评论 -
Vue 页面传参之路由传参
方法一:用params传参在url不可见,要注意的是用params传参 需要传在router index.js 定义的name名,即 name: ‘Parameter’,页面一:<router-link :to="{ path: '/Parameter',name: 'Parameter',params: { pc: pcNumnow } }"><li class="nav-list">参数管理</li></router-link>//pcNumnow原创 2020-11-30 17:47:04 · 268 阅读 · 0 评论 -
Vue post请求报错,原因是后台要求数据为form-data格式
需要使用qs插件将参数序列化1、安装npm install qs --save2、在main.js引入import Qs from 'qs'Vue.prototype.qs = Qs3、使用var this=_thislet data = { batchNum: _this.pcNumnow };//要传给后端的参数_this.$http.post('/index/grade/', _this.$qs.stringify(data)).then(function(res) {原创 2020-11-30 17:34:49 · 1652 阅读 · 0 评论 -
Vue去除浏览器默认margin值
需要在index.html文件设置即可*{ margin: 0; padding: 0;}原创 2020-11-30 17:21:38 · 2054 阅读 · 0 评论 -
Vue3怎么使用element-plus
vue3出来一段时间了,element也更新了版本去兼容vue3,在这里简单的介绍一下如何使用element-plus吧1、安装npm install element-plus --save2、引入import { createApp, Vue } from 'vue';import ElementPlus from 'element-plus';import 'element-plus/lib/theme-chalk/index.css';import App from './App.vu原创 2020-11-23 10:13:58 · 20817 阅读 · 5 评论