wangting
2024-12-17 b9686c7739bf131922005e86128ba9232c0313ac
Source/plt-web/plt-web-ui/src/components/PLT-basic-component/input-icon.vue
@@ -23,7 +23,7 @@
            {{ item }}
          </el-tag>
        </div>
        <avue-input v-model="searchText" placeholder="查询" size="mini" prefixIcon="el-icon-search" style="width: 300px;max-width: 30%"></avue-input>
        <avue-input v-model="searchText" @change="handleSearch" placeholder="查询" size="mini" prefixIcon="el-icon-search" style="width: 300px;max-width: 30%"></avue-input>
      </div>
      <div style="height: 60vh">
        <el-tabs v-model="activeName" @tab-click="handleTabClick">
@@ -84,6 +84,7 @@
      searchText:'',
      activeName:'',
      svgHtml:'',
      allIconList:[],
      iconList:[]
    }
  },
@@ -100,23 +101,25 @@
    } else {
      this.iconList = getStore({ name:'icons'});
    }
    this.allIconList=this.iconList;
    if(this.iconList && this.iconList.length>0){
      this.activeName=this.iconList[0].label;
    }else {
      getIcons().then(res => {
      /*getIcons().then(res => {
        this.iconList=res.data.data;
        this.allIconList=this.iconList;
        store.dispatch("setIcons", this.iconList);
        if(this.iconList&&this.iconList.length>0) {
          this.activeName=this.iconList[0].label;
        }
      })
      })*/
    }
  },
  methods:{
    dialogClose() {
      this.visible = false;
    },
    handleFocus() {debugger;
    handleFocus() {
      if (!this.disabled) {
        if(this.iconList&&this.iconList.length>0) {
          this.activeName=this.iconList[0].label;
@@ -126,16 +129,18 @@
          } else {
            this.iconList = getStore({ name:'icons'});
          }
          this.allIconList=this.iconList;
          if(this.iconList && this.iconList.length>0){
            this.activeName=this.iconList[0].label;
          }else {
            getIcons().then(res => {
            /*getIcons().then(res => {
              this.iconList=res.data.data;
                 this.allIconList=this.iconList;
              store.dispatch("setIcons", this.iconList);
              if(this.iconList&&this.iconList.length>0) {
                this.activeName=this.iconList[0].label;
              }
            })
            })*/
          }
        }
        this.visible = true;
@@ -148,10 +153,35 @@
      }else {
        this.checkedTypes.push(type)
      }
      //按照分类过滤图标
      if(this.checkedTypes.length==0){
        this.iconList=this.allIconList
      }else{
        this.iconList=this.allIconList.filter(item=> {
          return this.checkedTypes.includes(item.type);
        })
      }
      this.activeName=this.iconList[0].label;
    },
    handleTabClick(tab, event){
    },
    handleSearch(data){
      if(data.value==''){
        this.iconList=this.allIconList;
      }
      let iconList=[]
      this.allIconList.forEach(item=> {
        iconList.push({
          label:item.label,
          type:item.type,
          list: item.list.filter(iconItem=>{
            return iconItem.name.replace(item.label,'').indexOf(data.value)!=-1;
          })
        })
      })
      this.iconList=iconList;
    },
    clearValue(){
      this.svgHtml='';
      this.$emit('input','')