|
@@ -177,11 +177,23 @@
|
|
|
</div>
|
|
|
<div class="info_box_t" v-if="!yiKeTemplateArray.includes(templateid)">
|
|
|
<div class="info_box_t_box">
|
|
|
- <el-switch v-model="isuseT" active-text="是否从已有教案生成"
|
|
|
- style="justify-content: center; min-width: 175px"></el-switch>
|
|
|
+ <!-- <el-switch v-model="isuseT" active-text="是否从已有教案生成"
|
|
|
+ style="justify-content: center; min-width: 175px"></el-switch> -->
|
|
|
+ <span>生成模式:</span>
|
|
|
+ <el-radio-group v-model="isuseT" style="display: flex; align-items: center" @change="changeIsuseT">
|
|
|
+ <div class="all_choose info_radio">
|
|
|
+ <el-radio :label="1">引导模式生成</el-radio>
|
|
|
+ </div>
|
|
|
+ <div class="all_choose info_radio" style="margin-left: 10px">
|
|
|
+ <el-radio :label="true">从已有教案生成</el-radio>
|
|
|
+ </div>
|
|
|
+ <div class="all_choose info_radio" style="margin-left: 10px">
|
|
|
+ <el-radio :label="false">从零开始生成</el-radio>
|
|
|
+ </div>
|
|
|
+ </el-radio-group>
|
|
|
</div>
|
|
|
<div class="info_box_t_box">
|
|
|
- <span>AI生成模式:</span>
|
|
|
+ <span>生成风格:</span>
|
|
|
<div class="mode_box">
|
|
|
<span :class="{active: mode == 1}" @click="mode = 1">精确</span>
|
|
|
<!-- <span :class="{active: mode == 2}" @click="mode = 2">平衡</span> -->
|
|
@@ -374,7 +386,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="whiteBg" style="background: #fff; margin: 0 0 10px;padding: 0 0 15px;" v-if="(!yiKeTemplateArray.includes(templateid)) && isuseT">
|
|
|
+ <div class="whiteBg" style="background: #fff; margin: 0 0 10px;padding: 0 0 15px;" v-if="(!yiKeTemplateArray.includes(templateid)) && isuseT === true">
|
|
|
<div style="position: relative;
|
|
|
background: #fff;
|
|
|
box-sizing: border-box;
|
|
@@ -528,7 +540,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="whiteBg" :style="{ minHeight: teacherTextLoading ? '250px' : 'auto'}" style="background: #fff; margin: 0 0 10px;padding: 0 0 15px;position: relative" v-loading="teacherTextLoading" element-loading-text="小可正在努力生成中,请稍等..." v-if="(!yiKeTemplateArray.includes(templateid)) && isuseT">
|
|
|
+ <div class="whiteBg" :style="{ minHeight: teacherTextLoading ? '250px' : 'auto'}" style="background: #fff; margin: 0 0 10px;padding: 0 0 15px;position: relative" v-loading="teacherTextLoading" element-loading-text="小可正在努力生成中,请稍等..." v-if="(!yiKeTemplateArray.includes(templateid)) && isuseT === true">
|
|
|
<div class="c_pub_button_confirm stopBtn" v-if="teacherTextLoading && isTeacherTextCancelToken" @click="cancelAjax('teacherText')">停止</div>
|
|
|
<div class="whiteBg" style="border-radius: 0; margin-top: 15px">
|
|
|
<div class="c_info_title">
|
|
@@ -553,14 +565,14 @@
|
|
|
@contextmenu.prevent="openAiDialog(1, 'aiteacherTextDetail', 2)"
|
|
|
@click="openAiDialog(2, 'aiteacherTextDetail', 2)">智能优化</div>
|
|
|
</el-tooltip>
|
|
|
- <div class="r_pub_button_edit" style="margin-left:10px" @click="teacherCourseTextB = !teacherCourseTextB">{{ teacherCourseTextB ? '确定' : '编辑'}}</div>
|
|
|
+ <div class="r_pub_button_edit" style="margin-left:10px" @click="teacherCourseTextB = !teacherCourseTextB,forceUpdate2()">{{ teacherCourseTextB ? '确定' : '编辑'}}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="whiteBg" :style="{ minHeight: targetTextLoading ? '250px' : 'auto'}" style="background: #fff; margin: 0 0 10px;padding: 0 0 15px;" v-loading="targetTextLoading" element-loading-text="小可正在努力生成中,请稍等..." v-if="(!yiKeTemplateArray.includes(templateid)) && isuseT && templateid != '4480d65a-1e48-11ef-bee5-005056b86db5' && templateid != 'cf5722a4-401b-11ef-b873-005056b86dc3'">
|
|
|
+ <div class="whiteBg" :style="{ minHeight: targetTextLoading ? '250px' : 'auto'}" style="background: #fff; margin: 0 0 10px;padding: 0 0 15px;" v-loading="targetTextLoading" element-loading-text="小可正在努力生成中,请稍等..." v-if="(!yiKeTemplateArray.includes(templateid)) && isuseT === true && templateid != '4480d65a-1e48-11ef-bee5-005056b86db5' && templateid != 'cf5722a4-401b-11ef-b873-005056b86dc3'">
|
|
|
<div class="c_pub_button_confirm stopBtn" v-if="targetTextLoading && isTargetCancelToken1" @click="cancelAjax('target1')">停止</div>
|
|
|
<div class="whiteBg" style="border-radius: 0; margin-top: 15px">
|
|
|
<div class="c_info_title">
|
|
@@ -585,7 +597,7 @@
|
|
|
@contextmenu.prevent="openAiDialog(1, 'aitargetTextDetail', 2)"
|
|
|
@click="openAiDialog(2, 'aitargetTextDetail', 2)">智能优化</div>
|
|
|
</el-tooltip>
|
|
|
- <div class="r_pub_button_edit" style="margin-left:10px" @click="targetCourseTextB = !targetCourseTextB">{{ targetCourseTextB ? '确定' : '编辑'}}</div>
|
|
|
+ <div class="r_pub_button_edit" style="margin-left:10px" @click="targetCourseTextB = !targetCourseTextB,forceUpdate2()">{{ targetCourseTextB ? '确定' : '编辑'}}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -887,7 +899,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="whiteBg" :style="{ minHeight: textLoading ? '250px' : 'auto'}" style="background: #fff; margin: 0 0 10px;padding: 0 0 15px;" v-loading="textLoading" element-loading-text="小可正在努力生成中,请稍等..." v-if="(!isuseT && (!yiKeTemplateArray.includes(templateid))) || (isuseT && (!yiKeTemplateArray.includes(templateid)) && courseTextBool) || (yiKeTemplateArray.includes(templateid))">
|
|
|
+ <div class="whiteBg" :style="{ minHeight: textLoading ? '250px' : 'auto'}" style="background: #fff; margin: 0 0 10px;padding: 0 0 15px;" v-loading="textLoading" element-loading-text="小可正在努力生成中,请稍等..." v-if="(!(isuseT === true) && !(isuseT === 1) && (!yiKeTemplateArray.includes(templateid))) || (isuseT === true && (!yiKeTemplateArray.includes(templateid)) && courseTextBool) || (yiKeTemplateArray.includes(templateid))">
|
|
|
<div class="c_pub_button_confirm stopBtn" v-if="textLoading && isTextCancelToken" @click="cancelAjax('text')">停止</div>
|
|
|
<div class="whiteBg" style="border-radius: 0; margin-top: 15px">
|
|
|
<div class="c_info_title" style="margin: 0 20px 0 20px;">
|
|
@@ -913,14 +925,58 @@
|
|
|
@contextmenu.prevent="openAiDialog(1, 'aiDetail', 2)"
|
|
|
@click="openAiDialog(2, 'aiDetail', 2)">智能优化</div>
|
|
|
</el-tooltip>
|
|
|
- <div class="r_pub_button_edit" style="margin-left:10px" @click="courseTextB = !courseTextB">{{ courseTextB ? '确定' : '编辑'}}</div>
|
|
|
+ <div class="r_pub_button_edit" style="margin-left:10px" @click="courseTextB = !courseTextB,forceUpdate2()">{{ courseTextB ? '确定' : '编辑'}}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="whiteBg" :style="{ minHeight: targetTextLoading2 ? '250px' : 'auto'}" style="background: #fff; margin: 0 0 10px;padding: 0 0 15px;" v-loading="targetTextLoading2" element-loading-text="小可正在努力生成中,请稍等..." v-if="((!isuseT && (!yiKeTemplateArray.includes(templateid))) || (isuseT && (!yiKeTemplateArray.includes(templateid)) && courseTextBool)) && templateid != '4480d65a-1e48-11ef-bee5-005056b86db5' && templateid != 'cf5722a4-401b-11ef-b873-005056b86dc3'">
|
|
|
+ <div class="whiteBg" style="background: #fff; margin: 0 0 10px;padding: 0 0 15px;" v-loading="textLoading" element-loading-text="小可正在努力生成中,请稍等..." v-if="(isuseT === 1)">
|
|
|
+ <div class="whiteBg" style="border-radius: 0; margin-top: 15px">
|
|
|
+ <div class="c_info_title" style="margin: 0 20px 0 20px;position:relative;">
|
|
|
+ 课程概况<span class="inter_setting" @click="openInterPanSetting"></span>
|
|
|
+ <div class="inter_setting_panel" v-show="interSetting">
|
|
|
+ <div class="panel_title">配置工作流</div>
|
|
|
+ <div class="panel_tips">您可在创作者中心中创建工作流后,复制工作流链接并贴入</div>
|
|
|
+ <div class="panel_input">
|
|
|
+ <input type="text" :placeholder="this.aiJson.agentid ? this.aiJson.agentid : '请输入agentid'" class="binfo_input" v-model="agentid"/>
|
|
|
+ </div>
|
|
|
+ <div class="panel_button">
|
|
|
+ <button class="c_pub_button_confirm" @click="setAgentid">确认</button>
|
|
|
+ <button class="c_pub_button_confirm" @click="rebuildAgentid" v-if="istemplate != 1">复原</button>
|
|
|
+ <button class="c_pub_button_return" @click="cancelInterSetting">取消</button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <button class="c_pub_button_confirm" style="margin: 0 0 0 auto;" @click="interPan = !interPan,forceUpdate2()">{{ interPan ? '折叠' : '展开'}}</button>
|
|
|
+ </div>
|
|
|
+ <div style="width: 100%; padding: 0px 20px; box-sizing: border-box;display:flex;">
|
|
|
+ <div class="inter_box" v-show="interPan">
|
|
|
+ <iframe allow="camera *; microphone *;display-capture;midi;encrypted-media;" :src="interUrl" frameborder="0" v-if="interFlash && chatid" class="interIframe"></iframe>
|
|
|
+ </div>
|
|
|
+ <div style="width: calc(100%);height: 100%" class='op_task_box' :class="{inter_Detailbox: !courseTextB && interPan}">
|
|
|
+ <textarea style="height: 500px" class="binfo_input binfo_textarea" cols v-model="courseText"
|
|
|
+ placeholder="请输入课程简要描述" v-if="courseTextB && interPan"></textarea>
|
|
|
+ <textarea v-autoHeight="68" rows="2" class="binfo_input binfo_textarea" cols v-model="courseText"
|
|
|
+ placeholder="请输入课程简要描述" v-else-if="courseTextB && !interPan"></textarea>
|
|
|
+ <div class="markBox vditor-reset" style="white-space:pre-wrap;" v-text="courseText" :style="{height: interPan ? '500px' : 'auto', overflowY:'auto'}" v-else-if="textLoading"></div>
|
|
|
+ <div class="markBox vditor-reset" :style="{height: interPan ? '500px' : 'auto', overflowY:'auto'}" v-html="MarkdownT(courseText)" v-else></div>
|
|
|
+ <div class="op_box">
|
|
|
+ <div class="op_remark"></div>
|
|
|
+ <div style="display: flex;">
|
|
|
+ <!-- <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
|
|
|
+ <div class="r_pub_button_op"
|
|
|
+ @contextmenu.prevent="openAiDialog(1, 'aiDetail', 2)"
|
|
|
+ @click="openAiDialog(2, 'aiDetail', 2)">智能优化</div>
|
|
|
+ </el-tooltip> -->
|
|
|
+ <div class="r_pub_button_edit" style="margin-left:10px" @click="courseTextB = !courseTextB,forceUpdate2()">{{ courseTextB ? '确定' : '编辑'}}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="whiteBg" :style="{ minHeight: targetTextLoading2 ? '250px' : 'auto'}" style="background: #fff; margin: 0 0 10px;padding: 0 0 15px;" v-loading="targetTextLoading2" element-loading-text="小可正在努力生成中,请稍等..." v-if="((!(isuseT === true) && (!yiKeTemplateArray.includes(templateid))) || (isuseT === true && (!yiKeTemplateArray.includes(templateid)) && courseTextBool)) && templateid != '4480d65a-1e48-11ef-bee5-005056b86db5' && templateid != 'cf5722a4-401b-11ef-b873-005056b86dc3'">
|
|
|
<div class="c_pub_button_confirm stopBtn" v-if="targetTextLoading2 && isTargetCancelToken2" @click="cancelAjax('target2')">停止</div>
|
|
|
<div class="whiteBg" style="border-radius: 0; margin-top: 15px">
|
|
|
<div class="c_info_title" style="flex-wrap: wrap; position:relative;margin:0 20px;">
|
|
@@ -1088,7 +1144,7 @@
|
|
|
@contextmenu.prevent="openAiDialog(1, 'aitargetTextDetail2', 2)"
|
|
|
@click="openAiDialog(2, 'aitargetTextDetail2', 2)">智能优化</div>
|
|
|
</el-tooltip>
|
|
|
- <div class="r_pub_button_edit" style="margin-left:10px" @click="targetCourseText2B = !targetCourseText2B">{{ targetCourseText2B ? '确定' : '编辑'}}</div>
|
|
|
+ <div class="r_pub_button_edit" style="margin-left:10px" @click="targetCourseText2B = !targetCourseText2B,forceUpdate2()">{{ targetCourseText2B ? '确定' : '编辑'}}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -1601,11 +1657,11 @@
|
|
|
<button class="c_pub_button_return pub_btn_last_img" v-if="steps > 1 && steps != 5" @click="lastSteps">
|
|
|
{{ steps == 4 ? "返回课程" : "上一步" }}
|
|
|
</button>
|
|
|
- <button class="c_pub_button_confirm" v-if="isuseT && !isOutline && !courseTextBool && (!yiKeTemplateArray.includes(templateid)) && templateid != '4480d65a-1e48-11ef-bee5-005056b86db5' && templateid != 'cf5722a4-401b-11ef-b873-005056b86dc3'" @click="clickGenTT2">
|
|
|
- {{isuseT ? "重新生成概况和目标" : "生成概况和目标"}}
|
|
|
+ <button class="c_pub_button_confirm" v-if="isuseT === true && !isOutline && !courseTextBool && (!yiKeTemplateArray.includes(templateid)) && templateid != '4480d65a-1e48-11ef-bee5-005056b86db5' && templateid != 'cf5722a4-401b-11ef-b873-005056b86dc3'" @click="clickGenTT2">
|
|
|
+ {{isuseT === true ? "重新生成概况和目标" : "生成概况和目标"}}
|
|
|
</button>
|
|
|
- <button class="c_pub_button_confirm" v-else-if="isuseT && !isOutline && !courseTextBool && (!yiKeTemplateArray.includes(templateid))" @click="clickGenTT2">
|
|
|
- {{isuseT ? "重新生成概况" : "生成概况"}}
|
|
|
+ <button class="c_pub_button_confirm" v-else-if="isuseT === true && !isOutline && !courseTextBool && (!yiKeTemplateArray.includes(templateid))" @click="clickGenTT2">
|
|
|
+ {{isuseT === true ? "重新生成概况" : "生成概况"}}
|
|
|
</button>
|
|
|
<!-- ((isuseT || courseTextBool) && (!yiKeTemplateArray.includes(templateid))) && -->
|
|
|
<el-tooltip effect="light" content="右键单击可配置提示词" placement="top" v-if="steps < 4">
|
|
@@ -1984,7 +2040,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="rb_c_ai_box" v-if="stepsNav == 2">
|
|
|
- <aiBox @setUnitJson="setUnitJson" :courseId="courseId" :unitJson="unitJson"></aiBox>
|
|
|
+ <aiBox @setUnitJson="setUnitJson" :courseId="cid" :unitJson="unitJson"></aiBox>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="rb_c_box_right">
|
|
@@ -5351,6 +5407,9 @@
|
|
|
<aiTips ttitle="任务详情" title="任务评价优化" :detail="aiJson.aiDetail4" pan="aiDetail4" @setAiJson="setAiJson" />
|
|
|
<aiTips ttitle="任务详情" title="生成评价细则" :detail="aiJson.aiRateRule" pan="aiRateRule" @setAiJson="setAiJson"/>
|
|
|
</div>
|
|
|
+ <div class="leftBar2" v-if="istemplate != 1 && templateid == 'cf5722a4-401b-11ef-b873-005056b86cd2' && chatid">
|
|
|
+ <aiBoxRight :courseId="chatid" :unitJson="unitJson"></aiBoxRight>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<el-dialog title="提示" :visible.sync="dialogVisible" :append-to-body="true" width="25%" :before-close="handleClose"
|
|
|
class="dialog_diy2 customWidth">
|
|
@@ -6885,6 +6944,7 @@ import englishRight from "../components/englishRight.vue";
|
|
|
import evaBox from "../evaBox/index.vue";
|
|
|
import EnglishVoice from "../EnglishVoice/index.vue";
|
|
|
import aiBox from './aiBox.vue'
|
|
|
+import aiBoxRight from './aiBoxRight.vue'
|
|
|
import aiDialog from './aiDialog'
|
|
|
import aiTips from './aiTips.vue'
|
|
|
import tipsDialog from './tipsDialog.vue'
|
|
@@ -6895,6 +6955,7 @@ import aiCreateVideoDialog from './aiCreateVideoDialog.vue'
|
|
|
import wpdf from "../test/file/wPdf2.vue";
|
|
|
import wOffice from "../test/file/wOffice.vue";
|
|
|
import htmlDocx from "html-docx-js/dist/html-docx";
|
|
|
+import TurndownService from 'turndown';
|
|
|
|
|
|
var OpenCC = require("opencc-js");
|
|
|
let converter = OpenCC.Converter({
|
|
@@ -6917,6 +6978,7 @@ export default {
|
|
|
evaBox,
|
|
|
EnglishVoice,
|
|
|
aiBox,
|
|
|
+ aiBoxRight,
|
|
|
aiDialog,
|
|
|
aiTips,
|
|
|
tipsDialog,
|
|
@@ -7348,7 +7410,12 @@ export default {
|
|
|
isTeacherTextCancelSource: null,
|
|
|
isTargetCancelSource1: null,
|
|
|
isTargetCancelSource2: null,
|
|
|
- fileidArray: []
|
|
|
+ fileidArray: [],
|
|
|
+ interPan: true,
|
|
|
+ interFlash: true,
|
|
|
+ agentid: "",
|
|
|
+ interSetting: false,
|
|
|
+ chatid: ""
|
|
|
};
|
|
|
},
|
|
|
directives: {
|
|
@@ -7510,7 +7577,18 @@ export default {
|
|
|
}
|
|
|
return false;
|
|
|
};
|
|
|
- }
|
|
|
+ },
|
|
|
+ interUrl: function () {
|
|
|
+ let agentid = this.aiJson.agentid
|
|
|
+ let sagentid = this.aiJson.sagentid
|
|
|
+ let url = ''
|
|
|
+ if(sagentid){
|
|
|
+ url = `https://beta.cloud.cocorobo.cn/aigpt/#/js?muti_agent_id=${agentid}&isPbl=true&session_id=${this.chatid}`//+'&muti_agent_id2='+agentid
|
|
|
+ }else{
|
|
|
+ url = `https://beta.cloud.cocorobo.cn/aigpt/#/js?muti_agent_id=${agentid}&isPbl=true&session_id=${this.chatid}`//+'&muti_agent_id2='+agentid
|
|
|
+ }
|
|
|
+ return url;
|
|
|
+ },
|
|
|
},
|
|
|
watch: {
|
|
|
unitIndex(newValue, oldValue) {
|
|
@@ -7664,6 +7742,16 @@ export default {
|
|
|
);
|
|
|
}
|
|
|
},
|
|
|
+ courseName(newVal, oldVal) {
|
|
|
+ this.setCourseInfo();
|
|
|
+ },
|
|
|
+ courseTypeId: {
|
|
|
+ immediate: true,
|
|
|
+ deep: true,
|
|
|
+ handler(newValue, oldValue) {
|
|
|
+ this.setCourseInfo();
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
methods: {
|
|
|
tableRowClassName({ row, rowIndex }) {
|
|
@@ -11336,6 +11424,7 @@ export default {
|
|
|
isuseT: this.isuseT,
|
|
|
mode: this.mode,
|
|
|
targetCourseText2: this.targetCourseText2,
|
|
|
+ chatid: this.chatid,
|
|
|
}),
|
|
|
iresearch: this.isFileSearch ? 1 : 2,
|
|
|
},
|
|
@@ -11604,6 +11693,7 @@ export default {
|
|
|
isuseT: this.isuseT,
|
|
|
mode: this.mode,
|
|
|
targetCourseText2: this.targetCourseText2,
|
|
|
+ chatid: this.chatid,
|
|
|
}),
|
|
|
iresearch: this.isFileSearch ? 1 : 2,
|
|
|
},
|
|
@@ -11709,6 +11799,9 @@ export default {
|
|
|
this.aiJson.aiTaskG2 = this.aiJson.aiTaskG2 ? this.aiJson.aiTaskG2 : '请根据<教学任务教案> 和 #范例 为该教学任务输出学生任务单中的互动工具列表。你的任务是,根据教案中提到的学生活动,为学生选择一些平台上有的互动工具,允许他们提交“证据”(即过程性成果)来展示他们的学习进度或者证明他们的学习成果。举例:如果学生活动有观看视频回答问题,那么你就为这一活动匹配选择【问答】工具,允许学生回答问题或者提出他们自己的疑问,如果学生活动有需要学生设计实验或者撰写报告,选用【文档】工具,如果需要学生记录数据,选用【表格】工具,如果需要学生整理或者梳理信息选用【思维导图】,如果需要学生绘制草图,选用【电子白板】,如果需要学生提交视频,图片,或者ppt,选用【作业提交】。你的输出需要符合# 输出格式与要求'
|
|
|
this.aiJson.aiTaskG3 = this.aiJson.aiTaskG3 ? this.aiJson.aiTaskG3 : '请根据<教学任务教案> 和 #范例 为该教学任务输出学生任务单中的目标和评价系统。你最主要的任务是提取教案中目标以及评价标准。你的输出需要符合# 输出格式与要求'
|
|
|
|
|
|
+ this.aiJson.agentid = this.aiJson.agentid ? this.aiJson.agentid : '8e71322c-6c2a-11ef-8ce0-12e77c4cb76b'
|
|
|
+ this.aiJson.sagentid = this.aiJson.sagentid ? this.aiJson.sagentid : ''
|
|
|
+
|
|
|
// if(this.templateid == '4480d65a-1e48-11ef-bee5-005056b86db5'){
|
|
|
// this.aiJson.aiCpoteTask = this.aiJson.aiCpoteTask ? this.aiJson.aiCpoteTask : '请根据<任务簇>,帮我取出里面对应的任务名'
|
|
|
// }
|
|
@@ -13588,6 +13681,8 @@ export default {
|
|
|
}
|
|
|
console.log("这是新增课程");
|
|
|
this.selectAllType();
|
|
|
+ this.chatid = uuidv4();
|
|
|
+ // this.courseTextB = false
|
|
|
} else {
|
|
|
this.isOutline = true
|
|
|
this.isOutline2 = true
|
|
@@ -13698,6 +13793,8 @@ export default {
|
|
|
this.aiJson.aiTaskG2 = this.aiJson.aiTaskG2 ? this.aiJson.aiTaskG2 : '请根据<教学任务教案> 和 #范例 为该教学任务输出学生任务单中的互动工具列表。你的任务是,根据教案中提到的学生活动,为学生选择一些平台上有的互动工具,允许他们提交“证据”(即过程性成果)来展示他们的学习进度或者证明他们的学习成果。举例:如果学生活动有观看视频回答问题,那么你就为这一活动匹配选择【问答】工具,允许学生回答问题或者提出他们自己的疑问,如果学生活动有需要学生设计实验或者撰写报告,选用【文档】工具,如果需要学生记录数据,选用【表格】工具,如果需要学生整理或者梳理信息选用【思维导图】,如果需要学生绘制草图,选用【白板】,如果需要学生提交视频,图片,或者ppt,选用【作业提交】。你的输出需要符合# 输出格式与要求'
|
|
|
this.aiJson.aiTaskG3 = this.aiJson.aiTaskG3 ? this.aiJson.aiTaskG3 : '请根据<教学任务教案> 和 #范例 为该教学任务输出学生任务单中的目标和评价系统。你最主要的任务是提取教案中目标以及评价标准。你的输出需要符合# 输出格式与要求'
|
|
|
|
|
|
+ this.aiJson.agentid = this.aiJson.agentid ? this.aiJson.agentid : '8e71322c-6c2a-11ef-8ce0-12e77c4cb76b'
|
|
|
+ this.aiJson.sagentid = this.aiJson.sagentid ? this.aiJson.sagentid : ''
|
|
|
this.templateid = res.data[3][0].template;
|
|
|
}catch(error){
|
|
|
console.error(error)
|
|
@@ -13725,12 +13822,13 @@ export default {
|
|
|
this.isuseT = JSON.parse(res.data[0][0].setting).isuseT ? JSON.parse(res.data[0][0].setting).isuseT : JSON.parse(res.data[0][0].setting).isuseT === false ? false : false;
|
|
|
this.mode = JSON.parse(res.data[0][0].setting).mode ? JSON.parse(res.data[0][0].setting).mode : 1;
|
|
|
this.targetCourseText2 = JSON.parse(res.data[0][0].setting).targetCourseText2 ? JSON.parse(res.data[0][0].setting).targetCourseText2 : '';
|
|
|
+ this.chatid = JSON.parse(res.data[0][0].setting).chatid ? JSON.parse(res.data[0][0].setting).chatid : uuidv4();
|
|
|
if(this.targetCourseText2 || (!this.teacherCourseText)){
|
|
|
this.courseTextBool = true
|
|
|
}
|
|
|
- if(!this.teacherCourseText && !this.teacherCourseText){
|
|
|
- this.isuseT = false
|
|
|
- }
|
|
|
+ // if(!this.teacherCourseText && !this.targetCourseText2){
|
|
|
+ // this.isuseT = 1
|
|
|
+ // }
|
|
|
}catch(error){
|
|
|
console.error(error)
|
|
|
}
|
|
@@ -13848,6 +13946,9 @@ export default {
|
|
|
this.aiJson.aiTaskG1 = this.aiJson.aiTaskG1 ? this.aiJson.aiTaskG1 : '请根据<教学任务教案> 和 #范例 为该教学任务输出学生任务单中的任务描述。你的主要任务是输出任务描述,用亲切的口吻告诉学生他们需要做什么。你的输出需要符合# 输出格式与要求'
|
|
|
this.aiJson.aiTaskG2 = this.aiJson.aiTaskG2 ? this.aiJson.aiTaskG2 : '请根据<教学任务教案> 和 #范例 为该教学任务输出学生任务单中的互动工具列表。你的任务是,根据教案中提到的学生活动,为学生选择一些平台上有的互动工具,允许他们提交“证据”(即过程性成果)来展示他们的学习进度或者证明他们的学习成果。举例:如果学生活动有观看视频回答问题,那么你就为这一活动匹配选择【问答】工具,允许学生回答问题或者提出他们自己的疑问,如果学生活动有需要学生设计实验或者撰写报告,选用【文档】工具,如果需要学生记录数据,选用【表格】工具,如果需要学生整理或者梳理信息选用【思维导图】,如果需要学生绘制草图,选用【白板】,如果需要学生提交视频,图片,或者ppt,选用【作业提交】。你的输出需要符合# 输出格式与要求'
|
|
|
this.aiJson.aiTaskG3 = this.aiJson.aiTaskG3 ? this.aiJson.aiTaskG3 : '请根据<教学任务教案> 和 #范例 为该教学任务输出学生任务单中的目标和评价系统。你最主要的任务是提取教案中目标以及评价标准。你的输出需要符合# 输出格式与要求'
|
|
|
+
|
|
|
+ this.aiJson.agentid = this.aiJson.agentid ? this.aiJson.agentid : '8e71322c-6c2a-11ef-8ce0-12e77c4cb76b'
|
|
|
+ this.aiJson.sagentid = this.aiJson.sagentid ? this.aiJson.sagentid : ''
|
|
|
if(res.data[0][0].cpote){
|
|
|
try {
|
|
|
this.cpote = JSON.parse(res.data[0][0].cpote);
|
|
@@ -13870,12 +13971,13 @@ export default {
|
|
|
this.isuseT = JSON.parse(res.data[0][0].setting).isuseT ? JSON.parse(res.data[0][0].setting).isuseT : JSON.parse(res.data[0][0].setting).isuseT === false ? false : false;
|
|
|
this.mode = JSON.parse(res.data[0][0].setting).mode ? JSON.parse(res.data[0][0].setting).mode : 1;
|
|
|
this.targetCourseText2 = JSON.parse(res.data[0][0].setting).targetCourseText2 ? JSON.parse(res.data[0][0].setting).targetCourseText2 : '';
|
|
|
+ this.chatid = JSON.parse(res.data[0][0].setting).chatid ? JSON.parse(res.data[0][0].setting).chatid : uuidv4();
|
|
|
if(this.targetCourseText2 || (!this.teacherCourseText)){
|
|
|
this.courseTextBool = true
|
|
|
}
|
|
|
- if(!this.teacherCourseText && !this.teacherCourseText){
|
|
|
- this.isuseT = false
|
|
|
- }
|
|
|
+ // if(!this.teacherCourseText && !this.targetCourseText2){
|
|
|
+ // this.isuseT = 1
|
|
|
+ // }
|
|
|
}catch(error){
|
|
|
console.error(error)
|
|
|
}
|
|
@@ -14622,6 +14724,15 @@ export default {
|
|
|
forceUpdate() {
|
|
|
this.$forceUpdate();
|
|
|
},
|
|
|
+ forceUpdate2() {
|
|
|
+ setTimeout(() => {
|
|
|
+ this.courseText += "*0*%*";
|
|
|
+ setTimeout(() => {
|
|
|
+ this.courseText = this.courseText.replaceAll("*0*%*", "");
|
|
|
+ }, 0);
|
|
|
+ }, 100);
|
|
|
+ this.$forceUpdate();
|
|
|
+ },
|
|
|
deletEList(index, tIndex, eIndex) {
|
|
|
this.unitJson[index].chapterInfo[0].taskJson[tIndex].eList.splice(
|
|
|
eIndex,
|
|
@@ -15310,6 +15421,52 @@ export default {
|
|
|
this.isPasteTask = true;
|
|
|
}
|
|
|
},
|
|
|
+ getPaste2() {
|
|
|
+ let iframe = document.querySelectorAll(".interIframe")[0];
|
|
|
+ const turndownService = new TurndownService();
|
|
|
+
|
|
|
+ let confirm_next_step = (iframe && iframe.contentWindow) ? iframe.contentWindow.confirm_next_step : '';
|
|
|
+ let work_area_text = (iframe && iframe.contentWindow) ? iframe.contentWindow.work_area_text : '';
|
|
|
+ if(confirm_next_step){
|
|
|
+ this.courseText += turndownService.turndown(confirm_next_step)
|
|
|
+ iframe.contentWindow.confirm_next_step = ''
|
|
|
+ }
|
|
|
+ if(work_area_text && work_area_text.aiContent){
|
|
|
+ this.courseText += turndownService.turndown(work_area_text.aiContent)
|
|
|
+ iframe.contentWindow.work_area_text = ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ setCourseInfo(){
|
|
|
+ let courseInfo = ''
|
|
|
+ let sub = []
|
|
|
+ let mclass = []
|
|
|
+ if (this.courseTypeId.length) {
|
|
|
+ for (var i = 0; i < this.courseTypeId.length; i++) {
|
|
|
+ let _sid = this.courseTypeId[i]
|
|
|
+ for (var j = 0; j < this.CourseTypeJson['34629907-d02f-11ec-8c78-005056b86db5'].length; j++) {
|
|
|
+ if (_sid == this.CourseTypeJson['34629907-d02f-11ec-8c78-005056b86db5'][j].id) {
|
|
|
+ sub.push(this.CourseTypeJson['34629907-d02f-11ec-8c78-005056b86db5'][j].name)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (var j = 0; j < this.CourseTypeJson['34628934-d02f-11ec-8c78-005056b86db5'].length; j++) {
|
|
|
+ if (_sid == this.CourseTypeJson['34628934-d02f-11ec-8c78-005056b86db5'][j].id) {
|
|
|
+ mclass.push(this.CourseTypeJson['34628934-d02f-11ec-8c78-005056b86db5'][j].name)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(this.courseName){
|
|
|
+ courseInfo = `课程名称:${this.courseName} `
|
|
|
+ }
|
|
|
+ if(mclass.length){
|
|
|
+ courseInfo += `年级:${mclass.join(',')} `
|
|
|
+ }
|
|
|
+ if(sub.length){
|
|
|
+ courseInfo += `学科:${sub.join(',')} `
|
|
|
+ }
|
|
|
+ console.log(courseInfo)
|
|
|
+ window.course_info = courseInfo
|
|
|
+ },
|
|
|
setCover() {
|
|
|
var _this = this;
|
|
|
if(_this.cover.length){
|
|
@@ -15836,6 +15993,12 @@ export default {
|
|
|
}else {
|
|
|
this.unitJson[0].chapterInfo[0].taskJson[index].isTask3 = true
|
|
|
}
|
|
|
+ setTimeout(() => {
|
|
|
+ this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3 += "*0*%*";
|
|
|
+ setTimeout(() => {
|
|
|
+ this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3 = this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll("*0*%*", "");
|
|
|
+ }, 0);
|
|
|
+ }, 100);
|
|
|
this.$forceUpdate();
|
|
|
},
|
|
|
editTask2(index){
|
|
@@ -15844,6 +16007,12 @@ export default {
|
|
|
}else {
|
|
|
this.unitJson[0].chapterInfo[0].taskJson[index].isTask2 = true
|
|
|
}
|
|
|
+ setTimeout(() => {
|
|
|
+ this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail2 += "*0*%*";
|
|
|
+ setTimeout(() => {
|
|
|
+ this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail2 = this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail2.replaceAll("*0*%*", "");
|
|
|
+ }, 0);
|
|
|
+ }, 100);
|
|
|
this.$forceUpdate();
|
|
|
},
|
|
|
openRule(i, k){
|
|
@@ -15860,6 +16029,12 @@ export default {
|
|
|
}else {
|
|
|
this.cpote[index] = true
|
|
|
}
|
|
|
+ setTimeout(() => {
|
|
|
+ this.cpote[index.replace('s','')] += "*0*%*";
|
|
|
+ setTimeout(() => {
|
|
|
+ this.cpote[index.replace('s','')] = this.cpote[index.replace('s','')].replaceAll("*0*%*", "");
|
|
|
+ }, 0);
|
|
|
+ }, 100);
|
|
|
this.$forceUpdate();
|
|
|
},
|
|
|
clickGenTT(){
|
|
@@ -15887,6 +16062,57 @@ export default {
|
|
|
|
|
|
this.courseTextBool = true
|
|
|
},
|
|
|
+ changeIsuseT(){
|
|
|
+ if(this.isuseT == 1){
|
|
|
+ this.courseTextB = false
|
|
|
+ }else{
|
|
|
+ if(this.courseText){
|
|
|
+ this.courseTextB = false
|
|
|
+ }else{
|
|
|
+ this.courseTextB = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ openInterPanSetting(){
|
|
|
+ this.interSetting = !this.interSetting
|
|
|
+ if(this.interSetting){
|
|
|
+ if(this.istemplate == 1){
|
|
|
+ this.agentid = this.aiJson.agentid
|
|
|
+ }else {
|
|
|
+ this.agentid = this.aiJson.sagentid
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ this.agentid = ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ setAgentid(){
|
|
|
+ if(this.agentid.trim()){
|
|
|
+ this.$message.error('请输入工作流链接')
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(this.istemplate == 1){
|
|
|
+ this.aiJson.agentid = this.agentid.trim()
|
|
|
+ }else {
|
|
|
+ this.aiJson.sagentid = this.agentid.trim()
|
|
|
+ }
|
|
|
+ this.interFlash = false
|
|
|
+ setTimeout(() => {
|
|
|
+ this.interFlash = true
|
|
|
+ }, 100);
|
|
|
+ this.interSetting = false
|
|
|
+ },
|
|
|
+ rebuildAgentid(){
|
|
|
+ this.aiJson.sagentid = ''
|
|
|
+ this.interFlash = false
|
|
|
+ setTimeout(() => {
|
|
|
+ this.interFlash = true
|
|
|
+ }, 100);
|
|
|
+ this.interSetting = false
|
|
|
+ },
|
|
|
+ cancelInterSetting(){
|
|
|
+ this.agentid = ''
|
|
|
+ this.interSetting = false
|
|
|
+ },
|
|
|
openAiDialog2(clickType, type, callback, index, tindex){
|
|
|
this.$confirm("重新生成会影响已生成内容,确定重新生成吗?", "提示", {
|
|
|
confirmButtonText: "确定",
|
|
@@ -16070,6 +16296,13 @@ export default {
|
|
|
this.aiCallBack = callback
|
|
|
|
|
|
} else if (type == "aiTeacher2") {
|
|
|
+ if(this.ttaskDetailLoading5.length){
|
|
|
+ let num = parseInt(this.ttaskDetailLoading5[0].split("task-")[1]) + 1
|
|
|
+ this.$message({
|
|
|
+ message: "教案任务"+num+"描述还未生成完,请前往查看,回答完毕后再次操作。",
|
|
|
+ type: "warning"
|
|
|
+ });
|
|
|
+ }
|
|
|
this.aitype = "aiTeacher2"
|
|
|
this.aiText = this.aiJson.teacherDetail2 ? this.aiJson.teacherDetail2 : '请根据<任务名>、<任务描述>,<课程简要描述>,为该任务设计详细的教案,教案需要包含该任务的教学目标,教学过程(包含分步骤的教师活动和学生活动,教师活动与学生活动应该一一对应),相关知识点的讲解,练习(练习需要包含示例答案)。'
|
|
|
} else if (type == "aiTeacher3") {
|
|
@@ -17151,7 +17384,7 @@ ${this.courseText && this.aiCallBack == 2 ? '注意,优化原有的<参考内
|
|
|
// });
|
|
|
this.isOutlineCancelToken = this.ajax.setCancelSource();
|
|
|
let parm = {
|
|
|
- assistant_id: '6063369f-289a-11ef-8bf4-12e77c4cb76b',
|
|
|
+ assistant_id: '6063369f-289a-11ef-8bf4-12e77c4cb76b',//
|
|
|
message: [{"type":"text", "text":messages}],
|
|
|
session_name: uuidv4(),
|
|
|
userId: this.userid,
|
|
@@ -19586,8 +19819,8 @@ ${msg}
|
|
|
// 处理错误,可以尝试重新连接
|
|
|
console.log('EventSource error:', event);
|
|
|
_this.$message.error("哎呀,请求太多了,服务器忙不过来了,请稍等再重试")
|
|
|
- _this.taskDetailLoading.splice(this.taskDetailLoading.indexOf(loading), 1)
|
|
|
- _this.ttaskDetailLoading.splice(this.ttaskDetailLoading.indexOf(loading), 1)
|
|
|
+ _this.taskDetailLoading.splice(_this.taskDetailLoading.indexOf(loading), 1)
|
|
|
+ _this.ttaskDetailLoading.splice(_this.ttaskDetailLoading.indexOf(loading), 1)
|
|
|
_this.isOutlineTaskCancelToken[_tindex2] = null
|
|
|
_this.isOutlineTaskCancelSource[_tindex2].close();
|
|
|
_this.isOutlineTaskCancelSource[_tindex2] = null;
|
|
@@ -19931,8 +20164,8 @@ ${taskArray.length ? '其他任务大纲内容' + taskArray.join(',') : ''}
|
|
|
// 处理错误,可以尝试重新连接
|
|
|
console.log('EventSource error:', event);
|
|
|
_this.$message.error("哎呀,请求太多了,服务器忙不过来了,请稍等再重试")
|
|
|
- _this.taskDetailLoading.splice(this.taskDetailLoading.indexOf(loading), 1)
|
|
|
- _this.ttaskDetailLoading.splice(this.ttaskDetailLoading.indexOf(loading), 1)
|
|
|
+ _this.taskDetailLoading.splice(_this.taskDetailLoading.indexOf(loading), 1)
|
|
|
+ _this.ttaskDetailLoading.splice(_this.ttaskDetailLoading.indexOf(loading), 1)
|
|
|
_this.isOutlineTaskCancelToken[_tindex2] = null
|
|
|
_this.isOutlineTaskCancelSource[_tindex2].close();
|
|
|
_this.isOutlineTaskCancelSource[_tindex2] = null;
|
|
@@ -20103,8 +20336,8 @@ ${_this.aiCallBack.taskDetail}
|
|
|
// 处理错误,可以尝试重新连接
|
|
|
console.log('EventSource error:', event);
|
|
|
_this.$message.error("哎呀,请求太多了,服务器忙不过来了,请稍等再重试")
|
|
|
- _this.taskDetailLoading2.splice(this.taskDetailLoading2.indexOf(loading), 1)
|
|
|
- _this.ttaskDetailLoading2.splice(this.ttaskDetailLoading2.indexOf(loading), 1)
|
|
|
+ _this.taskDetailLoading2.splice(_this.taskDetailLoading2.indexOf(loading), 1)
|
|
|
+ _this.ttaskDetailLoading2.splice(_this.ttaskDetailLoading2.indexOf(loading), 1)
|
|
|
_source.close();
|
|
|
};
|
|
|
},
|
|
@@ -20275,8 +20508,8 @@ ${msg} 输出格式和内容要求参考#格式与要求
|
|
|
// 处理错误,可以尝试重新连接
|
|
|
console.log('EventSource error:', event);
|
|
|
_this.$message.error("哎呀,请求太多了,服务器忙不过来了,请稍等再重试")
|
|
|
- _this.taskDetailLoading3.splice(this.taskDetailLoading3.indexOf(loading), 1)
|
|
|
- _this.ttaskDetailLoading3.splice(this.ttaskDetailLoading3.indexOf(loading), 1)
|
|
|
+ _this.taskDetailLoading3.splice(_this.taskDetailLoading3.indexOf(loading), 1)
|
|
|
+ _this.ttaskDetailLoading3.splice(_this.ttaskDetailLoading3.indexOf(loading), 1)
|
|
|
_source.close();
|
|
|
};
|
|
|
},
|
|
@@ -20644,8 +20877,8 @@ ${_text2}`
|
|
|
// 处理错误,可以尝试重新连接
|
|
|
console.log('EventSource error:', event);
|
|
|
_this.$message.error("哎呀,请求太多了,服务器忙不过来了,请稍等再重试")
|
|
|
- _this.taskDetailLoading5.splice(this.taskDetailLoading5.indexOf(loading), 1)
|
|
|
- _this.ttaskDetailLoading5.splice(this.ttaskDetailLoading5.indexOf(loading), 1)
|
|
|
+ _this.taskDetailLoading5.splice(_this.taskDetailLoading5.indexOf(loading), 1)
|
|
|
+ _this.ttaskDetailLoading5.splice(_this.ttaskDetailLoading5.indexOf(loading), 1)
|
|
|
_source.close();
|
|
|
};
|
|
|
},
|
|
@@ -20836,8 +21069,8 @@ ${(_this.templateid == "4480d65a-1e48-11ef-bee5-005056b86db5" || _this.templatei
|
|
|
// 处理错误,可以尝试重新连接
|
|
|
console.log('EventSource error:', event);
|
|
|
_this.$message.error("哎呀,请求太多了,服务器忙不过来了,请稍等再重试")
|
|
|
- _this.taskDetailLoading5.splice(this.taskDetailLoading5.indexOf(loading), 1)
|
|
|
- _this.ttaskDetailLoading5.splice(this.ttaskDetailLoading5.indexOf(loading), 1)
|
|
|
+ _this.taskDetailLoading5.splice(_this.taskDetailLoading5.indexOf(loading), 1)
|
|
|
+ _this.ttaskDetailLoading5.splice(_this.ttaskDetailLoading5.indexOf(loading), 1)
|
|
|
_source.close();
|
|
|
};
|
|
|
},
|
|
@@ -22318,16 +22551,16 @@ ${msg}
|
|
|
// this.timer = null;
|
|
|
// clearInterval(this.timer2);
|
|
|
// this.timer2 = null;
|
|
|
- // clearInterval(this.pasteTimer);
|
|
|
- // this.pasteTimer = null;
|
|
|
+ clearInterval(this.pasteTimer);
|
|
|
+ this.pasteTimer = null;
|
|
|
},
|
|
|
beforeRouteLeave(to, from, next) {
|
|
|
// clearTimeout(this.timer);
|
|
|
// this.timer = null;
|
|
|
// clearInterval(this.timer2);
|
|
|
// this.timer2 = null;
|
|
|
- // clearInterval(this.pasteTimer);
|
|
|
- // this.pasteTimer = null;
|
|
|
+ clearInterval(this.pasteTimer);
|
|
|
+ this.pasteTimer = null;
|
|
|
next();
|
|
|
},
|
|
|
created() {
|
|
@@ -22356,6 +22589,8 @@ ${msg}
|
|
|
this.aiJson.aiTaskG2 = this.aiJson.aiTaskG2 ? this.aiJson.aiTaskG2 : '请根据<教学任务教案> 和 #范例 为该教学任务输出学生任务单中的互动工具列表。你的任务是,根据教案中提到的学生活动,为学生选择一些平台上有的互动工具,允许他们提交“证据”(即过程性成果)来展示他们的学习进度或者证明他们的学习成果。举例:如果学生活动有观看视频回答问题,那么你就为这一活动匹配选择【问答】工具,允许学生回答问题或者提出他们自己的疑问,如果学生活动有需要学生设计实验或者撰写报告,选用【文档】工具,如果需要学生记录数据,选用【表格】工具,如果需要学生整理或者梳理信息选用【思维导图】,如果需要学生绘制草图,选用【白板】,如果需要学生提交视频,图片,或者ppt,选用【作业提交】。你的输出需要符合# 输出格式与要求'
|
|
|
this.aiJson.aiTaskG3 = this.aiJson.aiTaskG3 ? this.aiJson.aiTaskG3 : '请根据<教学任务教案> 和 #范例 为该教学任务输出学生任务单中的目标和评价系统。你最主要的任务是提取教案中目标以及评价标准。你的输出需要符合# 输出格式与要求'
|
|
|
|
|
|
+ this.aiJson.agentid = this.aiJson.agentid ? this.aiJson.agentid : '8e71322c-6c2a-11ef-8ce0-12e77c4cb76b'
|
|
|
+ this.aiJson.sagentid = this.aiJson.sagentid ? this.aiJson.sagentid : ''
|
|
|
}
|
|
|
this.loading = false;
|
|
|
// this.timer2 = setInterval(() => {
|
|
@@ -22364,6 +22599,9 @@ ${msg}
|
|
|
// this.pasteTimer = setInterval(() => {
|
|
|
// this.getPaste();
|
|
|
// }, 1000);
|
|
|
+ this.pasteTimer = setInterval(() => {
|
|
|
+ this.getPaste2();
|
|
|
+ }, 500);
|
|
|
setTimeout(() => {
|
|
|
// this.selectAllType();
|
|
|
|
|
@@ -22533,6 +22771,20 @@ ${msg}
|
|
|
margin-right: 10px;
|
|
|
}
|
|
|
|
|
|
+.leftBar2{
|
|
|
+ width: 400px;
|
|
|
+ min-width: 400px;
|
|
|
+ height: calc(100% - 50px);
|
|
|
+ overflow: auto;
|
|
|
+ border-radius: 5px;
|
|
|
+ margin: 25px auto;
|
|
|
+ box-sizing: border-box;
|
|
|
+ margin-right: 10px;
|
|
|
+ background: #fff;
|
|
|
+ padding: 5px;
|
|
|
+ border-radius: 5px;
|
|
|
+}
|
|
|
+
|
|
|
.basic_box {
|
|
|
margin: 0 auto;
|
|
|
position: relative;
|
|
@@ -26615,6 +26867,7 @@ ol {
|
|
|
font-size: 16px;
|
|
|
background: #f4f4f4;
|
|
|
border-radius: 5px;
|
|
|
+ word-break: break-word;
|
|
|
}
|
|
|
|
|
|
.info_box_t{
|
|
@@ -26644,6 +26897,10 @@ ol {
|
|
|
margin: 0 5px 0 0;
|
|
|
}
|
|
|
|
|
|
+.info_radio >>> .el-radio, .el-radio__input{
|
|
|
+ line-height: 18px;
|
|
|
+ height: 18px;
|
|
|
+}
|
|
|
|
|
|
.mode_box{
|
|
|
display: flex;
|
|
@@ -26710,4 +26967,92 @@ ol {
|
|
|
.rateSwitch >>> .el-switch__label--right.is-active::before{
|
|
|
background-image: url(../../../assets/icon/new/u_op.png);
|
|
|
}
|
|
|
+
|
|
|
+.inter_box{
|
|
|
+ min-width: calc(50%);
|
|
|
+ min-height: 500px;
|
|
|
+ margin-right: 10px;
|
|
|
+ border: 1px solid #c7c7c7;
|
|
|
+ border-radius: 0px 5px 5px 5px;
|
|
|
+ overflow: hidden;
|
|
|
+ position: relative;
|
|
|
+ box-sizing: border-box;
|
|
|
+}
|
|
|
+
|
|
|
+.inter_box::before{
|
|
|
+ content:'对话区';
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ top: 0;
|
|
|
+ display: block;
|
|
|
+ padding: 8px 10px;
|
|
|
+ background: #e0eafb;
|
|
|
+ color: #98a0ac;
|
|
|
+ font-size: 14px;
|
|
|
+ border-radius: 0 15px 15px 0;
|
|
|
+}
|
|
|
+
|
|
|
+.inter_Detailbox{
|
|
|
+ border: 1px solid #c7c7c7;
|
|
|
+ border-radius: 0px 5px 5px 5px;
|
|
|
+ overflow: hidden;
|
|
|
+ position: relative;
|
|
|
+ box-sizing: border-box;
|
|
|
+}
|
|
|
+
|
|
|
+.inter_Detailbox::before{
|
|
|
+ content:'编辑区';
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ top: 0;
|
|
|
+ display: block;
|
|
|
+ padding: 8px 10px;
|
|
|
+ background: #e0eafb;
|
|
|
+ color: #98a0ac;
|
|
|
+ font-size: 14px;
|
|
|
+ border-radius: 0 15px 15px 0;
|
|
|
+}
|
|
|
+
|
|
|
+.inter_box > iframe{
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ border: none;
|
|
|
+}
|
|
|
+.inter_setting{
|
|
|
+ display: block;
|
|
|
+ background-image: url(../../../assets/icon/course/setting.svg);
|
|
|
+ background-size: 100% 100%;
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ cursor: pointer;
|
|
|
+ margin-left: 10px;
|
|
|
+}
|
|
|
+.inter_setting_panel{
|
|
|
+ position: absolute;
|
|
|
+ left: 110px;
|
|
|
+ top: 30px;
|
|
|
+ background: #fff;
|
|
|
+ border-radius: 5px;
|
|
|
+ box-shadow: 0px 0px 2px 1px #00000017;
|
|
|
+ padding: 10px;
|
|
|
+}
|
|
|
+.panel_title{
|
|
|
+ text-align: center;
|
|
|
+ font-size: 18px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+}
|
|
|
+.panel_tips{
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 14px;
|
|
|
+ text-align: center;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ color: #6d6d6d;
|
|
|
+}
|
|
|
+.panel_input{
|
|
|
+ margin-bottom: 10px;
|
|
|
+}
|
|
|
+.panel_button{
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+}
|
|
|
</style>
|