Forráskód Böngészése

Merge branch 'master' into bzkf30

bzkf30 2 éve%!(EXTRA string=óta)
szülő
commit
c6f891cafa

+ 61 - 0
package-lock.json

@@ -15,6 +15,7 @@
         "axios": "^0.27.2",
         "element-plus": "^2.2.14",
         "qrcode.vue": "^3.3.3",
+        "swiper": "5.2.0",
         "vue": "^3.2.37",
         "vue-router": "^4.1.3"
       },
@@ -663,6 +664,19 @@
         "node": ">=0.4.0"
       }
     },
+    "node_modules/dom7": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmjs.org/dom7/-/dom7-2.1.5.tgz",
+      "integrity": "sha512-xnhwVgyOh3eD++/XGtH+5qBwYTgCm0aW91GFgPJ3XG+jlsRLyJivnbP0QmUBFhI+Oaz9FV0s7cxgXHezwOEBYA==",
+      "dependencies": {
+        "ssr-window": "^2.0.0"
+      }
+    },
+    "node_modules/dom7/node_modules/ssr-window": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-2.0.0.tgz",
+      "integrity": "sha512-NXzN+/HPObKAx191H3zKlYomE5WrVIkoCB5IaSdvKokxTpjBdWfr0RaP+1Z5KOfDT0ZVz+2tdtiBkhsEQ9p+0A=="
+    },
     "node_modules/element-plus": {
       "version": "2.2.14",
       "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.2.14.tgz",
@@ -1827,6 +1841,11 @@
       "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
       "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
     },
+    "node_modules/ssr-window": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-1.0.1.tgz",
+      "integrity": "sha512-dgFqB+f00LJTEgb6UXhx0h+SrG50LJvti2yMKMqAgzfUmUXZrLSv2fjULF7AWGwK25EXu8+smLR3jYsJQChPsg=="
+    },
     "node_modules/strip-final-newline": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
@@ -1860,6 +1879,19 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
+    "node_modules/swiper": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/swiper/-/swiper-5.2.0.tgz",
+      "integrity": "sha512-pGyQ7+X7ndp6r6L0Wb+vjX5xaORdKws5mLucjen3yJrZYv9M18dd13xmSjPB8isgWVbwaFL7UxXvu8ojcfjajg==",
+      "hasInstallScript": true,
+      "dependencies": {
+        "dom7": "^2.1.3",
+        "ssr-window": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 4.7.0"
+      }
+    },
     "node_modules/to-regex-range": {
       "version": "5.0.1",
       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -2687,6 +2719,21 @@
       "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
       "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
     },
+    "dom7": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmjs.org/dom7/-/dom7-2.1.5.tgz",
+      "integrity": "sha512-xnhwVgyOh3eD++/XGtH+5qBwYTgCm0aW91GFgPJ3XG+jlsRLyJivnbP0QmUBFhI+Oaz9FV0s7cxgXHezwOEBYA==",
+      "requires": {
+        "ssr-window": "^2.0.0"
+      },
+      "dependencies": {
+        "ssr-window": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-2.0.0.tgz",
+          "integrity": "sha512-NXzN+/HPObKAx191H3zKlYomE5WrVIkoCB5IaSdvKokxTpjBdWfr0RaP+1Z5KOfDT0ZVz+2tdtiBkhsEQ9p+0A=="
+        }
+      }
+    },
     "element-plus": {
       "version": "2.2.14",
       "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.2.14.tgz",
@@ -3415,6 +3462,11 @@
       "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
       "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
     },
+    "ssr-window": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-1.0.1.tgz",
+      "integrity": "sha512-dgFqB+f00LJTEgb6UXhx0h+SrG50LJvti2yMKMqAgzfUmUXZrLSv2fjULF7AWGwK25EXu8+smLR3jYsJQChPsg=="
+    },
     "strip-final-newline": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
@@ -3436,6 +3488,15 @@
       "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
       "dev": true
     },
+    "swiper": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/swiper/-/swiper-5.2.0.tgz",
+      "integrity": "sha512-pGyQ7+X7ndp6r6L0Wb+vjX5xaORdKws5mLucjen3yJrZYv9M18dd13xmSjPB8isgWVbwaFL7UxXvu8ojcfjajg==",
+      "requires": {
+        "dom7": "^2.1.3",
+        "ssr-window": "^1.0.1"
+      }
+    },
     "to-regex-range": {
       "version": "5.0.1",
       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",

BIN
public/images/header/logo.png


BIN
public/images/home/banner-4.png


BIN
public/images/home/banner-5.png


+ 9 - 8
src/components/CommonHeader/index.vue

@@ -148,7 +148,7 @@ if(currentRootRoute !== 'message') {
 <template>
   <header class="header">
     <div class="main">
-      <h3 class="logo" @click="toHome">桐艺云校</h3>
+      <h3 class="logo" @click="toHome"></h3>
       <ul class="nav-list">
         <li v-for="item in navList" :class="{'selected':currentRootRoute===item.name}"
             @click="handleSwitchRoute(item.name)">
@@ -157,7 +157,7 @@ if(currentRootRoute !== 'message') {
       </ul>
       <div>
         <button v-if="!user" type="button" class="login-btn" @click="userLogin">登录</button>
-        <div v-else>
+        <div v-else style="padding-top: 30px">
           <div class="message-box" v-if="currentRootRoute !== 'message'">
             <span class="icon-message d-in-block v-mid hand"></span>
             <div class="message-pop">
@@ -234,7 +234,7 @@ if(currentRootRoute !== 'message') {
 <style lang="scss" scoped>
 .header {
   width: 100%;
-  height: 64px;
+  height: 123px;
   background: #fff;
   box-shadow: 0px 10px 24px 0px rgba(0, 20, 31, 0.08);
 
@@ -247,16 +247,16 @@ if(currentRootRoute !== 'message') {
   }
 
   .logo {
+    margin-top: 13px;
     cursor: pointer;
-    font-size: 36px;
-    line-height: 64px;
-    color: #000;
+    width: 202px;
+    height: 101px;
+    background: url("/images/header/logo.png") center no-repeat;
   }
 
   .nav-list {
-    margin-left: 226px;
     display: flex;
-
+    margin-top: 30px;
     li {
       position: relative;
       font-size: 18px;
@@ -270,6 +270,7 @@ if(currentRootRoute !== 'message') {
       }
 
       &.selected {
+        font-size: 20px;
         color: #00A3FF;
 
         span {

+ 0 - 1
src/pages/courseResources.vue

@@ -236,7 +236,6 @@ import { user } from "@/store/user.js";
         .then(res => {
           if (res.code == "1") {
             let responseDataAll = Object.values(res.data);
-            console.log(responseDataAll, "00000xwwww");
             this.baseData = responseDataAll[0];
             this.famousBaseData =responseDataAll[1];
             this.homeworkAssBaseData=responseDataAll[2];

+ 55 - 25
src/pages/courseResourcesAll.vue

@@ -31,6 +31,15 @@
     </div>
 
     <div class="common1280 keyFilter">
+      <div class="bigTitle">学科</div>
+      <div class="selectionFilter">
+        <ul>
+          <li v-for="(item,index) in subjectList" :key="index" @click="subjectChoose(item,index)"><span :class="{ 'selectActive':subNum==index }">{{item.subject_name}}</span></li>
+        </ul>
+      </div>
+    </div>
+
+    <div class="common1280 keyFilter">
       <div class="bigTitle">分册</div>
       <div class="selectionFilter">
         <ul>
@@ -75,7 +84,7 @@
 
 <script>
 import CommonHeader from "@/components/CommonHeader/index.vue";
-import { defaultGrade,baseCourseList } from "./kczy/allApi.js";
+import { baseCourseList,defaultGrade, defaultSubject} from "./kczy/allApi.js";
 import { user } from "@/store/user.js";
   export default {
     name: 'courseResources',
@@ -103,6 +112,7 @@ import { user } from "@/store/user.js";
             name:"下册"
           }
         ],
+        subjectList:[],
         courseDetail: [],
         page: 1,
         totalRows:'',
@@ -110,14 +120,17 @@ import { user } from "@/store/user.js";
         chooseGradeId: '',//选中的年级id
         chooseGradeName:'',
         chooseVolume: '',//选中的分册
-        kcID:'',
+        kcID: '',
+        subNum:0,
+        chooseSubjectId:'',
+        chooseSubjectName:'',
 
       }
     },
   mounted() {
       //获取上个页面的标识 判定是种课程(待串联)
-
       this.initGrade();
+      this.initSubject();
       this.initData(this.page);
     },
   methods: {
@@ -152,6 +165,37 @@ import { user } from "@/store/user.js";
         })
         .catch(error => { console.log(error) });
     },
+    /**初始化学科*/
+    initSubject() {
+      let transObj = {
+        token: user.token,
+      };
+      defaultSubject(transObj)
+        .then(res => {
+          if (res.code == "1") {
+            this.subjectList = res.data.page_data;
+            let allSection = {
+              area_id1: "0",
+              area_id2: "0",
+              area_id3: "0",
+              area_id4: "0",
+              create_dateline: "0",
+              create_user_id: "0",
+              dept_id: "0",
+              isdelete: "0",
+              modify_dateline: "0",
+              modify_user_id: "0",
+              sm_id: "0",
+              subject_id: "0",
+              subject_name: "全部",
+              subject_name_short: "全部",
+              user_id: "0",
+            };
+            this.subjectList.unshift(allSection)
+        }
+      })
+      .catch(error=>{console.log(error)})
+    },
     /**初始化数据*/
     initData(changePage) {
       //获取上级的标记
@@ -159,34 +203,13 @@ import { user } from "@/store/user.js";
       let trans_kcName = this.$route.query.kcName;
       this.kcID = this.$route.query.kcId;
       this.bigTitle=trans_kcName;
-      // switch (P_markLable.kc_id) {
-      //   case"1"://基础课程
-      //     break;
-      //   case 'famousCourse'://名师在线
-      //     window.location.href = "http://www.txhlwxx.com/zj/mskt.html";
-      //     break;
-      //   case 'homeworkAss'://作业辅导
-      //     window.location.href = "http://www.txhlwxx.com/index.php?mod=txwx&action=micro_course&do=index";
-      //   break;
-      //   case 'familyCourse'://家庭教育
-      //     window.location.href = "http://www.txhlwxx.com/zj/jtjy.html?v=1.1";
-      //   break;
-      //   case 'specialCourse'://特色课程
-      //   window.location.href = "http://www.txhlwxx.com/zj/tskc.html?v=1.1";
-      //   return
-      //   break;
-      //   case 'resourceCenter'://资源中心
-      //   return
-      //   break;
-      //   default:
-      //   this.$router.push('/resourceAll');
-      // }
       let transObj = {
         token: user.token,
         page: changePage,
         limit: 10,
         kc_cate_level_1:'',//一级目录的ID
         grade_id: this.chooseGradeId,
+        subject_id:this.chooseSubjectId,//学科
         team_id: this.chooseVolume,//分页 1:上册 2下册
         keyword: this.searchKey,
         kc_cate_level_1:this.kcID,//
@@ -215,6 +238,13 @@ import { user } from "@/store/user.js";
       this.initData(this.page);
     },
     //学科选择
+    subjectChoose(item,index) {
+      this.subNum = index;
+      this.chooseSubjectId = item.subject_id;
+      this.chooseSubjectName = item.subject_name;
+      this.initData(this.page);
+    },
+    //分册选择
     secChoose(item,index) {
       this.secNum = index;
       this.chooseVolume = item.keyV;

+ 1 - 2
src/pages/courseResourcesChapter.vue

@@ -124,7 +124,6 @@ import { user } from "@/store/user.js";
           if (res.code == "1") {
             this.sourceListData = res.data.page_data;
           }
-          console.log(res,"000")
         })
         .catch(error => {
         console.log(error)
@@ -216,7 +215,7 @@ import { user } from "@/store/user.js";
       margin-bottom:20px;
     }
     .chapterAllIn_left{
-     
+     flex:1;
       box-sizing:border-box;
       padding:10px;
       .sourceWidthCoverList{

+ 39 - 19
src/pages/home/index.vue

@@ -96,21 +96,21 @@
           <h3 class="mt15 font-size-26 text-center">作业辅导</h3>
           <h4 class="mt15 font-size-16 color-6 text-center ph20">作业辅导作业辅导作业辅导作业辅导作业辅导作业辅导作业辅导</h4>
         </a>
-        <a href="javascript:;">
+        <a href="javascript:;" @click="toTeacher">
           <div class="res-icon m-0">
             <img src="/images/home/c-4.png" alt="">
           </div>
           <h3 class="mt15 font-size-26 text-center">特色课程</h3>
           <h4 class="mt15 font-size-16 color-6 text-center ph20">特色课程特色课程特色课程特色课程特色课程特色课程</h4>
         </a>
-        <a href="javascript:;">
+        <a href="javascript:;" @click="toTeacher">
           <div class="res-icon m-0">
             <img src="/images/home/c-5.png" alt="">
           </div>
           <h3 class="mt15 font-size-26 text-center">家庭教育</h3>
           <h4 class="mt15 font-size-16 color-6 text-center ph20">家庭教育家庭教育家庭教育家庭教育家庭教育家庭教育家庭教育</h4>
         </a>
-        <a href="javascript:;">
+        <a href="javascript:;" @click="toTeacher">
           <div class="res-icon m-0">
             <img src="/images/home/c-6.png" alt="">
           </div>
@@ -140,17 +140,17 @@
       </div>
       <h3 class="title m-30">智慧教研</h3>
       <ul class="wit-list mt100">
-        <li class="text-center">
+        <li class="text-center hand" @click="toLive(4)">
           <img src="/images/home/j-1.png" alt="">
           <h3 class="font-size-30 font-bold-1">在线学习</h3>
           <h4 class="m-15 font-size-16 w-200 color-6">在线学习在线学习在线学习 在线学习在线学习 在线学习</h4>
         </li>
-        <li class="text-center">
+        <li class="text-center hand" @click="toLive(5)">
           <img src="/images/home/j-2.png" alt="">
           <h3 class="font-size-30 font-bold-1">协同备课</h3>
           <h4 class="m-15 font-size-16 w-200 color-6">协同备课协同备课协同备课协同备课</h4>
         </li>
-        <li class="text-center">
+        <li class="text-center hand" @click="toLive(6)">
           <img src="/images/home/j-3.png" alt="">
           <h3 class="font-size-30 font-bold-1">同步教研</h3>
           <h4 class="m-15 font-size-16 w-200 color-6">同步教研同步教研同步教研同步教研同步教研</h4>
@@ -158,7 +158,7 @@
       </ul>
       <h3 class="title m-65">数字美术馆</h3>
       <div class="mt30 d-flex flex-between pb30">
-        <a href="#" class="m-box">
+        <a href="javascript:;" class="m-box" @click="toLive(7)">
           <h3 class="font-size-30 font-bold-1">艺术联盟</h3>
           <h4 class="mt20 font-size-16 color-6">轻松便捷的快速构建教学</h4>
           <h4 class="font-size-16 color-6">超强的抗弱网能力,优秀的网络自适应策略保证优质观看效果</h4>
@@ -167,7 +167,7 @@
             <span class="ml3 d-in-block v-mid arrow-right blue"></span>
           </h5>
         </a>
-        <a href="#" class="m-box">
+        <a href="javascript:;" class="m-box" @click="toLive(8)">
           <h3 class="font-size-30 font-bold-1">特色课程展</h3>
           <h4 class="mt20 font-size-16 color-6">轻松便捷的快速构建教学</h4>
           <h4 class="font-size-16 color-6">超强的抗弱网能力,优秀的网络自适应策略保证优质观看效果</h4>
@@ -199,12 +199,12 @@ export default {
     return {
       menuList: [{
         id: 1,
-        title: '星月夜',
-        img: '/images/home/banner-1.png'
+        title: '八骏奔腾展宏图',
+        img: '/images/home/banner-4.png'
       }, {
         id: 2,
-        title: '安徒生世界插画',
-        img: '/images/home/banner-2.png'
+        title: '踏着红色足迹前行',
+        img: '/images/home/banner-5.png'
       }, {
         id: 3,
         title: '传送门',
@@ -236,8 +236,8 @@ export default {
       }],
       curMenu: {
         id: 1,
-        title: '星月夜',
-        img: '/images/home/banner-1.png'
+        title: '八骏奔腾展宏图',
+        img: '/images/home/banner-4.png'
       },
       value: '4',
       xsyxzy: [{
@@ -329,21 +329,41 @@ export default {
     },
     toTeacher() {
       this.$router.push({ name: 'resource' });
-      localStorage.setItem('curNav', 'resource');
+      // localStorage.setItem('curNav', 'resource');
     },
     toLive(type) {
       switch (type) {
         case 1:
           this.$router.push({ name: 'ssys' });
-          localStorage.setItem('curNav', 'zbkt');
+          // localStorage.setItem('curNav', 'zbkt');
           break;
         case 2:
           this.$router.push({ name: 'wlzb' });
-          localStorage.setItem('curNav', 'zbkt');
+          // localStorage.setItem('curNav', 'zbkt');
           break;
         case 3:
           this.$router.push({ name: 'ztzb' });
-          localStorage.setItem('curNav', 'zbkt');
+          // localStorage.setItem('curNav', 'zbkt');
+          break;
+        case 4:
+          this.$router.push({ name: 'zhjy_zhjyzxxx' });
+          // localStorage.setItem('curNav', 'zhjy');
+          break;
+        case 5:
+          this.$router.push({ name: 'zhjy_zhjyxtbk' });
+          // localStorage.setItem('curNav', 'zbkt');
+          break;
+        case 6:
+          this.$router.push({ name: 'zhjy_zhjytbjy' });
+          // localStorage.setItem('curNav', 'zbkt');
+          break;
+        case 7:
+          this.$router.push({ name: 'ysgc' });
+          // localStorage.setItem('curNav', 'zbkt');
+          break;
+        case 8:
+          this.$router.push({ name: 'szmsg' });
+          // localStorage.setItem('curNav', 'zbkt');
           break;
       }
     },
@@ -533,7 +553,7 @@ export default {
     }
   }
 
-  .swiper-container-horizontal::v-deep {
+  .swiper-container-horizontal:deep {
     .swiper-button-prev:after,
     .swiper-container-rtl .swiper-button-next:after {
       display: none;

+ 8 - 0
src/pages/kczy/allApi.js

@@ -109,4 +109,12 @@ export const defaultGrade = (data = {}) => {
     url: '/jcxx/grade/index',
     data
   })
+}
+
+//通用学科
+export const defaultSubject = (data = {}) => {
+  return request({
+    url: '/jcxx/subject/index',
+    data
+  })
 }

+ 2 - 2
src/pages/personal/components/Homework/ssys/xszy/list.vue

@@ -11,8 +11,8 @@ const queryForm = reactive({
   ks_id: props.pid
 })
 
-const data = $ref([])
-const total = $ref(0)
+let data = $ref([])
+let total = $ref(0)
 
 const router = useRouter()
 function routerPush(name, data) {

+ 10 - 30
src/pages/personal/components/MyCourse/tbjy.vue

@@ -4,9 +4,7 @@
     <el-card>
       <div style="padding: 0 75px">
         <span class="title">同步教研</span>
-        <span class="subTitle"
-          >我的课程 - 我创建的 - <span style="color: #000">同步教研</span></span
-        >
+        <span class="subTitle">我的课程 - 我创建的 - <span style="color: #000">同步教研</span></span>
       </div>
     </el-card>
 
@@ -24,24 +22,14 @@
       <div>
         <span>年级</span>
         <el-tabs v-model="firstForm.grade" @click="initData">
-          <el-tab-pane
-            v-for="(item, index) in gradeList"
-            :key="index"
-            :label="item.grade_name"
-            :name="item.grade_id"
-          ></el-tab-pane>
+          <el-tab-pane v-for="(item, index) in gradeList" :key="index" :label="item.grade_name" :name="item.grade_id"></el-tab-pane>
         </el-tabs>
       </div>
 
       <div>
         <span>科目</span>
         <el-tabs v-model="firstForm.subject" @click="initData">
-          <el-tab-pane
-            v-for="(item, index) in subjectList"
-            :key="index"
-            :label="item.subject_name"
-            :name="item.subject_id"
-          ></el-tab-pane>
+          <el-tab-pane v-for="(item, index) in subjectList" :key="index" :label="item.subject_name" :name="item.subject_id"></el-tab-pane>
         </el-tabs>
       </div>
     </div>
@@ -51,22 +39,13 @@
         <img class="img-show" :src="https + item.zt_img" alt="" />
         <div class="main">
           <p class="main-title">{{ item.zt_name }}</p>
-          <img
-            @click="editData(item.zt_id)"
-            class="edit"
-            src="@/assets/img/edit.png"
-            alt=""
-          />
-          <img
-            @click="deleteData(item.zt_id)"
-            class="delete"
-            src="@/assets/img/delete.png"
-            alt=""
-          />
+          <img @click="editData(item.zt_id)" class="edit" src="@/assets/img/edit.png" alt="" />
+          <img @click="deleteData(item.zt_id)" class="delete" src="@/assets/img/delete.png" alt="" />
 
           <p class="main-content">{{ item.zt_content }}</p>
           <div>
-            <img src="@/assets/img/zhjy/img_3.png" alt="" />{{ item.zt_zrjs }}
+            <el-avatar style="width: 24px;height: 24px;" :size=" 16" :src="getAvatarUrl(item.user_id)" />
+            <span style="margin-left: 8px;color: #050026;vertical-align:top">{{ item.zt_zrjs }}</span>
           </div>
         </div>
       </div>
@@ -76,7 +55,7 @@
 
 <script>
 import { grade_list, tbjy_list, subject_list, tbjy_delete } from "./api";
-
+import { getFullUrl, getAvatarUrl } from '@/utils/helper';
 export default {
   data() {
     return {
@@ -178,7 +157,7 @@ export default {
             }
           });
         })
-        .catch(() => {});
+        .catch(() => { });
     },
   },
   // async created() {
@@ -232,6 +211,7 @@ export default {
       margin-bottom: -10px;
       .list {
         margin: 0 20px;
+
         padding: 0 10px;
         color: #949494;
         position: relative;

+ 4 - 7
src/pages/personal/components/MyCourse/zxxx.vue

@@ -51,7 +51,8 @@
 
           <p class="main-content">{{ item.zz_content }}</p>
           <div>
-            <img src="@/assets/img/zhjy/img_3.png" alt="" />{{ item.zz_jsxx }}
+            <el-avatar style="width: 24px;height: 24px;" :size=" 16" :src="getAvatarUrl(item.user_id)" />
+            <span style="margin-left: 8px;color: #050026;vertical-align:top">{{ item.zz_jsxx }}</span>
           </div>
         </div>
       </div>
@@ -61,7 +62,7 @@
 
 <script>
 import { grade_list, zxxx_list, subject_list, zxxx_delete } from "./api";
-
+import { getFullUrl, getAvatarUrl } from '@/utils/helper';
 export default {
   data() {
     return {
@@ -400,9 +401,7 @@ export default {
         display: inline-block;
         display: flex;
         flex-direction: column;
-
         width: 100%;
-
         position: relative;
         .main-title {
           width: 60%;
@@ -435,11 +434,9 @@ export default {
           font-weight: 400;
           text-align: left;
           color: #949494;
-          line-height: 20px;
         }
         div {
           width: 186px;
-
           display: inline-block;
           font-size: 14px;
           font-family: PingFangSC, PingFangSC-Medium;
@@ -448,7 +445,7 @@ export default {
           color: #050026;
           line-height: 20px;
           position: absolute;
-          bottom: 10px;
+          bottom: 3px;
           left: 0px;
 
           img {

+ 20 - 18
src/pages/resourceMovReview.vue

@@ -58,12 +58,12 @@
               </div>
             </div>
             <div class="nicBaseInfo_action">
-              <div class="coverC" @click="finger">
+              <div class="coverC" @click="handleFinger">
                 <img class="posiA posi1" v-if="fingerSwitch == '0'" src="../assets/kczy/zanIcon.png" />
                 <img class="posiA posi1" v-else src="../assets/kczy/zanIcon_full.png" />
                 <span class="posiA posi2">{{ fingerNum }}</span>
               </div>
-              <div class="coverC" @click="loveIcon">
+              <div class="coverC" @click="handleLoveIcon">
                 <img class="posiA posi3" v-if="loveSwitch == '0'" src="../assets/kczy/collectIcon.png" />
                 <img class="posiA posi3" v-else src="../assets/kczy/collectIcon_full.png" />
                 <span class="posiA posi4">{{ loveNum }}</span>
@@ -144,12 +144,12 @@
               <div class="allCommonList allCommonListSec">
                 <div class="singleList" v-for="(item, index) in sourceData" :key="index">
                   <p class="item1">
-                    上传者
-                    <span class="itemSon1">{{ item.create_dateline }}</span>
+                    {{item.user_name==false ? "未知" : item.user_name }}
+                    <span class="itemSon1">{{ item.create_time}}</span>
                   </p>
                   <div class="fileAll">
                     <div class="fileAll_left">
-                      <img :src="'../assets/kczy/'+item.kf_ext+'.png'" alt="" />
+                      <img :src="item.kf_img"/>
                     </div>
                     <div class="fileAll_middle">{{item.kf_name}}</div>
                     <div class="fileAll_right" @click="downloadFile(item)">下载</div>
@@ -211,10 +211,8 @@
       </div>
       <template #footer>
         <span class="dialog-footer" align="center">
-          <el-button @click="dialogVisible = false">提交</el-button>
-          <el-button type="primary" @click="dialogVisible = false"
-            >取消</el-button
-          >
+          <el-button @click="sublimeAdd">提交</el-button>
+          <el-button type="primary" @click="dialogVisible = false">关闭</el-button>
         </span>
       </template>
     </el-dialog>
@@ -354,6 +352,7 @@ export default {
     /**初始化资源列表*/
     initSourceList() {
       let transObj = {
+        limit:99,
         token: user.token,
         kk_id: this.transKkId
       };
@@ -363,14 +362,13 @@ export default {
             this.sourceData = res.data.page_data;
 
           }
-          console.log(res,"00")
         })
         .catch(error => { console.log(error) })
     },
     /**初始化作业列表*/
     initHomeworkList() {
       let transObj = {
-        limit: 20,
+        limit: 30,
         yzk_ids:this.transKkId
       }
       homeWorkList(transObj)
@@ -378,8 +376,8 @@ export default {
           if (res.code == 1) {
             this.homeWorkList = res.data.page_data;
           }
-      })
-      .catch(error=>{console.log(console.log(error))})
+        })
+        .catch(error => { console.log(error) });
     },
     /**切换*/
     handleSwitch(index) {
@@ -434,8 +432,8 @@ export default {
         });
     },
     /**增加赞或取消*/
-    finger() {
-      if (this.fingerSwitch == "1") {
+    handleFinger() {
+      if (this.fingerSwitch == 1) {
         //去掉赞
         let transObj = {
           kf_id: this.transKfId,
@@ -456,7 +454,7 @@ export default {
           })
           .catch((error) => {
             console.log(error);
-          });
+          });        
       } else {
         let transObj = {
           kczy_files_like: {
@@ -485,7 +483,7 @@ export default {
       this.initData();
     },
     /**增加收藏或取消*/
-    loveIcon() {
+    handleLoveIcon() {
       if (this.loveSwitch == 1) {
         //去掉收藏
         let transObj = {
@@ -521,10 +519,14 @@ export default {
           })
           .catch((error) => {
             console.log(error);
-          });
+          });  
       }
       this.initData();
     },
+    /**提交*/
+    sublimeAdd() {
+      console.log("7878")
+    },
     /**创建二维码*/
     showTrue() {
       this.shareSwitch = true;

+ 45 - 5
src/pages/ysgc/index.vue

@@ -65,11 +65,16 @@
                   <img v-for="star in Number(item.yz_star_num)" :key="star" src="../../assets/ysgc/star.png" alt="" />
                 </div>
               </div>
-              <div class="zan">
-                <img src="../../assets/ysgc/zan.png" />{{ item.yz_like_num }}
-                <img src="../../assets/ysgc/xin.png" alt="" />{{
-                  item.yz_fav_num
-                }}
+              <div class="dataShow">
+
+                <div class="baseInfoPart">
+                  <img src="/kczy/fingerIcon.png" alt="">
+                  <span>{{item.yz_like_num}}</span>
+                </div>
+                <div class="baseInfoPart">
+                  <img src="/kczy/cellectIcon.png" alt="">
+                  <span>{{item.yz_fav_num}}</span>
+                </div>
               </div>
               <!-- </router-link> -->
             </li>
@@ -348,6 +353,41 @@ export default {
 
 </script>
 <style lang="scss" scoped>
+.dataShow {
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 13;
+  width: 164px;
+  height: 32px;
+  line-height: 32px;
+  background: rgba(0, 0, 0, 0.5);
+  border-bottom-left-radius: 12px;
+  border-top-right-radius: 12px;
+  display: flex;
+  padding-left: 5px;
+
+  .baseInfoPart {
+    width: 50%;
+    height: 32px;
+    line-height: 32px;
+    box-sizing: border-box;
+    margin-left: 4px;
+    img {
+      display: inline-block;
+      vertical-align: middle;
+      padding-bottom: 6px;
+    }
+    span {
+      font-size: 14px;
+      font-weight: 400;
+      text-align: left;
+      color: #ffffff;
+      margin-left: 5px;
+      vertical-align: top;
+    }
+  }
+}
 .hd-list {
   width: 1440px;
   min-width: 1280px;

+ 98 - 14
src/pages/ysgc/jsDetail/index.vue

@@ -11,8 +11,53 @@
     </div>
     <div class="content">
 
-      <div class="title">
+      <div class="detail-title">
         <h3 class="con_title">美术 +</h3>
+        <el-popover placement="bottom" :width="410" trigger="hover">
+          <template #reference>
+            <div class="share">
+              <i-fluent:share-28-regular />分享
+            </div>
+          </template>
+
+          <div class="w-full">
+            <div class="w-full text-center">呼唤小伙伴们前来围观吧</div>
+            <div class="flex justify-around m-10" style="position:relative">
+              <div class="weibo" @click="shareToSina(shareLink)">
+                <img src="@/assets/img/wb.png" />
+              </div>
+              <div class="qq" @click="shareToQq(shareLink)">
+                <img src="@/assets/img/QQ.png" />
+              </div>
+              <div class="qqkj" @click="shareToQqzone(shareLink)">
+                <img src="@/assets/img/QQ1.png" />
+              </div>
+              <qrcode-vue :value="shareLink" :size="size" level="H" />
+              <div style="position:absolute;bottom:-20px;right:17px">微信扫码分享</div>
+            </div>
+            <el-divider></el-divider>
+            <div class="text-hex-00a3ff mb-2">地址</div>
+            <div class="flex">
+              <div class="bg-hex-F7F7F7 p-2 flex-auto mr-4 truncate">
+                {{ shareLink }}
+              </div>
+              <div class="
+                  text-sm
+                  bg-hex-0A8AFF
+                  text-white
+                  flex_center
+                  w-100px
+                  h-40px
+                   
+                  rounded
+                  cursor-pointer
+                  copy
+                " @click="copyLink" style="line-height:40px">
+                复制链接
+              </div>
+            </div>
+          </div>
+        </el-popover>
         <div class="nicBaseInfo_action">
           <div class="coverC" @click="finger">
             <img class="posiA posi1" v-if="fingerSwitch == '0'" src="@/assets/kczy/zanIcon.png" />
@@ -56,12 +101,14 @@
   </div>
 </template>
 <script>
+import QrcodeVue from "qrcode.vue";
 import { ysgc_detail, ysgc_evaluate, ysgc_addEvaluate } from './api';
 import CommonHeader from "@/components/CommonHeader/index.vue";
+import { getFullUrl, getAvatarUrl } from '@/utils/helper';
 export default {
   components: {
     CommonHeader,
-
+    QrcodeVue,
   },
 
   data() {
@@ -78,6 +125,7 @@ export default {
         yze_id: "",
       },
       https: window.GLOBAL_CONFIG.api,
+      shareLink: window.location.href,
     }
   },
   methods: {
@@ -126,6 +174,33 @@ export default {
         console.log(this.evaluateListData, 2222);
       });
     },
+    async copyLink() {
+      await navigator.clipboard.writeText(window.location.href);
+      ElMessage.success("已复制");
+    },
+    //分享
+    shareToQq(url) {
+      // 分享到腾讯QQ
+      var shareqqstring =
+        "https://connect.qq.com/widget/shareqq/index.html?url=" +
+        encodeURIComponent(url);
+      window.open(shareqqstring);
+    },
+    shareToQqzone(url) {
+      // 分享到QQ空间
+      var shareqqzonestring =
+        "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=" +
+        encodeURIComponent(url);
+      window.open(shareqqzonestring);
+    },
+    shareToSina(url) {
+      // 分享到新浪微博
+      var sharesinastring =
+        "http://v.t.sina.com.cn/share/share.php?url=" +
+        encodeURIComponent(url) +
+        "&searchPic=true#_loginLayer_1639641926022";
+      window.open(sharesinastring);
+    },
   },
 
   mounted() {
@@ -139,13 +214,24 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-.title {
+.detail-title {
   display: flex;
-  justify-content: space-between;
+  position: relative;
+  height: 65px;
 
+  .share {
+    display: inline;
+    cursor: pointer;
+    color: #00a3ff;
+    font-weight: 400;
+    margin: 20px 35px;
+    font-size: 20px;
+  }
   .nicBaseInfo_action {
-    //border: 1px solid red;
-    display: inline-block;
+    position: absolute;
+    top: 0px;
+    right: -1200px;
+
     width: 250px;
     height: 30px;
     margin-top: 25px;
@@ -169,7 +255,7 @@ export default {
 
     .posi2 {
       margin: 0 2px;
-      left: 1%;
+      left: 10%;
       top: 50%;
       transform: translate(0, -50%);
     }
@@ -254,7 +340,7 @@ export default {
       font-family: PingFangSC, PingFangSC-Medium;
       font-weight: 500;
       color: #050026;
-      margin: 10px 0;
+      margin: 18px 0;
       display: inline-block;
     }
     .art {
@@ -262,7 +348,6 @@ export default {
       height: 838px;
       margin-bottom: 10px;
 
-      background-size: 100%;
       position: relative;
       .author {
         position: absolute;
@@ -287,12 +372,12 @@ export default {
         width: 400px;
         height: 400px;
         position: absolute;
-        bottom: 24px;
-        left: 7.5px;
+        bottom: -9px;
+        left: 0px;
         color: #fff;
         .pj-list {
           height: 300px;
-
+          margin-left: 10px;
           overflow-y: scroll;
         }
         ::-webkit-scrollbar {
@@ -329,7 +414,6 @@ export default {
           }
         }
         .addComment {
-          //  width: 100%;
           margin: 20px 0;
           width: 398px;
           height: 71px;
@@ -367,6 +451,6 @@ export default {
 }
 .el-rate {
   --el-rate-icon-size: 26px;
-  margin-top: 15px;
+  margin-top: 20px;
 }
 </style>

+ 100 - 13
src/pages/ysgc/stuDetail/index.vue

@@ -10,8 +10,53 @@
       </div>
     </div>
     <div class="content">
-      <div class="title">
+      <div class="detail-title">
         <h3 class="con_title">美术 +</h3>
+        <el-popover placement="bottom" :width="410" trigger="hover">
+          <template #reference>
+            <div class="share">
+              <i-fluent:share-28-regular />分享
+            </div>
+          </template>
+
+          <div class="w-full">
+            <div class="w-full text-center">呼唤小伙伴们前来围观吧</div>
+            <div class="flex justify-around m-10" style="position:relative">
+              <div class="weibo" @click="shareToSina(shareLink)">
+                <img src="@/assets/img/wb.png" />
+              </div>
+              <div class="qq" @click="shareToQq(shareLink)">
+                <img src="@/assets/img/QQ.png" />
+              </div>
+              <div class="qqkj" @click="shareToQqzone(shareLink)">
+                <img src="@/assets/img/QQ1.png" />
+              </div>
+              <qrcode-vue :value="shareLink" :size="size" level="H" />
+              <div style="position:absolute;bottom:-20px;right:17px">微信扫码分享</div>
+            </div>
+            <el-divider></el-divider>
+            <div class="text-hex-00a3ff mb-2">地址</div>
+            <div class="flex">
+              <div class="bg-hex-F7F7F7 p-2 flex-auto mr-4 truncate">
+                {{ shareLink }}
+              </div>
+              <div class="
+                  text-sm
+                  bg-hex-0A8AFF
+                  text-white
+                  flex_center
+                  w-100px
+                  h-40px
+                   
+                  rounded
+                  cursor-pointer
+                  copy
+                " @click="copyLink" style="line-height:40px">
+                复制链接
+              </div>
+            </div>
+          </div>
+        </el-popover>
         <div class="nicBaseInfo_action">
           <div class="coverC" @click="finger">
             <img class="posiA posi1" v-if="fingerSwitch == '0'" src="@/assets/kczy/zanIcon.png" />
@@ -56,12 +101,13 @@
   </div>
 </template>
 <script>
+import QrcodeVue from "qrcode.vue";
 import { ysgc_detail, ysgc_evaluate, ysgc_addEvaluate } from './api';
 import CommonHeader from "@/components/CommonHeader/index.vue";
 export default {
   components: {
     CommonHeader,
-
+    QrcodeVue,
   },
 
   data() {
@@ -79,6 +125,7 @@ export default {
         yze_star: ""
       },
       https: window.GLOBAL_CONFIG.api,
+      shareLink: window.location.href,
     }
   },
   methods: {
@@ -127,6 +174,34 @@ export default {
         console.log(this.evaluateListData, 2222);
       });
     },
+    async copyLink() {
+      await navigator.clipboard.writeText(window.location.href);
+      ElMessage.success("已复制");
+    },
+    //分享
+    shareToQq(url) {
+      // 分享到腾讯QQ
+      var shareqqstring =
+        "https://connect.qq.com/widget/shareqq/index.html?url=" +
+        encodeURIComponent(url);
+      window.open(shareqqstring);
+    },
+    shareToQqzone(url) {
+      // 分享到QQ空间
+      var shareqqzonestring =
+        "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=" +
+        encodeURIComponent(url);
+      window.open(shareqqzonestring);
+    },
+    shareToSina(url) {
+      // 分享到新浪微博
+      var sharesinastring =
+        "http://v.t.sina.com.cn/share/share.php?url=" +
+        encodeURIComponent(url) +
+        "&searchPic=true#_loginLayer_1639641926022";
+      window.open(sharesinastring);
+    },
+
   },
 
   mounted() {
@@ -197,15 +272,13 @@ export default {
       font-family: PingFangSC, PingFangSC-Medium;
       font-weight: 500;
       color: #050026;
-      margin: 10px 0;
+      margin: 18px 0;
       display: inline-block;
     }
     .art {
       width: 100%;
       height: 838px;
       margin-bottom: 10px;
-
-      background-size: 100%;
       position: relative;
       .author {
         position: absolute;
@@ -230,12 +303,12 @@ export default {
         width: 400px;
         height: 400px;
         position: absolute;
-        bottom: 24px;
-        left: 7.5px;
+        bottom: -10px;
+        left: 0px;
         color: #fff;
         .pj-list {
           height: 300px;
-
+          margin-left: 10px;
           overflow-y: scroll;
         }
         ::-webkit-scrollbar {
@@ -300,15 +373,29 @@ export default {
 }
 .el-rate {
   --el-rate-icon-size: 26px;
-  margin-top: 15px;
+  margin-top: 20px;
 }
-.title {
+.detail-title {
   display: flex;
-  justify-content: space-between;
-
+  position: relative;
+  height: 65px;
+  // border: 1px solid red;
+  .share {
+    display: inline;
+    cursor: pointer;
+    color: #00a3ff;
+    font-weight: 400;
+    margin: 20px 40px;
+    font-size: 20px;
+  }
   .nicBaseInfo_action {
+    position: absolute;
+    top: 0px;
+    right: -1200px;
+
+    // border: 1px solid red;
     //border: 1px solid red;
-    display: inline-block;
+    //display: inline-block;
     width: 250px;
     height: 30px;
     margin-top: 25px;

+ 19 - 29
src/pages/zbkt/ssys/content.vue

@@ -1,6 +1,6 @@
 <script setup>
 import request from '~/utils/request';
-import { getFullUrl } from '~/utils/helper';
+// import { getFullUrl } from '~/utils/helper';
 // import CommonHeader from "@/components/CommonHeader/index.vue";;
 import { ElMessage } from 'element-plus';
 
@@ -27,20 +27,22 @@ request({
   ElMessage.error(err)
 })
 
-
-function getFileType(str) {
-  if (str) {
-    str = str.toLocaleLowerCase()
-    if (str.endsWith('.pdf')) {
-      return 'pdf'
-    } else if (str.endsWith('.mp4')) {
-      return 'mp4'
-    } else if (str.endsWith('.ppt') || str.endsWith('.pptx')) {
-      return 'office'
+let data_zy = $ref([])
+let page = $ref(1)
+function queryZy() {
+  request({
+    url: '/yzy/zy_ssys_dtjl/index',
+    data: {
+      ks_id: props.id,
+      page
     }
-  }
-  return null
+  }).then(res => {
+    if (res.code === '1') {
+      data_zy = res.data.page_data
+    }
+  })
 }
+
 </script>
 
 <template>
@@ -70,37 +72,25 @@ function getFileType(str) {
       <div class="w-full h-730px mb-4 bg-light-500" v-loading="loading">
         <template v-if="!loading">
           <file-preview :url="detailInfo.ks_kj"></file-preview>
-          <!-- <template v-if="getFileType(detailInfo.ks_kj) === 'ppt'">
-            <iframe :src="`https://view.officeapps.live.com/op/view.aspx?src=${getFullUrl(detailInfo.ks_kj)}`"
-              width='100%' height='100%' frameborder='0'></iframe>
-          </template>
-          <template v-else-if="getFileType(detailInfo.ks_kj) === 'pdf'">
-            <object type="application/pdf" :data="getFullUrl(detailInfo.ks_kj)" class="w-full h-full"></object>
-          </template>
-          <template v-else-if="getFileType(detailInfo.ks_kj) === 'mp4'">
-            <video class="w-full h-full" :src="getFullUrl(detailInfo.ks_kj)" controls></video>
-          </template>
-          <el-result v-else icon="error" title="错误信息" sub-title="文件格式不支持">
-          </el-result> -->
         </template>
       </div>
 
-      <!-- <div class="w-full flex justify-between items-center">
+      <div class="w-full flex justify-between items-center">
         <el-button type="primary" :icon="ArrowLeft" circle size="large" />
 
         <div class="flex-auto flex justify-start items-center">
           <div class="w-19/100 mx-4 flex flex-col cursor-pointer" v-for="i in data_zy">
             <div class="w-full flex-none overflow-hidden  rounded-xl">
-              <img :src="i.img" alt="" class="w-full h-full">
+              <file-preview :url="i.yzsd_file" alt="" class="w-full h-full" />
             </div>
             <div class="p-2">
-              {{  i.title  }}
+              {{ i.yzsd_xsxm }}
             </div>
           </div>
         </div>
 
         <el-button type="primary" :icon="ArrowRight" circle size="large" />
-      </div> -->
+      </div>
 
     </div>
   </div>

+ 51 - 17
src/pages/zbkt/ssys/index.vue

@@ -11,6 +11,7 @@ import { getFullUrl, getAvatarUrl } from '~/utils/helper';
 const queryForm = reactive({
   ks_status: 2,
   grade_id: undefined,
+  subject_id: undefined,
   team_id: undefined,
   limit: 10,
   page: 1
@@ -36,20 +37,49 @@ function queryData() {
   })
 }
 
-let nj = $ref()
-let fc = $ref()
-
-request({
-  url: '/jcxx/grade/index',
-  data: {
-    limit: 99
-  }
-}).then(res => {
-  if (res.code === '1') {
-    nj = [{ n: '全部', v: undefined }].concat(res.data.page_data.map(({ grade_name, grade_id }) => ({ v: grade_id, n: grade_name })))
-  }
-})
-
+// let nj = $ref()
+// let fc = $ref()
+
+// request({
+//   url: '/jcxx/grade/index',
+//   data: {
+//     limit: 99
+//   }
+// }).then(res => {
+//   if (res.code === '1') {
+//     nj = [{ n: '全部', v: undefined }].concat(res.data.page_data.map(({ grade_name, grade_id }) => ({ v: grade_id, n: grade_name })))
+//   }
+// })
+
+let nj = $ref([])
+let km = $ref([])
+
+function queryParams() {
+  return Promise.all([
+    request({
+      url: '/jcxx/grade/index',
+      data: {
+        limit: 99
+      }
+    }).then(res => {
+      if (res.code === '1') {
+        nj = [{ n: '全部', v: undefined }].concat(res.data.page_data.map(({ grade_name, grade_id }) => ({ v: grade_id, n: grade_name })))
+      }
+    })
+    ,
+    request({
+      url: '/jcxx/subject/index',
+      data: {
+        limit: 99
+      }
+    }).then(res => {
+      if (res.code === '1') {
+        km = [{ n: '全部', v: undefined }].concat(res.data.page_data.map(({ subject_name, subject_id }) => ({ v: subject_id, n: subject_name })))
+      }
+    })
+  ])
+}
+queryParams()
 
 let data = $ref([])
 let total = $ref(0)
@@ -59,7 +89,7 @@ request({
   data: { ...queryForm, keyword }
 }).then(res => {
   if (res.code === '1') {
-    fc = [{ n: '全部', v: undefined }].concat(res.data.table_structure.field.team_id.option)
+    // fc = [{ n: '全部', v: undefined }].concat(res.data.table_structure.field.team_id.option)
     data = res.data.page_data
     total = res.data.total_rows * 1
   }
@@ -104,7 +134,7 @@ function handleRtcClick(row) {
       <el-input class="input w-500px h-50px rounded-md" placeholder="搜索关键字" v-model="keyword">
         <template #suffix>
           <div class="w-26px h-26px bg-hex-00A3FF rounded-md flex justify-center items-center cursor-pointer"
-            @click="queryData()" >
+            @click="queryData()">
             <el-icon size="13" color="#fff">
               <IconSearch />
             </el-icon>
@@ -128,6 +158,7 @@ function handleRtcClick(row) {
       <div class="mt-4">
         <check-row v-model="queryForm.grade_id" label="年级" :items="nj"></check-row>
         <!-- <check-row v-model="queryForm.team_id" label="分册" :items="fc"></check-row> -->
+        <check-row v-model="queryForm.subject_id" label="科目" :items="km"></check-row>
       </div>
 
       <div class="flex flex-wrap justify-between">
@@ -159,7 +190,10 @@ function handleRtcClick(row) {
 
               <div class="flex text-sm justify-between items-center">
                 <div class="cursor-pointer flex items-center">
-                  <el-avatar :size="16" :src="getAvatarUrl(i.user_id)" /><span class="ml-1">{{ i.ks_zjjsxm }}</span>
+                  <!-- getAvatarUrl(i.user_id) -->
+                  <el-avatar :size="16" :src="i.user_avatar"></el-avatar>
+                  <!-- <img :src="i.user_avatar" class="w-4 h-4" alt=""> -->
+                  <span class="ml-1">{{ i.ks_zjjsxm }}</span>
                 </div>
                 <div @click="handleRtcClick(i)"
                   class="h-26px rounded-14px px-2 flex items-center text-hex-0083C5 cursor-pointer"

+ 2 - 2
src/pages/zhjy/tbjy/detail.vue

@@ -285,7 +285,7 @@ function queryCommentList() {
 }
 queryCommentList()
 
-const form_ztkj_gwnr = $ref('')
+let form_ztkj_gwnr = $ref('')
 function handleSubmitComment() {
   if (form_ztkj_gwnr.length >= 20 && form_ztkj_gwnr.length <= 500) {
     request({
@@ -332,7 +332,7 @@ function queryFileList() {
 }
 queryFileList()
 
-const form_file = $ref(undefined)
+let form_file = $ref(undefined)
 function handleSubmitFile() {
   console.log('form_file :>> ', form_file);
   console.log(resolveSingleFileString(form_file));

+ 8 - 1
src/pages/zhjy/zhjyzxxx/zxxxsp/api.js

@@ -133,4 +133,11 @@ export const zxxx_attention_del = (data = {}) =>
       uw_id: data.uw_id,
       uw_user_id: data.uw_user_id
     }
-  })
+  })
+//用户信息
+export const userInfoDetail = (data = {}) => {
+  return request({
+    url: '/user/main/user_info',
+    data
+  })
+}

+ 36 - 8
src/pages/zhjy/zhjyzxxx/zxxxsp/index.vue

@@ -66,12 +66,16 @@
         <div class="Info">
           <div style="display: flex; justify-content: space-between">
             <div class="left">
-              <img class="avatar" src="@/assets/img/zhjy/main_3.png" alt="" />
+              <div>
+                <el-avatar class="avatar" :src="userInfoData.user_avatar" v-if="userInfoData.user_avatar" />
+                <el-avatar class="avatar" src="@/assets/kczy/singlePic4.png" v-else />
+              </div>
 
               <div class="left-top">
-                <span>{{ detailData.zx_jsxx }}</span><img src="@/assets/img/zhjy/hot.png" alt="" /><span>{{
-                  detailData.zx_lll
-                }}</span>
+                <span>{{ detailData.zz_jsxx }}</span><img src="@/assets/img/zhjy/hot.png" alt="" /><span v-if="userInfoData.ext">{{
+                userInfoData.ext.ue_hot
+                }}
+                </span>
               </div>
               <div class="left-bottom">
                 <span>金牌讲师</span> <span>YYDS</span>
@@ -101,7 +105,7 @@
         <div class="spbf video" id="player-con">
           <video class="" src=""></video>
           <!-- <div class="spbf-left">助教:沈老师</div> -->
-          <div class="spbf-right">当前观看人数:6785人</div>
+          <div class="spbf-right">当前观看人数:{{ detailData.zz_views}}人</div>
         </div>
       </div>
 
@@ -185,7 +189,8 @@ import {
   zxxx_fav_add,
   zxxx_fav_del,
   zxxx_attention_add,
-  zxxx_attention_del
+  zxxx_attention_del,
+  userInfoDetail
 } from "./api";
 import QrcodeVue from "qrcode.vue";
 import { ElMessage } from "element-plus";
@@ -220,9 +225,25 @@ export default {
       fingerSwitch: 0, //0:关 1:开
       loveNum: 0, //收藏
       loveSwitch: 0, //0:关 1:开
+      userInfoData: {}
     };
   },
   methods: {
+    initUserInfoDetail() {
+      let transObj = {
+        token: user.token,
+        user_id: user.user_id,
+      };
+      userInfoDetail(transObj)
+        .then((res) => {
+          if (res.code == "1") {
+            this.userInfoData = res.data;
+          }
+        })
+        .catch((error) => {
+          console.log(error);
+        });
+    },
     handleFocus() {
       this.isFocus = !this.isFocus;
 
@@ -477,12 +498,14 @@ export default {
       }
       this.getDetailData();
     },
+
   },
   mounted() {
     if (this.$route.params.id != "") {
       this.zz_id = this.$route.params.id;
       this.getDetailData();
       this.getEvaluateListData();
+      this.initUserInfoDetail();
     }
   },
 };
@@ -656,6 +679,9 @@ export default {
       display: inline-block;
     }
     .left-top {
+      position: absolute;
+      top: 10px;
+      left: 75px;
       display: inline-block;
       width: 150px;
       height: 22px;
@@ -664,10 +690,11 @@ export default {
       margin-top: 10px;
       img {
         display: inline-block;
+        padding-bottom: 8px;
       }
       span:first-of-type {
         display: inline-block;
-        width: 48px;
+
         height: 22px;
         font-size: 16px;
         font-family: PingFang, PingFang-Heavy;
@@ -679,7 +706,7 @@ export default {
       }
       span:last-of-type {
         display: inline-block;
-        width: 40px;
+
         height: 20px;
         font-size: 14px;
         font-family: PingFangSC, PingFangSC-Regular;
@@ -687,6 +714,7 @@ export default {
         text-align: left;
         color: #949494;
         line-height: 20px;
+        margin-left: 5px;
       }
     }
     .left-bottom {

+ 8 - 1
src/pages/zhjy/zhjyzxxx/zxxxxq/api.js

@@ -119,4 +119,11 @@ export const zxxx_attention_del = (data = {}) =>
       uw_id: data.uw_id,
       uw_user_id: data.uw_user_id
     }
-  })
+  })
+//用户信息
+export const userInfoDetail = (data = {}) => {
+  return request({
+    url: '/user/main/user_info',
+    data
+  })
+}

+ 35 - 11
src/pages/zhjy/zhjyzxxx/zxxxxq/index.vue

@@ -8,12 +8,16 @@
       <p>{{ detailData.zz_name }}</p>
       <div style="display: flex; ">
         <div class="left">
-          <img class="avatar" src="@/assets/img/zhjy/main_3.png" alt="" />
+          <div>
+            <el-avatar class="avatar" :src="userInfoData.user_avatar" v-if="userInfoData.user_avatar" />
+            <el-avatar class="avatar" src="@/assets/kczy/singlePic4.png" v-else />
+          </div>
 
           <div class="left-top">
-            <span>{{ detailData.zx_jsxx }}</span><img src="@/assets/img/zhjy/hot.png" alt="" /><span>{{
-              detailData.zx_lll
-            }}</span>
+            <span>{{ detailData.zz_jsxx }}</span><img src="@/assets/img/zhjy/hot.png" alt="" /><span v-if="userInfoData.ext">{{
+                userInfoData.ext.ue_hot
+                }}
+            </span>
           </div>
           <div class="left-bottom"><span>金牌讲师</span> <span>YYDS</span></div>
         </div>
@@ -94,7 +98,8 @@ import {
   zxxx_fav_del,
   zxxx_attention_add,
   zxxx_attention_del,
-  wgzd_list
+  wgzd_list,
+  userInfoDetail
 
 } from "./api";
 import { download } from "~/utils/request";
@@ -108,6 +113,7 @@ export default {
   data() {
     return {
       isFocus: true,
+      userInfoData: {},
       detailData: {},
       evaluateInfo: {},
       evaluateListData: [],
@@ -129,10 +135,26 @@ export default {
       cur_page: 1,
       listData: [],
       attention: "",
-      uw_user_id: ""
+      uw_user_id: "",
+
     };
   },
   methods: {
+    initUserInfoDetail() {
+      let transObj = {
+        token: user.token,
+        user_id: user.user_id,
+      };
+      userInfoDetail(transObj)
+        .then((res) => {
+          if (res.code == "1") {
+            this.userInfoData = res.data;
+          }
+        })
+        .catch((error) => {
+          console.log(error);
+        });
+    },
     handleFocus() {
       this.isFocus = !this.isFocus;
       // // /**增加关注或取消*/
@@ -362,7 +384,7 @@ export default {
       this.getDetailData();
       this.getEvaluateListData();
       this.getListData();
-
+      this.initUserInfoDetail();
     }
   },
 };
@@ -482,7 +504,6 @@ export default {
 .main {
   width: 1400px;
   margin: 0 auto;
-
   background: #ffffff;
   border-radius: 12px;
   padding: 30px;
@@ -510,6 +531,7 @@ export default {
   height: 100px;
   border-bottom: 1px solid #eeeeee;
   position: relative;
+
   .avatar {
     width: 75px;
     height: 77px;
@@ -517,17 +539,19 @@ export default {
     display: inline-block;
   }
   .left-top {
+    position: absolute;
+    top: 28px;
+    left: 75px;
     display: inline-block;
     width: 150px;
     height: 22px;
-
     margin-left: 10px;
     img {
       display: inline-block;
+      padding-bottom: 8px;
     }
     span:first-of-type {
       display: inline-block;
-      width: 48px;
       height: 22px;
       font-size: 16px;
       font-family: PingFang, PingFang-Heavy;
@@ -539,7 +563,6 @@ export default {
     }
     span:last-of-type {
       display: inline-block;
-      width: 40px;
       height: 20px;
       font-size: 14px;
       font-family: PingFangSC, PingFangSC-Regular;
@@ -547,6 +570,7 @@ export default {
       text-align: left;
       color: #949494;
       line-height: 20px;
+      margin-left: 5px;
     }
   }
   .left-bottom {

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 916 - 1016
yarn.lock