element-ui|vue element 的 el-cascade 组件如何实现多选点击确认提交操作
1. 实现效果
做这个也是自己踩了好多坑,比如:
用第三方的 el-cascader-multi
多选组件,不能实现自己想要的效果,element 最新版 2.12.0 就已经有完善,不需要使用那个第三方的了,其他的坑,可以访问 vue element Cascader 级联选择器 选择任意一级选项 点击收起,点击label选中等问题详解
文章图片
【element-ui|vue element 的 el-cascade 组件如何实现多选点击确认提交操作】在data 中把
:props 属性映射为
即可实现多选功能。props: {
multiple: true
},
2. 这里主要是在组件里面添加一个 确认 按钮,点击按钮实现
methods: {
formatCC() {
let htmladd = document.createElement("bottom");
htmladd.innerHTML = "确认";
htmladd.className = "htmladd";
htmladd.style.cssText =
"cursor: pointer;
position: absolute;
bottom: -35px;
height: 35px;
line-height:35px;
width:100%;
background:#fff;
text-align: center;
color:#606266;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
";
let that = this;
var el_l = document.querySelectorAll(".el-popper.el-cascader__dropdown.ticket_ccCascader");
if (el_l.length > 0 && el_l.length == 1) {
var el = el_l[0];
if (!el.querySelector(".htmladd")) {
el.appendChild(htmladd);
var bo = el.querySelectorAll(".htmladd")[0];
bo.onclick = function() {
that.$refs.ccCascader.dropDownVisible = false;
let params = {
id: that.ticketObject.id,
cc: that.ticketOrder.cc
};
that.$axios
.put(that.$httpServer.updateTicketOrder, params)
.then(res => {
if (res && res.data.code == "0") {
that.$message1({
message: "保存成功",
type: "success",
duration: 500
});
that.handleNodeClick(that.types, that.ticketObject.id);
that.getTicketsNum();
}
});
};
}
}
},
},
mounted() {
let that = this;
setInterval(function() {
document.querySelectorAll(".el-cascader-node__label").forEach(el => {
el.onclick = function() {
if (this.previousElementSibling) this.previousElementSibling.click();
};
});
}, 1000);
this.$nextTick(function() {
that.formatCC();
});
},
updated() {
this.$nextTick(function() {
this.formatCC();
});
}
推荐阅读
- vue-cli|vue-cli 3.x vue.config.js 配置
- 2020-04-07vue中Axios的封装和API接口的管理
- 基于|基于 antd 风格的 element-table + pagination 的二次封装
- VueX--VUE核心插件
- vue组件中为何data必须是一个函数()
- 用npm发布一个包的教程并编写一个vue的插件发布
- vuex|vuex 基础结构
- Vue源码分析—响应式原理(二)
- VueX(Vuex|VueX(Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式)
- vue中的条件判断详解v-if|vue中的条件判断详解v-if v-else v-else-if v-show