Kaynağa Gözat

新增免费观看参数来控制科目三视频

JXDS18FUJT 1 yıl önce
ebeveyn
işleme
e595a32544

+ 34 - 13
src/otherPages/courseCatalog/components/courseCatalog.vue

@@ -81,30 +81,42 @@
       </checkbox-group> -->
     </view>
     <view
-      @click="!roadExamIds.includes(examId) ? buyRoadCourse() : ''"
+      @click="
+        !roadExamIds.includes(examId) && isVideoFree == '0'
+          ? buyRoadCourse()
+          : ''
+      "
       class="pay"
     >
       <view class="pay-text">
-        <text v-if="!roadExamIds.includes(examId)"
+        <text v-if="!roadExamIds.includes(examId) && isVideoFree == '0'"
           >立即支付&nbsp;&nbsp;¥{{ price / 100 }}</text
         >
         <icon
-          v-if="roadExamIds.includes(examId)"
+          v-if="roadExamIds.includes(examId) && isVideoFree == '0'"
           type="success_no_circle"
           color="#ffffff"
           size="16"
           style="margin-right: 15rpx"
         ></icon>
-        <text v-if="roadExamIds.includes(examId)">已购买</text>
+        <text v-if="roadExamIds.includes(examId) && isVideoFree == '0'"
+          >已购买</text
+        >
+        <text v-if="isVideoFree == '1'">免费观看</text>
       </view>
       <image
-        v-if="!roadExamIds.includes(examId)"
+        v-if="!roadExamIds.includes(examId) && isVideoFree == '0'"
         style="width: 100%"
         mode="widthFix"
         src="https://ndata.zzxcx.net/ctjk/mp-wx/courseCatalog/payBg.png"
       ></image>
       <image
-        v-if="roadExamIds.includes(examId)"
+        v-if="roadExamIds.includes(examId) && isVideoFree == '0'"
+        mode="widthFix"
+        src="https://ndata.zzxcx.net/ctjk/mp-wx/courseCatalog/alreadyPay.png"
+      ></image>
+      <image
+        v-if="isVideoFree == '1'"
         mode="widthFix"
         src="https://ndata.zzxcx.net/ctjk/mp-wx/courseCatalog/alreadyPay.png"
       ></image>
@@ -123,12 +135,13 @@
 
 <script>
 import api from "@/api";
-import { mapGetters } from "vuex";
+import { mapGetters, mapState } from "vuex";
 import vip_angle from "@/assets/img/vip_angle.png";
 import try_angle from "@/assets/img/try_angle.png";
 export default {
   data() {
     return {
+      IS_VIDEO_FREE: 0,
       query: {
         price: 0,
       },
@@ -145,13 +158,16 @@ export default {
       console.log(this.userAgreement);
     },
     playRoadExamVideo(item) {
-      if (!this.roadExamIds.includes(this.examId)&&item.permission==2) {
-        uni.showToast({
-          title: "请购买",
-          icon: "none",
-        });
-        return;
+      if (this.isVideoFree == "0") {
+        if (!this.roadExamIds.includes(this.examId) && item.permission == 2) {
+          uni.showToast({
+            title: "请购买",
+            icon: "none",
+          });
+          return;
+        }
       }
+
       uni.setStorageSync("storageWebSrc", item.videoUrl);
       uni.navigateTo({
         url: "/otherPages/playStorageWebSrc/index",
@@ -217,6 +233,11 @@ export default {
     this.query = query;
   },
   computed: {
+    ...mapState({
+      isVideoFree: (state) => {
+        return state.user.isVideoFree;
+      },
+    }),
     ...mapGetters(["roadExamIds"]),
   },
 };

+ 6 - 1
src/otherPages/courseCatalog/index.vue

@@ -66,7 +66,7 @@ import mNavBar from "../../components/m-nav-bar/m-nav-bar.vue";
 import CourseDesc from "./components/courseDesc.vue";
 import courseCatalog from "./components/courseCatalog.vue";
 import api from '@/api'
-import { mapGetters } from "vuex";
+import { mapGetters,mapState } from "vuex";
 export default {
   components: { mNavBar, CourseDesc, courseCatalog },
   data() {
@@ -90,6 +90,11 @@ export default {
 
   },
   computed: {
+    ...mapState({
+      isVideoFree:(state)=>{
+        return state.user.isVideoFree
+      }
+    }),
    ...mapGetters(['roadExamIds'])
   },
 };

+ 33 - 34
src/pages/carVideo/index.vue

@@ -37,7 +37,7 @@
       <userInfoHead :userData="userData"></userInfoHead>
     </topbar>
     <!-- #endif -->
- 
+
     <view>
       <swiper :indicator-dots="false" style="height: 200rpx">
         <swiper-item class="swiperBanner">
@@ -527,33 +527,31 @@ export default {
 
   async mounted() {
     this.loading = false;
-  
-
-      this.$nextTick(() => {
-        // 需要延迟
-
-        api.user.getInfo().then((res) => {
-          uni.setStorageSync("userInfo", res.data);
-          this.$store.commit("SET_USERINFO", res.data);
-           this.$store.dispatch("GetRoadExamVip");
-          // if (!res.data.nickName) {
-          //   uni.showModal({
-          //     title: "新用户更新信息",
-          //     confirmText: "去更新",
-          //     success: function (res) {
-          //       if (res.confirm) {
-          //        uni.navigateTo({
-          //         url:"/otherPages/userInfoAuth/index"
-          //        })
-          //       } else if (res.cancel) {
-
-          //       }
-          //     }
-          //   })
-        });
-      });
-     
 
+    this.$nextTick(() => {
+      // 需要延迟
+
+      api.user.getInfo().then((res) => {
+        uni.setStorageSync("userInfo", res.data);
+        this.$store.commit("SET_USERINFO", res.data);
+        this.$store.dispatch("GetRoadExamVip");
+        this.$store.dispatch("GetRoadExamIsAllFree");
+        // if (!res.data.nickName) {
+        //   uni.showModal({
+        //     title: "新用户更新信息",
+        //     confirmText: "去更新",
+        //     success: function (res) {
+        //       if (res.confirm) {
+        //        uni.navigateTo({
+        //         url:"/otherPages/userInfoAuth/index"
+        //        })
+        //       } else if (res.cancel) {
+
+        //       }
+        //     }
+        //   })
+      });
+    });
 
     // api.user.getInfo().then(res => {
     //   uni.setStorageSync("userInfo", res.data);
@@ -579,15 +577,16 @@ export default {
     //   this.selectComponent("#tabs").resize();
     // });
   },
-onShareAppMessage(res) {
-    if (res.from === 'button') {// 来自页面内分享按钮
-      console.log(res.target)
+  onShareAppMessage(res) {
+    if (res.from === "button") {
+      // 来自页面内分享按钮
+      console.log(res.target);
     }
-    let userInfo = uni.getStorageSync('userInfo')
+    let userInfo = uni.getStorageSync("userInfo");
     return {
-      title: '自定义分享标题',
-      path: `/pages/carVideo/index?pUnionId=${userInfo.unionId}`
-    }
+      title: "自定义分享标题",
+      path: `/pages/carVideo/index?pUnionId=${userInfo.unionId}`,
+    };
   },
   methods: {
     clickCell(carVideoList) {

+ 15 - 0
src/store/modules/user.js

@@ -1,4 +1,5 @@
 import userApi from '@/api/modules/user.js'
+import openApi from '@/api/modules/open.js'
 const crypto = require("crypto");
 const user = {
 	state: {
@@ -9,6 +10,7 @@ const user = {
 		jpcjUserInfo: {
 
 		},
+		isVideoFree:"0",
 		roadExamList:[],
 		openExamRoom: [],
 		userInfo: '',
@@ -29,6 +31,10 @@ const user = {
 		}
 	},
 	mutations: {
+		SET_ISVIDEOFREE:(state,isVideoFree)=>{
+			state.isVideoFree = isVideoFree
+
+		},
 		SET_ROADEXAMLIST:(state,roadExamList)=>{
 			state.roadExamList = roadExamList
 		},
@@ -113,6 +119,15 @@ const user = {
 			let rows = res.rows
 			store.commit('SET_ROADEXAMLIST',rows)
 		},
+		async GetRoadExamIsAllFree(store){
+			let res = await openApi.systemDictDataType("nbjk_set")
+			let IS_VIDEO_FREE = res.data.filter(item=>{
+				return item.dictLabel=='IS_VIDEO_FREE'
+			})
+			console.log(IS_VIDEO_FREE,"IS_VIDEO_FREE")
+			store.commit("SET_ISVIDEOFREE",IS_VIDEO_FREE[0].dictValue)
+			
+		},
 		/**
 		 * 获取用户信息
 		 * @param {Object} store