Browse Source

Merge branch 'beta'

qgt 1 month ago
parent
commit
b5f882f87e

+ 1 - 1
dist/index.html

@@ -32,7 +32,7 @@
       width: 100%;
       background: #e6eaf0;
       font-family: '黑体';
-    }</style><link href=./static/css/app.1596b9bb16b9c8b6255f3b03e546f2bd.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.13ce8e475898fba4b86d.js></script><script type=text/javascript src=./static/js/vendor.715d92365c85ab803f65.js></script><script type=text/javascript src=./static/js/app.68ce08fc53d977ce91da.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.5443948047598b83968cb49aebc37a2d.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.23ea04dc469b57e2b4f8.js></script><script type=text/javascript src=./static/js/vendor.dfc8a8e3392292c7b8e5.js></script><script type=text/javascript src=./static/js/app.f3cacc52fecc4c28d967.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.1596b9bb16b9c8b6255f3b03e546f2bd.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.5443948047598b83968cb49aebc37a2d.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.5443948047598b83968cb49aebc37a2d.css.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/0.9f2408d57b212f100e92.js.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/0.eb6bdee5e7207bfd76b0.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/0.eb6bdee5e7207bfd76b0.js.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.f3cacc52fecc4c28d967.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.f3cacc52fecc4c28d967.js.map


+ 2 - 2
dist/static/js/manifest.13ce8e475898fba4b86d.js → dist/static/js/manifest.23ea04dc469b57e2b4f8.js

@@ -1,2 +1,2 @@
-!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var i,u,f,s=0,l=[];s<r.length;s++)u=r[s],t[u]&&l.push(t[u][0]),t[u]=0;for(i in c)Object.prototype.hasOwnProperty.call(c,i)&&(e[i]=c[i]);for(n&&n(r,c,a);l.length;)l.shift()();if(a)for(s=0;s<a.length;s++)f=o(o.s=a[s]);return f};var r={},t={8:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+e+"."+{0:"9f2408d57b212f100e92",1:"14e8e8c7e44fc858e4a6",2:"94e1427bfc7ef0b4c685",3:"3a9f53a78da16650e6b8"}[e]+".js";var i=setTimeout(u,12e4);function u(){a.onerror=a.onload=null,clearTimeout(i);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return a.onerror=a.onload=u,c.appendChild(a),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]);
-//# sourceMappingURL=manifest.13ce8e475898fba4b86d.js.map
+!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var i,u,f,s=0,l=[];s<r.length;s++)u=r[s],t[u]&&l.push(t[u][0]),t[u]=0;for(i in c)Object.prototype.hasOwnProperty.call(c,i)&&(e[i]=c[i]);for(n&&n(r,c,a);l.length;)l.shift()();if(a)for(s=0;s<a.length;s++)f=o(o.s=a[s]);return f};var r={},t={8:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+e+"."+{0:"eb6bdee5e7207bfd76b0",1:"14e8e8c7e44fc858e4a6",2:"94e1427bfc7ef0b4c685",3:"3a9f53a78da16650e6b8"}[e]+".js";var i=setTimeout(u,12e4);function u(){a.onerror=a.onload=null,clearTimeout(i);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return a.onerror=a.onload=u,c.appendChild(a),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]);
+//# sourceMappingURL=manifest.23ea04dc469b57e2b4f8.js.map

File diff suppressed because it is too large
+ 0 - 0
dist/static/js/manifest.23ea04dc469b57e2b4f8.js.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/vendor.dfc8a8e3392292c7b8e5.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/vendor.dfc8a8e3392292c7b8e5.js.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/workPage-manifest.2ece51fa34be51c8610a.js.map


+ 6 - 4
src/components/pages/classroomObservation/components/chatArea.vue

@@ -812,7 +812,7 @@ export default {
     choseRoleList() {
       let result = [...this.roleList, ...this.publicRoleList];
       const _index = this.textareaValue.lastIndexOf("@");
-      if (_index !== -1) {
+      if (_index !== -1 && result.length>0) {
         let roleName = this.textareaValue.substring(_index + 1);
         result = result.filter(i => i.assistantName.indexOf(roleName) != -1);
       } else {
@@ -871,7 +871,7 @@ export default {
 
 				// 判断如果是m4a文件
         if (/\.m4a$/i.test(file.name)) {
-          file = await mediaFileToWavFile(file,{sampleRate:8000}) 
+          file = await mediaFileToWavFile(file,{sampleRate:8000})
         }
 
 
@@ -2391,6 +2391,7 @@ ${JSON.stringify(_list)}
       return new File([blob], filename, { type: "audio/wav" });
     },
     getRoleList() {
+      return
       this.roleList = [];
       let params = {
         userId: this.userId
@@ -2410,6 +2411,7 @@ ${JSON.stringify(_list)}
         });
     },
     getPublicRoleList() {
+    return
       this.publicRoleList = [];
       let params = {
         userId: this.userId,
@@ -2485,8 +2487,8 @@ ${JSON.stringify(_list)}
       }),
         (this.audioUrl = "");
       this.chatList = [];
-      this.getRoleList();
-      this.getPublicRoleList();
+      // this.getRoleList();
+      // this.getPublicRoleList();
       this.getChatList().then(_ => {
         this.loading = false;
         this.scrollBottom();

+ 9 - 2
src/components/pages/components/exportWorksDialog.vue

@@ -166,7 +166,13 @@
                       </div>
                       <div  style="margin-bottom: 20px;" v-for="(item,index) in l.content[0]" :key="index+'coco'">
                             <div style="margin-bottom: 15px;font-size: 14px;font-weight: 600;color: #000;">第{{ index + 1}}阶段</div>
-                            <div v-for="(po,PInd) in item.messages" :key="PInd+'PInd'">
+                            <template v-if="item.imageUrls && item.imageUrls.length">
+                              <div style="display: flex;flex-wrap: wrap;gap: 10px;" v-for="(image,index) in item.imageUrls" :key="index+'-image'">
+                                  <img style="max-width: 390px;object-fit: cover;" :src="image" alt="" />
+                              </div>
+                            </template>
+                            <template v-if="item.messages && item.messages.length">
+                              <div v-for="(po,PInd) in item.messages" :key="PInd+'PInd'">
                                 <div class="left" v-if="po.role == 'assistant'">
                                         <div class="TName">小可AI助手</div>:
                                         <div class="con" v-html="MarkdownT(po.content)"></div>
@@ -176,7 +182,8 @@
                                         <div class="TName">{{ worksDialogCon2.sName }}</div>:
                                         <div class="con" v-html="po.content"></div>
                                 </div>
-                            </div>
+                              </div>
+                            </template>
                         </div>
                     </div>
                     <div v-if="l.tool[0] == 16 || l.tool[0] == 50">

+ 9 - 2
src/components/pages/components/lookWork.vue

@@ -185,7 +185,13 @@
                         </div>
                         <div  style="margin-bottom: 20px;" v-for="(item,index) in l.content[0]" :key="index+'coco'">
                             <div style="margin-bottom: 15px;font-size: 14px;font-weight: 600;color: #000;">第{{ index + 1}}阶段</div>
-                            <div v-for="(po,PInd) in item.messages" :key="PInd+'PInd'">
+                            <template v-if="item.imageUrls && item.imageUrls.length">
+                              <div style="display: flex;flex-wrap: wrap;gap: 10px;" v-for="(image,index) in item.imageUrls" :key="index+'-image'">
+                                  <img style="max-width: 390px;object-fit: cover;" :src="image" alt="" />
+                              </div>
+                            </template>
+                            <template v-if="item.messages && item.messages.length">
+                              <div v-for="(po,PInd) in item.messages" :key="PInd+'PInd'">
                                 <div class="left" v-if="po.role == 'assistant'">
                                         <div class="TName">小可AI助手</div>:
                                         <div class="con" v-html="MarkdownT(po.content)"></div>
@@ -195,7 +201,8 @@
                                         <div class="TName">{{ userName }}</div>:
                                         <div class="con" v-html="po.content"></div>
                                 </div>
-                            </div>
+                              </div>
+                            </template>
                         </div>
                       </div>
                       <div v-if="l.tool[0] == 16 || l.tool[0] == 50">

+ 124 - 157
src/components/pages/course.vue

@@ -11,8 +11,8 @@
     display: flex;
     align-items: center;
 ">
-          <span class="sub_head">课程管理</span>
-          <span class="subClick" @click="
+          <span class="sub_head">{{ lang.CourseManagement }}</span>
+          <span class="subClick" v-if="lang.lang != 'com'" @click="
             goTo(
               '/works?userid=' +
               userid +
@@ -23,7 +23,7 @@
               '&role=' +
               role
             )
-            ">评价管理</span>
+            ">{{ lang.EvaluationManagement }}</span>
         </div>
         <div v-if="gotype"></div>
         <div class="student_button">
@@ -32,17 +32,17 @@
           <el-button type="primary" class="bgColor" @click="goToCourse2()">创建任务式课程</el-button>
           <el-button type="primary" class="bgColor" @click="goToCourse()">创建阶段式课程</el-button> -->
           <button class="r_pub_button_course" @mouseenter="btnDisplay = true" @mouseleave="btnDisplay = false">
-            <span>创建课程</span>
+            <span>{{ lang.CreateCourse }}</span>
             <div v-show="btnDisplay" class="buttonBox">
-              <div type="primary" @click="goToCourse3()">极简式课程</div>
+              <div type="primary" @click="goToCourse3()">{{ lang.SimplifiedCourse }}</div>
               <!-- <div type="primary" @click="goToCourse2()">任务式课程</div> -->
               <!-- <div type="primary" @click="goToCourse()">阶段式课程</div> -->
-              <div type="primary" @click="goToCourse4()">阶段式课程</div>
-              <div type="primary" @click="goToPptEasy()" v-show="pptArrayOrg.includes(org) || pptArrayOid.includes(oid)">互动课件模式</div>
-
+              <div type="primary" @click="goToCourse4()">{{ lang.MultistageCourse }}</div>
+              
               <!-- v-show="org == '1973f6c7-1561-11ee-91d8-005056b86db5' || org == '777559d2-7239-11ee-b98c-005056b86db5' || org == '884c5665-a453-46f3-b7b6-01d575290aa9'" -->
-              <div type="primary" @click="oepnTemplate()" v-show="orgArray.includes(org) || oidArray.includes(oid)">AI引导模式</div>
-              <div type="primary" @click="oepnTemplate2()" v-show="orgArray.includes(org) || oidArray.includes(oid)">解析教案模式</div>
+              <div type="primary" @click="oepnTemplate()" v-show="orgArray.includes(org) || oidArray.includes(oid)">{{ lang.AIMode }}</div>
+              <div type="primary" @click="oepnTemplate2()" v-show="orgArray.includes(org) || oidArray.includes(oid)">{{ lang.Classroommode }}</div>
+              <div type="primary" @click="goToPptEasy()" v-show="pptArrayOrg.includes(org) || pptArrayOid.includes(oid)">{{ lang.PPTmode }}</div>
               <!-- oepnTemplate2 -->
             </div>
           </button>
@@ -53,28 +53,28 @@
           <!-- <div>分类筛选</div> -->
           <div class="reTopCh">
             <el-select v-model="groupA" @change="search" v-if="role == '1'">
-              <el-option value="4" label="全部"></el-option>
-              <el-option value="2" label="我的课程"></el-option>
-              <el-option value="3" label="协同课程"></el-option>
-              <el-option value="1" label="他人课程"></el-option>
+              <el-option value="4" :label="lang.All"></el-option>
+              <el-option value="2" :label="lang.MyCourse"></el-option>
+              <el-option value="3" :label="lang.CollaborativeCourse"></el-option>
+              <el-option value="1" :label="lang.OthersCourse"></el-option>
             </el-select>
             <el-select v-model="groupA" @change="search" v-else>
-              <el-option value="0" label="全部"></el-option>
-              <el-option value="2" label="我的课程"></el-option>
-              <el-option value="3" label="协同课程"></el-option>
+              <el-option value="0" :label="lang.All"></el-option>
+              <el-option value="2" :label="lang.MyCourse"></el-option>
+              <el-option value="3" :label="lang.CollaborativeCourse"></el-option>
             </el-select>
             <div class="searchI">
               <!-- @click="getCourse" -->
               <div class="search">
                 <img src="../../assets/icon/search.png" alt="" />
               </div>
-              <input class="sInput" type="text" placeholder="请输入关键字" v-model="courseName" />
+              <input class="sInput" type="text" :placeholder="lang.PleaseEnterKeyword" v-model="courseName" />
             </div>
-            <el-button type="primary" class="bgColor" style="margin-left: 10px;" @click="reset">重置</el-button>
+            <el-button type="primary" class="bgColor" style="margin-left: 10px;" @click="reset">{{ lang.reset }}</el-button>
           </div>
         </div>
         <div class="pType_box all_choose" v-if="oid == '69893dca-1d47-11ed-8c78-005056b86db5'">
-          <span><span>类型</span></span>
+          <span><span>{{ lang.type }}</span></span>
           <el-radio-group v-model="pTypeCheckName" style="display: flex; align-items: center">
             <div class="all_choose" style="width: 100px" v-for="(item, index) in CourseType2" :key="index">
               <el-radio :label="item.name" @click.native.prevent="CourseType2Click(item.name)">{{ item.name }}</el-radio>
@@ -84,61 +84,59 @@
         <div class="choose">
           <template v-if="oid != '91796dfb-8791-11ef-9b30-005056b86db5'">
             <div class="all_choose" v-for="(item, index) in CourseType[0]" :key="index"
-            :style="{ margin: !CourseTypeJson[item.id].length && 0 }">
-            <span v-if="CourseTypeJson[item.id].length &&
-              (oid == '69893dca-1d47-11ed-8c78-005056b86db5'
-                ? pTypeCheck.indexOf(item.id) != -1
-                : true)
-              "><span>{{ item.name }}</span></span>
-            <div class="typeCss" v-if="CourseTypeJson[item.id].length &&
-              (oid == '69893dca-1d47-11ed-8c78-005056b86db5'
-                ? pTypeCheck.indexOf(item.id) != -1
-                : true)
-              ">
-              <div class="cName" @click="getCourse2(item.name, '', item.id, 1)"
-                :class="typeE.indexOf(item.id) != -1 ? 'isCType' : ''">
-                全部
-              </div>
-              <div v-for="(item1, index1) in CourseTypeJson[item.id]" :key="index + '-' + index1" :label="item1.id"
-                @click="getCourse2(item.name, item.id, item1.id, 2)">
-                <div class="cName" :class="typea == item1.id || typeb == item1.id || typed == item1.id
-                  ? 'isCType'
-                  : ''
-                  ">
-                  {{ item1.name }}
+              :style="{ margin: !CourseTypeJson[item.id].length && 0 }">
+              <span v-if="CourseTypeJson[item.id].length &&
+                (oid == '69893dca-1d47-11ed-8c78-005056b86db5'
+                  ? pTypeCheck.indexOf(item.id) != -1
+                  : true)
+                "><span>{{ item.name }}</span></span>
+              <div class="typeCss" v-if="CourseTypeJson[item.id].length &&
+                (oid == '69893dca-1d47-11ed-8c78-005056b86db5'
+                  ? pTypeCheck.indexOf(item.id) != -1
+                  : true)
+                ">
+                <div class="cName" @click="getCourse2(item.name, '', item.id, 1)"
+                  :class="typeE.indexOf(item.id) != -1 ? 'isCType' : ''">
+                  {{ lang.All }}
+                </div>
+                <div class="cName" :class="typea == item1.id || typeb == item1.id || typed == item1.id ? 'isCType' : ''"
+                   v-for="(item1, index1) in CourseTypeJson[item.id]" :key="index + '-' + index1" :label="item1.id"
+                  @click="getCourse2(item.name, item.id, item1.id, 2)">
+                    {{ item1.name }}
                 </div>
               </div>
             </div>
-            </div>
           </template>
+         
+
           <div class="all_choose" v-if="role == '1'">
-            <span><span>所有者</span></span>
+            <span><span>{{ lang.Owner }}</span></span>
             <div class="typeCss">
               <div class="cName" :class="groupA == '4' ? 'isCType' : ''" @click="groupA = '4'; search();">
-                全部
+                {{ lang.All }}
               </div>
               <div class="cName" :class="groupA == '2' ? 'isCType' : ''" @click="groupA = '2'; search();">
-                我的课程
+                {{ lang.MyCourse }}
               </div>
               <div class="cName" :class="groupA == '3' ? 'isCType' : ''" @click="groupA = '3'; search();">
-                协同课程
+                {{ lang.CollaborativeCourse }}
               </div>
               <div class="cName" :class="groupA == '1' ? 'isCType' : ''" @click="groupA = '1'; search();">
-                他人课程
+                {{ lang.OthersCourse }}
               </div>
             </div>
           </div>
           <div class="all_choose" v-else>
-            <span><span>所有者</span></span>
+            <span><span>{{ lang.Owner }}</span></span>
             <div class="typeCss">
               <div class="cName" :class="groupA == '0' ? 'isCType' : ''" @click="groupA = '0'; search();">
-                全部
+                {{ lang.All }}
               </div>
               <div class="cName" :class="groupA == '2' ? 'isCType' : ''" @click="groupA = '2'; search();">
-                我的课程
+                {{ lang.MyCourse }}
               </div>
               <div class="cName" :class="groupA == '3' ? 'isCType' : ''" @click="groupA = '3'; search();">
-                协同课程
+                {{ lang.CollaborativeCourse }}
               </div>
             </div>
           </div>
@@ -150,28 +148,28 @@
       <div class="student_head" v-if="false">
         <div class="choose">
           <div class="student_search">
-            <span>课程筛选</span>
+            <span>{{ lang.Coursescreening }}</span>
             <el-select v-model="groupA" @change="search">
-              <el-option value="0" label="我的课程"></el-option>
-              <el-option value="1" label="他人课程"></el-option>
+              <el-option value="0" :label="lang.MyCourse"></el-option>
+              <el-option value="1" :label="lang.OthersCourse"></el-option>
             </el-select>
           </div>
           <div class="all_choose" v-for="(item, index) in CourseType[0]" :key="index">
             <span v-if="CourseTypeJson[item.id].length">{{ item.name }}</span>
-            <el-select v-if="CourseTypeJson[item.id].length" v-model="courseTypeId[item.id]" placeholder="请选择"
+            <el-select v-if="CourseTypeJson[item.id].length" v-model="courseTypeId[item.id]" :placeholder="lang.Pleaseselect"
               @change="getTypeName">
-              <el-option label="全部" value="1">全部</el-option>
+              <el-option :label="lang.All" value="1">{{ lang.All }}</el-option>
               <el-option v-for="item1 in CourseTypeJson[item.id]" :key="item1.id" :label="item1.name" :value="item1.id">
               </el-option>
             </el-select>
           </div>
-          <div @click="clear" class="clear">重置</div>
+          <div @click="clear" class="clear">{{ lang.reset }}</div>
         </div>
 
         <div class="student_right">
           <div class="head_left">
-            <el-input v-model="courseName" class="student_input" placeholder="请输入课程名称"></el-input>
-            <el-button class="course_button" @click="searchCourse">查询</el-button>
+            <el-input v-model="courseName" class="student_input" :placeholder="lang.entercoursename"></el-input>
+            <el-button class="course_button" @click="searchCourse">{{ lang.Search }}</el-button>
           </div>
         </div>
       </div>
@@ -185,14 +183,14 @@
               他人课程
             </div>
             <div class="xtCourse" v-else>协同课程</div> -->
-            <div class="myCourse" v-if="item.userid == userid">我的课程</div>
+            <div class="myCourse" v-if="item.userid == userid">{{ lang.MyCourse }}</div>
             <div class="myCourse" style="background: #4187f0" v-else-if="!item.course_teacher ||
               (item.course_teacher &&
                 item.course_teacher.indexOf(userid) == -1)
               ">
-              他人课程
+              {{ lang.OthersCourse }}
             </div>
-            <div class="xtCourse" v-else>协同课程</div>
+            <div class="xtCourse" v-else>{{ lang.CollaborativeCourse }}</div>
             <div class="tup" @click="get(item)">
               <img :src="item.cover != null && item.cover != ''
                 ? JSON.parse(item.cover).length > 0
@@ -217,34 +215,34 @@
               <!-- v-if="item.isCourseType == 2 || groupA == 1" -->
               <div class="kc_t">
                 <span>{{ item.uname }}</span>
-                <span>{{ item.state == 1 ? '阶段模式' : item.state == 2 ? '任务模式' :  item.state == 3 ? '极简模式' : item.state == 6 ? '解析教案模式' : item.state == 7 ? '互动课件模式' : 'AI引导模式' }}</span>
+                <span>{{ item.state == 1 ? lang.StageMode : item.state == 2 ? lang.TaskMode :  item.state == 3 ? lang.MinimalMode : item.state == 6 ? lang.ClassMode : lang.AIMode }}</span>
               </div>
               <div class="kc_time">
-                <span style="color: #717C8D">创建日期:</span>{{ item.time }}
+                <span style="color: #717C8D">{{ lang.CreationDate }}:</span>{{ item.time }}
               </div>
               <div class="kc_time">
-                <span style="color: #717C8D">修改日期:</span>{{ item.utime }}
+                <span style="color: #717C8D">{{ lang.ModificationDate }}:</span>{{ item.utime }}
               </div>
             </div>
             <div class="three_bottom">
-							<el-tooltip effect="dark" content="预览" placement="top">
+							<el-tooltip effect="dark" :content="lang.Preview" placement="top">
     					  <div class="t_b_Item" @click="get(item)">
 									<img style="height: 90%;width: 90%;" src="../../assets/icon/course/lookeye.svg">
 								</div>
     					</el-tooltip>
-							<el-tooltip effect="dark" v-show="orgArray.includes(org) || oidArray.includes(oid)" content="Ai一下" placement="top">
+							<el-tooltip effect="dark" v-show="orgArray.includes(org) || oidArray.includes(oid)" :content="lang.AiEdit" placement="top">
     					  <div class="t_b_Item" @click="aiCourse(item.courseId)">
 									<img src="../../assets/icon/course/aiEdit.svg">
 								</div>
     					</el-tooltip>
 
-							<el-tooltip effect="dark" content="复制" placement="top">
+							<el-tooltip effect="dark" :content="lang.Copy" placement="top">
     					  <div class="t_b_Item" @click="copyCourse(item.courseId, item.setting)">
 									<img src="../../assets/icon/course/copy.svg">
 								</div>
     					</el-tooltip>
 
-							<el-tooltip effect="dark" content="修改" placement="top">
+							<el-tooltip effect="dark" :content="lang.Edit" placement="top">
     					  <div class="t_b_Item" v-if="((item.userid == userid) ||
                 (item.course_teacher &&
                   item.course_teacher.indexOf(userid) !== -1) || role == '1') &&
@@ -292,13 +290,13 @@
 								</div>
     					</el-tooltip>
 
-							<el-tooltip effect="dark" content="删除" placement="top" v-if="item.isCourseType == 1 || role == '1'">
+							<el-tooltip effect="dark" :content="lang.Delete" placement="top" v-if="item.isCourseType == 1 || role == '1'">
     					  <div class="t_b_Item" @click="deleteCourse(item.courseId)">
 									<img src="../../assets/icon/course/del.svg">
 								</div>
     					</el-tooltip>
 
-							<el-tooltip effect="dark" content="分享" placement="top">
+							<el-tooltip effect="dark" :content="lang.Share" placement="top">
     					  <div class="t_b_Item" @click="shareCourse(item.courseId)">
 									<img src="../../assets/icon/course/share.svg">
 								</div>
@@ -360,7 +358,7 @@
               </div> -->
             </div>
           </div>
-          <div class="course_empty" v-if="course.length == 0">暂无数据</div>
+          <div class="course_empty" v-if="course.length == 0">{{ lang.Nodata }}</div>
         </div>
       </div>
     </div>
@@ -371,7 +369,7 @@
     <el-dialog :visible.sync="dialogVisible1" size="tiny">
       <img width="100%" :src="dialogImageUrl" alt />
     </el-dialog>
-    <el-dialog title="查看提问" :visible.sync="dialogVisible" :append-to-body="true" width="750px" :before-close="handleClose"
+    <el-dialog :title="lang.ViewQuestions" :visible.sync="dialogVisible" :append-to-body="true" width="750px" :before-close="handleClose"
       class="dialog_diy">
       <div>
         <div class="a_addBox">
@@ -379,10 +377,10 @@
         </div>
       </div>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible = false">关 闭</el-button>
+        <el-button @click="dialogVisible = false">{{ lang.Close }}</el-button>
       </span>
     </el-dialog>
-    <el-dialog title="查看协同课程" :visible.sync="dialogVisibleCourse" :append-to-body="true" width="850px"
+    <el-dialog :title="lang.ViewCollaborativeCourse" :visible.sync="dialogVisibleCourse" :append-to-body="true" width="850px"
       :before-close="handleClose" class="dialog_diy">
       <div class="ct_box">
         <div class="out_box" v-for="(item, index) in courseTeam" :key="index" style="margin-left: 15px">
@@ -396,11 +394,11 @@
           </div>
           <div class="bottom_box">
             <div>{{ item.title }}</div>
-            <div class="kc_t">创建老师:{{ item.uname }}</div>
+            <div class="kc_t">{{ lang.CreateTeacher }}:{{ item.uname }}</div>
             <div class="kc_time">{{ item.time }}</div>
           </div>
           <div class="three_bottom">
-            <div @click="jump(item.courseId)">查看内容</div>
+            <div @click="jump(item.courseId)">{{ lang.ViewContent }}</div>
             <div @click="
               goTo(
                 '/course/addCourse?cid=' +
@@ -413,14 +411,14 @@
                 org
               )
               ">
-              编辑
+              {{ lang.edit }}
             </div>
           </div>
         </div>
-        <div class="course_empty" v-if="courseTeam.length == 0">暂无数据</div>
+        <div class="course_empty" v-if="courseTeam.length == 0">{{ lang.Nodata }}</div>
       </div>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisibleCourse = false">关 闭</el-button>
+        <el-button @click="dialogVisibleCourse = false">{{ lang.Close }}</el-button>
       </span>
     </el-dialog>
 		<shareDialog ref="shareDialogRef"/>
@@ -984,7 +982,7 @@ export default {
       this.dialogVisible1 = true;
     },
     onExceed() {
-      this.$message.error("课程海报仅支持上传一张,请删除后再进行上传");
+      this.$message.error(this.lang.deletebeforeuploading);
     },
     //uuid生成
     guid() {
@@ -1050,7 +1048,7 @@ export default {
             }
           }
         }
-      } else if (typeName == "专栏") {
+      } else if (typeName == this.lang.specialcolumn) {
         if (type == 1) {
           if (this.typeE.indexOf(typeid) != -1) {
             if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
@@ -1077,7 +1075,7 @@ export default {
             }
           }
         }
-      } else if (typeName == "栏目") {
+      } else if (typeName == this.lang.column) {
         if (type == 1) {
           if (this.typeE.indexOf(typeid) != -1) {
             if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
@@ -1131,7 +1129,7 @@ export default {
             }
           }
         }
-      } else if (typeName == "学院") {
+      } else if (typeName == this.lang.college) {
         if (type == 1) {
           if (this.typeE.indexOf(typeid) != -1) {
             if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
@@ -1280,9 +1278,9 @@ export default {
     // },
     deleteCourse(cid) {
       // if (this.time()) {
-      this.$confirm("确定删除此课程吗?", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
+      this.$confirm(this.lang.deletethiscourse, this.lang.tip, {
+        confirmButtonText: this.lang.Confirm,
+        cancelButtonText: this.lang.Cancel,
         type: "warning",
       })
         .then(() => {
@@ -1298,7 +1296,7 @@ export default {
             .then((res) => {
               // loading.close();
               this.isLoading = false;
-              this.$message.success("删除成功");
+              this.$message.success(this.lang.DeleteSuccessful);
               this.getCourse();
             })
             .catch((err) => {
@@ -1326,9 +1324,9 @@ export default {
           }
           this.CourseType = res.data;
           this.CourseType2 = [
-            { name: "智见课程", id: [] },
-            { name: "智行课程", id: [] },
-            { name: "智创课程", id: [] },
+            { name: this.lang.ZhijianCourse, id: [] },
+            { name: this.lang.ZhixingCourse, id: [] },
+            { name: this.lang.IntelligentCreationCourse, id: [] },
           ];
 
           for (var cti = 0; cti < res.data[0].length; cti++) {
@@ -1344,11 +1342,11 @@ export default {
               this.CourseType2[2].id.push(res.data[0][cti].id);
             }
             if (res.data[0][cti].id == "34628934-d02f-11ec-8c78-005056b86db5" || res.data[0][cti].id == "34628934-d02f-11ec-8c78-005056b86ac5") {
-              res.data[0][cti].name = "年级";
+              res.data[0][cti].name = this.lang.GradeL;
             } else if (res.data[0][cti].id == "34629907-d02f-11ec-8c78-005056b86db5" || res.data[0][cti].id == "34629907-d02f-11ec-8c78-005056b86ac5") {
-              res.data[0][cti].name = "学科";
+              res.data[0][cti].name = this.lang.Subject;
             } else if (res.data[0][cti].id == "34629bcc-d02f-11ec-8c78-005056b86db5") {
-              res.data[0][cti].name = "主题";
+              res.data[0][cti].name = this.lang.Theme;
             }
           }
           for (var i = 0; i < res.data[0].length; i++) {
@@ -1359,8 +1357,8 @@ export default {
               this.CourseTypeJson[res.data[0][i].id] = [];
             }
             if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
-              if (res.data[0][i].name == "栏目") {
-                this.CourseType[0][i].name = "主题";
+              if (res.data[0][i].name == this.lang.column) {
+                this.CourseType[0][i].name = this.lang.Theme;
               }
             }
             if (res.data[2].length == 0 && res.data[3].length == 0) {
@@ -1386,6 +1384,9 @@ export default {
               }
             }
           }
+          if (this.CourseType[0] && this.CourseType[0].length && this.lang.lang == 'com') {
+            this.CourseType[0] = this.CourseType[0].filter(item => item.id != '34629bcc-d02f-11ec-8c78-005056b86db5');
+          }
         })
         .catch((err) => {
           console.error(err);
@@ -1515,7 +1516,7 @@ export default {
           } else {
             this.groupA = "0";
           }
-          this.$message.success("复制成功")
+          this.$message.success(this.lang.Successfullycopy)
           this.clear();
         })
         .catch((err) => {
@@ -2027,55 +2028,6 @@ export default {
   line-height: 40px;
 }
 
-/* .all_choose {
-  margin: 15px 0 10px;
-  height: 20%;
-  display: flex;
-  flex-direction: row;
-  align-items: center;
-  max-width: calc(100% / 3);
-}
-
-.all_choose > span {
-  width: 50px;
-  display: block;
-}
-
-.choose {
-  display: flex;
-  flex-direction: row;
-  flex-wrap: wrap;
-  align-content: space-between;
-  height: 100%;
-  justify-content: flex-start;
-  width: 60%;
-  min-width: 868px;
-  align-items: center;
-} */
-
-/* .choose > div:nth-child(2) {
-  margin-left: 1%;
-  width: 32.33333%;
-}
-
-.choose > div:nth-child(4) {
-  margin-right: 1%;
-  width: 32.33333%;
-}
-
-.choose > div:nth-child(5) {
-  margin: 5px 0 0 1%;
-}
-
-.choose > div:nth-child(4) > span {
-  width: 74px !important;
-  min-width: 74px;
-}
-
-.choose > div:nth-child(4) >>> .el-select {
-  width: 217.5px;
-  min-width: 215.06px;
-} */
 
 .clear {
   width: 70px;
@@ -2126,6 +2078,7 @@ export default {
 
 .sub_head {
   position: relative;
+  cursor: pointer;
 }
 
 .sub_head::after {
@@ -2266,18 +2219,31 @@ export default {
   display: flex;
   flex-direction: row;
   flex-wrap: wrap;
+  gap: 10px;
   justify-content: flex-start;
   align-items: center;
 }
-
+.typeCss2 {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: wrap;
+  justify-content: flex-start;
+  align-items: center;
+  gap: 30px;
+}
+.typeCss2 > div {
+  cursor: pointer;
+  color: #b9b6b9;
+}
 .choose {
   display: flex;
   flex-direction: column;
   flex-wrap: nowrap;
+  gap: 10px;
   height: 100%;
   justify-content: space-evenly;
   align-items: flex-start;
-  padding: 10px 0;
+  /* padding: 10px 0; */
 }
 
 .all_choose {
@@ -2340,13 +2306,11 @@ export default {
 
 .cName {
   cursor: pointer;
-  margin: 0 10px 5px 0;
   color: #b9b6b9;
-  min-width: 80px;
-  width: 80px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
   white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
 }
 
 .isCType {
@@ -2370,11 +2334,14 @@ export default {
   border-radius: 5px;
   box-shadow: 0 0 3px 1px #e3e3e3;
   width: 100%;
+  z-index: 10;
 }
 
-.buttonBox>div {
-  height: 40px;
-  line-height: 40px;
+.buttonBox > div {
+  /* height: 40px; */
+  /* line-height: 40px; */
+  padding: 15px 0;
+  box-sizing: border-box;
   width: 100%;
   text-align: center;
   color: #000;

+ 3 - 3
src/lang/cn.json

@@ -222,9 +222,9 @@
   "EvaluationManagement":"评价管理",
   "CreateCourse":"创建课程",
   "SimplifiedCourse": "极简式课程",
-  "Classroommode": "上课模式",
+  "Classroommode": "解析教案模式",
   "MultistageCourse": "阶段式课程",
-  "AIMode": "AI模式",
+  "AIMode": "AI引导模式",
   "MyCourse": "我的课程",
   "CollaborativeCourse": "协同课程",
   "OthersCourse": "他人课程",
@@ -733,7 +733,7 @@
   "studuplicateIDs":"有学生学号重复",
 
   "data11_6": "11.6",
-  "PPTmode":"PPT模式",
+  "PPTmode":"互动课件模式",
   "Codeupload":"代码上传",
   "StageTitle":"阶段标题",
 

+ 5 - 5
src/lang/en.json

@@ -217,13 +217,13 @@
   "Addedsuccessfully":"Added successfully",
   "initializepasswordteacher":"Are you sure to initialize the password for this teacher?",
   "othertypesofteaching":"Cannot have the same name as other types of teaching and research rooms!",
-  "CourseManagement":"course management",
-  "EvaluationManagement":"evaluation management",
+  "CourseManagement":"Course management",
+  "EvaluationManagement":"Evaluation management",
   "CreateCourse":"Create Course",
   "SimplifiedCourse": "Simplified Course",
-  "Classroommode": "Classroom mode",
+  "Classroommode": "Lesson Plan Analysis Mode",
   "MultistageCourse": "Multi-stage Course",
-  "AIMode": "AI Mode",
+  "AIMode": "AI-Assisted Mode",
   "MyCourse": "My Course",
   "CollaborativeCourse": "Collaborative Course",
   "OthersCourse": "Others Course",
@@ -731,7 +731,7 @@
   "studuplicateIDs": "Some student IDs are duplicated",
 
   "data11_6": "11.6",
-  "PPTmode":"PPT mode",
+  "PPTmode":"Interactive Slides",
   "Codeupload": "Code Upload",
   "StageTitle": "Stage Title",
   

+ 3 - 3
src/lang/hk.json

@@ -222,9 +222,9 @@
   "EvaluationManagement": "評價管理",
   "CreateCourse": "創建課程",
   "SimplifiedCourse": "極簡式課程",
-  "Classroommode": "上課模式",
+  "Classroommode": "解析教案模式",
   "MultistageCourse": "階段式課程",
-  "AIMode": "AI模式",
+  "AIMode": "AI引導模式",
   "MyCourse": "我的課程",
   "CollaborativeCourse": "協同課程",
   "OthersCourse": "他人課程",
@@ -732,7 +732,7 @@
   "studuplicateIDs": "有學生學號重複",
 
   "data11_6": "11.6",
-  "PPTmode":"PPT模式",
+  "PPTmode":"互動課件模式",
   "Codeupload": "代碼上傳",
   "StageTitle": "階段標題",
   

Some files were not shown because too many files changed in this diff