111 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
 | 
						|
<cn>
 | 
						|
#### 查询模式 - 不确定类目
 | 
						|
查询模式 - 不确定类目
 | 
						|
</cn>
 | 
						|
 | 
						|
<us>
 | 
						|
#### Lookup-Patterns - Uncertain Category
 | 
						|
Lookup-Patterns - Uncertain Category
 | 
						|
</us>
 | 
						|
 | 
						|
```html
 | 
						|
<template>
 | 
						|
  <div class="global-search-wrapper" style="width: 300px">
 | 
						|
    <a-auto-complete
 | 
						|
      class="global-search"
 | 
						|
      size="large"
 | 
						|
      style="width: 100%"
 | 
						|
      @select="onSelect"
 | 
						|
      @search="handleSearch"
 | 
						|
      placeholder="input here"
 | 
						|
      optionLabelProp="text"
 | 
						|
    >
 | 
						|
      <template slot="dataSource">
 | 
						|
        <a-select-option v-for="item in dataSource" :key="item.category" :text="item.category">
 | 
						|
          {{item.query}} 在
 | 
						|
          <a
 | 
						|
            :href="`https://s.taobao.com/search?q=${item.query}`"
 | 
						|
            target="_blank"
 | 
						|
            rel="noopener noreferrer"
 | 
						|
          >
 | 
						|
            {{item.category}}
 | 
						|
          </a>
 | 
						|
          区块中
 | 
						|
          <span className="global-search-item-count">约 {{item.count}} 个结果</span>
 | 
						|
        </a-select-option>
 | 
						|
      </template>
 | 
						|
      <a-input>
 | 
						|
        <a-button slot="suffix" class="search-btn" size="large" type="primary">
 | 
						|
          <a-icon type="search" />
 | 
						|
        </a-button>
 | 
						|
      </a-input>
 | 
						|
    </a-auto-complete>
 | 
						|
  </div>
 | 
						|
</template>
 | 
						|
<script>
 | 
						|
export default {
 | 
						|
  data() {
 | 
						|
    return {
 | 
						|
      dataSource: [],
 | 
						|
    }
 | 
						|
  },
 | 
						|
  methods: {
 | 
						|
    onSelect(value) {
 | 
						|
      console.log('onSelect', value);
 | 
						|
    },
 | 
						|
 | 
						|
    handleSearch(value) {
 | 
						|
      this.dataSource = value ? this.searchResult(value) : []
 | 
						|
    },
 | 
						|
 | 
						|
    getRandomInt(max, min = 0) {
 | 
						|
      return Math.floor(Math.random() * (max - min + 1)) + min;
 | 
						|
    },
 | 
						|
 | 
						|
    searchResult(query) {
 | 
						|
      return (new Array(this.getRandomInt(5))).join('.').split('.')
 | 
						|
        .map((item, idx) => ({
 | 
						|
          query,
 | 
						|
          category: `${query}${idx}`,
 | 
						|
          count: this.getRandomInt(200, 100),
 | 
						|
        }));
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
</script>
 | 
						|
 | 
						|
<style>
 | 
						|
.global-search-wrapper {
 | 
						|
  padding-right: 50px;
 | 
						|
}
 | 
						|
 | 
						|
.global-search {
 | 
						|
  width: 100%;
 | 
						|
}
 | 
						|
 | 
						|
.global-search.ant-select-auto-complete .ant-select-selection--single {
 | 
						|
  margin-right: -46px;
 | 
						|
}
 | 
						|
 | 
						|
.global-search.ant-select-auto-complete .ant-input-affix-wrapper .ant-input:not(:last-child) {
 | 
						|
  padding-right: 62px;
 | 
						|
}
 | 
						|
 | 
						|
.global-search.ant-select-auto-complete .ant-input-affix-wrapper .ant-input-suffix {
 | 
						|
  right: 0;
 | 
						|
}
 | 
						|
 | 
						|
.global-search.ant-select-auto-complete .ant-input-affix-wrapper .ant-input-suffix button {
 | 
						|
  border-top-left-radius: 0;
 | 
						|
  border-bottom-left-radius: 0;
 | 
						|
}
 | 
						|
 | 
						|
.global-search-item-count {
 | 
						|
  position: absolute;
 | 
						|
  right: 16px;
 | 
						|
}
 | 
						|
</style>
 | 
						|
```
 | 
						|
 |