|
@@ -32,7 +32,7 @@
|
|
|
<div class="tt_item">
|
|
|
<div class="tt_i_title">
|
|
|
<span>任务状态</span>
|
|
|
- <span v-if="isWorkStudent!==0">学生活动中...</span>
|
|
|
+ <span v-if="isWorkStudent !== 0">学生活动中...</span>
|
|
|
</div>
|
|
|
<div class="tt_i_box">
|
|
|
<div class="tt_i_b_item">
|
|
@@ -80,25 +80,30 @@
|
|
|
<div class="aba_t_left">
|
|
|
<img :src="require('../../../assets/icon/course/practice.svg')" />
|
|
|
<span>巩固练习</span>
|
|
|
- <el-tooltip class="item" effect="light" content="刷新" placement="top" v-if="showCard == 1">
|
|
|
- <svg
|
|
|
-
|
|
|
- @click.stop="selectDefaultTaskList"
|
|
|
- width="16"
|
|
|
- height="16"
|
|
|
- viewBox="0 0 16 16"
|
|
|
- fill="none"
|
|
|
- xmlns="http://www.w3.org/2000/svg"
|
|
|
+ <el-tooltip
|
|
|
+ class="item"
|
|
|
+ effect="light"
|
|
|
+ content="刷新"
|
|
|
+ placement="top"
|
|
|
+ v-if="showCard == 1"
|
|
|
>
|
|
|
- <path
|
|
|
- fill-rule="evenodd"
|
|
|
- clip-rule="evenodd"
|
|
|
- d="M2.07324 11.2394L3.48974 8.91992L3.87418 9.79981C4.56904 11.3902 6.15545 12.5 7.99996 12.5C10.4852 12.5 12.5 10.4853 12.5 8L13.5 8C13.5 11.0376 11.0375 13.5 7.99996 13.5C6.06914 13.5 4.3715 12.5051 3.39039 11.0013L2.92668 11.7606L2.07324 11.2394ZM7.99996 3.5C5.51468 3.5 3.49996 5.51472 3.49996 8L2.49996 8C2.49996 4.96243 4.9624 2.5 7.99996 2.5C9.93079 2.5 11.6284 3.49489 12.6095 4.99871L13.0732 4.2394L13.9267 4.7606L12.5102 7.08008L12.1257 6.20019C11.4309 4.60983 9.84447 3.5 7.99996 3.5Z"
|
|
|
- fill="black"
|
|
|
- fill-opacity="0.6"
|
|
|
- />
|
|
|
- </svg>
|
|
|
- </el-tooltip>
|
|
|
+ <svg
|
|
|
+ @click.stop="selectDefaultTaskList"
|
|
|
+ width="16"
|
|
|
+ height="16"
|
|
|
+ viewBox="0 0 16 16"
|
|
|
+ fill="none"
|
|
|
+ xmlns="http://www.w3.org/2000/svg"
|
|
|
+ >
|
|
|
+ <path
|
|
|
+ fill-rule="evenodd"
|
|
|
+ clip-rule="evenodd"
|
|
|
+ d="M2.07324 11.2394L3.48974 8.91992L3.87418 9.79981C4.56904 11.3902 6.15545 12.5 7.99996 12.5C10.4852 12.5 12.5 10.4853 12.5 8L13.5 8C13.5 11.0376 11.0375 13.5 7.99996 13.5C6.06914 13.5 4.3715 12.5051 3.39039 11.0013L2.92668 11.7606L2.07324 11.2394ZM7.99996 3.5C5.51468 3.5 3.49996 5.51472 3.49996 8L2.49996 8C2.49996 4.96243 4.9624 2.5 7.99996 2.5C9.93079 2.5 11.6284 3.49489 12.6095 4.99871L13.0732 4.2394L13.9267 4.7606L12.5102 7.08008L12.1257 6.20019C11.4309 4.60983 9.84447 3.5 7.99996 3.5Z"
|
|
|
+ fill="black"
|
|
|
+ fill-opacity="0.6"
|
|
|
+ />
|
|
|
+ </svg>
|
|
|
+ </el-tooltip>
|
|
|
</div>
|
|
|
<div class="aba_t_right" v-if="showCard == 1">
|
|
|
<div>
|
|
@@ -112,12 +117,20 @@
|
|
|
<div class="aa_ab_noTask" v-if="showCard == 0">
|
|
|
<img :src="require('../../../assets/icon/course/aiLogo.png')" />
|
|
|
<span>当前课堂未添加练习题</span>
|
|
|
- <div class="aa_ab_nt_btn" @click.stop="getTopic()" v-show="ttype==1">一键出题</div>
|
|
|
- <div v-show="
|
|
|
+ <div
|
|
|
+ class="aa_ab_nt_btn"
|
|
|
+ @click.stop="getTopic()"
|
|
|
+ v-show="ttype == 1"
|
|
|
+ >
|
|
|
+ 一键出题
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ v-show="
|
|
|
this.courseDetail.userid == userid ||
|
|
|
this.courseDetail.juri.indexOf(userid) != -1
|
|
|
- ">
|
|
|
- 或前往“<span @click.stop="goSetTopic()" >课堂管理</span
|
|
|
+ "
|
|
|
+ >
|
|
|
+ 或前往“<span @click.stop="goSetTopic()">课堂管理</span
|
|
|
>”编辑工具,自主添加题目
|
|
|
</div>
|
|
|
</div>
|
|
@@ -169,10 +182,10 @@
|
|
|
>{{ chooseList[index] }}、<span>{{ item }}</span></span
|
|
|
>
|
|
|
</div> -->
|
|
|
- <div
|
|
|
+ <div
|
|
|
:class="[
|
|
|
'aa_ab_t_cl_item',
|
|
|
- showBottomCard==2
|
|
|
+ showBottomCard == 2
|
|
|
? checkAnswer(
|
|
|
topicList[showTopicIndex].answer,
|
|
|
topicList[showTopicIndex].answer2
|
|
@@ -185,12 +198,14 @@
|
|
|
? ''
|
|
|
: ''
|
|
|
: 'aa_ab_t_cl_itemActive',
|
|
|
-
|
|
|
+
|
|
|
typeof topicList[showTopicIndex].answer != 'number'
|
|
|
- ? topicList[showTopicIndex].answer2.includes(index) && showBottomCard!=2
|
|
|
+ ? topicList[showTopicIndex].answer2.includes(index) &&
|
|
|
+ showBottomCard != 2
|
|
|
? 'aa_ab_t_cl_itemChoice'
|
|
|
: ''
|
|
|
- : topicList[showTopicIndex].answer2 === index && showBottomCard!=2
|
|
|
+ : topicList[showTopicIndex].answer2 === index &&
|
|
|
+ showBottomCard != 2
|
|
|
? 'aa_ab_t_cl_itemChoice'
|
|
|
: ''
|
|
|
]"
|
|
@@ -208,29 +223,27 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="aa_ab_t_btnArea">
|
|
|
- <div
|
|
|
- class="aa_ab_t_message"
|
|
|
- >
|
|
|
+ <div class="aa_ab_t_message">
|
|
|
<div class="aa_ab_t_m_answer">
|
|
|
- 正确答案:<span v-if="showBottomCard==2">{{
|
|
|
+ 正确答案:<span v-if="showBottomCard == 2">{{
|
|
|
topicList[showTopicIndex].answer.length
|
|
|
? topicList[showTopicIndex].answer
|
|
|
.map(i => chooseList[i])
|
|
|
.join("、")
|
|
|
: chooseList[topicList[showTopicIndex].answer]
|
|
|
}}</span>
|
|
|
- <span v-else>-</span>
|
|
|
+ <span v-else>-</span>
|
|
|
</div>
|
|
|
<div class="aa_ab_t_m_btn">
|
|
|
<span
|
|
|
:class="[showBottomCard == 1 ? 'aa_ab_t_m_btnActive' : '']"
|
|
|
@click.stop="statistics()"
|
|
|
- v-if="ttype!=2"
|
|
|
+ v-if="ttype != 2"
|
|
|
>题目统计</span
|
|
|
>
|
|
|
<span
|
|
|
:class="[showBottomCard == 2 ? 'aa_ab_t_m_btnActive' : '']"
|
|
|
- v-if="ttype!=2"
|
|
|
+ v-if="ttype != 2"
|
|
|
@click.stop="analyze()"
|
|
|
>答案解析</span
|
|
|
>
|
|
@@ -251,17 +264,21 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="sc_t_refresh" @click.sto="getStatistics()">
|
|
|
- <el-tooltip class="item" effect="dark" content="刷新" placement="top">
|
|
|
- <img :src="require('../../../assets/icon/course/refresh.svg')">
|
|
|
- </el-tooltip>
|
|
|
-
|
|
|
- </div>
|
|
|
+ <el-tooltip
|
|
|
+ class="item"
|
|
|
+ effect="dark"
|
|
|
+ content="刷新"
|
|
|
+ placement="top"
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ :src="require('../../../assets/icon/course/refresh.svg')"
|
|
|
+ />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
|
|
|
<div class="sc_bottom">
|
|
|
- <span v-if="statisticsData.total == 0"
|
|
|
- >当前暂无学生提交.</span
|
|
|
- >
|
|
|
+ <span v-if="statisticsData.total == 0">当前暂无学生提交.</span>
|
|
|
<div
|
|
|
class="sc_b_item"
|
|
|
v-else
|
|
@@ -283,7 +300,6 @@
|
|
|
v-if="showBottomCard == 2"
|
|
|
>
|
|
|
<span>{{ analyzeText }}</span>
|
|
|
-
|
|
|
</div>
|
|
|
<!-- <div
|
|
|
class="aa_ab_t_ba_submit"
|
|
@@ -293,27 +309,54 @@
|
|
|
确认选择
|
|
|
</div> -->
|
|
|
<div class="aa_ab_t_ba_nextOrUp">
|
|
|
-
|
|
|
- <div :class="['aa_ab_t_ba_nu_questions']" @click.stop="getAiTopic()" v-show="this.courseDetail.userid == userid && ttype!=2">
|
|
|
- <span>智能出题</span>
|
|
|
- <svg width="17" :style="showMenu?'transform: rotate(180deg);':''" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
|
-<path fill-rule="evenodd" clip-rule="evenodd" d="M13.5404 10.3322C13.7239 10.1258 13.7053 9.80975 13.4989 9.62629L8.99892 5.62629C8.80948 5.4579 8.524 5.4579 8.33456 5.62629L3.83456 9.62629C3.62817 9.80975 3.60958 10.1258 3.79304 10.3322C3.9765 10.5386 4.29253 10.5572 4.49892 10.3737L8.66674 6.66897L12.8346 10.3737C13.041 10.5572 13.357 10.5386 13.5404 10.3322Z" fill="#3681FC"/>
|
|
|
-</svg>
|
|
|
- <div class="aa_ab_t_ba_nu_q_menu" v-if="showMenu" v-click-outside="handleBlur">
|
|
|
+ <div
|
|
|
+ :class="['aa_ab_t_ba_nu_questions']"
|
|
|
+ @click.stop="getAiTopic()"
|
|
|
+ v-show="ttype == 1"
|
|
|
+ >
|
|
|
+ <span>智能出题</span>
|
|
|
+ <svg
|
|
|
+ width="17"
|
|
|
+ :style="showMenu ? 'transform: rotate(180deg);' : ''"
|
|
|
+ height="16"
|
|
|
+ viewBox="0 0 17 16"
|
|
|
+ fill="none"
|
|
|
+ xmlns="http://www.w3.org/2000/svg"
|
|
|
+ >
|
|
|
+ <path
|
|
|
+ fill-rule="evenodd"
|
|
|
+ clip-rule="evenodd"
|
|
|
+ d="M13.5404 10.3322C13.7239 10.1258 13.7053 9.80975 13.4989 9.62629L8.99892 5.62629C8.80948 5.4579 8.524 5.4579 8.33456 5.62629L3.83456 9.62629C3.62817 9.80975 3.60958 10.1258 3.79304 10.3322C3.9765 10.5386 4.29253 10.5572 4.49892 10.3737L8.66674 6.66897L12.8346 10.3737C13.041 10.5572 13.357 10.5386 13.5404 10.3322Z"
|
|
|
+ fill="#3681FC"
|
|
|
+ />
|
|
|
+ </svg>
|
|
|
+ <div
|
|
|
+ class="aa_ab_t_ba_nu_q_menu"
|
|
|
+ v-if="showMenu"
|
|
|
+ v-click-outside="handleBlur"
|
|
|
+ >
|
|
|
<span @click.stop="getAiTopicByyType(0)">相似题</span>
|
|
|
<span @click.stop="getAiTopicByyType(1)">更难题</span>
|
|
|
<span @click.stop="getAiTopicByyType(2)">更易题</span>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
|
|
|
<div
|
|
|
- :class="['aa_ab_t_ba_nu_up',showTopicIndex > 0?'':'aa_ab_t_ba_nu_disabled'] "
|
|
|
+ :class="[
|
|
|
+ 'aa_ab_t_ba_nu_up',
|
|
|
+ showTopicIndex > 0 ? '' : 'aa_ab_t_ba_nu_disabled'
|
|
|
+ ]"
|
|
|
@click.stop="up()"
|
|
|
>
|
|
|
上一题
|
|
|
</div>
|
|
|
<div
|
|
|
- :class="['aa_ab_t_ba_nu_next',showTopicIndex != topicList.length - 1 && topicList.length > 0?'':'aa_ab_t_ba_nu_disabled'] "
|
|
|
+ :class="[
|
|
|
+ 'aa_ab_t_ba_nu_next',
|
|
|
+ showTopicIndex != topicList.length - 1 && topicList.length > 0
|
|
|
+ ? ''
|
|
|
+ : 'aa_ab_t_ba_nu_disabled'
|
|
|
+ ]"
|
|
|
@click.stop="next()"
|
|
|
>
|
|
|
下一题
|
|
@@ -517,12 +560,11 @@ let converter = OpenCC.Converter({
|
|
|
to: "cn"
|
|
|
});
|
|
|
|
|
|
-
|
|
|
// 自定义指令,用于处理点击外部区域的事件
|
|
|
const clickOutside = {
|
|
|
bind(el, binding) {
|
|
|
// 在元素上绑定一个点击事件监听器
|
|
|
- el.clickOutsideEvent = function (event) {
|
|
|
+ el.clickOutsideEvent = function(event) {
|
|
|
// 检查点击事件是否发生在元素的内部
|
|
|
if (!(el === event.target || el.contains(event.target))) {
|
|
|
// 如果点击事件发生在元素的外部,则触发指令绑定的方法,将点击的event数据传过去
|
|
@@ -535,7 +577,7 @@ const clickOutside = {
|
|
|
unbind(el) {
|
|
|
// 在元素上解除点击事件监听器
|
|
|
document.removeEventListener("click", el.clickOutsideEvent);
|
|
|
- },
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
export default {
|
|
@@ -574,7 +616,7 @@ export default {
|
|
|
userid: this.$route.query.userid,
|
|
|
courseId: this.$route.query.courseId,
|
|
|
ttype: this.$route.query.tType,
|
|
|
- tcid2: this.$route.query.tcid,
|
|
|
+ tcid2: this.$route.query.tcid,
|
|
|
loading: false,
|
|
|
aiBoxLoading: false,
|
|
|
chatLoading: false,
|
|
@@ -597,8 +639,34 @@ export default {
|
|
|
showBottomCard: 0, // 0不显示 1:显示统计 2:显示解析
|
|
|
analyzeText: "",
|
|
|
statisticsLoading: false,
|
|
|
- chooseList:["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],
|
|
|
-
|
|
|
+ chooseList: [
|
|
|
+ "A",
|
|
|
+ "B",
|
|
|
+ "C",
|
|
|
+ "D",
|
|
|
+ "E",
|
|
|
+ "F",
|
|
|
+ "G",
|
|
|
+ "H",
|
|
|
+ "I",
|
|
|
+ "J",
|
|
|
+ "K",
|
|
|
+ "L",
|
|
|
+ "M",
|
|
|
+ "N",
|
|
|
+ "O",
|
|
|
+ "P",
|
|
|
+ "Q",
|
|
|
+ "R",
|
|
|
+ "S",
|
|
|
+ "T",
|
|
|
+ "U",
|
|
|
+ "V",
|
|
|
+ "W",
|
|
|
+ "X",
|
|
|
+ "Y",
|
|
|
+ "Z"
|
|
|
+ ]
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
@@ -718,17 +786,21 @@ export default {
|
|
|
let _data = JSON.parse(JSON.stringify(this.submitStudent));
|
|
|
_data.forEach((i, index1) => {
|
|
|
let _task = i.content[this.showTopicIndex];
|
|
|
-
|
|
|
+
|
|
|
if (index1 == 0) {
|
|
|
_task.checkList.forEach((i2, index2) => {
|
|
|
- _result.checkList.push({ index: this.chooseList[index2], accuracy: 0, num: 0 });
|
|
|
+ _result.checkList.push({
|
|
|
+ index: this.chooseList[index2],
|
|
|
+ accuracy: 0,
|
|
|
+ num: 0
|
|
|
+ });
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- // if (!_task || !_task.isSubmit) return; //未做此题
|
|
|
- if (!_task) return; //未做此题
|
|
|
+ // if (!_task || !_task.isSubmit) return; //未做此题
|
|
|
+ if (!_task) return; //未做此题
|
|
|
|
|
|
- if (typeof _task.answer!='number') {
|
|
|
+ if (typeof _task.answer != "number") {
|
|
|
//多选题
|
|
|
if (!_task.answer2.length) return; //未做此题
|
|
|
_result.total += 1;
|
|
@@ -801,13 +873,13 @@ export default {
|
|
|
};
|
|
|
}
|
|
|
},
|
|
|
- directives: {
|
|
|
- "click-outside": clickOutside, // 注册自定义指令
|
|
|
+ directives: {
|
|
|
+ "click-outside": clickOutside // 注册自定义指令
|
|
|
},
|
|
|
methods: {
|
|
|
- handleBlur(){
|
|
|
- this.showMenu = !this.showMenu;
|
|
|
- },
|
|
|
+ handleBlur() {
|
|
|
+ this.showMenu = !this.showMenu;
|
|
|
+ },
|
|
|
insertMemorandum(_html) {
|
|
|
//保存行为操作
|
|
|
//variable
|
|
@@ -816,7 +888,7 @@ export default {
|
|
|
let params = [
|
|
|
{
|
|
|
uid: this.userid,
|
|
|
- courseId: this.courseId+(this.tcid2?this.tcid2:''),
|
|
|
+ courseId: this.courseId + (this.tcid2 ? this.tcid2 : ""),
|
|
|
content: _html
|
|
|
}
|
|
|
];
|
|
@@ -1130,7 +1202,7 @@ ${_textData}
|
|
|
session_name: uuidv4(),
|
|
|
// uid: _uuid,
|
|
|
file_ids: this.fileId,
|
|
|
- model: "gpt-4o-2024-08-06",
|
|
|
+ model: "gpt-4o-2024-08-06"
|
|
|
};
|
|
|
|
|
|
this.ajax
|
|
@@ -1140,7 +1212,6 @@ ${_textData}
|
|
|
.then(res => {
|
|
|
let _data = res.data.FunctionResponse.message;
|
|
|
_data = _data.replaceAll("```json", "").replaceAll("```", "");
|
|
|
- console.log(_data);
|
|
|
const match = _data.match(/\[\s*\{[\s\S]*?\}\s*\]/);
|
|
|
let _result = JSON.parse(match[0]) || [];
|
|
|
_result.forEach(i => {
|
|
@@ -1263,7 +1334,7 @@ ${_textData}
|
|
|
_data.forEach(i => {
|
|
|
i.content = JSON.parse(i.content);
|
|
|
if (i.tType == 2) {
|
|
|
- _result.push(i);
|
|
|
+ _result.push(i);
|
|
|
}
|
|
|
});
|
|
|
this.submitStudent = _result;
|
|
@@ -1278,7 +1349,9 @@ ${_textData}
|
|
|
let _nowTask = this.topicList[this.showTopicIndex];
|
|
|
let taskText = `${_nowTask.teststitle}\n选项:\n`;
|
|
|
_nowTask.checkList.forEach((i, index) => {
|
|
|
- taskText += `${this.chooseList[index]}:${i.src ? JSON.stringify(i) : i}\n`;
|
|
|
+ taskText += `${this.chooseList[index]}:${
|
|
|
+ i.src ? JSON.stringify(i) : i
|
|
|
+ }\n`;
|
|
|
});
|
|
|
taskText += `答案:${
|
|
|
_nowTask.answer.length
|
|
@@ -1402,7 +1475,7 @@ ${taskText}
|
|
|
session_name: uuidv4(),
|
|
|
// uid: _uuid,
|
|
|
file_ids: this.fileId,
|
|
|
- model: "gpt-4o-2024-08-06",
|
|
|
+ model: "gpt-4o-2024-08-06"
|
|
|
};
|
|
|
|
|
|
this.ajax
|
|
@@ -1412,7 +1485,6 @@ ${taskText}
|
|
|
.then(res => {
|
|
|
let _data = res.data.FunctionResponse.message;
|
|
|
_data = _data.replaceAll("```json", "").replaceAll("```", "");
|
|
|
- console.log(_data);
|
|
|
const match = _data.match(
|
|
|
/{[^{}]*"teststitle"[\s\S]*?"end":\s*""[^{}]*}/
|
|
|
);
|
|
@@ -1421,8 +1493,12 @@ ${taskText}
|
|
|
(_result.uuid = uuidv4());
|
|
|
delete _result.end;
|
|
|
this.topicList.splice(this.showTopicIndex + 1, 0, _result);
|
|
|
- this.saveTaskList(1);
|
|
|
- this.next();
|
|
|
+ // this.saveTaskList(1);
|
|
|
+ this.saveTaskList(2).then(_ => {
|
|
|
+ this.saveTaskList().then(_ => {
|
|
|
+ this.next();
|
|
|
+ });
|
|
|
+ });
|
|
|
this.aiBoxLoading = false;
|
|
|
})
|
|
|
.catch(e => {
|
|
@@ -1448,7 +1524,7 @@ ${taskText}
|
|
|
}
|
|
|
},
|
|
|
chooseAnswer(answer) {
|
|
|
- if(this.showBottomCard==2)return;
|
|
|
+ if (this.showBottomCard == 2) return;
|
|
|
if (this.topicList[this.showTopicIndex].isSubmit)
|
|
|
return this.$message.error("该题已经提交过了");
|
|
|
if (this.topicList[this.showTopicIndex].answer.length) {
|
|
@@ -1469,7 +1545,9 @@ ${taskText}
|
|
|
confirmSubmission() {
|
|
|
//确认选择
|
|
|
if (
|
|
|
- (typeof this.topicList[this.showTopicIndex].answer2 =='number' && this.topicList[this.showTopicIndex].answer2==="") || this.topicList[this.showTopicIndex].answer2.length==0
|
|
|
+ (typeof this.topicList[this.showTopicIndex].answer2 == "number" &&
|
|
|
+ this.topicList[this.showTopicIndex].answer2 === "") ||
|
|
|
+ this.topicList[this.showTopicIndex].answer2.length == 0
|
|
|
) {
|
|
|
return this.$message.error("请先答题");
|
|
|
} else {
|
|
@@ -1586,6 +1664,48 @@ ${taskText}
|
|
|
});
|
|
|
},
|
|
|
saveTaskList(type = 0) {
|
|
|
+ if (type == 2) {
|
|
|
+ this.aiBoxLoading = true;
|
|
|
+ return new Promise(resolve => {
|
|
|
+ let params = {
|
|
|
+ uid: this.courseDetail.userid,
|
|
|
+ cid: this.courseId
|
|
|
+ };
|
|
|
+ this.ajax
|
|
|
+ .get(
|
|
|
+ this.$store.state.api + "select_courseWorks_classRoomHelper",
|
|
|
+ params
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ let _data = res.data[0];
|
|
|
+ if (_data.length) {
|
|
|
+ let _task = JSON.parse(_data[0].content);
|
|
|
+ _task.splice(
|
|
|
+ this.showTopicIndex + 1,
|
|
|
+ 0,
|
|
|
+ this.topicList[this.showTopicIndex + 1]
|
|
|
+ );
|
|
|
+ let params2 = [
|
|
|
+ {
|
|
|
+ uid: this.courseDetail.userid,
|
|
|
+ cid: this.courseId,
|
|
|
+ jsonData: JSON.stringify(_task)
|
|
|
+ }
|
|
|
+ ];
|
|
|
+ this.ajax
|
|
|
+ .post(
|
|
|
+ this.$store.state.api + "updateCourseWorks_classRoomHelper",
|
|
|
+ params2
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ resolve();
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ resolve();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
return new Promise(resolve => {
|
|
|
let params = [
|
|
|
{
|
|
@@ -1687,7 +1807,7 @@ ${_choiceText}
|
|
|
session_name: uuidv4(),
|
|
|
// uid: _uuid,
|
|
|
file_ids: this.fileId,
|
|
|
- model: "gpt-4o-2024-08-06",
|
|
|
+ model: "gpt-4o-2024-08-06"
|
|
|
};
|
|
|
|
|
|
this.ajax
|
|
@@ -1695,11 +1815,9 @@ ${_choiceText}
|
|
|
// .post("https://claude3.cocorobo.cn/chat", params)
|
|
|
.post("https://gpt4.cocorobo.cn/ai_agent_park_chat", params)
|
|
|
.then(res => {
|
|
|
- console.log(res);
|
|
|
let _data = res.data.FunctionResponse.message;
|
|
|
_data = _data.replaceAll("```json", "").replaceAll("```", "");
|
|
|
const match = _data.match(/{[^}]*"analyze"[^}]*}/);
|
|
|
- console.log(match);
|
|
|
let _result = JSON.parse(match[0]);
|
|
|
resolve({ ..._result, uuid: data.uuid });
|
|
|
})
|
|
@@ -2034,16 +2152,16 @@ ${_choiceText}
|
|
|
border-radius: 3px;
|
|
|
border: solid 1px #fff;
|
|
|
margin-top: 15px;
|
|
|
- display:flex;
|
|
|
- flex-wrap:wrap;
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
}
|
|
|
|
|
|
-.aa_ab_t_cl_item>span{
|
|
|
- word-break: break-all;
|
|
|
+.aa_ab_t_cl_item > span {
|
|
|
+ word-break: break-all;
|
|
|
}
|
|
|
|
|
|
-.aa_ab_t_cl_item img{
|
|
|
- width:90%;
|
|
|
+.aa_ab_t_cl_item img {
|
|
|
+ width: 90%;
|
|
|
}
|
|
|
|
|
|
.aa_ab_t_cl_itemNo {
|
|
@@ -2362,38 +2480,37 @@ ${_choiceText}
|
|
|
border-radius: 50px;
|
|
|
}
|
|
|
|
|
|
-.aa_ab_t_ba_nextOrUp>.aa_ab_t_ba_nu_disabled{
|
|
|
- background-color: #75aaff;
|
|
|
- cursor: not-allowed;
|
|
|
+.aa_ab_t_ba_nextOrUp > .aa_ab_t_ba_nu_disabled {
|
|
|
+ background-color: #75aaff;
|
|
|
+ cursor: not-allowed;
|
|
|
}
|
|
|
|
|
|
-.aa_ab_t_ba_nu_up{
|
|
|
- margin-right:10px;
|
|
|
+.aa_ab_t_ba_nu_up {
|
|
|
+ margin-right: 10px;
|
|
|
}
|
|
|
|
|
|
-.aa_ab_t_ba_nu_questions{
|
|
|
- margin-right: 20px;
|
|
|
- background-color: #fff !important;
|
|
|
- color: black !important;
|
|
|
- position: relative;
|
|
|
- cursor: pointer;
|
|
|
- box-sizing: border-box;
|
|
|
- border: solid 1px #3681FC;
|
|
|
- display: flex;
|
|
|
- justify-content: center;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
+.aa_ab_t_ba_nu_questions {
|
|
|
+ margin-right: 20px;
|
|
|
+ background-color: #fff !important;
|
|
|
+ color: black !important;
|
|
|
+ position: relative;
|
|
|
+ cursor: pointer;
|
|
|
+ box-sizing: border-box;
|
|
|
+ border: solid 1px #3681fc;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
}
|
|
|
|
|
|
-.aa_ab_t_ba_nu_questions>svg{
|
|
|
- width: 20px;
|
|
|
- height: 20px;
|
|
|
- transition: .3s;
|
|
|
- /* margin-left: 5px; */
|
|
|
+.aa_ab_t_ba_nu_questions > svg {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ transition: 0.3s;
|
|
|
+ /* margin-left: 5px; */
|
|
|
}
|
|
|
|
|
|
-.aa_ab_t_ba_nu_q_menu{
|
|
|
- width: auto;
|
|
|
+.aa_ab_t_ba_nu_q_menu {
|
|
|
+ width: auto;
|
|
|
height: auto;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
@@ -2402,30 +2519,30 @@ ${_choiceText}
|
|
|
bottom: calc(100% + 5px);
|
|
|
right: 0;
|
|
|
flex-direction: column;
|
|
|
- background-color: #fff;
|
|
|
- padding: 5px 10px;
|
|
|
- border-radius: 5px;
|
|
|
- box-shadow: 0 0 5px #ccc
|
|
|
+ background-color: #fff;
|
|
|
+ padding: 5px 10px;
|
|
|
+ border-radius: 5px;
|
|
|
+ box-shadow: 0 0 5px #ccc;
|
|
|
}
|
|
|
.aa_ab_t_ba_nu_q_menu > span {
|
|
|
width: auto;
|
|
|
- height: auto;
|
|
|
- padding: 8px;
|
|
|
+ height: auto;
|
|
|
+ padding: 8px;
|
|
|
background-color: #fff;
|
|
|
border-radius: 6px;
|
|
|
cursor: pointer;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
- margin-bottom: 5px;
|
|
|
+ margin-bottom: 5px;
|
|
|
}
|
|
|
|
|
|
.aa_ab_t_ba_nu_q_menu > span:hover {
|
|
|
- background-color: #F3F7FD;
|
|
|
+ background-color: #f3f7fd;
|
|
|
}
|
|
|
|
|
|
-.aa_ab_t_ba_nu_next{
|
|
|
- margin-left:10px;
|
|
|
+.aa_ab_t_ba_nu_next {
|
|
|
+ margin-left: 10px;
|
|
|
}
|
|
|
|
|
|
.aa_ab_t_message {
|
|
@@ -2453,7 +2570,7 @@ ${_choiceText}
|
|
|
.aa_ab_t_m_btnActive {
|
|
|
font-weight: bold;
|
|
|
color: #0061ff !important;
|
|
|
- transform: scale(1.1,1.1);
|
|
|
+ transform: scale(1.1, 1.1);
|
|
|
}
|
|
|
|
|
|
.aa_ab_t_m_answer {
|