1:element tree结构换key值
场景 插件提供的key值与后端传过来的key值不符合
elment提供了内部方法
defaultProps: {
children: "subFunctions",
label: "name"
},
第一种简单的方法 自己转换可以先将字符串再替换 这个替换方法有个坏处 万一value值也有children的话也会被替换 JSON.parse(JSON.stringify(res).replace(/"subFunctions"/g,"\"children\"").replace(/"name"/g,"\"label\""))
第二种用递归的思维去解决这种嵌套数组对象换key的问题
changeAddress(value) {
//旧key到新key的映射
var keyMap = {
label: "name",
children: "subFunctions"
};
for (var i in value) {
let obj = value[i];
for (var key in obj) {
var newKey = keyMap[key];
if (newKey) {
obj[newKey] = obj[key];
delete obj[key];
}
}
if (obj.subFunctions) {
this.changeAddress(obj.subFunctions);
}
}
},
2:table选择多行数据时使用 Checkbox。 配合搜索会出现问题
场景:checkbox 里面提供了handleSelectionChange方法 可以获取所有的打钩项 但是搜索完成后再次添加 只添加了 当前打钩的数据 之前打钩的数据得不到保存
解决方法:存俩个变量
第一个变量名 loansFirst 存第一次打钩的数据
第二个变量名 loansSerch 存搜索后的选择项
第三个变量名 table_data_add 当前搜索的所有数据
第四个变量 serch 默认是all 搜索完成后伟serch
第五个变量 loans 最终所有的打钩数据
第一步 打开 this.serch = all 获取到loansFirst所有打钩数据
第二步 输入搜索条件搜索 this.serch = serch 获取loansSerch 以及table_data_add
第三步点击添加的时候 如果serch是all loans = this.First
serch = serch 进行过滤 loansFirst - table_data_add + loansSearch
3:前端搜索转台保留
场景:前端输入条件 点击搜索 再添加或者编辑进入子页面 在返回 预期是能拿到搜索的数据
1:存localStorage localStorage.setItem("searchDataThrowModule", JSON.stringify(this.search));
2:created取localStorage 数据
只做这俩步可以解决问题 但是跳其他路由 不要取local数据
所以还要在app做如下操作(目标路由to和离开路由form确定好 加search参数 取这个参数判断是否拿local数据)
if (to.path == "/home/throwModule" && from.path == "/home/throwModule-add-edit") {
this.$router.push("/home/throwModule?search=need");
}