自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 Vue-table动态增加、删除表头不实时更新问题

问题:我这里使用的是JEECG的jVxeTable,翻看文档没有找到满足需求的方法,最后使用了简单粗暴的方法实现,利用push、slice实现table的表头绑定数组columns实现增加、删除列。解决办法:网上搜了一下,最终使用 在table绑定 :key = "Math.random()" 解决了列表增加删除列不实时更新的问题。设置后发现数据虽然加上了,但是页面没有实时更新,需要点击一下操作才可更新。需求:在某种情况下table显示A、B列,在某种情况下显示A、B、C列。

2023-11-09 10:07:58 398

原创 使用递归实现树形数组遍历

方法内遍历数据,判断是否有满足条件的,有则返回,没有判断是否有children,有则自调用此方法,继续走这一套流程。调用方法,参数传入数组。

2023-09-05 16:22:49 120

原创 antdesign Vue table - 换行

return {style: {},},return {style: {

2023-08-28 11:54:27 832

原创 Vue表格嵌入输入框回车焦点跳到下一行的输入框

使用Vue2 + Ant Design Vue。

2023-08-23 10:27:03 439

原创 Ant Design Vue - table实现跨页选择

/ this.selectionRows = selectionRows //不用onchange操作。

2023-06-26 09:08:18 959

原创 时间判断大小 - 时分秒

/ 总秒数 = 小时 * 3600 + 分钟 * 60 + 秒。let beginTimeS = 0 // 总秒数。

2023-06-26 08:50:35 97

原创 Ant Design Vue实现表尾合计联动

Ant Design Vue2以内官方没有表位合计联动的API,搜了一下,手写了个,基本满足需求。

2023-03-19 16:10:03 495

原创 change事件做延迟处理

change事件会在监听的值发生变化触发,例如input输入搜索,输入3002会触发4次,3、30/300/3002,这样就会不稳定,消耗性能。注意:因为外不js不能引用Vue生命周期里的方法,所以需要在Vue生命周期中的create初始化的时候做个转换。window.getGoodsList(value) //触发的change事件。handleGoodsSearch(e) { //methods中的方法。解决办法:给change事件做延迟处理,延迟0.3s再触发。使用工具:webStorm。

2023-02-03 11:30:24 1106

原创 JEECG角色控制权限控制按钮显隐

click="handleEdit(record)">编辑授权策略:可见/可访问(授权后可见/可访问)二、编辑授权标识,例:user:edit。一、数据库中给菜单中添加下级。三、在页面代码中绑定。

2023-01-08 09:08:35 775

原创 数字转千分位

数字转千分位

2022-11-29 22:51:57 104

原创 Vue数字金额转大写

const cnNums = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];const cnIntRadice = ["", "拾", "佰", "仟"];const cnIntUnits = ["", "万", "亿", "兆"];// return total.toFixed(2)//四舍五入保留两位。// 整数金额时后面跟的字符。// 对应整数部分扩展单位。// 输出的中文金额字符串。// 对应小数部分单位。// 最大处理的数字。

2022-11-25 11:27:27 600

原创 node.js

使用V8在非浏览器环境下运行的更好,V8引擎执行JavaScript的速度非常快,性能非常好,基于Chrome JavaScript运行时建立的平台,用于方便地搭建相应速度快、易于扩展的。node.js 是由Ryan Dahl 开发,是一个基于。、非阻塞模式I/O模型,让JavaScript运行在。node.js对一些特殊用例进行优化,提供替代的。的开发平台,他让JavaScript成为与。等服务端语言平起平坐的脚本语言。运行环境,使用了一个。

2022-09-14 10:42:07 99

原创 Vue2和Vue3的区别

1)Vue2的双向数据绑定的原理是Vue.js采用数据劫持结合发布者/订阅者模式的方式,通过Object.defineproperty()来劫持各个属性的setter和getter,在数据变动时触发相应的监听回调。Vue3中使用了ES6的proxyAPI对数据进行处理。2)相比于Vue2,使用proxyAPI优势有:defineProperty只能监听某个属性,不能对全对象进行监听,省去for in 、闭包等内容来提升效率(直接绑定整个对象即可);

2022-09-14 10:41:31 938

原创 Webpack

当webpack处理应用程序时,他会在内部构建一个依赖图(dependency graph),此依赖图对应映射到项目所需的每个模块,并生成一个或多个bundle。Webpack是一款模块加载器兼打包工具,他能够把各种资源,如JS、JSX、ES6、SASS、图片等都作为模块来处理和使用。document.write("webpack学习")npm install webpack-cli -g // 客户端。npm install webpack -g // 打包工具。

2022-09-06 20:17:49 295

原创 cookies,sessionStorage和localStorage的区别

即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径数据还有路径(path)的概念。可以限制控kookie只属于某个路径下。,同时因为每次http请求都会携带cookie,所以kookie只适合保存很小的数据,如会话标识。虽然也有存储大小的限制,但比kookie大得多,...

2022-08-30 14:26:38 147

原创 Vue基础面试题11-19

methods 里面定义的是 函数 ,仍然需要去调用它。低耦合:数据趋向试图,view可以独立于model变化和修改,一个viewModel可以绑定不同的view上,当view变化的时候Model可以不变,当Model变化的时候view也可以不变。在编写组件的时候,首先要做的就是组价的抽象,考虑组件是否可复用,组件之间是否存在耦合,一次性组件很其他组件紧密耦合没关系,但是可复用组件一定要定义一个清洗的公共接口。watch是用来监听数据的改变的,当监听的数据发生改变时就会触发定义的事件,它的值是一个对象。..

2022-08-10 20:24:44 299

原创 vue相关面试题1-10

vuex是存放vue组件的全局数据和设置全局状态的地方,而localStorage是本地缓存,除非手动删除否则一直存在,另外sessionStorage也是本地缓存,但是只要页面关闭数据就会清楚。vue.js采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter和getter,在数据变动时触发相应的监听回调。的,通过对每一个属性简历Watcher来监听,当属性变化的时候,响应式的更新对应的虚拟dom。4、vue的双向数据绑定的原理。.....

2022-08-09 20:31:44 174

原创 微信小程序的缓存、跳转与请求

data: {name:"张三",age:18},//需要存储的内容。wx.redirectTo关闭当前页面,跳转到非tabbar页面,跳转后只能返回到首页。wx.navigateBack返回页面数,如果delta大于现有页面数,则返回首页。注意:跳转传参,可以在该页面的onLoad方法中的options参数中拿到这个参数。wx.navigateTo保留当前页面,跳转到非tabbar页面,左上角有返回。wx.switchTab关闭所有非tabbar页面,只能跳转tabbar页面。...

2022-08-03 20:43:27 768

原创 微信小程序--事件

在js中的事件里传个e,通过currentTarget中的dataset属性可以获取参数。longtap:手指长按超过350ms在离开,,推荐使用longpress。changedTouches 触摸事件,当前变化的触摸点信息的数组。点击事件:bindtab=“ ” 或者 bind:tab=“ ”touches 触摸事件,当前停留在屏幕中的触摸点信息的数组。事件传参:需要绑定一个事件,在绑定参数名,最后传参。target 触发事件的组件的一些属性值集合。阻止事件冒泡事件:catch。...

2022-08-03 17:03:18 422

原创 微信小程序入门2

import的作用域:import只能引用目标文件的template,不能引用目标文件import引用的template。改变data中的值:this.data.msg = 值, 注意:这样只会改变data中的值,不会改变渲染层。wxss和web的css类似,不同的是wxss引用了新的尺寸单位,rpx可以适配不同的屏幕宽度,使用template 使用is属性,声明要使用的模板,然后将需要的数据从js的data传入。小程序中的样式选择器:类选择器,id选择器,元素选择器,伪元素选择器。...

2022-08-03 16:43:32 112

原创 微信小程序入门

在app.json中进行配置,需要注意的是tabbar的图标不能是线上的地址,需要提前准备好放到项目里,一般这些静态资源可以放在assets文件夹下。iconfont-国内功能很强大且图标内容很丰富的矢量图标库,提供矢量图标下载、在线存储、格式转换等功能。多出首微信限制,不能直接分享到朋友圈,不允许涉及到积分,或者虚拟交易。优势容易推广,小程序有众多入口,例如附近的小程序、小程序二维码、分享、发现等五十多个入口。在小程序中,标签都有一些功能,叫他组件,小程序给我们提供了很多,如下几个常用的组件。...

2022-07-31 17:52:53 248

原创 Vuex原理

action类似于mutation,不同的是action可以包含异步操作,action不能直接修改state,如果想修改state的话,需要触发mutation。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。getters对state中的数据进行加工(派生)Vuex是一个专为Vue.js应用程序开发的。mutations修改state中的值。state状态全局公共状态处置。...

2022-07-17 17:17:07 150

原创 Vue接口请求

1.X版本使用Vue-resource先引入Vue 后引入Vue-resource、get 请求getInfo(){this.$http.get(“地址?参数”).then(res =>{})}post 请求this.$http.post(“地址”,{参数对象},{emulateJSON:true}).then(res=>{})// 第三个参数{emulateJSON:true}指定类型,如果是JSON不用写,,如果是其他需要写2.X版本 使用axios同样后引入axiosget请求:和vue-res

2022-07-08 08:39:47 1381

原创 Vue生命周期

Vue声明周期:从Vue实例创建、运行、到销毁期间,总是伴随着各种各样的事件,这些事件,统称为生命周期生命周期函数 = 生命周期事件 = 生命周期钩子beforeCreate()创建生命周期前,一般用于页面定向created()创建生命周期之后,一般用于接口请求和数据初始化beforeMount()页面挂载前mounted()页面挂载后,以来dom操作的内容beforeUpdate()数据更新前,可执行0次或多次updated()数据更新后beforeDestroy()销毁前destroyed()销毁后..

2022-07-06 12:21:48 179

原创 Vue-过滤器、键盘修饰符

过滤器的作用:在我们页面显示值之前加一层过滤,展示我们过滤后的值注意事项:过滤器可以用在两个地方:双花括号插值和 v-bind 表达式使用语法:{{变量 | 过滤器名}}1.全局定义Vue.filter("gettime",function(data,formatl){})参数:过滤器的名字和过滤器执行函数2.局部定义定义:filters这个是实例化Vue的一个参数,和data,methods平级的,里面放的就是我们这个实例的私有过滤器new Vue({ el: '#app', filters

2022-07-05 20:40:17 66

原创 【无标题】

Vue的代码结构1.引入Vue.js2.写视图层,也就是我们要展示的内容3.实例化Vue( const app = new Vue() el:'#app', // 控制在那个试图 data: // 存放的数据 methods:{ // 事件、方法 插值表达式直接在div里面写两个{}就可以v-cloak(防止闪烁)(直接写在标签里面)在style里面写[v-cloak]{display:none}v-text v-htm...

2022-07-05 20:38:44 54

原创 对象深拷贝+数组深拷贝几种方式

//数组 // for循环 // var arr1 = [1,2,3,4,5] // var arr2 =[] // for(var i = 0;i

2022-06-21 20:08:23 75

原创 案例:输入一个年份,判断是否是闰年

代码如下(示例): function year(a){ if (a % 400 == 0) { alert("世纪闰年") } else if (a % 100 == 0 && a % 400 !== 0) { alert("世纪平年") } else if (a % 100 !== 0 && a % 4 == 0) { alert("是闰年"); } else { alert("是平年") }...

2022-06-11 16:20:18 541

原创 求1!+2!+3!+....+n!

求 n 的阶乘和

2022-06-11 11:49:17 58

原创 冒泡排序案例

数组冒泡排序总结冒泡排序:将数组从小到大排序或从大到小排序,例题从小到大排序,就是两个两个比较,如果前者大于后者,交换,在进行下次比较,直到比较到最后

2022-06-11 11:35:34 757

原创 JS高级-函数的高级应用

函数声明:1、字面量2、函数表达式3、内置构造函数形式 var fun3 = new Function函数调用方法:1、函数名()2、自调用方法3、. call()方法 fn1. call()4、对象中的函数调用 obj. name()5、数组中的函数调用 arr [ 2 ]()6、函数作为参数调用7、函数作为返回值调用闭包:定义在函数内的函数,让局部变量持久化函数递归:1、找规律 2、判断临界值...

2022-06-11 09:24:27 82

原创 JS高级-深拷贝与浅拷贝

数据类型:number,string,Boolean,null,undefined,symbolJS两种变量存储方式栈(stack):自动分配内存,自动释放内存堆(heap):动态分配内存,大小不定,不会自动释放浅拷贝:改变原来数组深拷贝:不改变原数组法一:for循环法二:slice法三:concat法四:for in拷贝继承:利用深拷贝方式即可函数内this指向普通函数调用,指向window构造函数,指向实例对象对象方法,该方法所属的对象事件绑定方法,事件源定时器函数,指向window了解:函数也是对象.

2022-06-11 09:18:07 80

原创 JS高级-原型

JS规定,每个构造函数都有一个prototype属性,指向另一个对象,这个对象的所有属性和方法,都会被构造函数的实例对象继承,所以,我们可以把所有实例对象需要共享的属性和方法直接定义在prototype对象上总结;任何函数都具有一个prototype属性,该属性是一个对象,构造函数都有prototype,本身是对象,我们称之为原型构造函数的原型对象的属性和方法都可被实例对象继承构造函数的原型有个constructor属性,指向的是当前原型对象的构造函数实例对象constructor属性指向构造函数改变thi

2022-06-10 20:31:49 69

原创 JS高级-面向对象

面向对象(Object Oriented Programming 简称OOP):过程代码的高级封装,目的提高代码开发效率和可维护性面向对象的三大特征:封装性、继承性、多态性构造函数和实例对象的关系创建一个实例对象,必须使用new操作符,步骤如下1、创建一个对象2、将构造函数的作用域赋给新对象(因此this指向新对象)3、执行构造函数中的代码4、返回新对象constructor 属性: 对象的constructor属性最初是用来标识对象类型的,可通过实例的constructor属性判断实例和构造函数之间的关系

2022-06-10 20:24:14 49

原创 JSAPI-动画

offset 系列offsetLeft(获取元素居左的距离,有定位距离父元素,都无定位距离浏览器)offsetTop(获取元素居上的距离)offsetWidth(获取元素宽度,包括边框,内边距,不包括外边距)offsetHeight(获取元素高度)offsetParent(获取元素定位父元素,父元素没有定位找body,如果自身为fixed固定定位,得到的是null)scroll系列scrollTop 和 scrollLeft(获取内容卷曲出去的高度和宽度)scrollWidth 和 scrollHeight

2022-06-10 20:13:34 247

原创 JSAPI -BOM

BOM(Browser Object Model)浏览器对象模型BOM顶级对象window调用window下属性时,可省略window特殊属性window.name对话框alert()弹框prompt()含输入框confirm()提示框加载事件:onload事件,通常用于body和css加载完成后执行Location对象,常用属性:console.log(window. location.hash)打印地址栏上#后面的内容location. host 主机名及端口号location. hostname 主机

2022-06-10 20:01:18 43

原创 JSAPI -DOM

API:(BOM和DOM)特征:输入和输出DOM:文档对象模型 / 文档对象模型获取元素方式1、根据ID获取 var dom1 = document. getElementById(“ ”)2、根据class var dom2 = document.getElementsByClassName(“ ”)3、根据标签名 var dom3 = document. getElementsByTagName(“ ”)4、根据name属性 var dom4 = document. getElementsbByName

2022-06-10 19:48:44 71

原创 内置对象String

创建字符串对象var str = new String(“Hello Word”);字符串常用方法CharAt()获取指定位置的字符charCodeAt()获取指定位置的字符的ASCII码str [ 0 ] 和CharAt()同效concat()拼接字符串,等同于 + 连字符链接slice(start,end)start开始截取,到end结束,不包括endsubstring(start,end)start开始截取,到end结束,不包括endsubstr(start,length)start开始截取lengt

2022-06-10 18:38:21 78

原创 内置对象Array

Array 对象创建数组 1、字面量 2、 new Array()检测对象是否为数组Array.isArray() // 返回true 是数组,返回false 不是数组valueOf() // 返回数组本身对象栈操作(先进后出)push()在数组最后添加元素pop()删除数组最后一个元素队列操作(先进先出)unshift()在数组最前面添加元素shift()删除数组最前面的元素排序方法reverse()反转数组,按字符编码的顺序进行排序cancat ()拼接数组slice(start,end)从start开

2022-06-10 18:18:12 106

原创 JS内置对象Math,Date

Math对象常用属性Math. PI //圆周率常用方法Math.random() // 生成随机数Math.floor() // 乡下取整Math.ceil() //向上取整Math.round () //四舍五入Math.abs() //绝对值Math.max() //最大值Math.min() //最小值Math.sin() //正弦Math.cos() //余弦Math.pow() //求职数次幂Math.sqrt() //求平方根Date对象创建日期对象Date()是构造函数var date =

2022-06-09 19:42:10 45

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除