|
<script setup lang="ts"> |
|
import { ref, onMounted } from 'vue'; |
|
import { ISelectOptions } from '../interface'; |
|
import { useAppStore } from '../store'; |
|
import { useI18n } from 'vue-i18n'; |
|
const appStore = useAppStore(); |
|
|
|
const engines = ref<ISelectOptions[]>([]); |
|
const engine = ref(appStore.engine); |
|
const { t } = useI18n(); |
|
const onSelect = (val: any) => { |
|
appStore.updateEngine(val); |
|
}; |
|
|
|
onMounted(() => { |
|
engines.value = [ |
|
{ |
|
name: t('searxng'), |
|
value: 'SEARXNG' |
|
}, |
|
{ |
|
name: t('chatglm'), |
|
value: 'CHATGLM' |
|
}, |
|
{ |
|
name: t('google'), |
|
value: 'GOOGLE' |
|
}, |
|
{ |
|
name: t('bing'), |
|
value: 'BING' |
|
}, |
|
{ |
|
name: t('sogou'), |
|
value: 'SOGOU' |
|
}, |
|
|
|
]; |
|
}); |
|
</script> |
|
|
|
<script lang="ts"> |
|
export default { |
|
name: 'SearchEngineSelect' |
|
}; |
|
</script> |
|
|
|
<template> |
|
<t-select v-model="engine" :label="t('search')" :placeholder="t('selectEngine')" @change="onSelect"> |
|
<t-option v-for="item in engines" :key="item.value" :value="item.value" :label="item.name"></t-option> |
|
</t-select> |
|
</template> |
|
|