1.el-table 添加合计项与固定列,会出现固定列的滚动条拖不动
el-table合计项与固定列同时使用时,滚动条一旦移入固定列下方,鼠标就无法选中滚动条,主要问题是固定列的层级更高,覆盖住了滚动条,设置z-index可以解决,但是会出现固定列 box-show 无效的样式问题,下方css可以解决这两个问题
.el-table__fixed, .el-table__fixed-right { // 解决添加合计行 固定表头滚动条无法选中问题
pointer-events: none;
}
.el-table__fixed, .el-table__fixed-right > .td {
pointer-events: none;
}
设置这个 设置这个会出,固定列中的点击事件失效了!(实际开发中暂未遇到这个问题)
解决:父级元素禁用,子元素启用
.el-table__fixed, .el-table__fixed-right {
pointer-events: none;
}
.el-table__fixed, .el-table__fixed-right > .td {
pointer-events: none;
}
.el-table__fixed > * {
pointer-events: all;
}
.el-form-item__content {
pointer-events: all;
}
2.el-from的字段效验中 validator 的用法
- validator 函数中取当前效验的字段(实例效验输入框只能输入整数最多两位小数)
const validateMoney = (rule, value, callback, pars) => {
let key = Object.keys(pars)[0] // pras 为当前输入框v-modle绑定的字段 输出为一个对象
if (value) {
this.form[key] =
('' + value) // 第一步:转成字符串
.replace(/[^\d^\.]+/g, '') // 第二步:把不是数字,不是小数点的过滤掉
.replace(/^0+(\d)/, '$1') // 第三步:第一位0开头,0后面为数字,则过滤掉,取后面的数字
.replace(/^\./, '0.') // 第四步:如果输入的第一位为小数点,则替换成 0. 实现自动补全
.match(/^\d*(\.?\d{0,2})/g)[0] || '' // 第五步:最终匹配得到结果 以数字开头,只有一个小数点,而且小数点后面只能有0到2位小数
callback()
} else {
callback()
}
}
- el-input 只能输入数字或保留两位小数
// oninput="value=value.replace(/[^0-9.]/g,'')" 只能输入数字小数点 不限制小数点位数
// onkeyup="value=value.replace(/[^\d]/g,'')" 只能输入数字
<el-input
v-model="form.amount"
onkeyup="value=('' + value).replace(/[^\d^\.]+/g, '').replace(/^0+(\d)/, '$1').replace(/^\./, '0.').match(/^\d*(\.?\d{0,2})/g)[0] || ''"
clearable
/>
3.el-table属性 render-header(列标题 Label 区域渲染使用的 Function)
使用时如何传递自定义参数
<el-table-column
ref="table"
:render-header="(h,obj) => renderHeader(h,obj,{xxx})"
>
</el-table-column>
renderHeader (h, { column, $index },{xxx}) {
console.log({xxx}) // {xxx}为自定义传递的参数
// 表头添加提示
return [
column.label,
h(
'el-tooltip',
{
props: {
placement: 'top',
effect:"light",
//content:"提示框内容",//如果提示内容短不需要换行,直接使用这个提示内容
},
},
[
h('div',
{//当前div是为了实现换行,就这换行研究了好久。。。
slot:"content",
},
["第一段",
h('br'),
"第二段",
h('br'),
"第三段"]
),
h('span', {//问号模块
class: {
'el-icon-question': true
}
}),
],
)
]
}
3. 使用el-select中multiple多选回显数据后无法进行编辑
场景:在编辑回显的数据时,使用v-model绑定 el-select多选,但无法进行编辑、删除
这是因为由于一些嵌套特别深的数据,导致数据更新了,但是页面却没有重新渲染,需要使用this.forceUpdate()"
<el-select v-model="formData.tagsArray" placeholder="请选择标签" multiple clearable :style="{width: '100%'}"
@change="$forceUpdate()">
<el-option v-for="(item) in tagsOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>