怎样把下拉选择三级分类改为一级直接点击

325 阅读1分钟

最近比较懒 好久没有更新了 随便写点什么 最近的代码

就是把下面这种样式


改为如下图样式 直接获取到三级分类

需要注意的几个点 如下图 标题是从接口获得的 但是只需要3-6岁这样的字段 并且需要把其他放在最后面 我用的的方法是正则


 (刚开始以为数组可以直接用this.allClaa[i]这样可以找到它的下标 试半天竟然不行 所以用的循环遍历)

this.allClass.forEach(o => {

     if (o.name.match(/(?<=【)[^】]*(?=】)/g)) {

          o.name = o.name.match(/(?<=【)[^】]*(?=】)/g) o.name = o.name[0]

     }

})

至于里面为什么还要加判断语句 是为了防止只有汉字没数字这种情况 比如:全部 和 其它

然后需要把其它放在最后面 本来是可以用排序的 但是一直报错 我就试了一个另外一种方法 先截取掉 再push放在末尾

this.allClass.splice(0, 1); 

this.allClass.push({name:'其它',id:this.Id})

但是点击的时候会报错 没有查到里面的课程 需要换typeid所以我这样做了在点击这个选项时候 更换他的typeid

if(index=='7'){ 

     this.model.typeId = '1251355458275475457' 

 }

还有一个更好玩的是这个代码 可以通过下标找到字段进行想要的操作

const result = this.allClass.findIndex( f => f.name === '中招美术考试'); 

 this.allClass.splice(result, 1);

下面是完整的代码 有更简便的可以指教