- 博客(40)
- 资源 (2)
- 收藏
- 关注
原创 vue前端导出多文件并且打包ZIP
需求就算解决列表分类打包的问题。多个excel文件放到一个压缩包保存输出思路:1.先将数据做好分类2.将分类的数据依次转换成excel对象3.将excel对象转换成流可以压缩使用上代码import * as XLSX from 'xlsx'import JSZip from 'jszip'import FileSaver from 'file-saver' // res 元数据,selected 分组数据, col 表头 let zip = new JSZip(),res=[]
2022-05-26 11:48:33
996
原创 前端文档在线预览
史上最简单文档预览方案 支持js vue react<a :href="'https://view.officeapps.live.com/op/view.aspx?src='+自己文档地址" class="wordStyle"> <span>点击查看文档</span></a>强的一笔!
2021-11-16 10:39:20
578
1
原创 前端防sql 注入正则替换
export default (data) => { let obj = typeof data == 'object' ? data : JSON.parse(data) Object.keys(obj).forEach(item => { if (/keyword/i.test(item)) { if (!obj[item]) { return } const i = /select|update|delete|trunca
2021-05-11 10:24:54
983
原创 输入框输入几秒后自动执行
使用场景实时校验但是又不想无脑调用接口// input 调用@input="inputchange"let delayTimer ;const inputchange=()=> { let i = 0; if (delayTimer) { clearInterval(delayTimer); } delayTimer = setInterval(() => { i++; if (i === 3) { //自动执行函数 // _
2021-05-02 19:08:05
863
原创 微信H5支付问题汇总
1.取code问题//进入自己H5页面,然后去微信的地址拿code,注意一个code只能使用一次if(this.$route.query.code){ let local = window.location.href; window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + this.appid + "&redirect_uri=" + encodeURICom
2021-04-29 11:19:49
279
原创 12306正则校验规则
//密码校验let mreg = /^(?=.*[a-zA-Z])(?=.*[0-9])[A-Za-z0-9]{6,16}$/;//中国居民身份证let sfreg = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;// 外国人永久居住证let sfwg = /^[a-zA-Z]{3}\d{12}$/;// 港澳台居民居住证let sfgat = /^8[123
2021-04-23 16:54:42
446
原创 node-sass@4.14.1 postinstall: `node scripts/build.js`
node-sass安装失败解决方案执行npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass
2021-04-22 11:39:50
592
原创 MSBUILD : error MSB4132: 无法识别工具版本“2.0”。可用的工具版本为 “4.0“
1.安装MSVS2015npm install --msvs_version 20152.全局配置npm config set msvs_version 2015 --global或者本地配置npm config set msvs_version 2015
2021-04-22 11:33:58
1062
原创 弹性盒子上下左右居中
短小精悍 哈哈哈{ display: flex; flex-direction: row; justify-content: center; align-items: center;}
2021-04-09 16:59:38
2524
原创 uniapp小程序利用vuex实现计时器刷新不重置
jsimport { setStorageSync, getStorageSync } from '@/common/utils/storage.js';export default { state: { second:getStorageSync('second')?getStorageSync('second'):100, }, getters: {}, mutations: { updateTime(state:object){ this.timer=se
2021-03-11 16:35:43
717
原创 浅拷贝,深拷贝使用说明
let a = { i: 0}let b = ab.i = 2console.log(a.i) //2从上面的例子可以发现当给一个变量赋值一个对象的时候,a,b会共用一个引用地址,但实际开发中我们不需要这样于是有了深浅拷贝浅拷贝let a = { i: 0}let b = Object.assign({}, a)b.i = 2console.log(a.i) //1一般情况Object.assign可以解决大部分问题,但是当对象有两层的时候又回到了上面的问题引用同
2021-02-20 10:07:15
158
原创 微信小程序修改单个对象属性参数
数组对象太复杂,直接setData会很慢,性能很差,于是想到单独更新对象某个属性 this.setData({ [`goodsList[${index}].choosed`]:choosed })
2020-12-14 22:31:54
545
原创 前端插值表达式转换
需求说明将接口返回的字符串替换"1.对病案数据上传时间进行量化考核,以参保人员出院日期后的${p1}天(第${p1}天为法定节假日的,往后顺延一日)内上传至市平台,每份病历每延迟1天,扣除${p2}分;每提前1天,奖励${p2}分。"方法/** * 字符串替换 * ex: filers('hello ${p0}${p1}', 'world!,BOB') => 'hello world!BOB' * @export * @param {*} str * @param {*} rep
2020-11-20 14:50:49
411
原创 Vue.use()丶Vue.component()丶Vue.directive() 使用
小白记录1. Vue.use() 引入插件安装 Vue.js 插件。如果插件是一个对象,必须提供 install 方法。如果插件是一个函数,它会被作为 install 方法。install 方法调用时,会将 Vue 作为参数传入。例:引用 element-ui 提供了install方法import ElUI from 'element-ui'Vue.use(ElUI, { size: 'mini' })2.Vue.component() 引入组件例: 引用 element-tree-g
2020-10-21 16:55:23
923
原创 egg项目运行发布遇到的问题
首先我们拉一个egg项目https://github.com/252547545/egg-dome.git常规操作npm installnpm run dev报错1.运行不起来了??错误ECONNREFUSEDError: connect ECONNREFUSED 127.0.0.1:3306百度了一下原来是mysql 服务没启动打开电脑服务没找到mysql 服务,如果有mysql 服务直接启动下面忽略进入mysql安装的bin目录执行mysqlId --install 初始
2020-08-13 17:13:01
1619
3
原创 vue项目关于前端传Cookie总结
1.请求传cookie 配置//直接在拦截器里加Axios.defaults.withCredentials = true;2.cookie的写入,读取,清除注意:cookie写入需要注意 当项目有多个文件夹时我们需要设置pathcookie清除一般是设置过期日期或者置空,我这里用的是置空/** * 添加cookie * @param {String} objName * @param {String} objValue * @param {Number} objHours */
2020-08-12 15:27:36
1844
原创 vue框架用OpenLayers实现地图裁剪,定位
由于做大屏,公司想简单的做一个地图显示只想显示湖北省的地图于是就有了下面的骚操作个人记录html<!-- 地图显示容器--><div id="map" class="amap-page-container"></div><!-- maker点击显示坐标信息--><div id="makerAlert" class="makerAlert"> <div class="maker-t"> &
2020-07-24 15:54:33
2826
2
原创 Vue.observable 状态管理 代替vuex(vue2.6 提供新的状态管理API )
1.创建 storeimport Vue from 'vue'// 通过Vue.observable创建一个可响应的对象export const store = Vue.observable({ userInfo: {}, roleIds: []})// 定义 mutations, 修改属性export const mutations = { setUserInfo(userInfo) { store.userInfo = userInfo }, setRoleI
2020-07-21 17:47:13
528
原创 ora-00054: 资源正忙, 但指定以 nowait 方式获取资源如何解决
解决方案:select session_id from v$locked_object; --首先得到被锁对象的session_idSELECT sid, serial#, username, osuser FROM v$session where sid = session_id; --通过上面得到的session_id去取得v$session的sid和serial#,然后对该进程进行终止。ALTER SYSTEM KILL SESSION 'sid,serial';--替换sid 和ser
2020-06-23 17:59:04
176
原创 vue嵌套mui 快速开发 满脑子都是骚操作的我(纯属娱乐,老板看了会打死我)
事情的经过是这样的@#!!#!@¥!#!#!!!@#!@,需要快速开发一个小型app,然后我想试试mui嵌套vue 试一下 ,然后直接引用了两个js,结果不行。我想了想是因为vue dom渲染的原因,于是就开始了下面的骚操作引用部分<script src="js/vue.js"></script><script src="js/mui.min.js"></script>js部分 结果就可以了 !卧槽“世上本无路 走的人多了也便成了路" 奥力
2020-06-22 20:51:13
221
原创 element-ui自定义文件上传
小哥今天心情好在抄一篇文章啦啦啦!htmlname上传文件参数名 filesdata 上传参数 <el-upload ref="upload" name="files" :data="data" :on-error="onError" :on-success="uploadSuccess" :action="uploadUrl" :auto-upload="false"> <el-button slot="trigger" size="small" type=
2020-06-19 16:29:19
1952
原创 Promise
闲得慌,抄篇博客。记录Promise什么是Promise?1.用于异步计算2.将异步操作队列化,按预期顺序执行,返回预期结果3.对象之间传递Promise可以帮助我们处理队列异步回调的问题1.嵌套层次深,难以维护2.无法正常使用return 和throw3.无法正常检索推栈信息4.多个回调之间难以建立联系Promise有哪些特性1.promise的状态只能从 未完成->完成, 未完成->失败 且状态不可逆转。2.promise的异步结果,只能在完成状态时才能返回,而且我
2020-06-10 17:14:58
105
原创 JS日期原型扩展
/** * des: 日期操作 * @proStr: 格式化参数 * @return: Date * e.g. new Date().proDate('{%y+1}-{%M+2}-{%d+1}-{%H+1}-{%m+1}-{%s+1}') //年月日时分秒全部加1 */Date.prototype.proDate = function(proStr) { var dealWith = function(str, date) { let t =
2020-06-04 10:14:41
188
原创 js数字转金钱格式
/** * * * @export * @param {*} num 待转换的数值 * @param {number} [precision=2] 小数位数 * @param {string} [separator=','] 分隔符 * @returns */export function formatNum(num, precision = 2, separator = ',') { if (arguments.length === 4 && arguments[0
2020-06-02 09:57:27
640
原创 JavaScript 中 call()、apply()、bind() 的用法
在JavaScript中,bind、call和apply作用是一样的,都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部this的指向。1.call()、apply()、bind() 都是用来重定向 this例如 let obj={ name:'刘枫', age:'25', _fun:function(){ console.log(this.name+'年龄'+this.age); } } let objx={ name:'
2020-05-14 15:45:31
199
原创 js参数必传处理
利用参数默认值,可以指定某一个参数不得省略,如果省略就抛出一个错误。function throwIfMissing() { throw new Error('Missing parameter');}function foo(mustBeProvided = throwIfMissing()) { return mustBeProvided;}foo()// Error: ...
2020-03-08 16:38:14
1025
原创 es6函数rest参数详解(....变量名)
ES6 引入 rest 参数(形式为…变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。实例输入未知个数实参求和function add(...values) { let sum = 0; for (var val of values) { sum += val; } re...
2020-03-08 16:34:21
433
原创 正则表达式具名组匹配介绍
个人理解记录正则表达式使用圆括号进行组匹配。例const RE_DATE = /(\d{4})-(\d{2})-(\d{2})/;const matchObj = RE_DATE.exec('1999-12-31'); exec:提取匹配结果matchObj输出结果就是[“1999-12-31”, “1999”, “12”, “31”, index: 0, input: “1999-...
2020-03-05 20:14:43
1028
原创 js字符串常用正则方法
/i 匹配大小写/g 全局匹配match()在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。//返回字符串某字符的个数let str="The rain in SPAIN stays mainly in the plain";let s=str.match(/ain/g);// /ain/g匹配所以ain,/ain/gi不区分大小写let n=s.split(',').len...
2020-03-04 20:15:04
1273
原创 es6新增字符串方法
个人学习记录includes():返回布尔值,表示是否找到了参数字符串。let str="Hello world!"str.includes('Hello') // true//还可以这样let arr=['a','b','c','d','e']arr.includes('a')//true//还可以有第二个参数str.includes('Hello',6)//falses...
2020-03-03 16:21:22
129
原创 js中arguments介绍
写文章的目的是个人学习记录,避免遗忘首先了解几个概念形参:函数定义的参数实参:调用函数时实际传递的参数函数参数匹配是从左往右匹配,如果实参少于形参个数,那么后面的参数将自行匹配undefined,但是如果实参多于形参个数,那么就需要用到argument了。实例function test() { var s = ""; for (var i = 0; ...
2020-03-02 15:56:29
349
转载 yarn的安装和使用
yarn的安装下载node.js,使用npm安装npm install -g yarn查看版本:yarn --version安装node.js,下载yarn的安装程序供一个.msi文件,在运行时将引导您在Windows上安装YarnYarn 淘宝源安装,分别复制粘贴以下代码行到黑窗口运行即可yarn config set registry https://registry.npm....
2020-02-24 13:11:00
1372
原创 element中el-select实现拼音搜索(el-autocomplete等下拉框搜索都可添加)
1.安装依赖包npm install pinyin-match --save2.全局引用或局部引用import pinyin from 'pinyin-match'2.添加触发方法html如下 :filter-method="pinyinMatch"3.编写pinyinMatch()方法//注:Dept下拉框绑定的数组对象,copyDept是初始化copy的Deptpinyi...
2019-12-23 16:08:57
3281
2
原创 JS实现二叉树(前,中,后序遍历)
//二叉树方法function BinaryTree(){ let Node=function(key){ this.key=key; this.left=null; this.right=null; } let root=null; let insertNode =(node,newNode)=>{ if(newNode.key < node.key){ ...
2019-12-02 16:26:56
956
转载 nodejs连接mysql数据库,报错Client does not support authentication protocol requested by server的解决方法
egg.js连接mysql数据库报错Client does not support authentication protocol requested by server百度结论MySQL8.0版本的加密方式和MySQL5.0的不一样,连接会报错。解决方法如下:通过命令行进入解压的mysql根目录下。1.登陆数据库mysql -uroot -p2.输入root的密码Enter p...
2019-11-26 15:00:56
397
原创 MYSQL数据库安装使用(mysql-8.0.18-winx64)
1.进入解压文件夹cd D:\mysql\mysql-8.0.18-winx64\bin2.执行 命令(会生成临时密码) mysqld --initialize --console我这里生成的是密码就是 ADeuei=um24o2019-11-26T01:26:37.308629Z 5 [Note] [MY-010454] [Server] A temporary password...
2019-11-26 11:12:37
373
原创 karma自动化测试 搭建遇到的问题
1.npm依赖的问题搭建好run的时候,会出现各种找不到包,依次安装即可 npm install jasmine-core --save-dev npm install phantom --save-dev npm install karma-coverage --save-dev npm install karma-phantomjs-launcher --sa...
2019-09-05 11:14:02
401
原创 小白教程Node连接Oracle 数据库
1.安装Oracle 客户端https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html注意环境变量的配置2.安装node自己去官网下载傻瓜式操作3.安装node-oracledb模块到本地文件夹cmd 操作d:cd nodenpm install oracledb //...
2019-09-04 11:00:35
580
转载 Vue导出页面为PDF格式和高清设置
1 、我们要添加两个模块第一个.将页面html转换成图片npm install --save html2canvas 第二个.将图片生成pdfnpm install jspdf --save2、定义全局函数…创建一个htmlToPdf.js文件在指定位置(增加dpi和scale)// 导出页面为PDF格式import html2Canvas from 'html2canvas'i...
2019-09-02 15:23:02
3646
3
转载 vue router 报错: Uncaught (in promise) NavigationDuplicated {_name:““NavigationDuplicated“... 的解决方法
错的原因:vue-router 版本过低解决办法:升级 vue-router代码 npm i vue-router@3.0 -S
2019-08-29 17:49:19
486
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人