模糊匹配搜索

177 阅读1分钟
  <el-autocomplete 
             v-model.trim="activityName" 
             :fetch-suggestions="querySearchAsyncActivityName" 
             @select="handleSelectActivityName" 
             placeholder="请输入活动名称"
            />
             querySearchAsyncActivityName(queryString, cb) {
      queryString = queryString == null ? null : queryString
      const params = {
        activityName: queryString
      }
      activityNameOption(params).then(response => {
        this.mapActivityNameToId = new Map()
        this.activityNameList = response.data.map(item => {
          this.mapActivityNameToId.set(item.activityName, item.activityId)
          return {
            value: item.activityName, ...item
          }
        })
        clearTimeout(this.timeout)
        this.timeout = setTimeout(() => {
          cb(this.activityNameList)
        }, 1000 * Math.random())
      })
    },
    handleSelectActivityName(item) {
      this.activityName = item.activityName
      this.activityId = item.activityId
    },