<template>
|
<div class="flex items-center">
|
<img src="/static/images/logo/logo-mini.svg" alt="logo" class="layout-logo-medium-img" />
|
<p class="set-waterTitle"><strong>WI 水务智能专家</strong>智慧水务助手</p>
|
</div>
|
<div class="flex items-center pc-roleList">
|
<div v-for="(item, index) in state.roleList" :key="index" class="flex items-center pl-6" @click="handleClick(item)">
|
<el-tooltip :content="item.Content" placement="top" effect="light" popper-class="my-pop">
|
<div class="modelItem cursor-pointer flex items-center" :class="{ modelItemActive: item.ID === state.activeRole }">
|
<img :src="item.Icon" alt="icon" class="set-icon box-border" />
|
<span>{{ item.Title }}</span>
|
</div>
|
</el-tooltip>
|
</div>
|
<div class="flex items-center cursor-pointer pl-5">
|
<div class="modelItem cursor-pointer flex items-center">
|
<img src="/static/images/wave/More.png" alt="icon" class="set-icon-more box-border" />
|
<span>更多</span>
|
</div>
|
</div>
|
</div>
|
<PlayBar v-model="inputValue" @send-click="sendClick" />
|
</template>
|
|
<script setup lang="ts">
|
import { reactive, ref } from 'vue';
|
import PlayBar from '/@/components/chat/components/playBar/PlayBar.vue';
|
import router from '/@/router';
|
const emits = defineEmits(['sendClick']);
|
const inputValue = ref('');
|
|
const sendClick = () => {
|
if(!inputValue.value) return;
|
router.push({
|
name: 'AskAnswer',
|
state: {
|
inputValue: inputValue.value,
|
},
|
});
|
};
|
let state = reactive({
|
roleList: [
|
{
|
ID: 1,
|
Icon: '/static/images/wave/Glm.jpg',
|
Title: '水务GLM',
|
Content: '使用最为广泛的知名AI模型,响应速度快,智能化程度高,擅长多领域问题解决,包括创作、翻译、多语种百科知识、数学问题等。',
|
},
|
{
|
ID: 2,
|
Icon: '/static/images/wave/Glm.jpg',
|
Title: '水务-3.5',
|
Content:
|
'目前业界最强大的模型,在需要高级推理、深度指令理解和更具创造力的任务中,表现比其他模型更强,例如复杂的文本和逻辑分析、复杂的数学问题等。',
|
},
|
{
|
ID: 3,
|
Icon: '/static/images/wave/Glm.jpg',
|
Title: '水务-4.0',
|
Content:
|
'目前业界最强大的模型,在需要高级推理、深度指令理解和更具创造力的任务中,表现比其他模型更强,例如复杂的文本和逻辑分析、复杂的数学问题等。',
|
},
|
],
|
activeRole: 0,
|
inputAnswer: '',
|
});
|
const handleClick = (item) => {
|
state.activeRole = item.id;
|
};
|
</script>
|
<style scoped lang="scss">
|
.set-waterTitle {
|
line-height: 24px;
|
font-weight: 500;
|
font-size: 18px;
|
color: #3b4066;
|
vertical-align: middle;
|
}
|
strong {
|
font-size: 26px;
|
font-weight: 700;
|
margin-right: 12px;
|
}
|
.layout-logo-medium-img {
|
width: 28px;
|
margin-right: 7px;
|
}
|
.pc-roleList {
|
margin: 40px 0 26px;
|
position: relative;
|
}
|
.modelItem {
|
height: 34px;
|
padding: 0 16px;
|
border-radius: 17px;
|
border: 1px solid #00000020;
|
background-color: #f2f4f8;
|
transition: background-color 0.1s, border-color 0.1s, color 0.1s;
|
color: #333;
|
.set-icon {
|
width: 20px;
|
height: 20px;
|
position: relative;
|
}
|
.set-icon-more {
|
width: 16px;
|
height: 16px;
|
position: relative;
|
}
|
span {
|
margin-left: 8px;
|
font-weight: 500;
|
font-size: 15px;
|
}
|
}
|
.modelItemActive {
|
background-color: #1c86ff;
|
border-color: #1c86ff;
|
color: #fff;
|
}
|
.playInput {
|
align-items: flex-start;
|
width: 760px;
|
position: relative;
|
padding: 4px 4px 4px 12px;
|
|
display: flex;
|
-webkit-box-align: end;
|
-ms-flex-align: end;
|
align-items: flex-end;
|
-webkit-box-sizing: border-box;
|
box-sizing: border-box;
|
border-radius: 22px;
|
border: 1px solid #00000030;
|
-webkit-box-shadow: 0 0 0 1px transparent, 0 3px 16px 0 #dee0f3;
|
box-shadow: 0 0 0 1px transparent, 0 3px 16px 0 #dee0f3;
|
-webkit-transition: border-color 0.1s ease-in-out, -webkit-box-shadow 0.1s ease-in-out;
|
transition: border-color 0.1s ease-in-out, -webkit-box-shadow 0.1s ease-in-out;
|
-o-transition: border-color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
|
transition: border-color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
|
transition: border-color 0.1s ease-in-out, box-shadow 0.1s ease-in-out, -webkit-box-shadow 0.1s ease-in-out;
|
background-color: #fff;
|
.assembly {
|
position: relative;
|
align-self: flex-end;
|
margin-right: 12px;
|
.label {
|
height: 38px;
|
}
|
}
|
.set-input {
|
position: relative;
|
vertical-align: bottom;
|
font-size: 14px;
|
display: inline-block;
|
width: 100%;
|
.set-inputAnswer {
|
min-height: 36px;
|
height: 36px;
|
padding: 3px 0;
|
line-height: 20px;
|
border: none;
|
background-color: transparent;
|
color: #333;
|
font-size: 15px;
|
}
|
:deep(.el-input__wrapper) {
|
box-shadow: unset;
|
}
|
}
|
.upload_img {
|
.imgbox {
|
height: 38px;
|
.set-img-icon {
|
width: 38px;
|
height: 38px;
|
border-radius: 5px;
|
transition: background-color 0.1s ease-in-out;
|
}
|
.send {
|
width: 36px;
|
height: 36px;
|
border-radius: 50%;
|
background-color: #2c1e1d;
|
img {
|
margin: 4px 0 0 -2px;
|
}
|
}
|
}
|
}
|
}
|
</style>
|
<style lang="scss">
|
.my-pop {
|
max-width: 300px;
|
}
|
</style>
|