[toc]
1.跳转新窗口并写入HTML代码
let myWindow=window.open('','','width=640,height=860');
或 let myWindow=window.open();
myWindow.document.write('<p>新页面</p>';
myWindow.focus();
2.elementUI中el-dialog点击遮罩层不关闭
1.:close-on-click-modal="false" //局部
2.在mian.js里面://全局
import ElementUI from 'element-ui';
// 修改 el-dialog 默认点击遮照为不关闭
ElementUI.Dialog.props.closeOnClickModal.default = false
3.开源插图
4.elementU中el-table 实现自适应超出一定高度给滚动条
<el-table border :max-height="autoHeight"></el-table>
created() {
//js动态计算出表格剩余可接受的最大高度
this.autoHeight = document.body.offsetHeight - 260
},
5.elementUI中禁止table表格选中或样式禁止按钮点击
//:selectable设置为true可选中,为false不可选中
<el-table-column min-width="35px" type="selection" :selectable="true"
</el-table-column>
//样式禁止按钮点击
.disabledBtn{
pointer-events:none;
color: #999;
}
6.forEach 怎么跳出循环
const arr = [1, 2, 3, 4, 5, 6]
let k = null
arr.forEach((v) => {
try {
if (v === 2) {
k = v
throw Error()
}
} catch (error) {
//console.log('error')
}
})
console.log(k)
7.数组去重
this.tableData = [
{id:1,name:"xx"},
{id:2,name:"rr"},
{id:1,name:"yy"}
]
//方法 一
let obj = {};
this.tableData = this.tableData.reduce((cur,next) => {
obj[next.id] ? "" : obj[next.id] = true && cur.push(next);
return cur;
},[])
//方法 二 使用Set
this.tableData = [...new Set(this.tableData)]
8.vue直接滚动到页面底部或顶部
this.$nextTick(()=>{
//滚动到页面底部
this.$refs.container.scrollIntoView(false)
})
// 滚动到顶部
this.$refs.container.scrollIntoView(true); // vue的语法
9.按数组中某个字符进行排序
let limits = [
'DB-SERVICE-DATABASE-EXAMINE-MENU',
'DB-SERVICE-RESOURCE-DELIVERY-MENU',
'DB-SERVICE-WHITE-SCREEN-MENU',
'DB-SERVICE-OTHER-SERVICES-MENU'
],
//按第12个字符进行排序
limits.sort(function(a,b){
return a.substring(12).localeCompare(b.substring(12));
})
10 provide和inject使用
1.在祖先节点上通过provide
import SchemaItems from './SchemaItems'//组件
const context = {
SchemaItems,//组件
name:'张三'
}
provide('vjsf', context)
2.在孙子节点上通过inject获取
const context = inject('vjsf')
console.log(context, '=====')
11.限制用户短时间内多次点击按钮
// controlClickState.js 文件
export default { install(Vue) { // 禁止短时间内重复点击
Vue.directive('preventClick', { inserted(button, bind) {
button.addEventListener('click', () => {
if (!button.disabled) {
button.disabled = true;
setTimeout(() => {
but.disabled = false
}, 6000) }
}) } }) } }
12.复制文本
copySqlContent: function () {
if ($.trim(this.msg) == "") {
this.$message.error("未找到SQL文本!")
return
}
const cText = this.msg.replace(/<br>/g, "").replace(/<br\/>/g, "")
const aux = document.createElement("input")
aux.setAttribute("value", cText)
document.body.appendChild(aux)
aux.select()
document.execCommand("copy")
document.body.removeChild(aux)
this.$message.success("复制成功")
}
13.去掉空格
//1.去掉str的空格
var str = " Runoob ";
str.trim();
//2.输入框中不能输入空格
<el-input v-model.trim="code" placeholder="唯一的指标编码"></el-input>
14.定义转义的HTML方法,让浏览器不去识别html元素
function htmlEscape(htmlStr) {
return htmlStr.replace(/<|>|"|&/g, (match) => {
switch (match) {
case "<":
return "<";
case ">":
return ">";
case '"':
return """;
case "&":
return "&";
}
});
}
15.网页全部置灰
//在最外层的html加
html.gray-mode{
filter: grayscale(.95);
-webkit-filter: grayscale(.95);
}
16.pnpm 补丁的方式修改第三方插件 papm patch