2023-11-17 03:36:16 +00:00
|
|
|
|
<template>
|
2023-11-20 10:56:31 +00:00
|
|
|
|
<div class="ai-dialog">
|
2023-11-21 02:56:25 +00:00
|
|
|
|
<el-scrollbar>
|
|
|
|
|
|
<div class="ai-dialog__content flex">
|
|
|
|
|
|
<AppAvatar class="avatar-gradient">
|
|
|
|
|
|
<img src="@/assets/icon_robot.svg" style="width: 54%" alt="" />
|
|
|
|
|
|
</AppAvatar>
|
|
|
|
|
|
<AppAvatar>
|
|
|
|
|
|
<img src="@/assets/user-icon.svg" style="width: 54%" alt="" />
|
|
|
|
|
|
</AppAvatar>
|
|
|
|
|
|
<div class="ml-8 w-full">
|
|
|
|
|
|
<el-card shadow="always" class="dialog-card">
|
|
|
|
|
|
<h4>您好,我是 MaxKB 智能小助手</h4>
|
|
|
|
|
|
<div class="mt-4">
|
|
|
|
|
|
<el-text type="info">回答用户提出的 MaxKB 产品使用问题</el-text>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-card>
|
|
|
|
|
|
<el-card shadow="always" class="dialog-card mt-12">
|
|
|
|
|
|
<h4>您可以尝试输入以下问题:</h4>
|
|
|
|
|
|
<div class="mt-8">
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-button icon="EditPen" class="problem-button w-full">
|
|
|
|
|
|
DataEase支持哪些类型的数据源?
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
|
<el-button icon="EditPen" class="problem-button w-full">
|
|
|
|
|
|
DataEase支持哪些类型的数据源?
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-card>
|
2023-11-20 10:56:31 +00:00
|
|
|
|
|
2023-11-21 02:56:25 +00:00
|
|
|
|
<el-card shadow="always" class="dialog-card mt-12"> XXXXXXXXX </el-card>
|
|
|
|
|
|
<el-card shadow="always" class="dialog-card mt-12"> XXXXXXXXX </el-card>
|
|
|
|
|
|
<el-card shadow="always" class="dialog-card mt-12"> XXXXXXXXX </el-card>
|
|
|
|
|
|
<el-card shadow="always" class="dialog-card mt-12"> XXXXXXXXX </el-card>
|
|
|
|
|
|
<el-card shadow="always" class="dialog-card mt-12"> XXXXXXXXX </el-card>
|
|
|
|
|
|
<el-card shadow="always" class="dialog-card mt-12"> XXXXXXXXX </el-card>
|
|
|
|
|
|
<el-card shadow="always" class="dialog-card mt-12"> XXXXXXXXX </el-card>
|
|
|
|
|
|
<el-card shadow="always" class="dialog-card mt-12"> XXXXXXXXX </el-card>
|
|
|
|
|
|
<el-card shadow="always" class="dialog-card mt-12"> XXXXXXXXX </el-card>
|
|
|
|
|
|
<el-card shadow="always" class="dialog-card mt-12"> XXXXXXXXX </el-card>
|
|
|
|
|
|
</div>
|
2023-11-20 10:56:31 +00:00
|
|
|
|
</div>
|
2023-11-21 02:56:25 +00:00
|
|
|
|
</el-scrollbar>
|
2023-11-20 10:56:31 +00:00
|
|
|
|
<div class="ai-dialog__textarea flex">
|
|
|
|
|
|
<el-input
|
|
|
|
|
|
v-model="inputValue"
|
|
|
|
|
|
type="textarea"
|
|
|
|
|
|
placeholder="请输入"
|
|
|
|
|
|
:autosize="{ minRows: 1, maxRows: 8 }"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<div class="operate">
|
2023-11-21 02:56:25 +00:00
|
|
|
|
<el-button text class="sent-button" disabled>
|
2023-11-20 10:56:31 +00:00
|
|
|
|
<AppIcon iconName="app-send"></AppIcon>
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
</div>
|
2023-11-17 03:36:16 +00:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
2023-11-20 10:56:31 +00:00
|
|
|
|
import { ref } from 'vue'
|
2023-11-17 03:36:16 +00:00
|
|
|
|
const props = defineProps({
|
|
|
|
|
|
data: {
|
|
|
|
|
|
type: Array<any>,
|
|
|
|
|
|
default: () => []
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
2023-11-20 10:56:31 +00:00
|
|
|
|
const inputValue = ref('')
|
2023-11-17 03:36:16 +00:00
|
|
|
|
</script>
|
2023-11-20 10:56:31 +00:00
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
|
.ai-dialog {
|
2023-11-21 02:56:25 +00:00
|
|
|
|
// min-height: 400px;
|
|
|
|
|
|
// height: 100%;
|
|
|
|
|
|
height: calc(100% - 10px);
|
2023-11-20 10:56:31 +00:00
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
2023-11-21 02:56:25 +00:00
|
|
|
|
box-sizing: border-box;
|
2023-11-20 10:56:31 +00:00
|
|
|
|
&__content {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
.problem-button {
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
|
background: var(--app-layout-bg-color);
|
|
|
|
|
|
height: 46px;
|
|
|
|
|
|
justify-content: left;
|
|
|
|
|
|
&:hover {
|
|
|
|
|
|
background: var(--el-color-primary-light-9);
|
|
|
|
|
|
}
|
|
|
|
|
|
:deep(.el-icon) {
|
|
|
|
|
|
color: var(--el-color-primary);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.dialog-card {
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
&__textarea {
|
|
|
|
|
|
box-shadow: 0px 6px 24px 0px rgba(31, 35, 41, 0.08);
|
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
|
border: 1px solid #ffffff;
|
2023-11-21 02:56:25 +00:00
|
|
|
|
box-sizing: border-box;
|
2023-11-20 10:56:31 +00:00
|
|
|
|
|
|
|
|
|
|
&:has(.el-textarea__inner:focus) {
|
|
|
|
|
|
border: 1px solid var(--el-color-primary);
|
|
|
|
|
|
}
|
2023-11-21 02:56:25 +00:00
|
|
|
|
|
|
|
|
|
|
:deep(.el-textarea__inner) {
|
|
|
|
|
|
border-radius: 8px !important;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
resize: none;
|
|
|
|
|
|
padding: 12px 16px;
|
|
|
|
|
|
}
|
2023-11-20 10:56:31 +00:00
|
|
|
|
.operate {
|
|
|
|
|
|
padding: 10px 12px;
|
|
|
|
|
|
.sent-button {
|
|
|
|
|
|
.el-icon {
|
|
|
|
|
|
font-size: 24px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|