- 博客(59)
- 资源 (3)
- 收藏
- 关注
原创 echart markLine x轴 两点之间 或 日期之间 的竖线箭头
前端 echart markLine 实现 在x轴两个月份中间 动态画一条标线箭头
2022-08-06 12:15:04
1670
1
原创 https前端http类型的iframe 白屏现象
https前端http类型的iframe 白屏现象1. 非技术手段嵌套的时候严格遵守浏览器协议 禁止https嵌套http浏览器的修改严格遵守过网站的url2. 技术手段meta存在两个非必须的属性http-equiv和name, 用于表示要设置的项。比如,设置的项是Content-Security-Policy设置的值是upgrade-insecure-requests。因为https地址中,如果加载了http资源,浏览器将认为这是不安全的资源,将会默认阻止。后来在文档中添加了完美解决
2021-09-09 14:01:13
1878
原创 https嵌套http的iframe
今天项目遇到了问题,一个用户访问不到嵌套了iframe的页面,原因是这个用户访问的我们的项目是https,那个页面嵌套的是http 后来发现 浏览的安全机制会让安全性高的项目不能嵌套安全性低的iframe页面https不能嵌套 http 其他嵌套情况都可以总结如下:http可以嵌套http httpshttps可以嵌套 https其他的解决方案:让嵌套的页面都改成https (合理)在浏览器中设置这几个地址是安全的(不合理)让用户访问的https的时候修改为http (不太合理)...
2021-06-22 16:47:30
4406
原创 ts重难点泛型总结
1.泛型 generics 定义返回任意类型的函数function echo<T>(arg: T): T { return arg}const res = echo(true)function swap<T, U>(tuple:[T, U]): [U, T] { return [tuple[1], tuple[0]]}const result2 = swap(['string', 123])// result2[1].会弹出提示可以调用这里面的方法
2021-01-12 16:50:29
408
原创 改变当前页面的element-ui样式
改变当前页面的element-ui样式当前页面的scope中 修改就行 不会污染同一个组件在其他的页面的布局如果样式被覆盖可以使用!important来加权.el-table /deep/ .cell { display: flex !important; justify-content: center; padding-right: 10px !important;}.el-table >>> .cell { display: flex !im
2020-11-10 17:19:51
693
原创 return 跳出函数失效问题
return 失效问题最近在项目中就遇到了这个问题 return 没能跳出函数 只是跳出这个循环 还在执行下面的代码关键是还是对return的作用域理解的不够透彻直接上代码loadDialog(tree, treeNode, resolve) { tree.subjectCodeArray.forEach((item, index) => { if(item === '-') { return } this.form['sub
2020-10-29 11:09:04
2188
原创 el-table 设置一列的颜色
el-table 设置一列的颜色在日常使用 el-table 中 有两种形式 一种是直接写死 column 另一种是大量的列 通过for循环遍历出来的两种方法无论哪一种 其实核心思想都是 通过 template 控制不同的class 将对应的样式渲染出来 从而实现数据的颜色的转变 核心为class直接上代码第一种简单情况 <el-table-column align="center" label="同比"> <template slot-scope="sc
2020-10-27 17:06:09
13854
原创 form表单包含form表单的校验问题
表单内部表单校验问题当表单下面还嵌套表单的时候这个校验就不能走正常的校验了思路:1.可以在外部表单校验之前先手动校验内部表单(适用于内部表单比较简单的情况),如果为空可以将这个错误的提示通过组件传递给子组件,即:子表单。2.然后子表单 将错误提示出来 如果 子表单填写完整了 再将这个错误提示 置为空。代码如下:// 父组件引入子组件 <CostingLine ref="tableLine" :err-msg="costingLineErr"
2020-10-23 10:15:40
766
原创 刷新组件
强制组件刷新的几种方法在做表格的时候 需要对表格进行刷新 一般情况是有两种刷新的方法:v-if刷新<template> <editor v-if="isRouterAlive" > </editor></template>data() { return { isRouterAlive: true, // 是否销毁 destory: true, // 销毁组件 } }meth
2020-10-21 16:34:32
364
原创 常记难记的处理字符的常用正则
需求1: html代码片段中字数不能大于 500 否则就报错 let str = '' str = this.form.context.replace(/<[^<>]+>/g, '') if (str.length > 500) { this.$message.error('公告正文字数不能超过500') flag = false }需求2: html代码片段中字数不能含
2020-10-14 16:37:17
93
原创 公告项目2020/10/13
重点难点:上传附件:在发布公告的时候需要上传附件:思路是将文件上传到一个新的接口中,得到返回的路径以及id,将id在发布公告的时候传给后台(此处后台会根据id进行关联,在查看这一条公告的时候通过这条公告的id重新请求这条公告的详情,在详情中会返回刚刚上传的附件)。(后台设计的这种模式并不是很好)富文本框的编辑: 经历千难万险终于实现了富文本框的图片上传功能,下边附上代码,我是将富文本框抽离成了一个组件,在要使用的页面引入,其中就是配置比较麻烦 ,官网的介绍代码比较不全,引入的方法有些模糊,思路
2020-10-13 11:25:07
162
原创 数组中用到的高级方法
.splice(index,howmany,[item1,…]):从数组中添加/删除元素,返回被删除项,注意:这个操作会改变原始数组。2.slice(start,[end]):从已有数组中返回选定元素,此操作不会修改原始数组。3.shift():删除数组第一个元素,返回删除项,改变原始数组,不产生新数组。4.unshift(newelement1,[…]):在数组开头添加一或多个元素,并返回新的长度。改变原数组,不产生新数组。5.pop():删除数组最后一个元素,并返回删除的值,若是操作空数组,返回
2020-09-07 09:26:56
148
原创 非布尔类型转换的真假boolean值有哪些
非布尔类型强制转化为boolean类型 false“”、 0、-0、NaN(无效数字)、null、undefined、false剩下的都是ture“hello” 42 true [] [1,2,3,4] {} {a:43} function foo(){}
2020-09-07 09:25:48
191
原创 原来js的垃圾回收机制是这样的
1,标记清除大多数游览器都是标记清除。当变量进入执行环境,将其标记为“进入环境”,当变量离开环境时标记为“离开环境”。垃圾收集器在运行的时候会把内存中的变量都加上标记,然后去掉环境中的变量及被环境变量所引用的变量(即闭包),之后标记了的变量都是要回收的。2,引用计数(主要用在IE游览器)引用计数就是跟踪每个变量被引用的次数。当声明了一个变量并将一个引用类型赋值给它时引用次数就是1.当这个引用次数变为0时就回收内存。引用计数可能造成内存泄漏,因为循环引用变量。...
2020-09-07 09:24:43
99
原创 es6下的高级函数
flter函数 返回一个新的数组 每次会根据条件进行一次判断 支返回为true的一项 。map函数 对数组的每一项进行操作 返回每一项的数组。数组对象可以直接取出自己想要的对象let arr = [{ id: 1, name: "tony", class: 1, garde: 88 },{ id: 2, name: "Tom", class: 1, grade: 90
2020-08-28 17:14:19
676
原创 总结202/8/05
加载顺序问题同时在created中不要发送请求,并且马上赋值给data ,因为值没请求回来,可能赋的是一个空的值。等到请求到了 也不会再次赋值了。解决方式: 第一个得到请求到的数据data 要放在computed中 才行 因为 只要来值了 都会重新赋值给 data....
2020-08-05 17:45:34
81
原创 一日总结 filter函数 form表单下属性的监听
一日总结 filter函数 form表单下属性的监听第一条:'form.useWay'(val){ let data = this.wayOptions.filter(res => res.treatmentCode == this.form.useWay ); this.form.exeDepartCode = data.defaultExeDepartCode && Number(data.defaultExe
2020-07-30 23:00:40
547
原创 && 不要老用if
if 语句又长又low&&就很好用&&左边为true 就会执行右边左边不为true右边也不会执行的例如: 如下所示prev.indexOf(cur) === -1 && prev.push(cur);this.departOptions[0] && this.listChange(this.departOptions[0]);let valid = img.width === img.height && img.w
2020-07-24 20:28:46
117
原创 reduce函数的笔记-- 利用reduce实现结账时金额的相加
arr.reduce(function(prev,cur,index,arr){...}, init);````javascriptarr 表示原数组;prev 表示上一次调用回调时的返回值,或者初始值 init;cur 表示当前正在处理的数组元素;index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;init 表示初始值求数组之和var sum = arr.reduce(function (prev, cur) { return p
2020-07-24 20:13:31
624
原创 单选框部分选项禁用情况
element-ui 中 select 选项 部分按钮 需要显示 但是不想让用户使用 即禁用 利用:disabled属性 可以对数据进行处理 将需要禁用的选项 增加一个disabled属性为true<template #rebateCode="scope"> <el-select v-model="form.rebateCode" filterable class="w-100" clearable @change="selectOptions" placeholder="请选
2020-07-23 19:54:49
1265
原创 默认勾选一行 form -item
默认勾选失效问题注意要当数据都加载完的时候 再去 勾选 使用this.$nextTick即可 <el-table ref="multipleTable" :data="tableData" style="width: 100%" selection-change="tableSelectChange"> <el-table-column type="selection" width="55"> <
2020-07-23 16:35:25
395
原创 form- item 下拉 返显示
下拉的返显示 return [ { itemType: 'input', prop: 'creditNum', label: '信用额度' }, { itemType: 'select', prop: 'wayFlag', label: '了解途径', list: this.$store.getters.getSelectData(2043) || [] }, { itemType: 'select', pro
2020-07-23 15:24:53
197
原创 简单常用的日期的格式化
let date = new Date() this.form.expectTime = this.dateFormat("YYYY-mm-dd HH:MM", date)date 打印出的格式是这样的格式化日期 dateFormat(fmt, date) { let ret; const opt = { "Y+": date.getFullYear().toString(), // 年 .
2020-07-22 16:40:52
191
原创 valueOf() 与 toString() toLocaleString的区别
var color = ['red', 'blue', 'green'];color.toString();var color = ['red', 'blue', 'green']; color.valueOf();
2020-07-03 16:54:39
65
原创 js大神总结知识点全套
1.简述同步和异步的区别2.怎么添加、移除、复制、创建、和查找节点1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建一个文本节点2)添加、移除、替换、插入 appendChild() //添加 removeChild() //移除 replaceChild() //替换 insertBefore() //插入3)查找 getE
2020-07-02 21:57:49
402
原创 javascript的垃圾回收
javascript的垃圾回收机制javascript垃圾自动回收:离开作用域的变量会自动清除,在垃圾回收期间被清除。两种垃圾回收算法:标记清除:给不使用当前的变量加上一个标记,然后回收其内存。引用技术法:跟踪记录所以值被引用的次数。这种算法已经不再使用了,因为如果循环使用对方会造成引用的一个循环,这个循环引用会一直存在,不会被删除。所以会出现问题,已不再使用了。解除变量,可以让全局变量不再使用的时候手动解除,这样还可以解除循环引用的问题,...
2020-07-02 11:56:11
111
原创 你知道检测对象类型吗的区别吗
基本类型的检测typeofvar a = null;typeof a //objectvar =;typeof u //undefined引用类型的检测引用类型如果还用typeof检测的话就都是object 没有办法分清楚对象数组等,因此引用类型不能用typeof。instanceofvar c = new Date();c instanceof Object //truevar v = new RegExp();v instanceof RegExp //true...
2020-07-01 15:13:57
317
原创 给一个对象添加一些属性 并且赋值
后台返回的数据res.data中的mcPatientInfoOutput中的属性有一些是我想拿到外边来的 再赋给this.tableData if (res.data) { var get = res.data.list; for(var i = 0; i<get.length; i++) { let data = ['age','gender','patientKind','patientPay']; data.map( item =>{
2020-06-29 17:26:03
3129
原创 $listener爷孙之间传递属性
$listener爷孙之间传递属性如果孙子想要使用爷爷的方法:在爷爷传给爸爸的组件上写上自定义事件 :比如要传递的是爷爷的httpData函数,只需要在爷爷传给爸爸的组件上写上自定义函数 @custom = “getHttpData”在爸爸组件内部写上 v-on="listeners"在孙子组件中使用的时候写上this.listeners" 在孙子组件中使用的时候写上this.listeners"在孙子组件中使用的时候写上this.listeners.custom()代码如下:爷爷组件中 使
2020-06-25 11:54:09
593
原创 对象查找key值 key值是一个参数传过来的变量
注意一个写法问题 当参数传过来的是一个字符串 那么我们使用的时候不可以写成 this.form.name 的这种 点 形式, 一定要写成 this.form[name] 的形式才行。写成 点 的形式找不到。具体原因现在目前解释不太清楚。findName(arr, code, name) { arr.forEach(item=>{ if(item[code] == this.form[code]) { this.form[name] = item[name]
2020-06-23 17:17:54
641
原创 合并对象有重复的key 合并key对应的值为空
对于这样以的json格式 合并把里面的mcPatientInfoOutput对象,从里层拿出来,放到外边。this.$http.post(this.$service.outpatient.triage[type_info], Number(id)).then(res=>{ let a1 = res.data.mcPatientInfoOutput; let a2 = res.data; let a3 = {...a2, ...a1}; //顺序问题 在后面的会覆盖前面的值
2020-06-23 14:19:37
600
原创 高级用法:&&的含义
&&左边的相当于if的判断,只有左边的成立,右边的才执行。如果为false,则不执行。好处:执行为false就不会执行了,也不会报错。res.data && res.data.list.map(item=>{ item.treatStatus = item.regStatus})this.tableData = res.data && res.data.list;res.data为true,才会执行 res.data.list.map
2020-06-22 15:23:16
491
原创 更改后台传过来数据的对象名
解构默认值后台传过来的json对象中,有一个对象名我像改成跟我的对象名字一致的一个名字。我的对象名字是mcPatientInfoInput ,后台传给我的是mcPatientInfoOutput,只需要一下这么写 let {mcPatientInfoOutput:mcPatientInfoInput} = res.data; delete res.data.mcPatientInfoOutput; res.data.mcPatientInfoInput = mcPatientInfoInpu
2020-06-21 21:37:25
520
原创 computed 与 watch 区别 笔记
computed是可以监听到data中没有的 变量。举个栗子: 比如 typetype () { return this.active == 'diagnosis' ? 'list' : 'before_list' }当 type的依赖 this.active 发生变化了 type可以监听到 ,同时 可以通过依赖的变化 将type的值改变。watch是可以监听到props、data、 computed中(比如刚刚的type)的变化如下图:computed:
2020-06-21 11:02:12
85
原创 es5新增的九个数组
es5新增的九个数组map 每一项都必须执行 生成一个新的数组forEach 每一项都必须执行filter 有条件的返回筛选过的数组some至少有一个返回就行 返回Boolean值every 每一项都必须执行indexOf 不是每一项都必须执行lastIndexOf 不是每一项都必须执行reduce 统计 每一项都必须执行...
2020-06-13 21:18:53
52
原创 精准判断是否为数组
// 判断是否为数组const isArray = arr => { return Object.prototype.toString.call(arr) === '[object Array]';};原理:
2020-06-13 21:18:27
170
原创 setTimeout setTimeInterval
setTimeout 只在指定时间后执行一次function hello(){ alert("hello"); } //使用方法名字执行方法 var t1 = window.setTimeout(hello,1000); var t2 = window.setTimeout("hello()",3000);//使用字符串执行方法 window.clearTimeout(t1);//去掉定时器 setTimeInterval//实时刷新时间单位为毫秒 setInterv
2020-06-13 21:17:20
116
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人