1.upload:
文件校验:
const apkArray &#61; file.name.split(".");const isApk &#61; apkArray[apkArray.length-1] &#61;&#61;&#61; &#39;apk&#39;;const isLt100M &#61; file.size / 1024 / 1024 <100;if(!isApk){this.$message.error(&#39;上传文件只能是 apk 格式!&#39;);return false}if (!isLt100M) {this.$message.error(&#39;上传icon大小不能超过 30MB!&#39;);return false}
文件md5
uploadChange(file,fileList){let _this &#61; this;let fileRaw &#61; file.raw;this.sFile &#61; file.raw;let blobSlice &#61; File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice,spark &#61; new SparkMD5.ArrayBuffer(),fileReader &#61; new FileReader(); fileReader.onload &#61; function(e){spark.append(e.target.result); _this.sendData.file_md5 &#61; spark.end().toUpperCase() ;console.log(_this.sendData.file_md5) // Append array buffer
}fileReader.readAsArrayBuffer(blobSlice.call(fileRaw, 0, fileRaw.size)); }
文件分片上传
每次上传通过slice&#xff08;start&#xff0c;end&#xff09; 分片上传
表格刷新滚动到顶部
this.$refs.table.wrapperBody.scrollTop &#61; 0
表格搜索
1.监听input框 将对应的值赋给搜索的值 2. this.$emit(&#39;搜索)
路由返回
采用在路由跳转的时候传递history参数 history用来存储当前路由 每次跳转就push当前路由 返回就pop当前路由
父子页面生命周期顺序
1.加载渲染过程&#xff1a;父 beforeCreated 父 created 父beforeMounted 子beforeCreated 子created 子 beforeMounted 子mounted 父mounted
2.更新过程&#xff1a; 父beforeUpdate->子beforeUpdate->子updated->父updated
3.销毁过程&#xff1a;父beforeDestroy->子beforeDestroy->子destroyed->父destroyed
模拟一键复制
function handleCopy(val){var oInput &#61; document.createElement(&#39;input&#39;);oInput.value &#61; val;document.body.appendChild(oInput);oInput.select();document.execCommand("Copy"); oInput.className &#61; &#39;oInput&#39;;oInput.style.display &#61; &#39;none&#39;;Message({&#39;type&#39;:&#39;success&#39;,"message":&#39;复制成功&#39;})
}
时间格式化
function dateFormat(fmt, date) {let ret;let opt &#61; {"Y&#43;": date.getFullYear().toString(), // 年"m&#43;": (date.getMonth() &#43; 1).toString(), // 月"d&#43;": date.getDate().toString(), // 日"H&#43;": date.getHours().toString(), // 时"M&#43;": date.getMinutes().toString(), // 分"S&#43;": date.getSeconds().toString() // 秒// 有其他格式化字符需求可以继续添加&#xff0c;必须转化成字符串
};for (let k in opt) {ret &#61; new RegExp("(" &#43; k &#43; ")").exec(fmt);if (ret) {fmt &#61; fmt.replace(ret[1], (ret[1].length &#61;&#61; 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))};};return fmt;
}