lsc 6 maanden geleden
bovenliggende
commit
80fc234d67
3 gewijzigde bestanden met toevoegingen van 300 en 90 verwijderingen
  1. 137 0
      package-lock.json
  2. 3 0
      package.json
  3. 160 90
      src/components/pages/aiAddCourse/addCourse.vue

+ 137 - 0
package-lock.json

@@ -13,6 +13,8 @@
         "clipboard": "^2.0.10",
         "clipboard": "^2.0.10",
         "cocoroboworkpc": "file:",
         "cocoroboworkpc": "file:",
         "dayjs": "^1.11.7",
         "dayjs": "^1.11.7",
+        "docxtemplater": "^3.50.0",
+        "docxtemplater-image-module-free": "^1.1.1",
         "echarts": "^5.4.2",
         "echarts": "^5.4.2",
         "echarts-wordcloud": "^2.1.0",
         "echarts-wordcloud": "^2.1.0",
         "element-china-area-data": "^5.0.2",
         "element-china-area-data": "^5.0.2",
@@ -39,6 +41,7 @@
         "opencc-js": "^1.0.5",
         "opencc-js": "^1.0.5",
         "papaparse": "^5.4.1",
         "papaparse": "^5.4.1",
         "pdfjs-dist": "^2.5.207",
         "pdfjs-dist": "^2.5.207",
+        "pizzip": "^3.1.7",
         "pptxgenjs": "^3.12.0",
         "pptxgenjs": "^3.12.0",
         "qrcodejs2": "^0.0.2",
         "qrcodejs2": "^0.0.2",
         "qs": "^6.10.1",
         "qs": "^6.10.1",
@@ -520,6 +523,14 @@
         "@xtuc/long": "4.2.2"
         "@xtuc/long": "4.2.2"
       }
       }
     },
     },
+    "node_modules/@xmldom/xmldom": {
+      "version": "0.8.10",
+      "resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+      "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
+      "engines": {
+        "node": ">=10.0.0"
+      }
+    },
     "node_modules/@xtuc/ieee754": {
     "node_modules/@xtuc/ieee754": {
       "version": "1.2.0",
       "version": "1.2.0",
       "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
       "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
@@ -5256,6 +5267,25 @@
         "buffer-indexof": "^1.0.0"
         "buffer-indexof": "^1.0.0"
       }
       }
     },
     },
+    "node_modules/docxtemplater": {
+      "version": "3.50.0",
+      "resolved": "https://registry.npmmirror.com/docxtemplater/-/docxtemplater-3.50.0.tgz",
+      "integrity": "sha512-6EqYbBFUcdNKVwS6G8vQ+pFOURJ7zoSvUNASIi4MPnCpkRdYDvmaOV2e1XcScMrEQV5pFZUAAbKi30Z+JTbLFA==",
+      "dependencies": {
+        "@xmldom/xmldom": "^0.8.10"
+      },
+      "engines": {
+        "node": ">=0.10"
+      }
+    },
+    "node_modules/docxtemplater-image-module-free": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/docxtemplater-image-module-free/-/docxtemplater-image-module-free-1.1.1.tgz",
+      "integrity": "sha512-aWOzVQN7ggDYjfoy3pTTNrcrZ7/CJrQcI9cT+hmyHE6nRLR67nt5yPFPe9hm9VWbfYIED2fi+3itOnF0TE/RWQ==",
+      "dependencies": {
+        "xmldom": "^0.1.27"
+      }
+    },
     "node_modules/dom-converter": {
     "node_modules/dom-converter": {
       "version": "0.2.0",
       "version": "0.2.0",
       "resolved": "https://registry.npmmirror.com/dom-converter/download/dom-converter-0.2.0.tgz",
       "resolved": "https://registry.npmmirror.com/dom-converter/download/dom-converter-0.2.0.tgz",
@@ -11396,6 +11426,19 @@
         "node": ">=0.10.0"
         "node": ">=0.10.0"
       }
       }
     },
     },
+    "node_modules/pizzip": {
+      "version": "3.1.7",
+      "resolved": "https://registry.npmmirror.com/pizzip/-/pizzip-3.1.7.tgz",
+      "integrity": "sha512-VemVeAQtdIA74AN1Fsd5OmbMbEeS4YOwwlcudgzvmUrOIOPrk1idYC5Tw5FUFq/I0c26ziNOw9z//iPmGfp1jA==",
+      "dependencies": {
+        "pako": "^2.1.0"
+      }
+    },
+    "node_modules/pizzip/node_modules/pako": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/pako/-/pako-2.1.0.tgz",
+      "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug=="
+    },
     "node_modules/pkcs7": {
     "node_modules/pkcs7": {
       "version": "0.2.3",
       "version": "0.2.3",
       "resolved": "https://registry.npmmirror.com/pkcs7/download/pkcs7-0.2.3.tgz",
       "resolved": "https://registry.npmmirror.com/pkcs7/download/pkcs7-0.2.3.tgz",
@@ -19126,6 +19169,15 @@
         "node": ">=0.8"
         "node": ">=0.8"
       }
       }
     },
     },
+    "node_modules/xmldom": {
+      "version": "0.1.31",
+      "resolved": "https://registry.npmmirror.com/xmldom/-/xmldom-0.1.31.tgz",
+      "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==",
+      "deprecated": "Deprecated due to CVE-2021-21366 resolved in 0.5.0",
+      "engines": {
+        "node": ">=0.1"
+      }
+    },
     "node_modules/xmlhttprequest": {
     "node_modules/xmlhttprequest": {
       "version": "1.8.0",
       "version": "1.8.0",
       "resolved": "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
       "resolved": "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
@@ -19635,6 +19687,11 @@
         "@xtuc/long": "4.2.2"
         "@xtuc/long": "4.2.2"
       }
       }
     },
     },
+    "@xmldom/xmldom": {
+      "version": "0.8.10",
+      "resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+      "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw=="
+    },
     "@xtuc/ieee754": {
     "@xtuc/ieee754": {
       "version": "1.2.0",
       "version": "1.2.0",
       "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
       "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
@@ -21779,6 +21836,8 @@
         "copy-webpack-plugin": "^4.0.1",
         "copy-webpack-plugin": "^4.0.1",
         "css-loader": "^0.28.0",
         "css-loader": "^0.28.0",
         "dayjs": "^1.11.7",
         "dayjs": "^1.11.7",
+        "docxtemplater": "*",
+        "docxtemplater-image-module-free": "*",
         "echarts": "^5.4.2",
         "echarts": "^5.4.2",
         "echarts-wordcloud": "^2.1.0",
         "echarts-wordcloud": "^2.1.0",
         "element-china-area-data": "^5.0.2",
         "element-china-area-data": "^5.0.2",
@@ -21813,6 +21872,7 @@
         "ora": "^1.2.0",
         "ora": "^1.2.0",
         "papaparse": "^5.4.1",
         "papaparse": "^5.4.1",
         "pdfjs-dist": "^2.5.207",
         "pdfjs-dist": "^2.5.207",
+        "pizzip": "*",
         "portfinder": "^1.0.13",
         "portfinder": "^1.0.13",
         "postcss-import": "^11.0.0",
         "postcss-import": "^11.0.0",
         "postcss-loader": "^2.0.8",
         "postcss-loader": "^2.0.8",
@@ -22234,6 +22294,11 @@
             "@xtuc/long": "4.2.2"
             "@xtuc/long": "4.2.2"
           }
           }
         },
         },
+        "@xmldom/xmldom": {
+          "version": "0.8.10",
+          "resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+          "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw=="
+        },
         "@xtuc/ieee754": {
         "@xtuc/ieee754": {
           "version": "1.2.0",
           "version": "1.2.0",
           "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
           "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
@@ -26276,6 +26341,22 @@
             "buffer-indexof": "^1.0.0"
             "buffer-indexof": "^1.0.0"
           }
           }
         },
         },
+        "docxtemplater": {
+          "version": "3.50.0",
+          "resolved": "https://registry.npmmirror.com/docxtemplater/-/docxtemplater-3.50.0.tgz",
+          "integrity": "sha512-6EqYbBFUcdNKVwS6G8vQ+pFOURJ7zoSvUNASIi4MPnCpkRdYDvmaOV2e1XcScMrEQV5pFZUAAbKi30Z+JTbLFA==",
+          "requires": {
+            "@xmldom/xmldom": "^0.8.10"
+          }
+        },
+        "docxtemplater-image-module-free": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmmirror.com/docxtemplater-image-module-free/-/docxtemplater-image-module-free-1.1.1.tgz",
+          "integrity": "sha512-aWOzVQN7ggDYjfoy3pTTNrcrZ7/CJrQcI9cT+hmyHE6nRLR67nt5yPFPe9hm9VWbfYIED2fi+3itOnF0TE/RWQ==",
+          "requires": {
+            "xmldom": "^0.1.27"
+          }
+        },
         "dom-converter": {
         "dom-converter": {
           "version": "0.2.0",
           "version": "0.2.0",
           "resolved": "https://registry.npmmirror.com/dom-converter/download/dom-converter-0.2.0.tgz",
           "resolved": "https://registry.npmmirror.com/dom-converter/download/dom-converter-0.2.0.tgz",
@@ -31199,6 +31280,21 @@
             "pinkie": "^2.0.0"
             "pinkie": "^2.0.0"
           }
           }
         },
         },
+        "pizzip": {
+          "version": "3.1.7",
+          "resolved": "https://registry.npmmirror.com/pizzip/-/pizzip-3.1.7.tgz",
+          "integrity": "sha512-VemVeAQtdIA74AN1Fsd5OmbMbEeS4YOwwlcudgzvmUrOIOPrk1idYC5Tw5FUFq/I0c26ziNOw9z//iPmGfp1jA==",
+          "requires": {
+            "pako": "^2.1.0"
+          },
+          "dependencies": {
+            "pako": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npmmirror.com/pako/-/pako-2.1.0.tgz",
+              "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug=="
+            }
+          }
+        },
         "pkcs7": {
         "pkcs7": {
           "version": "0.2.3",
           "version": "0.2.3",
           "resolved": "https://registry.npmmirror.com/pkcs7/download/pkcs7-0.2.3.tgz",
           "resolved": "https://registry.npmmirror.com/pkcs7/download/pkcs7-0.2.3.tgz",
@@ -37489,6 +37585,11 @@
             "word": "~0.3.0"
             "word": "~0.3.0"
           }
           }
         },
         },
+        "xmldom": {
+          "version": "0.1.31",
+          "resolved": "https://registry.npmmirror.com/xmldom/-/xmldom-0.1.31.tgz",
+          "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ=="
+        },
         "xmlhttprequest": {
         "xmlhttprequest": {
           "version": "1.8.0",
           "version": "1.8.0",
           "resolved": "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
           "resolved": "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
@@ -39524,6 +39625,22 @@
         "buffer-indexof": "^1.0.0"
         "buffer-indexof": "^1.0.0"
       }
       }
     },
     },
+    "docxtemplater": {
+      "version": "3.50.0",
+      "resolved": "https://registry.npmmirror.com/docxtemplater/-/docxtemplater-3.50.0.tgz",
+      "integrity": "sha512-6EqYbBFUcdNKVwS6G8vQ+pFOURJ7zoSvUNASIi4MPnCpkRdYDvmaOV2e1XcScMrEQV5pFZUAAbKi30Z+JTbLFA==",
+      "requires": {
+        "@xmldom/xmldom": "^0.8.10"
+      }
+    },
+    "docxtemplater-image-module-free": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/docxtemplater-image-module-free/-/docxtemplater-image-module-free-1.1.1.tgz",
+      "integrity": "sha512-aWOzVQN7ggDYjfoy3pTTNrcrZ7/CJrQcI9cT+hmyHE6nRLR67nt5yPFPe9hm9VWbfYIED2fi+3itOnF0TE/RWQ==",
+      "requires": {
+        "xmldom": "^0.1.27"
+      }
+    },
     "dom-converter": {
     "dom-converter": {
       "version": "0.2.0",
       "version": "0.2.0",
       "resolved": "https://registry.npmmirror.com/dom-converter/download/dom-converter-0.2.0.tgz",
       "resolved": "https://registry.npmmirror.com/dom-converter/download/dom-converter-0.2.0.tgz",
@@ -44447,6 +44564,21 @@
         "pinkie": "^2.0.0"
         "pinkie": "^2.0.0"
       }
       }
     },
     },
+    "pizzip": {
+      "version": "3.1.7",
+      "resolved": "https://registry.npmmirror.com/pizzip/-/pizzip-3.1.7.tgz",
+      "integrity": "sha512-VemVeAQtdIA74AN1Fsd5OmbMbEeS4YOwwlcudgzvmUrOIOPrk1idYC5Tw5FUFq/I0c26ziNOw9z//iPmGfp1jA==",
+      "requires": {
+        "pako": "^2.1.0"
+      },
+      "dependencies": {
+        "pako": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmmirror.com/pako/-/pako-2.1.0.tgz",
+          "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug=="
+        }
+      }
+    },
     "pkcs7": {
     "pkcs7": {
       "version": "0.2.3",
       "version": "0.2.3",
       "resolved": "https://registry.npmmirror.com/pkcs7/download/pkcs7-0.2.3.tgz",
       "resolved": "https://registry.npmmirror.com/pkcs7/download/pkcs7-0.2.3.tgz",
@@ -50737,6 +50869,11 @@
         "word": "~0.3.0"
         "word": "~0.3.0"
       }
       }
     },
     },
+    "xmldom": {
+      "version": "0.1.31",
+      "resolved": "https://registry.npmmirror.com/xmldom/-/xmldom-0.1.31.tgz",
+      "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ=="
+    },
     "xmlhttprequest": {
     "xmlhttprequest": {
       "version": "1.8.0",
       "version": "1.8.0",
       "resolved": "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
       "resolved": "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",

+ 3 - 0
package.json

@@ -15,6 +15,8 @@
     "clipboard": "^2.0.10",
     "clipboard": "^2.0.10",
     "cocoroboworkpc": "file:",
     "cocoroboworkpc": "file:",
     "dayjs": "^1.11.7",
     "dayjs": "^1.11.7",
+    "docxtemplater": "^3.50.0",
+    "docxtemplater-image-module-free": "^1.1.1",
     "echarts": "^5.4.2",
     "echarts": "^5.4.2",
     "echarts-wordcloud": "^2.1.0",
     "echarts-wordcloud": "^2.1.0",
     "element-china-area-data": "^5.0.2",
     "element-china-area-data": "^5.0.2",
@@ -41,6 +43,7 @@
     "opencc-js": "^1.0.5",
     "opencc-js": "^1.0.5",
     "papaparse": "^5.4.1",
     "papaparse": "^5.4.1",
     "pdfjs-dist": "^2.5.207",
     "pdfjs-dist": "^2.5.207",
+    "pizzip": "^3.1.7",
     "pptxgenjs": "^3.12.0",
     "pptxgenjs": "^3.12.0",
     "qrcodejs2": "^0.0.2",
     "qrcodejs2": "^0.0.2",
     "qs": "^6.10.1",
     "qs": "^6.10.1",

+ 160 - 90
src/components/pages/aiAddCourse/addCourse.vue

@@ -117,21 +117,19 @@
                           cid && userid != courseUserid && role != '1',
                           cid && userid != courseUserid && role != '1',
                       }">
                       }">
                         <div style="width: 100%">
                         <div style="width: 100%">
-                          <div class="course_input_box">
-                            <div class="bb_courseIcon">
-                              <img src="../../../assets/icon/new/course.png" />
+                          <div class="course_input_box2">
+                            <div class="course_input_box">
+                              <div class="bb_courseIcon">
+                                <img src="../../../assets/icon/new/course.png" />
+                              </div>
+                              <input type="text" placeholder="请输入课程名称" class="binfo_input" v-model="courseName" @change="setCover" />
+                            </div>
+                            <div style=" margin-bottom: 15px; display:flex;">
+                              <el-switch v-model="isTeacherSee" active-text="是否公开此课程"
+                              style="justify-content: center; min-width: 150px;"></el-switch>
+                              <el-switch v-model="isFileSearch" active-text="是否开启智能检索"
+                                style="justify-content: center; min-width: 175px"></el-switch>
                             </div>
                             </div>
-                            <input type="text" placeholder="请输入课程名称" class="binfo_input" v-model="courseName" style="
-                                border: 1.5px solid rgb(202, 209, 220);
-                                margin: 0px 10px 0px 0px;
-                                border-radius: 5px;
-                                font-weight: 600;
-                                padding: 12px 14px 12px 71px;
-                              " @change="setCover" />
-                            <el-switch v-model="isTeacherSee" active-text="是否公开此课程"
-                              style="justify-content: center; min-width: 150px"></el-switch>
-                            <el-switch v-model="isFileSearch" active-text="是否开启智能检索"
-                              style="justify-content: center; min-width: 175px"></el-switch>
                           </div>
                           </div>
                         </div>
                         </div>
                       </div>
                       </div>
@@ -583,7 +581,7 @@
                             @click="openAiDialog(2, 'aiteacherTextDetail', 2), addCourseBehavior('courseBehavior', '点击已有教案摘要-智能优化按钮')">智能优化</div>
                             @click="openAiDialog(2, 'aiteacherTextDetail', 2), addCourseBehavior('courseBehavior', '点击已有教案摘要-智能优化按钮')">智能优化</div>
                           </el-tooltip>
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="teacherCourseTextB = !teacherCourseTextB,forceUpdate2(), addCourseBehavior('courseBehavior', '点击已有教案摘要-确定/编辑按钮')">{{ teacherCourseTextB ? '确定' : '编辑'}}</div>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="teacherCourseTextB = !teacherCourseTextB,forceUpdate2(), addCourseBehavior('courseBehavior', '点击已有教案摘要-确定/编辑按钮')">{{ 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'), addCourseBehavior('courseBehavior', '点击已有教案摘要-引用按钮')"></el-switch>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiteacherTextDetail']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="isDialog == 1"  @change="handleSwitchChange('aiteacherTextDetail'), addCourseBehavior('courseBehavior', '点击已有教案摘要-引用按钮')"></el-switch>
                         </div>
                         </div>
                       </div>
                       </div>
                   </div>
                   </div>
@@ -616,7 +614,7 @@
                             @click="openAiDialog(2, 'aitargetTextDetail', 2), addCourseBehavior('courseBehavior', '点击课程目标-智能优化按钮')">智能优化</div>
                             @click="openAiDialog(2, 'aitargetTextDetail', 2), addCourseBehavior('courseBehavior', '点击课程目标-智能优化按钮')">智能优化</div>
                         </el-tooltip>
                         </el-tooltip>
                         <div class="r_pub_button_edit" style="margin-left:10px" @click="targetCourseTextB = !targetCourseTextB,forceUpdate2(), addCourseBehavior('courseBehavior', '点击课程目标-确定/编辑按钮')">{{ targetCourseTextB ? '确定' : '编辑'}}</div>
                         <div class="r_pub_button_edit" style="margin-left:10px" @click="targetCourseTextB = !targetCourseTextB,forceUpdate2(), addCourseBehavior('courseBehavior', '点击课程目标-确定/编辑按钮')">{{ 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'), addCourseBehavior('courseBehavior', '点击课程目标-引用按钮')"></el-switch>
+                        <el-switch style="margin-left: 10px" v-model="isQuote['aitargetTextDetail']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="isDialog == 1"  @change="handleSwitchChange('aitargetTextDetail'), addCourseBehavior('courseBehavior', '点击课程目标-引用按钮')"></el-switch>
                       </div>
                       </div>
                     </div>
                     </div>
                   </div>
                   </div>
@@ -1110,7 +1108,7 @@
                               @click="openAiDialog(2, 'aiDetail', 2), addCourseBehavior('courseBehavior', '点击课程简要描述-智能优化按钮')">智能优化</div>
                               @click="openAiDialog(2, 'aiDetail', 2), addCourseBehavior('courseBehavior', '点击课程简要描述-智能优化按钮')">智能优化</div>
                           </el-tooltip>
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="courseTextB = !courseTextB,forceUpdate2(), addCourseBehavior('courseBehavior', '点击课程简要描述-确定/编辑按钮')">{{ courseTextB ? '确定' : '编辑'}}</div>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="courseTextB = !courseTextB,forceUpdate2(), addCourseBehavior('courseBehavior', '点击课程简要描述-确定/编辑按钮')">{{ 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'), addCourseBehavior('courseBehavior', '点击课程简要描述-引用按钮')"></el-switch>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiDetail']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="isDialog == 1"  @change="handleSwitchChange('aiDetail'), addCourseBehavior('courseBehavior', '点击课程简要描述-引用按钮')"></el-switch>
                         </div>
                         </div>
                       </div>
                       </div>
                   </div>
                   </div>
@@ -1155,7 +1153,7 @@
                               @click="openAiDialog(2, 'aiDetail', 2)">智能优化</div>
                               @click="openAiDialog(2, 'aiDetail', 2)">智能优化</div>
                           </el-tooltip> -->
                           </el-tooltip> -->
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="courseTextB = !courseTextB,forceUpdate2(), addCourseBehavior('courseBehavior', '点击课程概况-确定/编辑按钮')">{{ courseTextB ? '确定' : '编辑'}}</div>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="courseTextB = !courseTextB,forceUpdate2(), addCourseBehavior('courseBehavior', '点击课程概况-确定/编辑按钮')">{{ 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'), addCourseBehavior('courseBehavior', '点击课程概况-引用按钮')"></el-switch>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiDetail']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="isDialog == 1"  @change="handleSwitchChange('aiDetail'), addCourseBehavior('courseBehavior', '点击课程概况-引用按钮')"></el-switch>
                         </div>
                         </div>
                       </div>
                       </div>
                   </div>
                   </div>
@@ -1332,7 +1330,7 @@
                               @click="openAiDialog(2, 'aitargetTextDetail2', 2), addCourseBehavior('courseBehavior', '点击课程目标-智能优化按钮')">智能优化</div>
                               @click="openAiDialog(2, 'aitargetTextDetail2', 2), addCourseBehavior('courseBehavior', '点击课程目标-智能优化按钮')">智能优化</div>
                           </el-tooltip>
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="targetCourseText2B = !targetCourseText2B,forceUpdate2(), addCourseBehavior('courseBehavior', '点击课程目标-确定/编辑按钮')">{{ targetCourseText2B ? '确定' : '编辑'}}</div>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="targetCourseText2B = !targetCourseText2B,forceUpdate2(), addCourseBehavior('courseBehavior', '点击课程目标-确定/编辑按钮')">{{ 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'), addCourseBehavior('courseBehavior', '点击课程目标-引用按钮')"></el-switch>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aitargetTextDetail2']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="isDialog == 1"  @change="handleSwitchChange('aitargetTextDetail2'), addCourseBehavior('courseBehavior', '点击课程目标-引用按钮')"></el-switch>
                         </div>
                         </div>
                       </div>
                       </div>
                   </div>
                   </div>
@@ -1662,7 +1660,7 @@
                           </el-tooltip>
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editTask2(index), addCourseBehavior('courseBehavior', `点击课程大纲-任务${index + 1}-确定/编辑按钮`)">{{
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editTask2(index), addCourseBehavior('courseBehavior', `点击课程大纲-任务${index + 1}-确定/编辑按钮`)">{{
                             item.isTask2 ? '确定' : '编辑'}}</div>
                             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), addCourseBehavior('courseBehavior', `点击课程大纲-任务${index + 1}-引用按钮`)"></el-switch>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiDetail1-'+index]" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="isDialog == 1"  @change="handleSwitchChange('aiDetail1-'+index), addCourseBehavior('courseBehavior', `点击课程大纲-任务${index + 1}-引用按钮`)"></el-switch>
                         </div>
                         </div>
                       </div>
                       </div>
                     </div>
                     </div>
@@ -1692,7 +1690,7 @@
                           </el-tooltip>
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editCpote('cpote1s'), addCourseBehavior('courseBehavior', `点击概念群-确定/编辑按钮`)">{{
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editCpote('cpote1s'), addCourseBehavior('courseBehavior', `点击概念群-确定/编辑按钮`)">{{
                             cpote.cpote1s ? '确定' : '编辑'}}</div>
                             cpote.cpote1s ? '确定' : '编辑'}}</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'), addCourseBehavior('courseBehavior', `点击概念群-引用按钮`)"></el-switch>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiCpote1']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="isDialog == 1"  @change="handleSwitchChange('aiCpote1'), addCourseBehavior('courseBehavior', `点击概念群-引用按钮`)"></el-switch>
                         </div>
                         </div>
                     </div>
                     </div>
                   </div>
                   </div>
@@ -1721,7 +1719,7 @@
                           </el-tooltip>
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editCpote('cpote2s'), addCourseBehavior('courseBehavior', `点击问题链-确定/编辑按钮`)">{{
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editCpote('cpote2s'), addCourseBehavior('courseBehavior', `点击问题链-确定/编辑按钮`)">{{
                             cpote.cpote2s ? '确定' : '编辑'}}</div>
                             cpote.cpote2s ? '确定' : '编辑'}}</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'), addCourseBehavior('courseBehavior', `点击问题链-引用按钮`)"></el-switch>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiCpote2']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="isDialog == 1"  @change="handleSwitchChange('aiCpote2'), addCourseBehavior('courseBehavior', `点击问题链-引用按钮`)"></el-switch>
                         </div>
                         </div>
                     </div>
                     </div>
                   </div>
                   </div>
@@ -1750,7 +1748,7 @@
                           </el-tooltip>
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editCpote('cpote3s'), addCourseBehavior('courseBehavior', `点击目标层-确定/编辑按钮`)">{{
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editCpote('cpote3s'), addCourseBehavior('courseBehavior', `点击目标层-确定/编辑按钮`)">{{
                             cpote.cpote3s ? '确定' : '编辑'}}</div>
                             cpote.cpote3s ? '确定' : '编辑'}}</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'), addCourseBehavior('courseBehavior', `点击目标层-引用按钮`)"></el-switch>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiCpote3']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="isDialog == 1"  @change="handleSwitchChange('aiCpote3'), addCourseBehavior('courseBehavior', `点击目标层-引用按钮`)"></el-switch>
                         </div>
                         </div>
                     </div>
                     </div>
                   </div>
                   </div>
@@ -1779,7 +1777,7 @@
                           </el-tooltip>
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editCpote('cpote4s'), addCourseBehavior('courseBehavior', `点击任务簇-确定/编辑按钮`)">{{
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editCpote('cpote4s'), addCourseBehavior('courseBehavior', `点击任务簇-确定/编辑按钮`)">{{
                             cpote.cpote4s ? '确定' : '编辑'}}</div>
                             cpote.cpote4s ? '确定' : '编辑'}}</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'), addCourseBehavior('courseBehavior', `点击任务簇-引用按钮`)"></el-switch>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['aiCpote4']" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="isDialog == 1"  @change="handleSwitchChange('aiCpote4'), addCourseBehavior('courseBehavior', `点击任务簇-引用按钮`)"></el-switch>
                         </div>
                         </div>
                     </div>
                     </div>
                   </div>
                   </div>
@@ -1827,7 +1825,7 @@
                           </el-tooltip>
                           </el-tooltip>
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editTask3(index)">{{
                           <div class="r_pub_button_edit" style="margin-left:10px" @click="editTask3(index)">{{
                             item.isTask3 ? '确定' : '编辑'}}</div>
                             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), addCourseBehavior('courseBehavior', `点击教案-任务${index + 1}-引用按钮`)"></el-switch>
+                          <el-switch style="margin-left: 10px" v-model="isQuote['teacherDetail2-'+index]" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="isDialog == 1"  @change="handleSwitchChange('teacherDetail2-'+index), addCourseBehavior('courseBehavior', `点击教案-任务${index + 1}-引用按钮`)"></el-switch>
                         </div>
                         </div>
                       </div>
                       </div>
                     </div>
                     </div>
@@ -2742,7 +2740,7 @@
                                       itemTaskIndex
                                       itemTaskIndex
                                     ], itemTaskIndex), addCourseBehavior('courseBehavior', `点击学历案-任务${itemTaskIndex + 1}-任务描述-智能优化按钮`)">智能优化</div>
                                     ], itemTaskIndex), addCourseBehavior('courseBehavior', `点击学历案-任务${itemTaskIndex + 1}-任务描述-智能优化按钮`)">智能优化</div>
                                   </el-tooltip>
                                   </el-tooltip>
-                                    <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>
+                                    <el-switch style="margin-left: 10px" v-model="isQuote['aiDetail2-'+itemTaskIndex]" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="isDialog == 1"  @change="handleSwitchChange('aiDetail2-'+itemTaskIndex)"></el-switch>
                                   </div>
                                   </div>
                               </div>
                               </div>
                             </div>
                             </div>
@@ -4859,7 +4857,7 @@
                                         @click="openAiDialog(2, 'aiDetail3', itemTool.toolDetail, itemTaskIndex, toolIndex), addCourseBehavior('courseBehavior', `点击学历案-任务${itemTaskIndex + 1}-工具${toolIndex + 1}-工具描述-智能优化按钮`)">
                                         @click="openAiDialog(2, 'aiDetail3', itemTool.toolDetail, itemTaskIndex, toolIndex), addCourseBehavior('courseBehavior', `点击学历案-任务${itemTaskIndex + 1}-工具${toolIndex + 1}-工具描述-智能优化按钮`)">
                                         智能优化</div>
                                         智能优化</div>
                                     </el-tooltip>
                                     </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>
+                                    <el-switch style="margin-left: 10px" v-model="isQuote['aiDetail3-'+itemTaskIndex+'-'+toolIndex]" active-text="引用" active-color="#0061FF"  class="custom-switch" v-if="isDialog == 1"  @change="handleSwitchChange('aiDetail3-'+itemTaskIndex+'-'+toolIndex)"></el-switch>
                                   </div>
                                   </div>
                                 </div>
                                 </div>
                               </div>
                               </div>
@@ -5378,8 +5376,8 @@
         <aiTips ttitle="任务详情" title="任务评价优化" :detail="aiJson.aiDetail4" pan="aiDetail4" @setAiJson="setAiJson" />
         <aiTips ttitle="任务详情" title="任务评价优化" :detail="aiJson.aiDetail4" pan="aiDetail4" @setAiJson="setAiJson" />
         <aiTips ttitle="任务详情" title="生成评价细则" :detail="aiJson.aiRateRule" pan="aiRateRule" @setAiJson="setAiJson"/>
         <aiTips ttitle="任务详情" title="生成评价细则" :detail="aiJson.aiRateRule" pan="aiRateRule" @setAiJson="setAiJson"/>
       </div>
       </div>
-      <div class="leftBar2 " v-show="istemplate != 1 && dialogTemplateArray.indexOf(templateid) != -1 && chatid && isDisplay">
-        <!-- <div class="resizer"></div> resizable-->
+      <div class="leftBar2 resizable" v-show="istemplate != 1 && isDialog == 1 && chatid && isDisplay">
+        <div class="resizer"></div> 
         <aiBoxRight  
         <aiBoxRight  
         :languageSetting="languageSetting"
         :languageSetting="languageSetting"
         :courseId="chatid" 
         :courseId="chatid" 
@@ -5393,7 +5391,7 @@
         @addCourseBehavior="addCourseBehavior"
         @addCourseBehavior="addCourseBehavior"
         @setIsQuote="setIsQuote"></aiBoxRight>
         @setIsQuote="setIsQuote"></aiBoxRight>
       </div>
       </div>
-      <div class="close_btn" @click="closeRight" :class="!isDisplay ? 'close_btn_voice' : ''"  v-show="istemplate != 1 && dialogTemplateArray.indexOf(templateid) != -1 && chatid">
+      <div class="close_btn" @click="closeRight" :class="!isDisplay ? 'close_btn_voice' : ''"  v-show="istemplate != 1 && isDialog == 1 && chatid">
         <img src="../../../assets/icon/course/arrow.svg" >
         <img src="../../../assets/icon/course/arrow.svg" >
       </div>
       </div>
     </div>
     </div>
@@ -7430,7 +7428,8 @@ export default {
       dialogTemplateArray: [ 'cf5722a4-401b-11ef-b873-005056b86cd2', '68629cfb-e719-48e9-a03d-56f189fb9cb0' ],
       dialogTemplateArray: [ 'cf5722a4-401b-11ef-b873-005056b86cd2', '68629cfb-e719-48e9-a03d-56f189fb9cb0' ],
       taskCancelToken1: [],
       taskCancelToken1: [],
       taskCancelToken2: [],
       taskCancelToken2: [],
-      isDisplay: true
+      isDisplay: true,
+      isDialog: 0,
     };
     };
   },
   },
   directives: {
   directives: {
@@ -12247,6 +12246,22 @@ ${_this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll('#',''
             //   this.aiJson.aiTeacher = '请根据<任务名+单一任务描述>和并参考<课程简要描述>和#参考上下文(上下文中可能蕴含不相关的内容,请你无视不相关内容),为该任务设计详细的教案,教案需要包含该任务的教学目标,教学过程(包含分步骤的教师活动和学生活动,教师活动与学生活动应该一一对应),评价标准(学生能做到...),相关知识点的讲解,练习(练习需要包含示例答案)。'
             //   this.aiJson.aiTeacher = '请根据<任务名+单一任务描述>和并参考<课程简要描述>和#参考上下文(上下文中可能蕴含不相关的内容,请你无视不相关内容),为该任务设计详细的教案,教案需要包含该任务的教学目标,教学过程(包含分步骤的教师活动和学生活动,教师活动与学生活动应该一一对应),评价标准(学生能做到...),相关知识点的讲解,练习(练习需要包含示例答案)。'
             // }
             // }
             this.$forceUpdate();
             this.$forceUpdate();
+            this.isDialog = res.data[0][0].isDialog
+          }
+        })
+        .catch((err) => { });
+      }
+    },
+    getTipsTemplateIsDialog(){
+      if(this.templateid){
+        let params = {
+          id: this.templateid
+        }
+        this.ajax
+        .get(this.$store.state.api + "selectTipsTemplateById", params)
+        .then((res) => {
+          if(res.data[0].length){
+            this.isDialog = res.data[0][0].isDialog
           }
           }
         })
         })
         .catch((err) => { });
         .catch((err) => { });
@@ -14227,6 +14242,7 @@ ${_this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll('#',''
                 this.aiJson.agentid = this.aiJson.agentid ? this.aiJson.agentid : '8e71322c-6c2a-11ef-8ce0-12e77c4cb76b'
                 this.aiJson.agentid = this.aiJson.agentid ? this.aiJson.agentid : '8e71322c-6c2a-11ef-8ce0-12e77c4cb76b'
                 this.aiJson.sagentid = this.aiJson.sagentid ? this.aiJson.sagentid : ''
                 this.aiJson.sagentid = this.aiJson.sagentid ? this.aiJson.sagentid : ''
                 this.templateid = res.data[3][0].template;
                 this.templateid = res.data[3][0].template;
+                this.getTipsTemplateIsDialog()
               }catch(error){
               }catch(error){
                 console.error(error)
                 console.error(error)
               }
               }
@@ -14361,6 +14377,7 @@ ${_this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll('#',''
               try {
               try {
                 this.aiJson = JSON.parse(res.data[3][0].tips);
                 this.aiJson = JSON.parse(res.data[3][0].tips);
                 this.templateid = res.data[3][0].template;
                 this.templateid = res.data[3][0].template;
+                this.getTipsTemplateIsDialog()
               }catch(error){
               }catch(error){
                 console.error(error)
                 console.error(error)
               }
               }
@@ -15905,12 +15922,12 @@ ${_this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll('#',''
       window.course_info = courseInfo
       window.course_info = courseInfo
       window.course_lang = this.languageSetting
       window.course_lang = this.languageSetting
     },
     },
-    setCover() {
+    setCover(attempts = 0) {
       var _this = this;
       var _this = this;
-      if(_this.cover.length){
+      if (_this.cover.length || attempts >= 3) {
         return;
         return;
       }
       }
-      _this.imageloading2 = true
+      _this.imageloading2 = true;
       _this.ajax
       _this.ajax
         .post("https://gpt.cocorobo.cn/search_image", {
         .post("https://gpt.cocorobo.cn/search_image", {
           page: _this.ppage,
           page: _this.ppage,
@@ -15918,21 +15935,26 @@ ${_this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll('#',''
           query: _this.courseName,
           query: _this.courseName,
         })
         })
         .then(function (response) {
         .then(function (response) {
-          // console.log(response.data.data);
-          var data = response.data.FunctionResponse.result;
-          _this.cover = [];
-          setTimeout(() => {
-              _this.cover[0] = {
-              name: "网络图片.png",
-              url: data[0].thumbnail
-            };
-            _this.imgChange1(null, null, 1, null);
-            _this.$forceUpdate();
-          }, 0);
-          _this.imageloading2 = false
+          var data = (response.data && response.data.FunctionResponse) ? response.data.FunctionResponse.result : ''; 
+          if(data){
+            _this.cover = [];
+            setTimeout(() => {
+              _this.cover[0] = {
+                name: "网络图片.png",
+                url: data[0].thumbnail,
+              };
+              _this.imgChange1(null, null, 1, null);
+              _this.$forceUpdate();
+            }, 0);
+            _this.imageloading2 = false;
+          }else {
+            _this.imageloading2 = false;
+            _this.setCover(attempts + 1);
+          }
         })
         })
         .catch(function (error) {
         .catch(function (error) {
-          _this.imageloading2 = false
+          _this.imageloading2 = false;
+          _this.setCover(attempts + 1);
           console.log(error);
           console.log(error);
         });
         });
     },
     },
@@ -16515,12 +16537,12 @@ ${_this.unitJson[0].chapterInfo[0].taskJson[index].taskDetail3.replaceAll('#',''
         ); // 利用file-saver保存文件  自定义文件名
         ); // 利用file-saver保存文件  自定义文件名
         setTimeout(() => {
         setTimeout(() => {
           this.loading = false
           this.loading = false
-          if(!this.cid){
-            this.addWork(3)
-          }else{
-            this.updateWork();
-            this.steps = 4;
-          }
+          // if(!this.cid){
+          //   this.addWork(3)
+          // }else{
+          //   this.updateWork();
+          //   this.steps = 4;
+          // }
         }, 2000);
         }, 2000);
       });
       });
   
   
@@ -23741,33 +23763,63 @@ ${msg}
     next();
     next();
   },
   },
   mounted(){
   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);
+    const resizable = this.$el.querySelector('.resizable');
+    const resizer = this.$el.querySelector('.resizer');
+    const maxWidth = document.body.offsetWidth / 2;
+    const maxWidth2 = window.innerWidth / 2;
+    let startX, startWidth;
+
+    const mouseMoveHandler = (e) => {
+      e.preventDefault(); // 添加此行以防止选中其他文本
+      const dx = startX - e.clientX;
+      const newWidth = startWidth + dx;
+      if (newWidth >= 350 && newWidth <= maxWidth) {
+        resizable.style.minWidth = `${newWidth}px`;
+      }
+    };
+
+    const mouseUpHandler = () => {
+      document.removeEventListener('mousemove', mouseMoveHandler);
+      document.removeEventListener('mouseup', mouseUpHandler);
+      document.body.style.cursor = 'default';
+    };
+
+    const mouseDownHandler = (e) => {
+      e.preventDefault(); // 添加此行以防止选中其他文本
+      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);
+
+    const touchMoveHandler = (e) => {
+      e.preventDefault(); // 添加此行以防止选中其他文本
+      const dx = startX - e.touches[0].clientX;
+      const newWidth = startWidth + dx;
+      if (newWidth >= 350 && newWidth <= maxWidth2) {
+        resizable.style.minWidth = `${newWidth}px`;
+      }
+    };
+
+    const touchEndHandler = () => {
+      document.removeEventListener('touchmove', touchMoveHandler);
+      document.removeEventListener('touchend', touchEndHandler);
+      document.body.style.cursor = 'default';
+    };
+
+    const touchStartHandler = (e) => {
+      e.preventDefault(); // 添加此行以防止选中其他文本
+      startX = e.touches[0].clientX;
+      startWidth = resizable.getBoundingClientRect().width;
+      document.addEventListener('touchmove', touchMoveHandler);
+      document.addEventListener('touchend', touchEndHandler);
+      document.body.style.cursor = 'ew-resize';
+    };
+
+    resizer.addEventListener('touchstart', touchStartHandler);
   },
   },
   created() {
   created() {
     this.selectFileid();
     this.selectFileid();
@@ -24611,14 +24663,29 @@ ${msg}
 .course_input_box {
 .course_input_box {
   display: flex;
   display: flex;
   margin-right: 20px;
   margin-right: 20px;
+  min-width: 400px;
+  width: calc(100% - 350px);
+  align-items: center;
+  position: relative;
+  margin-bottom: 15px;
+}
+
+.course_input_box2 {
+  display: flex;
   width: 100%;
   width: 100%;
   align-items: center;
   align-items: center;
   position: relative;
   position: relative;
+  flex-wrap: wrap;
 }
 }
 
 
+
 .course_input_box>.binfo_input {
 .course_input_box>.binfo_input {
-  width: calc(100% - 0 - 200px - 20px);
-  margin: 0 10px;
+  width: calc(100%);
+  margin: 0;
+  border: 1.5px solid rgb(202, 209, 220); 
+  border-radius: 5px;
+  font-weight: 600;
+  padding: 12px 14px 12px 71px;
 }
 }
 
 
 .bb_courseIcon {
 .bb_courseIcon {
@@ -25851,7 +25918,7 @@ ol {
   width: 100%;
   width: 100%;
   align-items: center;
   align-items: center;
   justify-content: flex-start;
   justify-content: flex-start;
-  margin: 15px 0;
+  margin: 0 0 15px;
 }
 }
 
 
 .notice>>>.el-dialog {
 .notice>>>.el-dialog {
@@ -27614,7 +27681,7 @@ ol {
 }
 }
 
 
 .pType_box {
 .pType_box {
-  margin-top: 30px;
+  margin: 15px 0;
   align-items: flex-end;
   align-items: flex-end;
 }
 }
 
 
@@ -28106,18 +28173,21 @@ ol {
   word-break: break-word;
   word-break: break-word;
 }
 }
 
 
-.info_box_t{
+.info_box_t {
   display: flex;
   display: flex;
   align-items: center;
   align-items: center;
+  flex-wrap: wrap;
 }
 }
 
 
-.info_box_t + .info_box_t{
+.info_box_t + .info_box_t {
   margin-top: 10px;
   margin-top: 10px;
 }
 }
 
 
-.info_box_t_box{
+.info_box_t_box {
   display: flex;
   display: flex;
   align-items: center;
   align-items: center;
+  flex-wrap: wrap;
+  margin-bottom: 5px;
 }
 }
 
 
 .info_box_t_box + .info_box_t_box{
 .info_box_t_box + .info_box_t_box{
@@ -28324,9 +28394,8 @@ ol {
 
 
 .resizable {
 .resizable {
   position: relative;
   position: relative;
- 
-  min-width: 200px; /* 最小宽度 */
-  max-width: 600px; /* 最大宽度 */
+  min-width: 350px; /* 最小宽度 */
+  max-width: 50%; /* 最大宽度 */
 }
 }
 
 
 .resizer {
 .resizer {
@@ -28338,5 +28407,6 @@ ol {
   left: 0;
   left: 0;
   cursor: ew-resize;
   cursor: ew-resize;
   transform: translateY(-50%);
   transform: translateY(-50%);
+  border-radius: 43px;
 }
 }
 </style>
 </style>