cms 小坑总结

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");

      }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容