XSLu08042 19 小時之前
父節點
當前提交
eb5f338a39
共有 30 個文件被更改,包括 804 次插入39 次删除
  1. 1 1
      App.vue
  2. 2 2
      common/request.js
  3. 31 1
      components/descInfoNav.vue
  4. 281 0
      components/integralGift.vue
  5. 1 0
      main.js
  6. 1 1
      manifest.json
  7. 34 8
      pages/course/learning.vue
  8. 3 2
      pages/course/learningBase.vue
  9. 34 8
      pages/course/learningNew.vue
  10. 10 8
      pages/course/learningNewApp.vue
  11. 二進制
      unpackage/dist/build/appcourse.zip
  12. 二進制
      unpackage/dist/build/auth.zip
  13. 二進制
      unpackage/dist/build/courseH5.zip
  14. 1 1
      unpackage/dist/build/web/index.html
  15. 二進制
      unpackage/dist/build/web/static/Subtract_bg100@2x.png
  16. 二進制
      unpackage/dist/build/web/static/images/warning.png
  17. 0 0
      unpackage/dist/build/web/static/js/chunk-vendors.1749636996916.js
  18. 0 0
      unpackage/dist/build/web/static/js/chunk-vendors.1749720810388.js
  19. 0 0
      unpackage/dist/build/web/static/js/index.1749636996916.js
  20. 0 0
      unpackage/dist/build/web/static/js/index.1749720810388.js
  21. 0 0
      unpackage/dist/build/web/static/js/pages-auth-login.1749636996916.js
  22. 0 0
      unpackage/dist/build/web/static/js/pages-auth-login.1749720810388.js
  23. 0 0
      unpackage/dist/build/web/static/js/pages-course-learning.1749636996916.js
  24. 0 0
      unpackage/dist/build/web/static/js/pages-course-learning.1749720810388.js
  25. 0 0
      unpackage/dist/build/web/static/js/pages-course-reward.1749636996916.js
  26. 0 0
      unpackage/dist/build/web/static/js/pages-course-reward.1749720810388.js
  27. 12 5
      unpackage/dist/cache/.vite/deps/_metadata.json
  28. 386 0
      unpackage/dist/cache/.vite/deps/jweixin-module.js
  29. 3 0
      unpackage/dist/cache/.vite/deps/jweixin-module.js.map
  30. 4 2
      utils/common.js

+ 1 - 1
App.vue

@@ -1,7 +1,7 @@
 <script>
 	export default {
 		globalData: {
-			wsUrl: 'ws://h5.baohetangjinyue.cn',
+			wsUrl: 'ws://h5api.muyi88.com',
 		},
 		onLaunch: function() {
 			console.log('App Launch')

+ 2 - 2
common/request.js

@@ -4,7 +4,7 @@ import {TOKEN_KEY} from '@/utils/common.js'
 export default class Request {
 	http(router, data = {}, method,contentType,type) {
 		let that = this;
-		// let path ='http://h5api.muyi88.com';//server
+		let path ='http://h5api.muyi88.com';//server
 		// let path = 'http://h5api.ylrztop.com'
 		// let path = 'http://h5.baohetangjinyue.cn'
 		// let path = 'http://h5api.jiuzhouzaixian.com'
@@ -16,7 +16,7 @@ export default class Request {
 		// let path = "http://h5api.cqsft.vip"
 		// let path = 'https://h5api.his.cdwjyyh.com'
 		// let path = 'http://h5.xiaofangke.com'
-		let path = 'https://userapp.ashyisheng.com'
+		// let path = 'https://userapp.ashyisheng.com'
 		// uni.setStorageSync('requestPath',path);
 		// uni.showLoading({
 		// 	  title: '加载中'

+ 31 - 1
components/descInfoNav.vue

@@ -35,6 +35,14 @@
 					<image src="/static/images/course_arrow_down_icon.png" v-show="!isExpand"></image>
 				</view>
 			</view>
+			<view class="giftbtn-big" v-if="isLogin">
+				兑换礼品
+				<wx-open-launch-weapp appid="wx20d588bebb30130f" path="pages_user/integralGoodsList" @launch="weappLaunch" @error="weappError">
+					<component :is="'script'" type="text/wxtag-template">
+						<div class="giftbtn-big-weapp"></div>
+					</component>
+				</wx-open-launch-weapp>
+			</view>
 		</view>
 	</view>
 </template>
@@ -94,7 +102,15 @@
 		}
 	}
 </script>
-
+<style>
+	.giftbtn-big-weapp {
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 100%;
+		height: 100%;
+	}
+</style>
 <style scoped lang="scss">
 	@mixin u-flex($flexD, $alignI, $justifyC) {
 		display: flex;
@@ -102,6 +118,20 @@
 		align-items: $alignI;
 		justify-content: $justifyC;
 	}
+	.giftbtn-big {
+		width: 100%;
+		height: 98rpx;
+		border-radius: 19rpx;
+		line-height: 98rpx;
+		text-align: center;
+		font-family: PingFang SC, PingFang SC;
+		font-weight: 600;
+		font-size: 32rpx;
+		color: #FF5C03;
+		@include u-flex(row, center, center);
+		border: 1px solid #FF5C03;
+		position: relative;
+	}
 	.miantitlebox {
 		padding: 30rpx 32rpx;
 		font-family: PingFang SC, PingFang SC;

+ 281 - 0
components/integralGift.vue

@@ -0,0 +1,281 @@
+<template>
+	<!-- 回答正确弹窗 跳转 小程序-->
+	<uni-popup ref="appPopup" type="center" :is-mask-click="false">
+		<view class="appPopup-mask">
+			<image class="tipimg" src="@/static/images/course_answer_img.png" mode="aspectFill"></image>
+			<image class="close_icon" src="@/static/images/tc_close_icon.png" mode="aspectFill" @click="closePop"></image>
+			<view class="appPopup-box">
+				<view class="appPopup-title">恭喜你,<text style="color: #FF5C03;">回答正确</text></view>
+				<view>百种好礼等你兑换</view>
+				<view class="goodslist">
+					<view class="goodsitem" v-for="(item,index) in products" :key="index">
+						<image class="bg" src="/static/Subtract_bg100@2x.png" mode="widthFix"></image>
+						<image class="img" :src="item.imageUrl" mode="aspectFill"></image>
+						<view class="goodsitem-name textOne">{{item.productName}}</view>
+						<view class="goodsitem-integral">
+							<text class="goodsitem-integral-num">{{item.requiredPoints}}</text>
+							<text>积分</text>
+						</view>
+						<view class="goodsitem-price">原价{{item.otPrice&&item.otPrice.toFixed(2)}}元</view>
+						<wx-open-launch-weapp appid="wx20d588bebb30130f" :path="'pages_user/integralGoodsDetails?goodsId='+item.productId">
+							<component :is="'script'" type="text/wxtag-template">
+								<div class="goodsitem-mask"></div>
+							</component>
+						</wx-open-launch-weapp>
+					</view>
+				</view>
+				<view class="changebtn" @click="getInfo">换一批</view>
+				<view class="progress">
+					<text>奖品兑换进度</text><text class="num">{{goodsInfo.exchangeProgress || 0}}%</text>
+					<progress style="margin-top: 30rpx;" active-color="#FAA97F" backgroundColor="#F5F7FA" border-radius="12" :percent="goodsInfo.exchangeProgress" stroke-width="12"></progress>
+				</view>
+				<view class="my-integral">我的积分:<text>{{goodsInfo.currentPoints || 0}}</text> </view>
+				<!-- <view class="launch-button" @click="closePop">{{goodsInfo.availableCoins}}积分已到账,去兑换</view> -->
+				<wx-open-launch-weapp appid="wx20d588bebb30130f" path="pages_user/integralGoodsList" @launch="weappLaunch" @error="weappError">
+					<component :is="'script'" type="text/wxtag-template">
+						<div class="launch-button">{{goodsInfo.availableCoins}}积分已到账,去兑换</div>
+					</component>
+				</wx-open-launch-weapp>
+				<!-- <view class="appPopup-tips">放弃积分,领取红包></view> -->
+			</view>
+		</view>
+	</uni-popup>
+</template>
+
+<script>
+	import { getCourseIntegralGoods } from "@/api/course.js"
+	export default {
+		data() {
+			return {
+				goodsInfo: {},
+				products: []
+			}
+		},
+		methods: {
+			openPop() {
+				this.$refs.appPopup.open("center")
+				this.getInfo()
+			},
+			closePop() {
+				this.$refs.appPopup.close()
+			},
+			//app礼品列表
+			getInfo() {
+				uni.showLoading({
+					title: '加载中'
+				})
+				getCourseIntegralGoods().then(res=>{
+					uni.hideLoading()
+					if(res.code == 200) {
+						this.goodsInfo = res.data
+						this.products = res.data && res.data.products? res.data.products:[]
+					} else {
+						uni.showToast({
+							title: res.msg,
+							icon: 'none'
+						})
+					}
+				}).catch(()=>{
+					uni.hideLoading()
+				})
+			},
+			handleItem(item,index) {
+				uni.navigateToMiniProgram({
+				  appId: 'wx20d588bebb30130f',
+				  path: 'pages_user/integralGoodsDetails',
+				  extraData: {
+				    'goodsId': item.productId
+				  },
+				  success(res) {
+				    // 打开成功
+				  }
+				})
+			},
+			weappLaunch() {
+				this.$refs.appPopup.close()
+			},
+			weappError(e) {
+				 console.log('fail', e.detail);
+			}
+		}
+	}
+</script>
+<style>
+.launch-button {
+	width: 560rpx;
+	height: 84rpx;
+	margin: 0 auto;
+	background: #FF5C03;
+	border-radius: 42rpx 42rpx 42rpx 42rpx;
+	display: flex;
+	flex-direction: row;
+	align-items: center;
+	justify-content: center;
+	font-family: PingFang SC;
+	font-weight: 500;
+	font-size: 32rpx;
+	color: #FFFFFF;
+}
+.goodsitem-mask {
+	position: absolute;
+	left: 0;
+	top: 0;
+	width: 100%;
+	height: 100%;
+}
+</style>
+<style scoped lang="scss">
+	@mixin u-flex($flexD, $alignI, $justifyC) {
+		display: flex;
+		flex-direction: $flexD;
+		align-items: $alignI;
+		justify-content: $justifyC;
+	}
+	.textOne {
+		overflow: hidden;
+		white-space: nowrap;
+		text-overflow: ellipsis;
+	}
+	.num {
+		margin-left: 12rpx;
+		font-family: DINPro, DINPro;
+		font-size: 40rpx;
+	}
+	.appPopup-mask {
+		margin-top: -88rpx;
+		width: 670rpx;
+		@include u-flex(column, center, center);
+		.tipimg {
+			height: 206rpx;
+			width: 206rpx;
+		}
+		.close_icon {
+			height: 48rpx;
+			width: 48rpx;
+			position: absolute;
+			top: 34rpx;
+			right: 20rpx;
+		}
+		.appPopup-box {
+			width: 670rpx;
+			padding-bottom: 32rpx;
+			background: linear-gradient( 180deg, #FFEBBD 0%, #FFFFFF 9%, #FFFFFF 100%);
+			border-radius: 32rpx 32rpx 32rpx 32rpx;
+			overflow: hidden;
+			margin-top: -103rpx;
+			padding-top: 103rpx;
+			box-sizing: border-box;
+			font-family: PingFang SC;
+			font-weight: 400;
+			font-size: 28rpx;
+			color: #757575;
+			text-align: center;
+		}
+		.appPopup-title {
+			margin-bottom: 10rpx;
+			font-family: PingFang SC;
+			font-weight: 600;
+			font-size: 40rpx;
+			color: #222222;
+		}
+	}
+	.goodslist {
+		margin-top: 58rpx;
+		padding: 24rpx 10rpx;
+		@include u-flex(row, center, space-evenly);
+	}
+	.bg {
+		width: 100%;
+		height: 100%;
+		position: absolute;
+		bottom: 0;
+		left: 0;
+		z-index: -1;
+	}
+	.goodsitem {
+		flex: 1;
+		max-width: 200rpx;
+		min-height: 124rpx;
+		border-radius: 10rpx;
+		@include u-flex(column, center, flex-start);
+		font-family: PingFang SC;
+		font-weight: 400;
+		font-size: 22rpx;
+		color: #999999;
+		position: relative;
+		z-index: 2;
+		.img {
+			width: 153rpx;
+			height: 126rpx;
+			margin-top: -44rpx;
+			border-radius: 10rpx;
+		}
+		&-name {
+			width: 100%;
+			padding: 8rpx 14rpx;
+			text-align: center;
+			font-family: PingFang SC;
+			font-weight: 500;
+			font-size: 24rpx;
+			color: #222222;
+			box-sizing: border-box;
+			word-break: break-all;
+		}
+		&-integral {
+			min-width: 80%;
+			padding-bottom: 16rpx;
+			box-sizing: border-box;
+			font-family: PingFang SC;
+			font-weight: 400;
+			font-size: 22rpx;
+			color: #FF5C03;
+			border-bottom: 2px #999999 dotted;
+			&-num {
+				font-family: DINPro, DINPro;
+				font-weight: 500;
+				font-size: 36rpx;
+			}
+		}
+		&-price {
+			padding: 10rpx 0;
+		}
+	}
+	.changebtn {
+		width: 152rpx;
+		height: 64rpx;
+		margin: 0 auto;
+		border-radius: 32rpx 32rpx 32rpx 32rpx;
+		border: 1rpx solid #FF5C03;
+		@include u-flex(row, center, center);
+		font-family: PingFang SC;
+		font-weight: 400;
+		font-size: 24rpx;
+		color: #FF5C03;
+	}
+	.progress {
+		padding: 0 90rpx;
+		margin-top: 40rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		font-size: 32rpx;
+		color: #222222;
+	}
+	::v-deep {
+		.uni-progress-bar, .uni-progress-inner-bar {
+			border-radius: 6px;
+		}
+	}
+	.my-integral {
+		margin: 32rpx 0;
+		font-family: PingFang SC;
+		font-weight: 400;
+		font-size: 28rpx;
+		color: #222222;
+		text {
+			color: #FF5C03;
+		}
+	}
+	.appPopup-tips {
+		margin-top: 32rpx;
+	}
+</style>

+ 1 - 0
main.js

@@ -9,6 +9,7 @@ Vue.prototype.$TOKEN_KEY = TOKEN_KEY
 import Vue from 'vue'
 import './uni.promisify.adaptor'
 Vue.config.productionTip = false
+Vue.config.ignoredElements.push('wx-open-launch-weapp')
 App.mpType = 'app'
 const app = new Vue({
   ...App

+ 1 - 1
manifest.json

@@ -76,7 +76,7 @@
         },
         "router" : {
             "mode" : "history",
-            "base" : "/courseH5"
+            "base" : "/auth"
         },
         "template" : "template.h5.html",
         "title" : " "

+ 34 - 8
pages/course/learning.vue

@@ -22,6 +22,7 @@
 				:poster="poster"  
 				id="video-content-box"  
 				controls
+				:show-center-play-btn="false"
 				:auto-pause-if-open-native="true"
 				:auto-pause-if-navigate="true"
 				:enable-progress-gesture="false" 
@@ -218,8 +219,9 @@
 				</view>
 			</uni-popup>
 			<!-- 可以答题提示 -->
-			<view class="answerTip" v-if="currentTab!=1&&openCommentStatus==1&&showAnswerTip" @click="handleTab(1)">
-				可以答题啦
+			<view class="answerTip" v-if="isLogin&&currentTab!=1&&openCommentStatus==1&&showAnswerTip" @click="handleTab(1)">
+				<text>开始</text>
+				<text>答题</text>
 			</view>
 			<!-- footer -->
 			<view class="footer" v-if="currentTab!=2&&(videoId||sortLink)">
@@ -245,16 +247,21 @@
 					<button class="send" @click="handleChatInput">发送</button>
 				</view>
 			</view>
+			<template v-if="isLogin&&videoId">
+				<integralGift ref="integralGift"></integralGift>
+			</template>
 		</view>
 	</view>
 </template>
 
 <script>
+	import integralGift from "@/components/integralGift.vue"
 	import ques from "@/components/ques.vue"
 	import descInfo from "@/components/descInfo.vue"
 	import descInfoNav from "@/components/descInfoNav.vue"
 	import commentBox from "@/components/commentBox.vue"
 	import { generateRandomString } from "@/utils/common.js"
+	import { initJssdk } from "@/utils/common.js"
 	import dayjs from 'dayjs';
 	import {
 		getErrMsg,
@@ -278,6 +285,7 @@
 			descInfo,
 			commentBox,
 			ques,
+			integralGift
 		},
 		data() {
 			return {
@@ -454,6 +462,7 @@
 		mounted() {
 			this.getIP()
 			this.getHeight()
+			this.initWXConfig()
 		},
 		onHide() {
 			if (this.player) {
@@ -894,6 +903,7 @@
 					sendReward(param).then(res => {
 						if(res.code == 200) {
 							if(res.isNew&&res.isNew==1) {
+								// 新商户领红包
 								const packageInfo = res.data.packageInfo || ''
 								if(packageInfo) {
 									uni.setStorageSync('receive_package',packageInfo);
@@ -902,6 +912,9 @@
 										url: '/pages/course/reward'
 									})
 								}
+							} else if(res.rewardType==2) {
+								// 积分
+								this.$refs.integralGift.openPop()
 							} else {
 								uni.showToast({
 									title: res.msg,
@@ -1270,6 +1283,19 @@
 				if(this.openCommentStatus==2) {
 					this.$refs.danmuPopup.close()
 				}
+			},
+			initWXConfig() {
+				const isWechat = String(navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) === "micromessenger";
+				if(isWechat) {
+					let url = window.location.href.split('#')[0]
+					initJssdk((data)=>{
+						console.log("wx-open-launch-weapp 加载成功")
+					},url)
+				} else {
+					// uni.showToast({
+					// 	title: '请在微信浏览器中打开'
+					// })
+				}
 			}
 		}
 	}
@@ -1479,13 +1505,13 @@
 		top: 0;
 		left: 0;
 		z-index: 2;
-		background: rgba(0, 0, 0, 0.2);
+		// background: rgba(0, 0, 0, 0.2);
 
 		.video-play {
 			height: 72rpx;
 			width: 72rpx;
 			position: absolute;
-			top: 50%;
+			top: calc(50% + 22px);
 			left: 50%;
 			transform: translate(-50%, -50%);
 		}
@@ -1965,11 +1991,11 @@
 		background-color: #ff5c03;
 		color: #fff;
 		border-radius: 50%;
-		height: 100rpx;
-		width: 100rpx;
-		font-size: 30rpx;
+		height: 90rpx;
+		width: 90rpx;
+		font-size: 25rpx;
 		text-align: center;
 		padding: 10rpx;
-		@include u-flex(row, center, center);
+		@include u-flex(column, center, center);
 	}
 </style>

+ 3 - 2
pages/course/learningBase.vue

@@ -22,6 +22,7 @@
 				:poster="poster"  
 				id="video-content-box"  
 				controls
+				:show-center-play-btn="false"
 				:auto-pause-if-open-native="true"
 				:auto-pause-if-navigate="true"
 				:enable-progress-gesture="false" 
@@ -1280,13 +1281,13 @@
 		top: 0;
 		left: 0;
 		z-index: 2;
-		background: rgba(0, 0, 0, 0.2);
+		// background: rgba(0, 0, 0, 0.2);
 
 		.video-play {
 			height: 72rpx;
 			width: 72rpx;
 			position: absolute;
-			top: 50%;
+			top: calc(50% + 22px);
 			left: 50%;
 			transform: translate(-50%, -50%);
 		}

+ 34 - 8
pages/course/learningNew.vue

@@ -22,6 +22,7 @@
 				:poster="poster"  
 				id="video-content-box"  
 				controls
+				:show-center-play-btn="false"
 				:auto-pause-if-open-native="true"
 				:auto-pause-if-navigate="true"
 				:enable-progress-gesture="false" 
@@ -218,8 +219,9 @@
 				</view>
 			</uni-popup>
 			<!-- 可以答题提示 -->
-			<view class="answerTip" v-if="currentTab!=1&&openCommentStatus==1&&showAnswerTip" @click="handleTab(1)">
-				可以答题啦
+			<view class="answerTip" v-if="isLogin&&currentTab!=1&&openCommentStatus==1&&showAnswerTip" @click="handleTab(1)">
+				<text>开始</text>
+				<text>答题</text>
 			</view>
 			<!-- footer -->
 			<view class="footer" v-if="currentTab!=2&&(videoId||sortLink)">
@@ -245,16 +247,21 @@
 					<button class="send" @click="handleChatInput">发送</button>
 				</view>
 			</view>
+			<template v-if="isLogin&&videoId">
+				<integralGift ref="integralGift"></integralGift>
+			</template>
 		</view>
 	</view>
 </template>
 
 <script>
+	import integralGift from "@/components/integralGift.vue"
 	import ques from "@/components/ques.vue"
 	import descInfo from "@/components/descInfo.vue"
 	import descInfoNav from "@/components/descInfoNav.vue"
 	import commentBox from "@/components/commentBox.vue"
 	import { generateRandomString } from "@/utils/common.js"
+	import { initJssdk } from "@/utils/common.js"
 	import dayjs from 'dayjs';
 	import {
 		getErrMsg,
@@ -278,6 +285,7 @@
 			descInfo,
 			commentBox,
 			ques,
+			integralGift
 		},
 		data() {
 			return {
@@ -454,6 +462,7 @@
 		mounted() {
 			this.getIP()
 			this.getHeight()
+			this.initWXConfig()
 		},
 		onHide() {
 			if (this.player) {
@@ -894,6 +903,7 @@
 					sendReward(param).then(res => {
 						if(res.code == 200) {
 							if(res.isNew&&res.isNew==1) {
+								// 新商户领红包
 								const packageInfo = res.data.packageInfo || ''
 								if(packageInfo) {
 									uni.setStorageSync('receive_package',packageInfo);
@@ -902,6 +912,9 @@
 										url: '/pages/course/reward'
 									})
 								}
+							} else if(res.rewardType==2) {
+								// 积分
+								this.$refs.integralGift.openPop()
 							} else {
 								uni.showToast({
 									title: res.msg,
@@ -1270,6 +1283,19 @@
 				if(this.openCommentStatus==2) {
 					this.$refs.danmuPopup.close()
 				}
+			},
+			initWXConfig() {
+				const isWechat = String(navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) === "micromessenger";
+				if(isWechat) {
+					let url = window.location.href.split('#')[0]
+					initJssdk((data)=>{
+						console.log("wx-open-launch-weapp 加载成功")
+					},url)
+				} else {
+					// uni.showToast({
+					// 	title: '请在微信浏览器中打开'
+					// })
+				}
 			}
 		}
 	}
@@ -1479,13 +1505,13 @@
 		top: 0;
 		left: 0;
 		z-index: 2;
-		background: rgba(0, 0, 0, 0.2);
+		// background: rgba(0, 0, 0, 0.2);
 
 		.video-play {
 			height: 72rpx;
 			width: 72rpx;
 			position: absolute;
-			top: 50%;
+			top: calc(50% + 22px);
 			left: 50%;
 			transform: translate(-50%, -50%);
 		}
@@ -1965,11 +1991,11 @@
 		background-color: #ff5c03;
 		color: #fff;
 		border-radius: 50%;
-		height: 100rpx;
-		width: 100rpx;
-		font-size: 30rpx;
+		height: 90rpx;
+		width: 90rpx;
+		font-size: 25rpx;
 		text-align: center;
 		padding: 10rpx;
-		@include u-flex(row, center, center);
+		@include u-flex(column, center, center);
 	}
 </style>

+ 10 - 8
pages/course/learningNewApp.vue

@@ -22,6 +22,7 @@
 				:poster="poster"  
 				id="video-content-box"  
 				controls
+				:show-center-play-btn="false"
 				:auto-pause-if-open-native="true"
 				:auto-pause-if-navigate="true"
 				:enable-progress-gesture="false" 
@@ -221,8 +222,9 @@
 				</view>
 			</uni-popup>
 			<!-- 可以答题提示 -->
-			<view class="answerTip" v-if="currentTab!=1&&openCommentStatus==1&&showAnswerTip" @click="handleTab(1)">
-				可以答题啦
+			<view class="answerTip" v-if="isLogin&&currentTab!=1&&openCommentStatus==1&&showAnswerTip" @click="handleTab(1)">
+				<text>开始</text>
+				<text>答题</text>
 			</view>
 			<!-- footer -->
 			<view class="footer" v-if="currentTab!=2&&(videoId||sortLink)">
@@ -1565,13 +1567,13 @@
 		top: 0;
 		left: 0;
 		z-index: 2;
-		background: rgba(0, 0, 0, 0.2);
+		// background: rgba(0, 0, 0, 0.2);
 
 		.video-play {
 			height: 72rpx;
 			width: 72rpx;
 			position: absolute;
-			top: 50%;
+			top: calc(50% + 22px);
 			left: 50%;
 			transform: translate(-50%, -50%);
 		}
@@ -2062,11 +2064,11 @@
 		background-color: #ff5c03;
 		color: #fff;
 		border-radius: 50%;
-		height: 100rpx;
-		width: 100rpx;
-		font-size: 30rpx;
+		height: 90rpx;
+		width: 90rpx;
+		font-size: 25rpx;
 		text-align: center;
 		padding: 10rpx;
-		@include u-flex(row, center, center);
+		@include u-flex(column, center, center);
 	}
 </style>

二進制
unpackage/dist/build/appcourse.zip


二進制
unpackage/dist/build/auth.zip


二進制
unpackage/dist/build/courseH5.zip


+ 1 - 1
unpackage/dist/build/web/index.html

@@ -1,2 +1,2 @@
 <!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta http-equiv=Cache-Control content="no-cache, no-store, must-revalidate"><meta http-equiv=Pragma content=no-cache><meta http-equiv=Expires content=0><title></title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
-            document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/courseH5/static/index.2da1efab.css></head><body><div id=app></div><script src="/courseH5/./static/js/chunk-vendors.1749195505078.js?v=1749195505078"></script><script src="/courseH5/./static/js/index.1749195505078.js?v=1749195505078"></script></body></html>
+            document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/auth/static/index.2da1efab.css></head><body><div id=app></div><script src="/auth/./static/js/chunk-vendors.1749720810388.js?v=1749720810388"></script><script src="/auth/./static/js/index.1749720810388.js?v=1749720810388"></script></body></html>

二進制
unpackage/dist/build/web/static/Subtract_bg100@2x.png


二進制
unpackage/dist/build/web/static/images/warning.png


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/build/web/static/js/chunk-vendors.1749636996916.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/build/web/static/js/chunk-vendors.1749720810388.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/build/web/static/js/index.1749636996916.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/build/web/static/js/index.1749720810388.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/build/web/static/js/pages-auth-login.1749636996916.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/build/web/static/js/pages-auth-login.1749720810388.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/build/web/static/js/pages-course-learning.1749636996916.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/build/web/static/js/pages-course-learning.1749720810388.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/build/web/static/js/pages-course-reward.1749636996916.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/dist/build/web/static/js/pages-course-reward.1749720810388.js


+ 12 - 5
unpackage/dist/cache/.vite/deps/_metadata.json

@@ -1,8 +1,15 @@
 {
-  "hash": "e68f71bc",
-  "configHash": "f68b9bb2",
-  "lockfileHash": "e3b0c442",
-  "browserHash": "e029cf31",
-  "optimized": {},
+  "hash": "04119f0a",
+  "configHash": "f4db4a7a",
+  "lockfileHash": "f2e963ac",
+  "browserHash": "ef3e5abe",
+  "optimized": {
+    "jweixin-module": {
+      "src": "../../../../../node_modules/jweixin-module/lib/index.js",
+      "file": "jweixin-module.js",
+      "fileHash": "7f3d7ea9",
+      "needsInterop": true
+    }
+  },
   "chunks": {}
 }

+ 386 - 0
unpackage/dist/cache/.vite/deps/jweixin-module.js

@@ -0,0 +1,386 @@
+// ../../../../work/courseH5/loginCourseAnswerH5/node_modules/jweixin-module/lib/index.js
+!function(e, n) {
+  "function" == typeof define && (define.amd || define.cmd) ? define(function() {
+    return n(e);
+  }) : n(e, true);
+}(window, function(o, e) {
+  if (!o.jWeixin) {
+    var n, c = { config: "preVerifyJSAPI", onMenuShareTimeline: "menu:share:timeline", onMenuShareAppMessage: "menu:share:appmessage", onMenuShareQQ: "menu:share:qq", onMenuShareWeibo: "menu:share:weiboApp", onMenuShareQZone: "menu:share:QZone", previewImage: "imagePreview", getLocation: "geoLocation", openProductSpecificView: "openProductViewWithPid", addCard: "batchAddCard", openCard: "batchViewCard", chooseWXPay: "getBrandWCPayRequest", openEnterpriseRedPacket: "getRecevieBizHongBaoRequest", startSearchBeacons: "startMonitoringBeacons", stopSearchBeacons: "stopMonitoringBeacons", onSearchBeacons: "onBeaconsInRange", consumeAndShareCard: "consumedShareCard", openAddress: "editAddress" }, a = function() {
+      var e2 = {};
+      for (var n2 in c)
+        e2[c[n2]] = n2;
+      return e2;
+    }(), i = o.document, t = i.title, r = navigator.userAgent.toLowerCase(), s = navigator.platform.toLowerCase(), d = !(!s.match("mac") && !s.match("win")), u = -1 != r.indexOf("wxdebugger"), l = -1 != r.indexOf("micromessenger"), p = -1 != r.indexOf("android"), f = -1 != r.indexOf("iphone") || -1 != r.indexOf("ipad"), m = (n = r.match(/micromessenger\/(\d+\.\d+\.\d+)/) || r.match(/micromessenger\/(\d+\.\d+)/)) ? n[1] : "", g = { initStartTime: L(), initEndTime: 0, preVerifyStartTime: 0, preVerifyEndTime: 0 }, h = { version: 1, appId: "", initTime: 0, preVerifyTime: 0, networkType: "", isPreVerifyOk: 1, systemType: f ? 1 : p ? 2 : -1, clientVersion: m, url: encodeURIComponent(location.href) }, v = {}, S = { _completes: [] }, y = { state: 0, data: {} };
+    O(function() {
+      g.initEndTime = L();
+    });
+    var I = false, _ = [], w = { config: function(e2) {
+      B("config", v = e2);
+      var t2 = false !== v.check;
+      O(function() {
+        if (t2)
+          M(c.config, { verifyJsApiList: C(v.jsApiList), verifyOpenTagList: C(v.openTagList) }, function() {
+            S._complete = function(e4) {
+              g.preVerifyEndTime = L(), y.state = 1, y.data = e4;
+            }, S.success = function(e4) {
+              h.isPreVerifyOk = 0;
+            }, S.fail = function(e4) {
+              S._fail ? S._fail(e4) : y.state = -1;
+            };
+            var t3 = S._completes;
+            return t3.push(function() {
+              !function() {
+                if (!(d || u || v.debug || m < "6.0.2" || h.systemType < 0)) {
+                  var i3 = new Image();
+                  h.appId = v.appId, h.initTime = g.initEndTime - g.initStartTime, h.preVerifyTime = g.preVerifyEndTime - g.preVerifyStartTime, w.getNetworkType({ isInnerInvoke: true, success: function(e4) {
+                    h.networkType = e4.networkType;
+                    var n3 = "https://open.weixin.qq.com/sdk/report?v=" + h.version + "&o=" + h.isPreVerifyOk + "&s=" + h.systemType + "&c=" + h.clientVersion + "&a=" + h.appId + "&n=" + h.networkType + "&i=" + h.initTime + "&p=" + h.preVerifyTime + "&u=" + h.url;
+                    i3.src = n3;
+                  } });
+                }
+              }();
+            }), S.complete = function(e4) {
+              for (var n3 = 0, i3 = t3.length; n3 < i3; ++n3)
+                t3[n3]();
+              S._completes = [];
+            }, S;
+          }()), g.preVerifyStartTime = L();
+        else {
+          y.state = 1;
+          for (var e3 = S._completes, n2 = 0, i2 = e3.length; n2 < i2; ++n2)
+            e3[n2]();
+          S._completes = [];
+        }
+      }), w.invoke || (w.invoke = function(e3, n2, i2) {
+        o.WeixinJSBridge && WeixinJSBridge.invoke(e3, x(n2), i2);
+      }, w.on = function(e3, n2) {
+        o.WeixinJSBridge && WeixinJSBridge.on(e3, n2);
+      });
+    }, ready: function(e2) {
+      0 != y.state ? e2() : (S._completes.push(e2), !l && v.debug && e2());
+    }, error: function(e2) {
+      m < "6.0.2" || (-1 == y.state ? e2(y.data) : S._fail = e2);
+    }, checkJsApi: function(e2) {
+      M("checkJsApi", { jsApiList: C(e2.jsApiList) }, (e2._complete = function(e3) {
+        if (p) {
+          var n2 = e3.checkResult;
+          n2 && (e3.checkResult = JSON.parse(n2));
+        }
+        e3 = function(e4) {
+          var n3 = e4.checkResult;
+          for (var i2 in n3) {
+            var t2 = a[i2];
+            t2 && (n3[t2] = n3[i2], delete n3[i2]);
+          }
+          return e4;
+        }(e3);
+      }, e2));
+    }, onMenuShareTimeline: function(e2) {
+      P(c.onMenuShareTimeline, { complete: function() {
+        M("shareTimeline", { title: e2.title || t, desc: e2.title || t, img_url: e2.imgUrl || "", link: e2.link || location.href, type: e2.type || "link", data_url: e2.dataUrl || "" }, e2);
+      } }, e2);
+    }, onMenuShareAppMessage: function(n2) {
+      P(c.onMenuShareAppMessage, { complete: function(e2) {
+        "favorite" === e2.scene ? M("sendAppMessage", { title: n2.title || t, desc: n2.desc || "", link: n2.link || location.href, img_url: n2.imgUrl || "", type: n2.type || "link", data_url: n2.dataUrl || "" }) : M("sendAppMessage", { title: n2.title || t, desc: n2.desc || "", link: n2.link || location.href, img_url: n2.imgUrl || "", type: n2.type || "link", data_url: n2.dataUrl || "" }, n2);
+      } }, n2);
+    }, onMenuShareQQ: function(e2) {
+      P(c.onMenuShareQQ, { complete: function() {
+        M("shareQQ", { title: e2.title || t, desc: e2.desc || "", img_url: e2.imgUrl || "", link: e2.link || location.href }, e2);
+      } }, e2);
+    }, onMenuShareWeibo: function(e2) {
+      P(c.onMenuShareWeibo, { complete: function() {
+        M("shareWeiboApp", { title: e2.title || t, desc: e2.desc || "", img_url: e2.imgUrl || "", link: e2.link || location.href }, e2);
+      } }, e2);
+    }, onMenuShareQZone: function(e2) {
+      P(c.onMenuShareQZone, { complete: function() {
+        M("shareQZone", { title: e2.title || t, desc: e2.desc || "", img_url: e2.imgUrl || "", link: e2.link || location.href }, e2);
+      } }, e2);
+    }, updateTimelineShareData: function(e2) {
+      M("updateTimelineShareData", { title: e2.title, link: e2.link, imgUrl: e2.imgUrl }, e2);
+    }, updateAppMessageShareData: function(e2) {
+      M("updateAppMessageShareData", { title: e2.title, desc: e2.desc, link: e2.link, imgUrl: e2.imgUrl }, e2);
+    }, startRecord: function(e2) {
+      M("startRecord", {}, e2);
+    }, stopRecord: function(e2) {
+      M("stopRecord", {}, e2);
+    }, onVoiceRecordEnd: function(e2) {
+      P("onVoiceRecordEnd", e2);
+    }, playVoice: function(e2) {
+      M("playVoice", { localId: e2.localId }, e2);
+    }, pauseVoice: function(e2) {
+      M("pauseVoice", { localId: e2.localId }, e2);
+    }, stopVoice: function(e2) {
+      M("stopVoice", { localId: e2.localId }, e2);
+    }, onVoicePlayEnd: function(e2) {
+      P("onVoicePlayEnd", e2);
+    }, uploadVoice: function(e2) {
+      M("uploadVoice", { localId: e2.localId, isShowProgressTips: 0 == e2.isShowProgressTips ? 0 : 1 }, e2);
+    }, downloadVoice: function(e2) {
+      M("downloadVoice", { serverId: e2.serverId, isShowProgressTips: 0 == e2.isShowProgressTips ? 0 : 1 }, e2);
+    }, translateVoice: function(e2) {
+      M("translateVoice", { localId: e2.localId, isShowProgressTips: 0 == e2.isShowProgressTips ? 0 : 1 }, e2);
+    }, chooseImage: function(e2) {
+      M("chooseImage", { scene: "1|2", count: e2.count || 9, sizeType: e2.sizeType || ["original", "compressed"], sourceType: e2.sourceType || ["album", "camera"] }, (e2._complete = function(e3) {
+        if (p) {
+          var n2 = e3.localIds;
+          try {
+            n2 && (e3.localIds = JSON.parse(n2));
+          } catch (e4) {
+          }
+        }
+      }, e2));
+    }, getLocation: function(e2) {
+    }, previewImage: function(e2) {
+      M(c.previewImage, { current: e2.current, urls: e2.urls }, e2);
+    }, uploadImage: function(e2) {
+      M("uploadImage", { localId: e2.localId, isShowProgressTips: 0 == e2.isShowProgressTips ? 0 : 1 }, e2);
+    }, downloadImage: function(e2) {
+      M("downloadImage", { serverId: e2.serverId, isShowProgressTips: 0 == e2.isShowProgressTips ? 0 : 1 }, e2);
+    }, getLocalImgData: function(e2) {
+      false === I ? (I = true, M("getLocalImgData", { localId: e2.localId }, (e2._complete = function(e3) {
+        if (I = false, 0 < _.length) {
+          var n2 = _.shift();
+          wx.getLocalImgData(n2);
+        }
+      }, e2))) : _.push(e2);
+    }, getNetworkType: function(e2) {
+      M("getNetworkType", {}, (e2._complete = function(e3) {
+        e3 = function(e4) {
+          var n2 = e4.errMsg;
+          e4.errMsg = "getNetworkType:ok";
+          var i2 = e4.subtype;
+          if (delete e4.subtype, i2)
+            e4.networkType = i2;
+          else {
+            var t2 = n2.indexOf(":"), o2 = n2.substring(t2 + 1);
+            switch (o2) {
+              case "wifi":
+              case "edge":
+              case "wwan":
+                e4.networkType = o2;
+                break;
+              default:
+                e4.errMsg = "getNetworkType:fail";
+            }
+          }
+          return e4;
+        }(e3);
+      }, e2));
+    }, openLocation: function(e2) {
+      M("openLocation", { latitude: e2.latitude, longitude: e2.longitude, name: e2.name || "", address: e2.address || "", scale: e2.scale || 28, infoUrl: e2.infoUrl || "" }, e2);
+    }, getLocation: function(e2) {
+      M(c.getLocation, { type: (e2 = e2 || {}).type || "wgs84" }, (e2._complete = function(e3) {
+        delete e3.type;
+      }, e2));
+    }, hideOptionMenu: function(e2) {
+      M("hideOptionMenu", {}, e2);
+    }, showOptionMenu: function(e2) {
+      M("showOptionMenu", {}, e2);
+    }, closeWindow: function(e2) {
+      M("closeWindow", {}, e2 = e2 || {});
+    }, hideMenuItems: function(e2) {
+      M("hideMenuItems", { menuList: e2.menuList }, e2);
+    }, showMenuItems: function(e2) {
+      M("showMenuItems", { menuList: e2.menuList }, e2);
+    }, hideAllNonBaseMenuItem: function(e2) {
+      M("hideAllNonBaseMenuItem", {}, e2);
+    }, showAllNonBaseMenuItem: function(e2) {
+      M("showAllNonBaseMenuItem", {}, e2);
+    }, scanQRCode: function(e2) {
+      M("scanQRCode", { needResult: (e2 = e2 || {}).needResult || 0, scanType: e2.scanType || ["qrCode", "barCode"] }, (e2._complete = function(e3) {
+        if (f) {
+          var n2 = e3.resultStr;
+          if (n2) {
+            var i2 = JSON.parse(n2);
+            e3.resultStr = i2 && i2.scan_code && i2.scan_code.scan_result;
+          }
+        }
+      }, e2));
+    }, openAddress: function(e2) {
+      M(c.openAddress, {}, (e2._complete = function(e3) {
+        e3 = function(e4) {
+          return e4.postalCode = e4.addressPostalCode, delete e4.addressPostalCode, e4.provinceName = e4.proviceFirstStageName, delete e4.proviceFirstStageName, e4.cityName = e4.addressCitySecondStageName, delete e4.addressCitySecondStageName, e4.countryName = e4.addressCountiesThirdStageName, delete e4.addressCountiesThirdStageName, e4.detailInfo = e4.addressDetailInfo, delete e4.addressDetailInfo, e4;
+        }(e3);
+      }, e2));
+    }, openProductSpecificView: function(e2) {
+      M(c.openProductSpecificView, { pid: e2.productId, view_type: e2.viewType || 0, ext_info: e2.extInfo }, e2);
+    }, addCard: function(e2) {
+      for (var n2 = e2.cardList, i2 = [], t2 = 0, o2 = n2.length; t2 < o2; ++t2) {
+        var r2 = n2[t2], a2 = { card_id: r2.cardId, card_ext: r2.cardExt };
+        i2.push(a2);
+      }
+      M(c.addCard, { card_list: i2 }, (e2._complete = function(e3) {
+        var n3 = e3.card_list;
+        if (n3) {
+          for (var i3 = 0, t3 = (n3 = JSON.parse(n3)).length; i3 < t3; ++i3) {
+            var o3 = n3[i3];
+            o3.cardId = o3.card_id, o3.cardExt = o3.card_ext, o3.isSuccess = !!o3.is_succ, delete o3.card_id, delete o3.card_ext, delete o3.is_succ;
+          }
+          e3.cardList = n3, delete e3.card_list;
+        }
+      }, e2));
+    }, chooseCard: function(e2) {
+      M("chooseCard", { app_id: v.appId, location_id: e2.shopId || "", sign_type: e2.signType || "SHA1", card_id: e2.cardId || "", card_type: e2.cardType || "", card_sign: e2.cardSign, time_stamp: e2.timestamp + "", nonce_str: e2.nonceStr }, (e2._complete = function(e3) {
+        e3.cardList = e3.choose_card_info, delete e3.choose_card_info;
+      }, e2));
+    }, openCard: function(e2) {
+      for (var n2 = e2.cardList, i2 = [], t2 = 0, o2 = n2.length; t2 < o2; ++t2) {
+        var r2 = n2[t2], a2 = { card_id: r2.cardId, code: r2.code };
+        i2.push(a2);
+      }
+      M(c.openCard, { card_list: i2 }, e2);
+    }, consumeAndShareCard: function(e2) {
+      M(c.consumeAndShareCard, { consumedCardId: e2.cardId, consumedCode: e2.code }, e2);
+    }, chooseWXPay: function(e2) {
+      M(c.chooseWXPay, V(e2), e2);
+    }, openEnterpriseRedPacket: function(e2) {
+      M(c.openEnterpriseRedPacket, V(e2), e2);
+    }, startSearchBeacons: function(e2) {
+      M(c.startSearchBeacons, { ticket: e2.ticket }, e2);
+    }, stopSearchBeacons: function(e2) {
+      M(c.stopSearchBeacons, {}, e2);
+    }, onSearchBeacons: function(e2) {
+      P(c.onSearchBeacons, e2);
+    }, openEnterpriseChat: function(e2) {
+      M("openEnterpriseChat", { useridlist: e2.userIds, chatname: e2.groupName }, e2);
+    }, launchMiniProgram: function(e2) {
+      M("launchMiniProgram", { targetAppId: e2.targetAppId, path: function(e3) {
+        if ("string" == typeof e3 && 0 < e3.length) {
+          var n2 = e3.split("?")[0], i2 = e3.split("?")[1];
+          return n2 += ".html", void 0 !== i2 ? n2 + "?" + i2 : n2;
+        }
+      }(e2.path), envVersion: e2.envVersion }, e2);
+    }, openBusinessView: function(e2) {
+      M("openBusinessView", { businessType: e2.businessType, queryString: e2.queryString || "", envVersion: e2.envVersion }, (e2._complete = function(n2) {
+        if (p) {
+          var e3 = n2.extraData;
+          if (e3)
+            try {
+              n2.extraData = JSON.parse(e3);
+            } catch (e4) {
+              n2.extraData = {};
+            }
+        }
+      }, e2));
+    }, miniProgram: { navigateBack: function(e2) {
+      e2 = e2 || {}, O(function() {
+        M("invokeMiniProgramAPI", { name: "navigateBack", arg: { delta: e2.delta || 1 } }, e2);
+      });
+    }, navigateTo: function(e2) {
+      O(function() {
+        M("invokeMiniProgramAPI", { name: "navigateTo", arg: { url: e2.url } }, e2);
+      });
+    }, redirectTo: function(e2) {
+      O(function() {
+        M("invokeMiniProgramAPI", { name: "redirectTo", arg: { url: e2.url } }, e2);
+      });
+    }, switchTab: function(e2) {
+      O(function() {
+        M("invokeMiniProgramAPI", { name: "switchTab", arg: { url: e2.url } }, e2);
+      });
+    }, reLaunch: function(e2) {
+      O(function() {
+        M("invokeMiniProgramAPI", { name: "reLaunch", arg: { url: e2.url } }, e2);
+      });
+    }, postMessage: function(e2) {
+      O(function() {
+        M("invokeMiniProgramAPI", { name: "postMessage", arg: e2.data || {} }, e2);
+      });
+    }, getEnv: function(e2) {
+      O(function() {
+        e2({ miniprogram: "miniprogram" === o.__wxjs_environment });
+      });
+    } } }, T = 1, k = {};
+    return i.addEventListener("error", function(e2) {
+      if (!p) {
+        var n2 = e2.target, i2 = n2.tagName, t2 = n2.src;
+        if ("IMG" == i2 || "VIDEO" == i2 || "AUDIO" == i2 || "SOURCE" == i2) {
+          if (-1 != t2.indexOf("wxlocalresource://")) {
+            e2.preventDefault(), e2.stopPropagation();
+            var o2 = n2["wx-id"];
+            if (o2 || (o2 = T++, n2["wx-id"] = o2), k[o2])
+              return;
+            k[o2] = true, wx.ready(function() {
+              wx.getLocalImgData({ localId: t2, success: function(e3) {
+                n2.src = e3.localData;
+              } });
+            });
+          }
+        }
+      }
+    }, true), i.addEventListener("load", function(e2) {
+      if (!p) {
+        var n2 = e2.target, i2 = n2.tagName;
+        n2.src;
+        if ("IMG" == i2 || "VIDEO" == i2 || "AUDIO" == i2 || "SOURCE" == i2) {
+          var t2 = n2["wx-id"];
+          t2 && (k[t2] = false);
+        }
+      }
+    }, true), e && (o.wx = o.jWeixin = w), w;
+  }
+  function M(n2, e2, i2) {
+    o.WeixinJSBridge ? WeixinJSBridge.invoke(n2, x(e2), function(e3) {
+      A(n2, e3, i2);
+    }) : B(n2, i2);
+  }
+  function P(n2, i2, t2) {
+    o.WeixinJSBridge ? WeixinJSBridge.on(n2, function(e2) {
+      t2 && t2.trigger && t2.trigger(e2), A(n2, e2, i2);
+    }) : B(n2, t2 || i2);
+  }
+  function x(e2) {
+    return (e2 = e2 || {}).appId = v.appId, e2.verifyAppId = v.appId, e2.verifySignType = "sha1", e2.verifyTimestamp = v.timestamp + "", e2.verifyNonceStr = v.nonceStr, e2.verifySignature = v.signature, e2;
+  }
+  function V(e2) {
+    return { timeStamp: e2.timestamp + "", nonceStr: e2.nonceStr, package: e2.package, paySign: e2.paySign, signType: e2.signType || "SHA1" };
+  }
+  function A(e2, n2, i2) {
+    "openEnterpriseChat" != e2 && "openBusinessView" !== e2 || (n2.errCode = n2.err_code), delete n2.err_code, delete n2.err_desc, delete n2.err_detail;
+    var t2 = n2.errMsg;
+    t2 || (t2 = n2.err_msg, delete n2.err_msg, t2 = function(e3, n3) {
+      var i3 = e3, t3 = a[i3];
+      t3 && (i3 = t3);
+      var o3 = "ok";
+      if (n3) {
+        var r2 = n3.indexOf(":");
+        "confirm" == (o3 = n3.substring(r2 + 1)) && (o3 = "ok"), "failed" == o3 && (o3 = "fail"), -1 != o3.indexOf("failed_") && (o3 = o3.substring(7)), -1 != o3.indexOf("fail_") && (o3 = o3.substring(5)), "access denied" != (o3 = (o3 = o3.replace(/_/g, " ")).toLowerCase()) && "no permission to execute" != o3 || (o3 = "permission denied"), "config" == i3 && "function not exist" == o3 && (o3 = "ok"), "" == o3 && (o3 = "fail");
+      }
+      return n3 = i3 + ":" + o3;
+    }(e2, t2), n2.errMsg = t2), (i2 = i2 || {})._complete && (i2._complete(n2), delete i2._complete), t2 = n2.errMsg || "", v.debug && !i2.isInnerInvoke && alert(JSON.stringify(n2));
+    var o2 = t2.indexOf(":");
+    switch (t2.substring(o2 + 1)) {
+      case "ok":
+        i2.success && i2.success(n2);
+        break;
+      case "cancel":
+        i2.cancel && i2.cancel(n2);
+        break;
+      default:
+        i2.fail && i2.fail(n2);
+    }
+    i2.complete && i2.complete(n2);
+  }
+  function C(e2) {
+    if (e2) {
+      for (var n2 = 0, i2 = e2.length; n2 < i2; ++n2) {
+        var t2 = e2[n2], o2 = c[t2];
+        o2 && (e2[n2] = o2);
+      }
+      return e2;
+    }
+  }
+  function B(e2, n2) {
+    if (!(!v.debug || n2 && n2.isInnerInvoke)) {
+      var i2 = a[e2];
+      i2 && (e2 = i2), n2 && n2._complete && delete n2._complete, console.log('"' + e2 + '",', n2 || "");
+    }
+  }
+  function L() {
+    return (/* @__PURE__ */ new Date()).getTime();
+  }
+  function O(e2) {
+    l && (o.WeixinJSBridge ? e2() : i.addEventListener && i.addEventListener("WeixinJSBridgeReady", e2, false));
+  }
+});
+//# sourceMappingURL=jweixin-module.js.map

File diff suppressed because it is too large
+ 3 - 0
unpackage/dist/cache/.vite/deps/jweixin-module.js.map


+ 4 - 2
utils/common.js

@@ -97,7 +97,8 @@ export function isEmpty(obj) {
  
 export function  isLogin() {
 	let obj=uni.getStorageSync(TOKEN_KEY);
-	return !!obj;
+	let user = uni.getStorageSync('userInfo')
+	return !!obj&&user&&JSON.stringify(user)!='{}';
 }
 
  
@@ -419,7 +420,8 @@ export function initJssdk(callback,url) {
 				timestamp: res.data.timestamp,
 				nonceStr: res.data.nonceStr,
 				signature: res.data.signature,
-				jsApiList: ['requestMerchantTransfer']
+				jsApiList: ['requestMerchantTransfer'],
+				openTagList: ['wx-open-launch-weapp'] // 可选,需要使用的开放标签列表,例如['wx-open-launch-app']
 			});
 			if(callback) {
 				callback(res.data)

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