Explorar o código

Merge branch 'master' of http://121.4.203.192:9000/mingxue/front

shilipojs %!s(int64=2) %!d(string=hai) anos
pai
achega
2093f9f5da

+ 8 - 0
src/api/webApi/career-course.js

@@ -17,6 +17,14 @@ export function list(params) {
         params: params
     })
 }
+export function listNoToken(params) {
+  return request({
+    url: '/front/sykc/listNoToken',
+    method: 'get',
+    params: params,
+    withoutToken: true
+  })
+}
 
 // 02 生涯课程详情
 export function info(params) {

+ 7 - 2
src/views/career/plan/detail.vue

@@ -6,7 +6,7 @@
           <span>CONTACT</span>
           <span>章节目录</span>
         </div>
-        <div class="aside_content">
+        <div class="aside_content" v-if="false">
           <el-tree ref="treeBox" :data="contentData" :props="defaultProps" :highlight-current="true" :default-expanded-keys="expandId" :default-checked-keys="childrenId" node-key="id" @node-click="treeNodeClick"></el-tree>
         </div>
       </el-aside>
@@ -77,7 +77,10 @@
 <script>
 import { videoInfo, getVideoPlayAuth } from "@/api/webApi/webVideo";
 import aliplayer from "../../videocourse/compoent/aliplayer.vue";
+import transferMixin from '@/components/mx-transfer-mixin'
+
 export default {
+  mixins: [transferMixin],
   components: { aliplayer },
   data() {
     return {
@@ -92,11 +95,13 @@ export default {
       childrenId: [], // 默认选中的节点id
       checkNode: {}, //选中的节点
       videoInfo: {},
+      aliIdType: '',
       videoId: ''
     };
   },
   created() {
-    this.routeParams = this.$route.query;
+    const hasPrevData = !!Object.keys(this.prevData).length
+    this.routeParams = hasPrevData ? this.prevData : this.$route.query;
 
     // Mock树节点
     this.contentData = [this.routeParams];

+ 48 - 4
src/views/index/components/index-card-career.vue

@@ -1,20 +1,64 @@
 <template>
-  <index-card title="生涯视频" more-text="更多" @more="handleMore"></index-card>
+  <index-card title="生涯视频" more-text="更多" @more="handleMore">
+    <index-card-content :list="list" :line-size="lineSize">
+      <template #default="{item}">
+        <index-image-item v-bind="item"></index-image-item>
+      </template>
+    </index-card-content>
+  </index-card>
 </template>
 
 <script>
 import IndexCard from '@/views/index/components/index-card'
+import * as career from '@/api/webApi/career-course'
+import IndexCardContent from '@/views/index/components/index-card-content'
+import IndexImageItem from '@/views/index/components/index-image-item'
+import transferMixin from '@/components/mx-transfer-mixin'
+import loginCheckMixin from '@/views/components/blocks/index-login-interceptor-mixin'
 
 export default {
+  mixins: [transferMixin, loginCheckMixin],
   name: 'index-card-career',
-  components: { IndexCard },
+  components: { IndexImageItem, IndexCardContent, IndexCard },
   data() {
     return {
-      morePath: '',
-      list: []
+      morePath: '/new-gaokao/careerVideo',
+      list: [],
+      lineSize: 6,
+      queryParams: {
+        pageNum: 1,
+        pageSize: 12,
+        type: 0
+      }
     }
   },
+  mounted() {
+    this.getList()
+  },
   methods: {
+    getList() {
+      career.listNoToken(this.queryParams).then(res => {
+        this.list = res['rows']?.map((item, idx) => {
+          const path = '/career/plan/detail'
+          const nextParams = {
+            id: item.id,
+            aliid: item.aliid,
+            aliIdType: item.aliIdType,
+            name: item.name,
+            count: item.plays,
+            img: item.pictUrl
+          }
+          return {
+            title: item.name,
+            src: item.pictUrl,
+            path: path,
+            nextData: nextParams,
+            class: idx >= this.lineSize ? ['mt15'] : [],
+            titleClasses: ['width100', 'fx-row', 'f-666', 'pf', 'f14', 'text-ellipsis']
+          }
+        })
+      })
+    },
     async handleMore() {
       await this.loginCheck()
       this.transferTo(this.morePath)

+ 5 - 1
src/views/index/components/index-image-item.vue

@@ -55,13 +55,17 @@ export default {
         left: '17px',
         opacity: 0.6
       })
+    },
+    nextData: {
+      type: Object,
+      default: null
     }
   },
   methods: {
     async handleItem() {
       await this.loginCheck()
       if (!this.path) return
-      this.transferTo(this.path)
+      this.transferTo(this.path, this.nextData)
     }
   }
 }

+ 1 - 1
src/views/index/components/index-preference-simulate.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="mt20 index-block" @click="handleClick">
+  <div @click="handleClick">
     <el-image :src="require('@/assets/images/index/login/banner_preference_simulate@2x.png')" fit="contain"/>
   </div>
 </template>

+ 3 - 0
src/views/index/login.vue

@@ -10,6 +10,7 @@
       <div class="fx-column fx-cen-cen">
         <index-card-subject-query class="mt20 index-block"/>
         <index-card-elective-test class="mt20 index-block"/>
+        <index-card-career class="mt20 index-block"/>
         <index-preference-simulate class="mt20 index-block"/>
         <index-preference class="mt20 index-block"/>
       </div>
@@ -44,10 +45,12 @@ import IndexCardSubjectQuery from '@/views/index/components/index-card-subject-q
 import IndexCardElectiveTest from '@/views/index/components/index-card-elective-test'
 import IndexPreferenceSimulate from '@/views/index/components/index-preference-simulate'
 import IndexPreference from '@/views/index/components/index-preference'
+import IndexCardCareer from '@/views/index/components/index-card-career'
 
 export default {
   mixins: [RouterHelpMixin, loginCheckMixin],
   components: {
+    IndexCardCareer,
     IndexPreference,
     IndexPreferenceSimulate,
     IndexCardElectiveTest,