
JS相关
xggllc
这个作者很懒,什么都没留下…
展开
-
luckysheet 单元格新增属性
近期在用luckysheet库开发工作表相关的功能,期间需要在单元格中新增属性,查官方文档没有api,得自己改。看源码,没有找到直接可以修改的函数,按解答中答复,以为会有一个过滤属性的函数,也没有找到。后面又啃了很久源码,发现根本就没有过滤函数,数据是在单元格赋值时 只赋了几个固定的属性,咱们判断一下添加属性即可。具体修复方式记录一下:这个文件,赋值luckysheet/src/global/setdata.js//Set cell valuefunction set原创 2021-12-22 14:24:13 · 2827 阅读 · 2 评论 -
leaflet 加载百度离线瓦片
leaflet 加载百度瓦片 与 加载普通谷歌瓦片方法都一样,都是 L.map('cssid', mapOption);mapOption 坐标系 crs 需要使用 900913 , layer中 tms 需要为true。注意:普通谷歌瓦片的坐标系原点是 origin: [-180, 90] ,百度地图的瓦片坐标系原点是 origin: [0, 0]。以下是主要代码:const CRS_900913 = new L.Proj.CRS('EPSG:900913', '+proj=me原创 2021-11-29 21:21:56 · 2153 阅读 · 8 评论 -
JS 数组原型方法,常用部分详解
join():用指定的分隔符将数组每一项拼接为字符串 push():向数组的末尾添加新元素 pop():删除数组的最后一项 shift():删除数组的第一项 unshift():向数组首位添加新元素 slice():按照条件查找出其中的部分元素 splice():对数组进行增删改 fill(): 方法能使用特定值填充数组中的一个或多个元素 filter():“过滤”功能 concat():用于连接两个或多个数组 indexOf():检测当前值在数组中第一次出现的位置索引 lastIn.原创 2021-10-30 20:54:30 · 279 阅读 · 0 评论 -
JS –‘ENUM‘ - js中使用枚举
一个枚举是一种从事先定义好的一组常量转换而来的遵从制约的变量.使用枚举的原因:1,工具多样;2,每种工具状态多样;3,避免无效访问,提高代码可读性;那么JS 中如何达到枚举的效果呢?还需要配合 js 中的 freezeObject.freeze(object);Object.freeze()是ES5新增的特性...原创 2021-08-31 19:04:18 · 1341 阅读 · 0 评论 -
echarts 纵向时间轴
调试预览代码如下:let list = [ { policy_content: '', policy_country: '北京', policy_time: '1999-06-11', policy_title: '测试数据 - 1', }, { policy_content: '', policy_country: '北京', policy_time: '2原创 2021-08-31 13:13:18 · 930 阅读 · 1 评论 -
记录vue 常用插件,滚动加载与虚拟滚动
滚动加载:参考地址https://blog.youkuaiyun.com/qq_37339364/article/details/86678452虚拟滚动:参考地址https://tangbc.github.io/vue-virtual-scroll-list/#/fixed-size转载 2021-08-31 11:56:50 · 221 阅读 · 0 评论 -
element-ui el-upload - 自定义 FormData
前端时间写到自定义上传记录一下:vue 2.xnode -v 12.14element-ui2.14.1 <el-upload class="upload-demo" drag ref="uploadFileRef" action="xxx" :limit='200' :auto-upload = 'false' :http-request="uploadSectionFile" .原创 2021-08-30 15:47:21 · 951 阅读 · 1 评论 -
leaflet 加载普通瓦片地图
vue 框架node -v 12.14.0leaflet 1.7.1主要代码:<template> <div id="refSuperMap" ref="refSuperMap" class="my-chart-leaflet"> </div></template>import '../node_modules/leaflet/dist/leaflet.css';import L from 'leaflet'; data原创 2021-08-30 15:23:41 · 1437 阅读 · 0 评论 -
GIS地图坐标系转换
最近正在做的记录一下,直接上代码node -v 12.14.0vue框架主要转换方法:ps: 网上找到的方法修改了一些// 子组件坐标系转换使用 ----- start ---------------- deltaCoord (lat, lon) { // Krasovsky 1940 // // a = 6378245.0, 1/f = 298.3 // b = a * (1 - f) // ee = (a^2原创 2021-08-30 15:01:47 · 437 阅读 · 0 评论 -
angular 兄弟组件通信
兄弟组件间通信,在service 中定义Subject,组件ngOnInit() 初始化监听;service.ts 文件import { Subject } from 'rxjs';subjectChartResize = new Subject<string>();原创 2021-06-18 15:44:15 · 980 阅读 · 0 评论 -
JS中 reduce() 的用法
原文地址:https://www.cnblogs.com/wenqiangit/p/10551489.html转载 2021-06-05 21:31:52 · 148 阅读 · 0 评论 -
angular 8 管道实现数值中插入 单位 ‘亿、万、条‘
RT:开发过程中偶尔会遇到类似统计的功能,需要把后端返回的数据展示为带单位的字符串。管道文件transform-data.pipe.tsimport { Pipe, PipeTransform } from '@angular/core';@Pipe({ name: 'transformData', pure: true})export class TransformDataPipe implements PipeTransform { transform(value: n原创 2021-05-26 13:03:22 · 222 阅读 · 0 评论 -
VUE 复制数据到剪切板
记录昨天浏览器点击按钮复制数据的功能:查项目的package.json 文件发现有 引入 vue-clipboard2,想着直接用就可以了。"dependencies": { "vue-clipboard2": "^0.3.1",}如果项目中没有引入的话,需要先自己安装引入vue-clipboard2:在项目的终端里执行:npm install vue-clipboard2 --savevue main.js 文件中引入:import VueClipboard f原创 2021-05-26 10:38:47 · 448 阅读 · 0 评论 -
JS 判断对象是否包含某属性--hasOwnProperty
hasOwnProperty 用来判断对象否有自己的某个属性。这个方法会查找一个对象是否有某个属性,但是不会去查找它的原型链。为了判断一个对象是否包含自定义属性而不是原型链上的属性, 我们需要使用继承自 Object.prototype 的 hasOwnProperty 方法。hasOwnProperty 是 JavaScript 中唯一一个处理属性但是不查找原型链的函数。注意:通过判断一个属性是否undefined是不够的。 因为一个属性可能确实存在,只不过它的值被设置为undefined。.原创 2021-05-19 14:53:05 · 793 阅读 · 0 评论 -
JS-根据对象路径获取值
前几天用到了这个功能,已知对象和对象路径(字符串格式 ,如:"a.b.c"),需要取对象的值。网上寻了一段大神的代码,一层一层查对象的值:原文地址:https://blog.youkuaiyun.com/hggl_bera/article/details/113811740 // 根据对象路径获取对象值 getValueByObjPath (obj, path) { const paths = path.split('.'); let res = obj;原创 2021-04-22 13:34:03 · 2187 阅读 · 0 评论 -
循环滚动列表 - scrollBy
前几天做列表循环滚动的功能,记录一下。思路:正常思路,把滚动列表的第一个元素,接到列表的最后一位,每隐藏一条就在最后一位接上,如此循环;今天咱们来聊更简单一些的思路,不需要操作每一条元素,但是需要复制一次整体的列表。要点:需要用到 scrollTo ,scrollBy 定位;用scrollHeight ,offsetHeight判断。向左滚动时把scrollTo 换成scrollLeft,调试代码即可。原生代码如下:关键点在于,当滚动内容超出窗口高度的..原创 2021-03-14 15:13:10 · 1363 阅读 · 0 评论 -
加载网络字体 - @font-face
前段时间用到了自定义字体,没怎么在意,直接在assets 静态资源文件夹中放ttf 字体文件,使用的时候直接@font-face 加载出来就行了:@font-face { font-family: '思源黑体'; src: url('思源黑体.ttf'); // 字体文件与该css文件放在同级文件夹内}昨天又用到了自定义字体,但是需要是加载用户自己上传的字体,那么放在项目资源文件夹中就不能满足需求了。解决方法也是使用@font-face url 加载,稍微改动一下,在原创 2021-02-26 10:40:26 · 660 阅读 · 2 评论 -
JS 延时函数 setTimeout 或者 rxjs 写法
一. setTimeout // 定时器 用于轮巡 timerJobState: any;// 延时 5秒开始// getExportDSJobStatusRefresh 是需要执行的方法,bind 为了确定this 指向, params 参数this.timerJobState = setTimeout(this.getExportDSJobStatusRefresh.bind(this, params), 5000);// 取消延时函数clearTimeout(this.t原创 2021-02-02 15:34:49 · 1271 阅读 · 0 评论 -
js 数据存入浏览器 localStorage
// 当前选中状态存入浏览器let activeObj = { activeDataType: this.type, activeDataId: this.id}// 由于只能写入string json.stringify 转了一下localStorage.setItem('dsActiveInfo', JSON.stringify(activeObj));// 读取使用,跳转路由后 再返回就可以恢复用户此前的操作状态了let activeObj = JSON.parse(lo..原创 2021-01-16 16:42:11 · 1498 阅读 · 0 评论 -
angular 8 搜索防抖
// ts 文件代码import { Subject } from 'rxjs';import { debounceTime,map,takeUntil } from "rxjs/operators"; destroy$ = new Subject(); searchTbNameChange$ = new Subject(); ngOnInit() { this.searchTbNameChange$.pipe( debounceTime(500), ...原创 2021-01-16 16:30:22 · 326 阅读 · 0 评论 -
Mac npm 权限报错,各种莫名奇妙的错。
Mac 电脑一般情况下,npm install 报出无权限错误的时候 只需要在命令前加上 sudo 就可以 ,但是有一些install 还是一直报错,可以试试获取当前用户文件夹下所有文件夹的权限。sudo chown -R $USER 所有者/文件夹如:sudo chown -R $USER /Users/allenxxx或者sudo chown -R $USER /usr/local如果不清楚 可以在命令行窗口 输入 pwd 就可以看到自己电脑的路径了。...原创 2020-10-13 11:50:03 · 518 阅读 · 0 评论 -
angular6 TS 树实现前端搜索、选中、取消选中功能
angular8 实现树组件相关思路充分利用Map,key 为路径,值为节点引用。存储树所有节点的Map : allLeafNodesMap: Map<string, NodeTreeItem> = new Map([]);1,树节点 接口export interface NodeTreeItem { type: string | FieldsEnum; // 节点类型,用于显示节点icon ,FieldsEnum 为枚举 name: string; // 节.原创 2020-10-03 23:19:24 · 709 阅读 · 0 评论 -
JS 不使用 for forEach 获取两数组中重复的元素
hi, 小伙伴们,好久不见噢~今天分享一个小功能,工作中遇到Check表格中重复字段名的需求,不想用循环的方式,就想了其他实现思路,觉得挺有意思,就分享出来共同探讨一下。isCheck(arr1:any[], arr2:any[]) { // 拼接两个数组 let newArr = arr1.concat(arr2); // 数据去重 let noRepetitionArr = [...new Set(newArr)]; // 如果 去重数组长度小于原数组长原创 2020-10-01 18:14:29 · 433 阅读 · 0 评论