lsc 5 ay önce
ebeveyn
işleme
b356fd7e02

+ 1 - 1
dist/index.html

@@ -32,7 +32,7 @@
       width: 100%;
       background: #e6eaf0;
       font-family: '黑体';
-    }</style><link href=./static/css/app.01c6ccb756c7be6f3a5db4debe718c64.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.571c38d63f24b1ae9e16.js></script><script type=text/javascript src=./static/js/vendor.8db9a3f753f5644e3c5e.js></script><script type=text/javascript src=./static/js/app.41315eb7011b2117545e.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.89b1138861e72e927895f5ef3d3c4fa9.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.571c38d63f24b1ae9e16.js></script><script type=text/javascript src=./static/js/vendor.8db9a3f753f5644e3c5e.js></script><script type=text/javascript src=./static/js/app.507d5d71803ba41aa318.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/static/css/app.89b1138861e72e927895f5ef3d3c4fa9.css


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/static/css/app.89b1138861e72e927895f5ef3d3c4fa9.css.map


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/static/js/app.507d5d71803ba41aa318.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/static/js/app.507d5d71803ba41aa318.js.map


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/static/js/manifest.571c38d63f24b1ae9e16.js.map


+ 1 - 0
src/assets/icon/course/arrow.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1727575870183" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4244" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M312.888889 995.555556c-17.066667 0-28.444444-5.688889-39.822222-17.066667-22.755556-22.755556-17.066667-56.888889 5.688889-79.644445l364.088888-329.955555c11.377778-11.377778 17.066667-22.755556 17.066667-34.133333 0-11.377778-5.688889-22.755556-17.066667-34.133334L273.066667 187.733333c-22.755556-22.755556-28.444444-56.888889-5.688889-79.644444 22.755556-22.755556 56.888889-28.444444 79.644444-5.688889l364.088889 312.888889c34.133333 28.444444 56.888889 73.955556 56.888889 119.466667s-17.066667 85.333333-51.2 119.466666l-364.088889 329.955556c-11.377778 5.688889-28.444444 11.377778-39.822222 11.377778z" fill="#000000" p-id="4245"></path></svg>

+ 154 - 47
src/components/pages/aiAddCourse/addCourse.vue

@@ -574,16 +574,16 @@
                       placeholder="请输入教案摘要" v-if="teacherCourseTextB"></textarea>
                     <div class="markBox vditor-reset" style="white-space:pre-wrap;" v-text="teacherCourseText" v-else-if="teacherTextLoading"></div>
                     <div class="markBox vditor-reset" v-html="MarkdownT(teacherCourseText)" v-else></div>
-                      <div class="op_box">
+                      <div class="op_box" :class="{op_box_isquote: isQuote['aiteacherTextDetail']}">
                         <div class="op_remark">*可以将需要优化的建议添加在任务描述后,点击“智能优化”,自动进行修改</div>
-                        <div style="display: flex;">
-                          <el-switch style="margin-right: 10px" v-model="isQuote['aiteacherTextDetail']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiteacherTextDetail')"></el-switch>
+                        <div class="op_box_right">
                           <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
                           <div class="r_pub_button_op"
                             @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,forceUpdate2()">{{ teacherCourseTextB ? '确定' : '编辑'}}</div>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiteacherTextDetail']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiteacherTextDetail')"></el-switch>
                         </div>
                       </div>
                   </div>
@@ -607,16 +607,16 @@
                       placeholder="请输入课程目标" v-if="targetCourseTextB"></textarea>
                     <div class="markBox vditor-reset" style="white-space:pre-wrap;" v-text="targetCourseText" v-else-if="targetTextLoading"></div>
                     <div class="markBox vditor-reset" v-html="MarkdownT(targetCourseText)" v-else></div>
-                    <div class="op_box">
+                    <div class="op_box" :class="{op_box_isquote: isQuote['aitargetTextDetail']}">
                       <div class="op_remark">*可以将需要优化的建议添加在任务描述后,点击“智能优化”,自动进行修改</div>
-                      <div style="display: flex;">
-                        <el-switch style="margin-right: 10px" v-model="isQuote['aitargetTextDetail']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aitargetTextDetail')"></el-switch>
+                      <div class="op_box_right">
                         <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
                           <div class="r_pub_button_op"
                             @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,forceUpdate2()">{{ targetCourseTextB ? '确定' : '编辑'}}</div>
+                        <el-switch style="margin-left: 10px" v-model="isQuote['aitargetTextDetail']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aitargetTextDetail')"></el-switch>
                       </div>
                     </div>
                   </div>
@@ -1101,16 +1101,16 @@
                       placeholder="请输入课程简要描述" v-if="courseTextB"></textarea>
                     <div class="markBox vditor-reset" style="white-space:pre-wrap;" v-text="courseText" v-else-if="textLoading"></div>
                     <div class="markBox vditor-reset" v-html="MarkdownT(courseText)" v-else></div>
-                      <div class="op_box">
+                      <div class="op_box" :class="{op_box_isquote: isQuote['aiDetail']}">
                         <div class="op_remark">*可以将需要优化的建议添加在任务描述后,点击“智能优化”,自动进行修改</div>
-                        <div style="display: flex;">
-                          <el-switch style="margin-right: 10px" v-model="isQuote['aiDetail']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiDetail')"></el-switch>
+                        <div class="op_box_right">
                           <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>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiDetail']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiDetail')"></el-switch>
                         </div>
                       </div>
                   </div>
@@ -1146,16 +1146,16 @@
                       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_box" :class="{op_box_isquote: isQuote['aiDetail']}">
                         <div class="op_remark"></div>
-                        <div style="display: flex;">
+                        <div class="op_box_right">
                           <!-- <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> -->
-                          <el-switch style="margin-right: 10px" v-model="isQuote['aiDetail']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiDetail')"></el-switch>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="courseTextB = !courseTextB,forceUpdate2()">{{ courseTextB ? '确定' : '编辑'}}</div>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiDetail']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiDetail')"></el-switch>
                         </div>
                       </div>
                   </div>
@@ -1323,16 +1323,16 @@
                       placeholder="请输入课程目标" v-if="targetCourseText2B"></textarea>
                     <div class="markBox vditor-reset" style="white-space:pre-wrap;" v-text="targetCourseText2" v-else-if="targetTextLoading2"></div>
                     <div class="markBox vditor-reset" v-html="MarkdownT(targetCourseText2)" v-else></div> 
-                      <div class="op_box">
+                      <div class="op_box" :class="{op_box_isquote: isQuote['aitargetTextDetail2']}">
                         <div class="op_remark">*可以将需要优化的建议添加在任务描述后,点击“智能优化”,自动进行修改</div>
-                        <div style="display: flex;">
-                          <el-switch style="margin-right: 10px" v-model="isQuote['aitargetTextDetail2']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aitargetTextDetail2')"></el-switch>
+                        <div class="op_box_right">
                           <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
                             <div class="r_pub_button_op"
                               @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,forceUpdate2()">{{ targetCourseText2B ? '确定' : '编辑'}}</div>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aitargetTextDetail2']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aitargetTextDetail2')"></el-switch>
                         </div>
                       </div>
                   </div>
@@ -1652,10 +1652,9 @@
                         placeholder="请输入任务描述" v-model="item.taskDetail2" v-if="item.isTask2"></textarea>
                       <div class="markBox vditor-reset" style="white-space:pre-wrap;" v-text="item.taskDetail2" v-else-if="ttaskDetailLoading.indexOf('task-' + index) !== -1"></div>
                       <div class="markBox vditor-reset" v-html="MarkdownT(item.taskDetail2)" v-else></div>
-                      <div class="op_box">
+                      <div class="op_box" :class="{op_box_isquote: isQuote['aiDetail1-'+index]}">
                         <div class="op_remark">*可以将需要优化的建议添加在任务描述后,点击“智能优化”,自动进行修改</div>
-                        <div style="display: flex;">
-                          <el-switch style="margin-right: 10px" v-model="isQuote['aiDetail1-'+index]" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiDetail1-'+index)"></el-switch>
+                        <div class="op_box_right">
                           <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
                             <div class="r_pub_button_op"
                               @contextmenu.prevent="openAiDialog(1, 'aiDetail1', item, index)"
@@ -1663,6 +1662,7 @@
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editTask2(index)">{{
                             item.isTask2 ? '确定' : '编辑'}}</div>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiDetail1-'+index]" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiDetail1-'+index)"></el-switch>
                         </div>
                       </div>
                     </div>
@@ -1683,17 +1683,17 @@
                       v-model="cpote.cpote1" v-if="cpote.cpote1s"></textarea>
                       <div class="markBox vditor-reset" style="white-space:pre-wrap;" v-text="cpote.cpote1" v-else-if="cpotetLoading.cpote1"></div>
                       <div class="markBox vditor-reset" v-html="MarkdownT(cpote.cpote1)" v-else></div>
-                    <div class="op_box">
+                    <div class="op_box" :class="{op_box_isquote: isQuote['aiCpote1']}">
                       <div class="op_remark">*可以将需要优化的建议添加在任务描述后,点击“智能优化”,自动进行修改</div>
-                      <div style="display: flex;">
-                          <el-switch style="margin-right: 10px" v-model="isQuote['aiCpote1']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiCpote1')"></el-switch>
+                      <div class="op_box_right">
                           <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
                             <div class="r_pub_button_op" @contextmenu.prevent="openAiDialog(1, 'aiCpote1')"
                             @click="openAiDialog(2, 'aiCpote1')">智能优化</div>
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editCpote('cpote1s')">{{
                             cpote.cpote1s ? '确定' : '编辑'}}</div>
-                      </div>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiCpote1']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiCpote1')"></el-switch>
+                        </div>
                     </div>
                   </div>
                 </div>
@@ -1712,17 +1712,17 @@
                       v-model="cpote.cpote2" v-if="cpote.cpote2s"></textarea>
                       <div class="markBox vditor-reset" style="white-space:pre-wrap;" v-text="cpote.cpote2" v-else-if="cpotetLoading.cpote2"></div>
                       <div class="markBox vditor-reset" v-html="MarkdownT(cpote.cpote2)" v-else></div>
-                    <div class="op_box">
+                    <div class="op_box" :class="{op_box_isquote: isQuote['aiCpote2']}">
                       <div class="op_remark">*可以将需要优化的建议添加在任务描述后,点击“智能优化”,自动进行修改</div>
-                      <div style="display: flex;">
-                          <el-switch style="margin-right: 10px" v-model="isQuote['aiCpote2']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiCpote2')"></el-switch>
+                      <div class="op_box_right">
                           <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
                             <div class="r_pub_button_op" @contextmenu.prevent="openAiDialog(1, 'aiCpote2')"
                             @click="openAiDialog(2, 'aiCpote2')">智能优化</div>
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editCpote('cpote2s')">{{
                             cpote.cpote2s ? '确定' : '编辑'}}</div>
-                      </div>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiCpote2']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiCpote2')"></el-switch>
+                        </div>
                     </div>
                   </div>
                 </div>
@@ -1741,17 +1741,17 @@
                       v-model="cpote.cpote3" v-if="cpote.cpote3s"></textarea>
                       <div class="markBox vditor-reset" style="white-space:pre-wrap;" v-text="cpote.cpote3" v-else-if="cpotetLoading.cpote3"></div>
                       <div class="markBox vditor-reset" v-html="MarkdownT(cpote.cpote3)" v-else></div>
-                    <div class="op_box">
+                    <div class="op_box" :class="{op_box_isquote: isQuote['aiCpote3']}">
                       <div class="op_remark">*可以将需要优化的建议添加在任务描述后,点击“智能优化”,自动进行修改</div>
-                      <div style="display: flex;">
-                          <el-switch style="margin-right: 10px" v-model="isQuote['aiCpote3']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiCpote3')"></el-switch>
+                      <div class="op_box_right">
                           <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
                             <div class="r_pub_button_op" @contextmenu.prevent="openAiDialog(1, 'aiCpote3')"
                             @click="openAiDialog(2, 'aiCpote3')">智能优化</div>
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editCpote('cpote3s')">{{
                             cpote.cpote3s ? '确定' : '编辑'}}</div>
-                      </div>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiCpote3']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiCpote3')"></el-switch>
+                        </div>
                     </div>
                   </div>
                 </div>
@@ -1770,17 +1770,17 @@
                       v-model="cpote.cpote4" v-if="cpote.cpote4s"></textarea>
                       <div class="markBox vditor-reset" style="white-space:pre-wrap;" v-text="cpote.cpote4" v-else-if="cpotetLoading.cpote4"></div>
                       <div class="markBox vditor-reset" v-html="MarkdownT(cpote.cpote4)" v-else></div>
-                    <div class="op_box">
+                    <div class="op_box" :class="{op_box_isquote: isQuote['aiCpote4']}">
                       <div class="op_remark">*可以将需要优化的建议添加在任务描述后,点击“智能优化”,自动进行修改</div>
-                      <div style="display: flex;">
-                          <el-switch style="margin-right: 10px" v-model="isQuote['aiCpote4']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiCpote4')"></el-switch>
+                      <div class="op_box_right">
                           <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
                             <div class="r_pub_button_op" @contextmenu.prevent="openAiDialog(1, 'aiCpote4')"
                             @click="openAiDialog(2, 'aiCpote4')">智能优化</div>
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editCpote('cpote4s')">{{
                             cpote.cpote4s ? '确定' : '编辑'}}</div>
-                      </div>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiCpote4']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiCpote4')"></el-switch>
+                        </div>
                     </div>
                   </div>
                 </div>
@@ -1817,10 +1817,9 @@
                         v-model="item.taskDetail3" v-if="item.isTask3"></textarea>
                       <div class="markBox vditor-reset" style="white-space:pre-wrap;" v-text="item.taskDetail3" v-else-if="ttaskDetailLoading5.indexOf('task-' + index) !== -1"></div>
                       <div class="markBox vditor-reset" v-html="MarkdownT(item.taskDetail3)" v-else></div>
-                      <div class="op_box">
+                      <div class="op_box" :class="{op_box_isquote: isQuote['teacherDetail2-'+index]}">
                         <div class="op_remark">*可以将需要优化的建议添加在任务描述后,点击“智能优化”,自动进行修改</div>
-                        <div style="display: flex;">
-                          <el-switch style="margin-right: 10px" v-model="isQuote['teacherDetail2-'+index]" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('teacherDetail2-'+index)"></el-switch>
+                        <div class="op_box_right">
                           <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
                             <div class="r_pub_button_op"
                               @contextmenu.prevent="openAiDialog(1, 'teacherDetail2', item.taskDetail3, index)"
@@ -1828,6 +1827,7 @@
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editTask3(index)">{{
                             item.isTask3 ? '确定' : '编辑'}}</div>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['teacherDetail2-'+index]" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('teacherDetail2-'+index)"></el-switch>
                         </div>
                       </div>
                     </div>
@@ -2729,10 +2729,9 @@
                                     itemTaskIndex
                                   ].taskDetail
                                   "></textarea> -->
-                              <div class="op_box">
+                              <div class="op_box" :class="{op_box_isquote: isQuote['aiDetail2-'+itemTaskIndex]}">
                                 <div class="op_remark">*可以将需要优化的建议添加在任务描述后,点击“智能优化”,自动进行修改</div>
-                                <div style="display: flex;">
-                                    <el-switch style="margin-right: 10px" v-model="isQuote['aiDetail2-'+itemTaskIndex]" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiDetail2-'+itemTaskIndex)"></el-switch>
+                                <div class="op_box_right">
                                     <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
                                     <div class="r_pub_button_op" @contextmenu.prevent="openAiDialog(1, 'aiDetail2', unitJson[unitIndex].chapterInfo[0].taskJson[
                                       itemTaskIndex
@@ -2740,7 +2739,8 @@
                                       itemTaskIndex
                                     ], itemTaskIndex)">智能优化</div>
                                   </el-tooltip>
-                                </div>
+                                    <el-switch style="margin-left: 10px" v-model="isQuote['aiDetail2-'+itemTaskIndex]" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiDetail2-'+itemTaskIndex)"></el-switch>
+                                  </div>
                               </div>
                             </div>
                           </div>
@@ -4847,10 +4847,9 @@
                                     margin: 0 0 20px 0;
                                     width: 100% !important;
                                   " v-model="itemTool.toolDetail"></textarea>
-                                <div class="op_box">
+                                <div class="op_box" :class="{op_box_isquote: isQuote['aiDetail3-'+itemTaskIndex+'-'+toolIndex]}">
                                   <div class="op_remark">*可以将需要优化的建议添加在工具描述后,点击“智能优化”,自动进行修改</div>
-                                  <div style="display: flex">
-                                    <el-switch style="margin-right: 10px" v-model="isQuote['aiDetail3-'+itemTaskIndex+'-'+toolIndex]" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiDetail3-'+itemTaskIndex+'-'+toolIndex)"></el-switch>
+                                  <div class="op_box_right">
                                     <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
                                       <div class="r_pub_button_op"
                                         @contextmenu.prevent="openAiDialog(1, 'aiDetail3', itemTool, itemTaskIndex, toolIndex)"
@@ -4858,6 +4857,7 @@
                                         智能优化</div>
                                                                    
                                     </el-tooltip>
+                                    <el-switch style="margin-left: 10px" v-model="isQuote['aiDetail3-'+itemTaskIndex+'-'+toolIndex]" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="dialogTemplateArray.indexOf(templateid) != -1"  @change="handleSwitchChange('aiDetail3-'+itemTaskIndex+'-'+toolIndex)"></el-switch>
                                   </div>
                                 </div>
                               </div>
@@ -5146,7 +5146,7 @@
                                         <textarea v-autoHeight="68" rows="2" class="binfo_input binfo_textarea" cols v-model="itemTask.eList[eIndex].rule" placeholder="请输入评价细则"></textarea>    
                                           <div class="op_box">
                                             <div class="op_remark"></div>
-                                            <div style="display: flex;">
+                                            <div class="op_box_right">
                                               <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
                                                 <div class="r_pub_button_op"
                                                   @contextmenu.prevent="openAiDialog(1, 'aiRateRule', itemTaskIndex, eIndex)"
@@ -5375,7 +5375,8 @@
         <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 && dialogTemplateArray.indexOf(templateid) != -1 && chatid">
+      <div class="leftBar2 " v-show="istemplate != 1 && dialogTemplateArray.indexOf(templateid) != -1 && chatid && isDisplay">
+        <!-- <div class="resizer"></div> resizable-->
         <aiBoxRight  
         :languageSetting="languageSetting"
         :courseId="chatid" 
@@ -5388,6 +5389,9 @@
         :cpote="cpote"
         @setIsQuote="setIsQuote"></aiBoxRight>
       </div>
+      <div class="close_btn" @click="closeRight" :class="!isDisplay ? 'close_btn_voice' : ''"  v-show="istemplate != 1 && dialogTemplateArray.indexOf(templateid) != -1 && chatid">
+        <img src="../../../assets/icon/course/arrow.svg" >
+      </div>
     </div>
     <el-dialog title="提示" :visible.sync="dialogVisible" :append-to-body="true" width="25%" :before-close="handleClose"
       class="dialog_diy2 customWidth">
@@ -7422,6 +7426,7 @@ export default {
       dialogTemplateArray: [ 'cf5722a4-401b-11ef-b873-005056b86cd2', '68629cfb-e719-48e9-a03d-56f189fb9cb0' ],
       taskCancelToken1: [],
       taskCancelToken2: [],
+      isDisplay: true
     };
   },
   directives: {
@@ -23620,7 +23625,10 @@ ${msg}
       if(this.$refs[this.unitIndex + '-' + task + 'mindTask'] && this.$refs[this.unitIndex + '-' + task + 'mindTask'][0]){
         this.$refs[this.unitIndex + '-' + task + 'mindTask'][0].refresh()
       }
-    }
+    },
+    closeRight(){
+      this.isDisplay = !this.isDisplay;
+    },
   },
   beforeDestroy() {
     // clearTimeout(this.timer);
@@ -23639,6 +23647,35 @@ ${msg}
     this.pasteTimer = null;
     next();
   },
+  mounted(){
+    // const resizable = this.$el.querySelector('.resizable');
+    // const resizer = this.$el.querySelector('.resizer');
+    // let startX, startWidth;
+
+    // const mouseMoveHandler = (e) => {
+    //   const dx = startX - e.clientX;
+    //   const newWidth = startWidth + dx + 40;
+    //   if (newWidth >= 200 && newWidth <= 600) {
+    //     resizable.style.width = `${newWidth}px`;
+    //   }
+    // };
+
+    // const mouseUpHandler = () => {
+    //   document.removeEventListener('mousemove', mouseMoveHandler);
+    //   document.removeEventListener('mouseup', mouseUpHandler);
+    //   document.body.style.cursor = 'default';
+    // };
+
+    // const mouseDownHandler = (e) => {
+    //   startX = e.clientX;
+    //   startWidth = resizable.getBoundingClientRect().width;
+    //   document.addEventListener('mousemove', mouseMoveHandler);
+    //   document.addEventListener('mouseup', mouseUpHandler);
+    //   document.body.style.cursor = 'ew-resize';
+    // };
+
+    // resizer.addEventListener('mousedown', mouseDownHandler);
+  },
   created() {
     this.selectFileid();
     // this.selectAiFileid();
@@ -27917,6 +27954,34 @@ ol {
   font-size: 14px;
 }
 
+.op_box_right{
+  display: flex;
+}
+
+.op_box_isquote{
+  display: flex;
+}
+
+.op_box_isquote *{
+  display: none;
+}
+
+.op_box_isquote .op_box_right,
+.op_box_isquote .custom-switch{
+  display: flex;
+  margin-left: auto;
+}
+
+.op_task_box:hover .op_box_isquote *{
+  display: flex;
+}
+
+.op_task_box:hover .op_box_isquote .op_box_right,
+.op_task_box:hover .op_box_isquote .custom-switch{
+  display: flex;
+  margin-left: unset;
+}
+
 .rb_c_nav {
   width: calc(100% - 20px);
   margin: 15px auto 0;
@@ -28139,4 +28204,46 @@ ol {
   color: #0061FF;
 }
 
+
+.close_btn{
+  position: absolute;
+  top: 40px;
+  right: 10px;
+  box-shadow: 0 0 4px 2px #00000033;
+  border-radius: 70px 0 0 70px;
+  display: flex;
+  align-items: center;
+  padding-left: 5px;
+  padding: 10px 7px 10px 12px;
+  background: #fff;
+  cursor: pointer;
+}
+
+.close_btn > img {
+  width: 15px;
+  transition: 0.3s;
+  transform: rotate(0deg);
+}
+
+.close_btn_voice > img{
+  transform: rotate(180deg);
+}
+
+.resizable {
+  position: relative;
+ 
+  min-width: 200px; /* 最小宽度 */
+  max-width: 600px; /* 最大宽度 */
+}
+
+.resizer {
+  width: 5px;
+  height: 35px;
+  background: #ccc;
+  position: absolute;
+  top: 50%;
+  left: 0;
+  cursor: ew-resize;
+  transform: translateY(-50%);
+}
 </style>

+ 4 - 5
src/components/pages/aiAddCourse/aiBoxRight.vue

@@ -259,7 +259,7 @@
 
       <span
         class="c_voiceBtn"
-        style="right: 70px;"
+        :style="{right: faloading ? '85px' : '70px'}"
         v-if="!courseText && isVoice && !isTalk"
         @click.stop="changeVoice(false)"
       >
@@ -381,7 +381,6 @@ import checkIsImg from "../../../assets/icon/sourceFile/check_is.png";
 import { v4 as uuidv4 } from "uuid";
 import MarkdownIt from "markdown-it";
 import TurndownService from "turndown";
-import { number } from "echarts";
 
 const OpenCC = require("opencc-js");
 let converter = OpenCC.Converter({
@@ -524,7 +523,7 @@ export default {
       saveUid: "",
       isVoice: false,
       isTalk: false,
-      username: ""
+      username: "",
     };
   },
   watch: {
@@ -1701,11 +1700,11 @@ ${i.content}`
   margin: 10px 5px 10px 5px;
   min-height: 35px;
   height: 35px;
-  max-height: 60vh;
+  max-height: 100px;
   border: none;
   outline: none;
   resize: none;
-  font-size: 18px;
+  font-size: 16px;
   overflow: auto;
   padding-right: 100px;
   background-color: #fff !important;

+ 59 - 7
src/components/pages/test/check/aiBoxRight.vue

@@ -201,6 +201,7 @@
       <!-- @input="inputChange" -->
 
       <textarea
+        @input="inputChange"
         class="ai_body_input_textarea"
         @keydown="textareaKeydown"
         :disabled="isVoice"
@@ -559,6 +560,57 @@ export default {
       // 如果仍需要上传文件,可以保留这行
       return this.uploadFile(blob);
     },
+    // setJson(array){
+    //   const getAnswer = (j) => {
+    //     switch (j.type) {
+    //       case 1:
+    //         return j.json.array
+    //           .filter((_, idx) => j.json.answer2.includes(idx))
+    //           .map(item => `${item.img}${item.option}`)
+    //           .join(',');
+    //       case 3:
+    //       case 6:
+    //       case 7:
+    //       case 8:
+    //       case 11:
+    //         return j.json.answer2.replace(/\n/g, ' '); // 去除回车
+    //       case 5:
+    //         if (!Array.isArray(j.json.file) || j.json.file.length === 0) {
+    //           return '无附件';
+    //         }
+    //         return j.json.file.map(file => `${file.name}(${file.url})`).join(',');
+    //       default:
+    //         return '';
+    //     }
+    //   };
+
+    //   // 获取所有题目类型和题目
+    //   const questions = array[0].array.map((j, index) => ({
+    //     "序号": index + 1,
+    //     "题目类型": this.options2[j.type],
+    //     "题目": j.json.title
+    //   }));
+
+    //   // 构建CSV内容
+    //   let csvContent = "用户名,提交时间," + questions.map(q => `${q.序号}-${q.题目类型}-${q.题目}`).join(',') + "\n";
+
+    //   // 添加每个用户的答案
+    //   array.forEach(i => {
+    //     let row = [i.name, i.time];
+    //     i.array.forEach(j => {
+    //       row.push(getAnswer(j));
+    //     });
+    //     csvContent += row.join(',') + "\n";
+    //   });
+
+    //   // 创建Blob对象
+    //   const blob = new Blob([csvContent], { type: "text/csv" });
+    //   blob.lastModifiedDate = new Date();
+    //   blob.name = `表单数据.csv`;
+
+    //   // 如果仍需要上传文件,可以保留这行
+    //   return this.uploadFile(blob);
+    // },
     uploadFile(file) {
       var credentials = {
         accessKeyId: "AKIATLPEDU37QV5CHLMH",
@@ -680,7 +732,7 @@ export default {
         this.faloading = true;
         if (_atRoleList.length > 0) {
           //有@角色
-          let _replaceText = `${message}`;
+          let _replaceText = `Role: 你是数据检索大师,可以利用file_search的方式完整的去分析文件内容 Language: Please use the same language as the user requirement, if the user speaks Chinese, the specific text of your answer should also be in Chinese.\n${message}`;
           let _htmlText = message;
           _atRoleList.forEach(_i => {
             _replaceText = _replaceText.replaceAll(`@${_i.assistantName}`, ``);
@@ -735,7 +787,7 @@ export default {
               message: _replaceText,
               session_name: `${this.courseId}-${this.userid}-test`,
               uid: _uid,
-              file_ids: [this.fileId],
+              file_ids: this.fileId ? [this.fileId] : [],
               // model: "gpt-4o-2024-08-06"
               model: "qwen-plus"
             };
@@ -831,10 +883,10 @@ export default {
           let params = {
             assistant_id: 'cd72354e-7be5-11ef-a263-12e77c4cb76b',
             userId: this.userid,
-            message: message,
+            message: `Role: 你是数据检索大师,可以利用file_search的方式完整的去分析文件内容 Language: Please use the same language as the user requirement, if the user speaks Chinese, the specific text of your answer should also be in Chinese.\n${message}`,
             session_name: `${this.courseId}-${this.userid}-test`,
             uid: _uuid,
-            file_ids: [this.fileId],
+            file_ids: this.fileId ? [this.fileId] : [],
             model: "gpt-4o-2024-08-06"
           };
           this.$nextTick(() => {
@@ -1091,7 +1143,7 @@ export default {
     },
     inputChange() {
       if (this.courseText.at(-1) == "@") {
-        this.showRoleList = true;
+        // this.showRoleList = true;
       }
       if (this.courseText.at(-1) == "/") {
         console.log("哇卡ka2");
@@ -1627,11 +1679,11 @@ export default {
   margin: 10px 5px 10px 5px;
   min-height: 35px;
   height: 35px;
-  max-height: 60vh;
+  max-height: 100px;
   border: none;
   outline: none;
   resize: none;
-  font-size: 18px;
+  font-size: 16px;
   overflow: auto;
   padding-right: 100px;
   background-color: #fff !important;

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor