42 lines
1.2 KiB
Vue
42 lines
1.2 KiB
Vue
<template>
|
|
<el-tooltip :content="t('temperature-parameter')" placement="top">
|
|
<div class="setting-button" @click="showTemperatureSlider = true">
|
|
<span class="iconfont icon-temperature"></span>
|
|
<span class="value-badge">{{ tabStorage.settings.temperature.toFixed(1) }}</span>
|
|
</div>
|
|
</el-tooltip>
|
|
|
|
<!-- 温度参数滑块 -->
|
|
<el-dialog v-model="showTemperatureSlider" :title="t('temperature-parameter')" width="400px">
|
|
<div class="slider-container">
|
|
<el-slider v-model="tabStorage.settings.temperature" :min="0" :max="2" :step="0.1" />
|
|
<div class="slider-tips">
|
|
<span> {{ t('precise') }}(0)</span>
|
|
<span>{{ t('moderate') }}(1)</span>
|
|
<span>{{ t('creative') }}(2)</span>
|
|
</div>
|
|
</div>
|
|
<template #footer>
|
|
<el-button @click="showTemperatureSlider = false">{{ t("cancel") }}</el-button>
|
|
</template>
|
|
</el-dialog>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { inject, ref } from 'vue';
|
|
import { useI18n } from 'vue-i18n';
|
|
import { ChatStorage } from '../chat';
|
|
|
|
const { t } = useI18n();
|
|
const tabStorage = inject('tabStorage') as ChatStorage;
|
|
|
|
const showTemperatureSlider = ref(false);
|
|
|
|
</script>
|
|
|
|
<style>
|
|
.icon-temperature {
|
|
font-size: 18px;
|
|
}
|
|
|
|
</style> |