一、表单
第一步、打开对话框或者跳转路由,初始化必须清除验证
第二步、自定义表单验证规则,必须调用callback()
sealInfoRules: {
organization: [
{
validator: (rule, value, callback) => {
if (value[0] == undefined || value[1] == undefined) {
return callback(new Error('请选择市局单位'));
} else {
callback(); // 就是这里,必须调用一次空callback
}
},
trigger: 'change'
}
],
}
第三步、通过watch规定v-model禁止输入空格:
watch: {
['sealInfoForm.organizationFullName'](val) {
if (val != undefined) return val.replace(/\s/g, '');
}
}
二、上传:
关于预览:
- 通过
URL.createObjectURL(file.raw);
- 转换为blob地址
- image的src设置成blob地址
关于formData:
- formData的实例内容无法通过控制台直接打印
三、el-menu:
default-index
不能直接设置成this.$route
,这样直接输入url,菜单不会随之高亮
四、el-table:
- 重置或者搜索,表格页数需要归1
- 两行,超出省略(会有省略行实际高度超高问题):
<template>
<el-table-column prop="approver" label="待审批人" min-width="200">
<template slot-scope="scope">
<div class="tooltip-wrap">
<el-tooltip
class="item"
effect="dark"
:content="scope.row.approver"
placement="top"
>
<span class="overflow-content">
{{ scope.row.approver || '--' }}
</span>
</el-tooltip>
</div>
</template>
</el-table-column>
</template>
<style>
/deep/.shell-table__main {
margin-top: 24px;
margin-bottom: 24px;
.el-table__body {
td { // 行上下padding设置在这里
padding-top: 8px !important;
padding-bottom: 7px !important;
}
}
.tooltip-wrap {
display: flex !important;
flex-direction: column;
justify-content: center;
align-items: flex-start;
height: 40px;
line-height: 20px;
.overflow-content {
display: -webkit-box;
text-overflow: ellipsis;
overflow: hidden;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
}
.el-table__body-wrapper {
min-height: 560px; // table最小高度设置在这里
}
}
</style>
download:
/**
* 下载文件
*/
ajax.download = function(url) {
return new Promise((resolve, reject) => {
axios({
url,
method: 'get',
responseType: 'blob'
})
.then(res => {
// console.log(res);
const { data } = res;
// console.log(decodeURIComponent(res.headers["content-disposition"]));
const fileName = decodeURIComponent(res.headers['content-disposition'])
.split(';')[1]
.split('=')[1];
const blob = new Blob([data], {
type: 'application/vnd.ms-excel;charset=utf-8'
});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
link.click();
resolve();
})
.catch(err => {
reject(err);
});
});
};