|
@@ -28,7 +28,7 @@
|
|
|
<!-- <div style="display: flex; margin-top: 20px; position: relative"> -->
|
|
|
<!-- @mouseenter="stepDisplay(true)"
|
|
|
@mouseleave="stepDisplay(false)" -->
|
|
|
- <div ref="stepBox" class="stepBox" :style="{overflow:istemplate == 1 ? 'auto' : 'auto'}" @mousewheel="scrollChange">
|
|
|
+ <div ref="stepBox" class="stepBox" :style="{overflow:istemplate == 1 ? 'auto' : 'auto'}" @scroll="scrollChange">
|
|
|
<div class="stepBg" v-if="false">
|
|
|
<div :class="{ stepTop: isStepDisplay, stepTop2: !isStepDisplay }">
|
|
|
<div v-if="steps > 0 && isStepDisplay" class="first" @click="navSteps(1)">
|
|
@@ -1743,9 +1743,9 @@
|
|
|
</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="courseTextE"
|
|
|
- placeholder="请输入学习任务内容" v-if="courseTextB && interPan" @change="textAreaChange('courseText')"></textarea>
|
|
|
+ placeholder="请输入学习任务内容" v-if="courseTextB && interPan" @change="textAreaChange('courseTextE')"></textarea>
|
|
|
<textarea v-autoHeight="68" rows="2" class="binfo_input binfo_textarea" cols v-model="courseTextE"
|
|
|
- placeholder="请输入学习任务内容" v-else-if="courseTextB && !interPan" @change="textAreaChange('courseText')"></textarea>
|
|
|
+ placeholder="请输入学习任务内容" v-else-if="courseTextB && !interPan" @change="textAreaChange('courseTextE')"></textarea>
|
|
|
<div class="markBox vditor-reset" style="white-space:pre-wrap;" v-text="courseTextE" :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(courseTextE)" v-else></div>
|
|
|
<div class="op_box" :class="{op_box_isquote: isQuote['courseTextE']}">
|
|
@@ -2586,11 +2586,11 @@
|
|
|
<div class="buttonBox">
|
|
|
<div @click="openAiDialog(2, 'aiTaskName'), addCourseBehavior('courseBehavior2', `点击学历案-生成所有任务名`)" v-if="panTaskName() == 0">生成所有任务名</div>
|
|
|
<div @click="openAiDialog2(2, 'aiTask3','all', ''), addCourseBehavior('courseBehavior2', `点击学历案-重新生成所有任务`)" v-if="panTaskName() > 0 && panTask() > 0">重新生成所有任务</div>
|
|
|
- <div @click="openAiDialog2(2, 'aiTask3','all', ''), addCourseBehavior('courseBehavior2', `点击学历案-生成所有任务按钮`)" v-else-if="panTaskName() > 0">生成所有任务按钮</div>
|
|
|
- <div @click="openAiDialog(2, 'aiTaskG2', 'all'), addCourseBehavior('courseBehavior2', `点击学历案-一键生成所有工具按钮`)" v-if="panTool() == 0">一键生成所有工具</div>
|
|
|
- <div @click="openAiDialog2(2, 'aiTaskG2', 'all'), addCourseBehavior('courseBehavior2', `点击学历案-一键生成所有工具按钮`)" v-if="panTool() > 0">重新生成所有工具</div>
|
|
|
+ <div @click="openAiDialog(2, 'aiTask3','all', ''), addCourseBehavior('courseBehavior2', `点击学历案-生成所有任务按钮`)" v-else-if="panTaskName() > 0">生成所有任务</div>
|
|
|
+ <div @click="openAiDialog(2, 'aiTaskG2', 'all'), addCourseBehavior('courseBehavior2', `点击学历案-一键生成所有工具按钮`)" v-if="panTask() > 0 && panTool() == 0">一键生成所有工具</div>
|
|
|
+ <div @click="openAiDialog2(2, 'aiTaskG2', 'all'), addCourseBehavior('courseBehavior2', `点击学历案-一键生成所有工具按钮`)" v-if="panTask() > 0 && panTool() > 0">重新生成所有工具</div>
|
|
|
<div @click="allEvaCan(), addCourseBehavior('courseBehavior2', `点击学历案-一键生成所有评价按钮`)" v-if="panTool() > 0">{{panTaskElist() == 0 && panEvaCont() == 0 ? '一键生成所有评价' : '重新生成所有评价'}}</div>
|
|
|
- <div @click="exportTaskEA(), addCourseBehavior('courseBehavior2', `点击学历案-导出评价和学历案按钮`)">导出评价和学历案</div>
|
|
|
+ <div @click="exportTaskEA(), addCourseBehavior('courseBehavior2', `点击学历案-导出评价和学历案按钮`)" v-if="panEvaCont() > 0">导出评价和学历案</div>
|
|
|
</div>
|
|
|
</button>
|
|
|
<!-- <button class="c_pub_button_confirm3" style="margin: 0 0 0 10px;" @click="openAiDialog2(2, 'aiTask3','all', ''), addCourseBehavior('courseBehavior2', `点击学历案-重新生成所有任务按钮`)">重新生成所有任务</button> -->
|
|
@@ -2704,7 +2704,7 @@
|
|
|
@contextmenu.prevent="openAiDialog2(1, 'aiTask2',itemTaskIndex)"
|
|
|
@click="openAiDialog2(2, 'aiTask2',itemTaskIndex)">重新生成任务</button>
|
|
|
</el-tooltip> -->
|
|
|
- <div style="display: flex">
|
|
|
+ <div style="display: flex" v-if="panTaskName() > 0">
|
|
|
<el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
|
|
|
<button class="c_pub_button_confirm" style="margin: 0 0 0 20px;"
|
|
|
@contextmenu.prevent="openAiDialog2(1, 'aiTask3',itemTaskIndex), addCourseBehavior('courseBehavior2', `右键学历案-任务${itemTaskIndex + 1}-重新生成任务按钮`)"
|
|
@@ -8098,6 +8098,19 @@ export default {
|
|
|
$(".stepsBottom2")[0].style.top = "0px";
|
|
|
this.heightPx = $(".rb_c_box_right")[0].offsetHeight - 50 + 'px'
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ const sections = document.querySelectorAll('.taskBorder');
|
|
|
+ const scrollPosition = $(".stepBox")[0].scrollTop;
|
|
|
+
|
|
|
+ for (let index = 0; index < sections.length; index++) {
|
|
|
+ const section = sections[index];
|
|
|
+ const offsetTop = section.offsetTop + $('.rightBox')[0].offsetHeight + 120;
|
|
|
+ const offsetHeight = section.offsetHeight;
|
|
|
+ if (scrollPosition >= (offsetTop - 100) && scrollPosition < (offsetTop - 100) + offsetHeight) {
|
|
|
+ this.isClickColor = index + 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
addHw(e) {
|
|
@@ -11790,6 +11803,9 @@ ${_this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll('#',''
|
|
|
type: "warning",
|
|
|
})
|
|
|
.then(() => {
|
|
|
+ if(_this.unitJson[i].chapterInfo[j].taskJson[taskI].chapterData[ic].fileid && _this.knowFileids.indexOf(_this.unitJson[i].chapterInfo[j].taskJson[taskI].chapterData[ic].fileid) != -1){
|
|
|
+ _this.knowFileids.splice(_this.knowFileids.indexOf(_this.unitJson[i].chapterInfo[j].taskJson[taskI].chapterData[ic].fileid), 1)
|
|
|
+ }
|
|
|
_this.unitJson[i].chapterInfo[j].taskJson[taskI].chapterData.splice(
|
|
|
ic,
|
|
|
1
|
|
@@ -12369,7 +12385,7 @@ ${_this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll('#',''
|
|
|
this.inputShow = true;
|
|
|
|
|
|
if (cPan == 2) {
|
|
|
- this.steps--;
|
|
|
+ // this.steps--;
|
|
|
return;
|
|
|
}
|
|
|
for (var i = 0; i < this.unitJson.length; i++) {
|
|
@@ -16055,8 +16071,10 @@ ${_this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll('#',''
|
|
|
// if (this.unitJson[this.unitIndex].chapterInfo[0].taskJson[i].toolOpen) {
|
|
|
// this.unitJson[this.unitIndex].chapterInfo[0].taskJson[i].toolOpen = false
|
|
|
// } else {
|
|
|
- document.querySelectorAll(".basic_box")[0].scrollTop =
|
|
|
- document.querySelectorAll(".taskBorder")[i].offsetTop - 100;
|
|
|
+ // document.querySelectorAll(".basic_box")[0].scrollTop =
|
|
|
+ // document.querySelectorAll(".taskBorder")[i].offsetTop - 100;
|
|
|
+ document.querySelectorAll(".stepBox")[0].scrollTop =
|
|
|
+ $('.rightBox')[0].offsetHeight + document.querySelectorAll(".taskBorder")[i].offsetTop + 30;
|
|
|
this.isClickColor = i + 1;
|
|
|
this.unitJson[this.unitIndex].chapterInfo[0].taskJson[i].toolOpen = true;
|
|
|
// }
|
|
@@ -16537,16 +16555,21 @@ ${_this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll('#',''
|
|
|
if(confirm_next_step){
|
|
|
this.courseTextE += turndownService.turndown(confirm_next_step)
|
|
|
iframe.contentWindow.confirm_next_step = ''
|
|
|
+ this.courseTextB = false
|
|
|
}
|
|
|
if(work_area_text && work_area_text.aiContent){
|
|
|
this.courseTextE += turndownService.turndown(work_area_text.aiContent)
|
|
|
iframe.contentWindow.work_area_text = ''
|
|
|
+ this.courseTextB = false
|
|
|
}
|
|
|
},
|
|
|
textAreaChange(type, index){
|
|
|
if(type == 'courseText'){
|
|
|
this.addCourseBehavior('courseBehavior2', `手动修改课程概况信息-${this.courseText}`)
|
|
|
}
|
|
|
+ if(type == 'courseTextE'){
|
|
|
+ this.addCourseBehavior('courseBehavior2', `手动修改课程学习任务内容-${this.courseText}`)
|
|
|
+ }
|
|
|
if(type == 'targetCourseText2'){
|
|
|
this.addCourseBehavior('courseBehavior2', `手动修改课程目标信息-${this.targetCourseText2}`)
|
|
|
}
|
|
@@ -17609,7 +17632,7 @@ ${_this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll('#',''
|
|
|
let _fileid = await this.createFileid(this.infoData[i].url)
|
|
|
if(_fileid){
|
|
|
this.infoData[i].fileid = _fileid == 1 ? '' : _fileid
|
|
|
- _this.$forceUpdate();
|
|
|
+ this.$forceUpdate();
|
|
|
if(_fileid != 1){
|
|
|
fileid.push(_fileid)
|
|
|
}
|
|
@@ -17723,6 +17746,13 @@ ${_this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll('#',''
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
+ if(!this.unitJson[this.unitIndex].chapterInfo[0].taskJson[0].chapterData.length){
|
|
|
+ this.$message({
|
|
|
+ message: "请上传您已有的教案和PPT",
|
|
|
+ type: "warning"
|
|
|
+ })
|
|
|
+ return;
|
|
|
+ }
|
|
|
this.aitype = type
|
|
|
this.aiText = this.aiJson.aiTaskG1
|
|
|
this.aiText2 = this.aiJson.aiTaskG2
|
|
@@ -17762,13 +17792,13 @@ ${_this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll('#',''
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
- if(callback != 'all' && !this.unitJson[0].chapterInfo[0].taskJson[callback].taskDetail3){
|
|
|
- this.$message({
|
|
|
- message: `请先生成任务${callback}的教案在执行此操作`,
|
|
|
- type: "warning"
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
+ // if(callback != 'all' && !this.unitJson[0].chapterInfo[0].taskJson[callback].taskDetail3){
|
|
|
+ // this.$message({
|
|
|
+ // message: `请先生成任务${callback}的教案在执行此操作`,
|
|
|
+ // type: "warning"
|
|
|
+ // });
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
this.aitype = type
|
|
|
this.aiText = this.aiJson.aiTaskG2
|
|
|
this.aiCallBack = callback
|
|
@@ -18330,7 +18360,7 @@ ${msg}
|
|
|
|
|
|
|
|
|
## 参考资料
|
|
|
-教学任务教案:${_this.unitJson[0].chapterInfo[0].taskJson[ij].taskDetail3 ? _this.unitJson[0].chapterInfo[0].taskJson[ij].taskDetail3.replaceAll('#','').replaceAll('*','').replaceAll('-','').replaceAll('\n','') : ''}
|
|
|
+学习任务内容:${_this.courseTextE}
|
|
|
|
|
|
# 输出格式与要求
|
|
|
任务描述(告诉学生他们需要做什么):
|
|
@@ -18366,7 +18396,7 @@ ${msg}
|
|
|
|
|
|
|
|
|
## 参考资料
|
|
|
-教学任务教案:${this.unitJson[0].chapterInfo[0].taskJson[this.aiCallBack[0]].taskDetail3.replaceAll('#','').replaceAll('*','').replaceAll('-','').replaceAll('\n','')}
|
|
|
+学习任务内容:${this.courseTextE}
|
|
|
|
|
|
# 输出格式与要求
|
|
|
任务描述(告诉学生他们需要做什么):
|
|
@@ -18402,7 +18432,7 @@ ${msg3}
|
|
|
|
|
|
|
|
|
## 参考资料
|
|
|
-教学任务教案:${this.unitJson[0].chapterInfo[0].taskJson[this.aiCallBack].taskDetail3.replaceAll('#','').replaceAll('*','').replaceAll('-','').replaceAll('\n','')}
|
|
|
+学习任务内容:${this.courseTextE}
|
|
|
|
|
|
# 输出格式与要求
|
|
|
核心素养:从教案中提取
|
|
@@ -18426,12 +18456,12 @@ ${msg3}
|
|
|
this.taskGLoading[_task][1] = true
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+ this.$forceUpdate();
|
|
|
let ij = 0;
|
|
|
let _this = this
|
|
|
function processNext() {
|
|
|
if (ij < _this.unitJson[0].chapterInfo[0].taskJson.length) {
|
|
|
- if(!_this.taskGLoading[ij][1] || !_this.unitJson[0].chapterInfo[0].taskJson[ij].taskDetail3){
|
|
|
+ if(!_this.taskGLoading[ij][1]){
|
|
|
_this.taskGLoading[ij][1] = false
|
|
|
ij++;
|
|
|
processNext();
|
|
@@ -18449,7 +18479,7 @@ ${msg2}
|
|
|
|
|
|
|
|
|
## 参考资料
|
|
|
-教学任务教案:${_this.unitJson[0].chapterInfo[0].taskJson[ij].taskDetail3.replaceAll('#','').replaceAll('*','').replaceAll('-','').replaceAll('\n','')}
|
|
|
+学习任务内容:${_this.courseTextE}
|
|
|
|
|
|
# 输出格式与要求
|
|
|
互动工具列表
|
|
@@ -18492,7 +18522,7 @@ ${msg2}
|
|
|
|
|
|
|
|
|
## 参考资料
|
|
|
-教学任务教案:${this.unitJson[0].chapterInfo[0].taskJson[this.aiCallBack].taskDetail3.replaceAll('#','').replaceAll('*','').replaceAll('-','').replaceAll('\n','')}
|
|
|
+学习任务内容:${this.courseTextE}
|
|
|
|
|
|
# 输出格式与要求
|
|
|
互动工具列表
|
|
@@ -18516,6 +18546,8 @@ ${this.languageSetting == 2 ? '还有以下工具:Mind Map Tool、Spreadsheet
|
|
|
// this.taskGLoading[this.aiCallBack[0]][0] = true
|
|
|
// this.taskGLoading[this.aiCallBack[0]][1] = true
|
|
|
this.taskGLoading[this.aiCallBack][1] = true
|
|
|
+ this.$forceUpdate();
|
|
|
+
|
|
|
this.aiGetG322(message2, this.aiCallBack)
|
|
|
}
|
|
|
} else if (this.aitype == "aiTaskName") {
|
|
@@ -20341,10 +20373,13 @@ ${this.courseText && this.aiCallBack[0] == 2 ? '注意,优化原有的<参考
|
|
|
for (var i = 0; i < dArray.length; i++) {
|
|
|
let _task = dArray[i]
|
|
|
if(_this.unitJson[0].chapterInfo[0].taskJson[i]){
|
|
|
- _this.unitJson[0].chapterInfo[0].taskJson[i].task = _task.task.replaceAll('任务'+(i+1),'').replaceAll('任务'+_this.numberToChinese(i+1),'').replaceAll(':','').replaceAll(':','')
|
|
|
+ _this.unitJson[0].chapterInfo[0].taskJson[i].task = _task.task
|
|
|
+ // .replaceAll('任务'+(i+1),'').replaceAll('任务'+_this.numberToChinese(i+1),'').replaceAll(':','').replaceAll(':','')
|
|
|
+ _this.unitJson[0].chapterInfo[0].taskJson[i].isFold = 0
|
|
|
}else {
|
|
|
_this.unitJson[0].chapterInfo[0].taskJson.push({
|
|
|
- task: _task.task.replaceAll('任务'+(i+1),'').replaceAll('任务'+_this.numberToChinese(i+1),'').replaceAll(':','').replaceAll(':',''),
|
|
|
+ task: _task.task,
|
|
|
+ // .replaceAll('任务'+(i+1),'').replaceAll('任务'+_this.numberToChinese(i+1),'').replaceAll(':','').replaceAll(':',''),
|
|
|
taskDetail: "",
|
|
|
taskDetail2: "",
|
|
|
taskDetail3: "",
|
|
@@ -21178,7 +21213,7 @@ Instruction: Based on the context, follow "Format example", write content.
|
|
|
|
|
|
# Context
|
|
|
## 任务
|
|
|
-根据本任务的#教案,在考虑到面向学生年级(<面向年级>)以及相对应的学科(<课程学科>)的基础上生成1道问答题。题目的意义是测试学生对本教学任务知识点的掌握情况,你的题目应当是有意义的。然后根据Format example的要求返回要以json的格式
|
|
|
+根据本任务的#学习任务内容,在考虑到面向学生年级(<面向年级>)以及相对应的学科(<课程学科>)的基础上生成1道问答题。题目的意义是测试学生对本教学任务知识点的掌握情况,你的题目应当是有意义的。然后根据Format example的要求返回要以json的格式
|
|
|
|
|
|
## 限制
|
|
|
- 生成题目应该充分考虑学生年级<面向年级>和面向学科<课程学科>,你的题目应有教学意义。
|
|
@@ -21190,8 +21225,8 @@ ${_this.courseText ? '课程简要描述:' + _this.courseText : ''}
|
|
|
${sub.length ? '学科:' + sub.join(",") : ''}
|
|
|
${mclass.length ? '面向年级:' + mclass.join(",") : ''}
|
|
|
|
|
|
-## 教案
|
|
|
-${_this.unitJson[0].chapterInfo[0].taskJson[task].taskDetail3.replaceAll('#','').replaceAll('*','').replaceAll('-','').replaceAll('\n','')}
|
|
|
+## 学习任务内容
|
|
|
+${_this.courseTextE}
|
|
|
|
|
|
# Format example
|
|
|
{"answerQ":"问题"}
|
|
@@ -21205,7 +21240,7 @@ Instruction: Based on the context, follow "Format example", write content.
|
|
|
|
|
|
# Context
|
|
|
## 任务
|
|
|
-根据本任务的#教案,在考虑到面向学生年级(<面向年级>)以及相对应的学科(<课程学科>)的基础上生成5道单选题。题目的意义是测试学生对本教学任务知识点的掌握情况,你的题目应当是有意义的。
|
|
|
+根据本任务的#学习任务内容,在考虑到面向学生年级(<面向年级>)以及相对应的学科(<课程学科>)的基础上生成5道单选题。题目的意义是测试学生对本教学任务知识点的掌握情况,你的题目应当是有意义的。
|
|
|
|
|
|
## 限制
|
|
|
- 生成题目禁止重复。
|
|
@@ -21219,8 +21254,8 @@ ${_this.courseText ? '课程简要描述:' + _this.courseText : ''}
|
|
|
${sub.length ? '学科:' + sub.join(",") : ''}
|
|
|
${mclass.length ? '面向年级:' + mclass.join(",") : ''}
|
|
|
|
|
|
-## 教案
|
|
|
-${_this.unitJson[0].chapterInfo[0].taskJson[task].taskDetail3.replaceAll('#','').replaceAll('*','').replaceAll('-','').replaceAll('\n','')}
|
|
|
+## 学习任务内容
|
|
|
+${_this.courseTextE}
|
|
|
|
|
|
# Format example
|
|
|
[{"teststitle":"题目内容","testItem":4,"checkList":["选项1","选项2","选项3","选项4"],"timuList":[],"answer":0,"type":"1"},{"teststitle":"题目内容","testItem":"选项数量(数字)","checkList":["选项1","选项2","选项3","选项4"],"timuList":[],"answer":"答案(数字)","type":"1"}]
|
|
@@ -25320,6 +25355,7 @@ ${msg}
|
|
|
// this.selectType();
|
|
|
this.selectEva();
|
|
|
if(this.istemplate == 1){
|
|
|
+ this.steps = 3
|
|
|
this.isOutline = true
|
|
|
this.isOutline2 = true
|
|
|
this.courseTextBool = true
|
|
@@ -29230,6 +29266,7 @@ ol {
|
|
|
min-width: 270px;
|
|
|
border-radius: 8px;
|
|
|
margin-right: 10px;
|
|
|
+ z-index: 999;
|
|
|
}
|
|
|
|
|
|
.rb_c_box_right {
|