|
|
@@ -4,22 +4,26 @@
|
|
|
Created Date: 2024-6-21
|
|
|
-->
|
|
|
<template>
|
|
|
- <div :class="$style.container">
|
|
|
+ <div :class="[{'teacher-view': props.isTeacher},$style.container]">
|
|
|
<!--大语言模型选择器-->
|
|
|
- <div :class="$style.header">
|
|
|
- <div :class="$style['model-selector']">
|
|
|
- <el-dropdown trigger="click" @command="handleCommand">
|
|
|
- <span style="font-size: 16px">
|
|
|
- {{ data.model }}<el-icon ><arrow-down/></el-icon>
|
|
|
- </span>
|
|
|
- <template #dropdown>
|
|
|
- <el-dropdown-menu>
|
|
|
- <el-dropdown-item v-for="model in modelOptions" :command="model">{{ model }}</el-dropdown-item>
|
|
|
- </el-dropdown-menu>
|
|
|
- </template>
|
|
|
- </el-dropdown>
|
|
|
+ <!-- Update: 目前只有glm4可用 删掉其他选项 -->
|
|
|
+ <div v-if="!props.isTeacher">
|
|
|
+ <div :class="$style.header">
|
|
|
+ <div :class="$style['model-selector']">
|
|
|
+ <el-dropdown trigger="click" @command="handleCommand">
|
|
|
+ <span style="font-size: 16px">
|
|
|
+ {{ data.model }}<el-icon ><arrow-down/></el-icon>
|
|
|
+ </span>
|
|
|
+ <template #dropdown>
|
|
|
+ <el-dropdown-menu>
|
|
|
+ <el-dropdown-item v-for="model in modelOptions" :command="model">{{ model }}</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </template>
|
|
|
+ </el-dropdown>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
<!-- 消息区域,采用ChatGPT的交互模式 -->
|
|
|
<div :class="$style['message-box']" ref="containerTopRef">
|
|
|
<div
|
|
|
@@ -39,7 +43,7 @@
|
|
|
</div>
|
|
|
<div style="margin-left: 15px">
|
|
|
<!--名字-->
|
|
|
- <div style="margin-bottom: 2px">{{ index % 2 === 0 ? 'You' : data.model }}</div>
|
|
|
+ <div style="margin-bottom: 2px">{{ index % 2 === 0 ? 'Student' : data.model }}</div>
|
|
|
<!--内容-->
|
|
|
<div :class="$style.content">{{ item?.content }}</div>
|
|
|
</div>
|
|
|
@@ -48,38 +52,40 @@
|
|
|
</div>
|
|
|
|
|
|
<!-- 对话框区域,用于AI提问和提示词模版展现 -->
|
|
|
- <div :class="$style['question-box']">
|
|
|
- <div :class="$style['input-group']">
|
|
|
- <el-input
|
|
|
- v-model="data.questionContent"
|
|
|
- ref="inputRef"
|
|
|
- :placeholder="`Message ${data.model} ...`"
|
|
|
- >
|
|
|
- </el-input>
|
|
|
- <el-button
|
|
|
- :disabled="data.questionContent === ''"
|
|
|
- @click="handleSendQuestion"
|
|
|
- style="width: 40px; border: none"
|
|
|
- v-loading="data.loading"
|
|
|
- >
|
|
|
- <el-icon><Top/></el-icon>
|
|
|
- </el-button>
|
|
|
- <el-dropdown @command="handleMenuClick">
|
|
|
- <el-button type="text" style="width: 40px;">
|
|
|
- <el-icon><ArrowDown/></el-icon>
|
|
|
+ <div v-if="!props.isTeacher">
|
|
|
+ <div :class="$style['question-box']">
|
|
|
+ <div :class="$style['input-group']">
|
|
|
+ <el-input
|
|
|
+ v-model="data.questionContent"
|
|
|
+ ref="inputRef"
|
|
|
+ :placeholder="`Message ${data.model} ...`"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ <el-button
|
|
|
+ :disabled="data.questionContent === ''"
|
|
|
+ @click="handleSendQuestion"
|
|
|
+ style="width: 40px; border: none"
|
|
|
+ v-loading="data.loading"
|
|
|
+ >
|
|
|
+ <el-icon><Top/></el-icon>
|
|
|
</el-button>
|
|
|
- <template #dropdown>
|
|
|
- <el-dropdown-menu>
|
|
|
- <el-dropdown-item
|
|
|
- v-for="(template, index) in questionTemplates"
|
|
|
- :key="index"
|
|
|
- :command="index"
|
|
|
- >
|
|
|
- {{ template }}
|
|
|
- </el-dropdown-item>
|
|
|
- </el-dropdown-menu>
|
|
|
- </template>
|
|
|
- </el-dropdown>
|
|
|
+ <el-dropdown @command="handleMenuClick">
|
|
|
+ <el-button type="text" style="width: 40px;">
|
|
|
+ <el-icon><ArrowDown/></el-icon>
|
|
|
+ </el-button>
|
|
|
+ <template #dropdown>
|
|
|
+ <el-dropdown-menu>
|
|
|
+ <el-dropdown-item
|
|
|
+ v-for="(template, index) in questionTemplates"
|
|
|
+ :key="index"
|
|
|
+ :command="index"
|
|
|
+ >
|
|
|
+ {{ template }}
|
|
|
+ </el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </template>
|
|
|
+ </el-dropdown>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -103,21 +109,23 @@
|
|
|
L 15 15
|
|
|
" style="fill: rgba(0, 0, 0, 0)"/>
|
|
|
`
|
|
|
-
|
|
|
+//update: 加入isTeacher属性,用于判断是否是教师批改界面
|
|
|
interface IProps {
|
|
|
dialogueId: string;
|
|
|
messages: IDialogue[]
|
|
|
+ isTeacher: boolean
|
|
|
}
|
|
|
|
|
|
const props = defineProps<{
|
|
|
dialogueId: string,
|
|
|
messages: IDialogue[]
|
|
|
+ isTeacher: boolean
|
|
|
}>()
|
|
|
|
|
|
const apis = useApis()
|
|
|
const store = useStore()
|
|
|
- // ChatGLM改为4
|
|
|
- const modelOptions = ["ChatGPT", "ChatGLM4", "QWen14B"]
|
|
|
+ //UPDATE: 目前只有ChatGLM4
|
|
|
+ const modelOptions = ["ChatGLM4"]
|
|
|
const questionTemplates = [
|
|
|
"xxx是什么意思?",
|
|
|
"英文如何描述xxx",
|
|
|
@@ -220,6 +228,7 @@
|
|
|
inputRef.value.focus();// 设置焦点自动回到Input
|
|
|
};
|
|
|
|
|
|
+
|
|
|
</script>
|
|
|
|
|
|
<script lang="ts">
|