mirror of
https://gitee.com/element-plus/element-plus.git
synced 2024-12-14 17:31:02 +08:00
4560adfdf8
* refactor(style): adjust component size to large/default/small * refactor(components): avatar size & use flex instead of block * refactor(components): adjust check button size * refactor(components): adjust tag size * refactor(components): adjust size doc * fix(components): datetime-picker demo style width * refactor(components): color-picker size & block to flex * refactor(components): adjust slider input size * refactor(components): adjust radio input size for demo * refactor(components): adjust select size & docs * refactor(components): adjust form radio size & docs * refactor(components): add windicss for docs * refactor(components): adjust skeleton avatar size to css var * refactor(components): simplify typography size demo * refactor(components): adjust dropdown size & demo * refactor(components): adjust descriptions size * fix(components): datetime-picker showcase class pollute global button * chore(ci): upgrade docs dependencies to fix ci * fix(ci): add highlight because vitepress not export it * fix(ci): disable line for no-console * fix(ci): remove mini to fix test * fix(style): code font size * fix(style): button span flex style * fix(style): button padding horizontal default 15px * refactor(components): adjust tag padding size & demo * refactor(components): adjust form line-height for input * refactor(components): adjust dropdown menu size & button padding * fix(style): picker separator block to flex center * fix: dropdown button span items-center * style: adjust input-with-icon & size demo & fix input vitepress load * chore: upgrade dependencies * chore: upgrade dependencies * ci: fix website build * ci: regenerate pnpm-lock.yaml * ci: use dev pnpm-lock * ci: update pnpm-lock.yaml
79 lines
2.2 KiB
Vue
79 lines
2.2 KiB
Vue
<template>
|
|
<el-row class="demo-autocomplete text-center">
|
|
<el-col :span="12">
|
|
<div class="sub-title my-2 text-sm text-gray-600">
|
|
list suggestions when activated
|
|
</div>
|
|
<el-autocomplete
|
|
v-model="state1"
|
|
:fetch-suggestions="querySearch"
|
|
class="inline-input"
|
|
placeholder="Please Input"
|
|
@select="handleSelect"
|
|
/>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<div class="sub-title my-2 text-sm text-gray-600">
|
|
list suggestions on input
|
|
</div>
|
|
<el-autocomplete
|
|
v-model="state2"
|
|
:fetch-suggestions="querySearch"
|
|
:trigger-on-focus="false"
|
|
class="inline-input"
|
|
placeholder="Please Input"
|
|
@select="handleSelect"
|
|
/>
|
|
</el-col>
|
|
</el-row>
|
|
</template>
|
|
<script lang="ts">
|
|
import { defineComponent, ref, onMounted } from 'vue'
|
|
export default defineComponent({
|
|
setup() {
|
|
const restaurants = ref([])
|
|
const querySearch = (queryString: string, cb) => {
|
|
const results = queryString
|
|
? restaurants.value.filter(createFilter(queryString))
|
|
: restaurants.value
|
|
// call callback function to return suggestions
|
|
cb(results)
|
|
}
|
|
const createFilter = (queryString) => {
|
|
return (restaurant) => {
|
|
return (
|
|
restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) ===
|
|
0
|
|
)
|
|
}
|
|
}
|
|
const loadAll = () => {
|
|
return [
|
|
{ value: 'vue', link: 'https://github.com/vuejs/vue' },
|
|
{ value: 'element', link: 'https://github.com/ElemeFE/element' },
|
|
{ value: 'cooking', link: 'https://github.com/ElemeFE/cooking' },
|
|
{ value: 'mint-ui', link: 'https://github.com/ElemeFE/mint-ui' },
|
|
{ value: 'vuex', link: 'https://github.com/vuejs/vuex' },
|
|
{ value: 'vue-router', link: 'https://github.com/vuejs/vue-router' },
|
|
{ value: 'babel', link: 'https://github.com/babel/babel' },
|
|
]
|
|
}
|
|
const handleSelect = (item) => {
|
|
console.log(item)
|
|
}
|
|
onMounted(() => {
|
|
restaurants.value = loadAll()
|
|
})
|
|
return {
|
|
restaurants,
|
|
state1: ref(''),
|
|
state2: ref(''),
|
|
querySearch,
|
|
createFilter,
|
|
loadAll,
|
|
handleSelect,
|
|
}
|
|
},
|
|
})
|
|
</script>
|