tijiao
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
/></view>
|
||||
</view>
|
||||
<view v-if="deliverDetails.length > 0">
|
||||
<!-- <u-tabs active-color="#2979ff" inactive-color="#606266" bar-height="6" bar-width="40"
|
||||
<!-- <u-tabs active-color="#117e4c" inactive-color="#606266" bar-height="6" bar-width="40"
|
||||
name="name" :list="deliverList" :is-scroll="false" :current="current" @change="tabchange"></u-tabs> -->
|
||||
<view class="deliverCntent">
|
||||
<view class="">
|
||||
|
||||
@@ -174,6 +174,23 @@
|
||||
|
||||
<br clear="both" />
|
||||
</view>
|
||||
<view class="orderContent" v-if="orderContet.orderType == 'relearn'">
|
||||
<image
|
||||
src="/static/icon/fugou.png"
|
||||
mode="aspectFill"
|
||||
style="width: 100rpx; height: 100rpx"
|
||||
></image>
|
||||
<view class="itemJian">
|
||||
<view class="orderTitle" style="line-height: 60rpx">
|
||||
<text>{{ orderContet.remark }}</text>
|
||||
</view>
|
||||
<view class="orderPrice">
|
||||
<text style="font-weight: bold"> </text>
|
||||
</view>
|
||||
<br clear="both" />
|
||||
</view>
|
||||
<br clear="both" />
|
||||
</view>
|
||||
<view class="orderContent" v-if="orderContet.orderType == 'vip'">
|
||||
<image
|
||||
src="/static/icon/vip.png"
|
||||
@@ -213,6 +230,7 @@
|
||||
</view>
|
||||
|
||||
<view class="order_item" style="">
|
||||
|
||||
<view class="orderallpri">
|
||||
<span style="color: #666; margin-right: 10rpx; float: left"
|
||||
>商品总价 :
|
||||
@@ -259,12 +277,88 @@
|
||||
>- ¥{{ orderContet.vipDiscountAmount }}</span
|
||||
>
|
||||
</view>
|
||||
<view class="orderReal" v-if="orderContet.orderType == 'order'">
|
||||
<view
|
||||
class="orderReal"
|
||||
v-if="orderContet.couponId && orderContet.couponId != null"
|
||||
>
|
||||
<span style="color: #666; margin-right: 10rpx; float: left"
|
||||
>优惠券 :
|
||||
</span>
|
||||
<span>- ¥</span>{{ orderContet.couponAmount }}
|
||||
</view>
|
||||
<view class="orderReal" v-if="orderContet.jfDeduction > 0">
|
||||
<span style="color: #666; margin-right: 10rpx; float: left"
|
||||
>积分 :
|
||||
</span>
|
||||
<span v-if="orderContet.jfDeduction > 0">-</span> <span>¥</span
|
||||
>{{ orderContet.jfDeduction }}
|
||||
<span style="color: #fa2d12" v-if="orderContet.jfDeduction > 0"
|
||||
>-</span
|
||||
>
|
||||
<span style="color: #fa2d12"
|
||||
>¥ {{ orderContet.jfDeduction }}</span
|
||||
>
|
||||
</view>
|
||||
<view
|
||||
class="orderReal"
|
||||
v-if="orderContet.paymentMethod == 4 && orderContet.realMoney > 0"
|
||||
>
|
||||
<span style="color: #666; margin-right: 10rpx; float: left"
|
||||
>天医币抵扣:
|
||||
</span>
|
||||
<span style="color: #fa2d12">- </span>
|
||||
<span style="color: #fa2d12">¥{{ orderContet.realMoney }}</span>
|
||||
</view>
|
||||
<view
|
||||
class="orderReal"
|
||||
v-if="orderContet.orderStatus != 0"
|
||||
style="margin-bottom: 20rpx"
|
||||
>
|
||||
<span style="color: #666; margin-right: 10rpx; float: left"
|
||||
>实付款 :
|
||||
</span>
|
||||
<b v-if="orderContet.orderType == 'point'" style="color: #dd3c0c"
|
||||
>¥ {{ orderContet.bookBuyConfigEntity.realMoney }}</b
|
||||
>
|
||||
<b style="color: #dd3c0c" v-else>
|
||||
<template v-if="orderContet.realMoney > 0">
|
||||
¥{{ orderContet.realMoney }}
|
||||
|
||||
<text style="font-size: 28rpx;margin-left: 10rpx;">
|
||||
<span
|
||||
style=""
|
||||
v-if="orderContet.paymentMethod == 1"
|
||||
>微信支付</span
|
||||
>
|
||||
<span
|
||||
style=""
|
||||
v-if="orderContet.paymentMethod == 2"
|
||||
>支付宝支付</span
|
||||
>
|
||||
<span
|
||||
style=""
|
||||
v-if="orderContet.paymentMethod == 3"
|
||||
>苹果支付</span
|
||||
>
|
||||
<span
|
||||
style=""
|
||||
v-if="orderContet.paymentMethod == 4"
|
||||
>
|
||||
天医币支付
|
||||
</span></text
|
||||
>
|
||||
</template>
|
||||
<text
|
||||
style="margin: 0 4rpx"
|
||||
v-if="
|
||||
orderContet.realMoney > 0 && orderContet.jfDeduction > 0
|
||||
"
|
||||
>
|
||||
+
|
||||
</text>
|
||||
|
||||
<text v-if="orderContet.jfDeduction > 0"
|
||||
>{{ orderContet.jfDeduction }} 积分</text
|
||||
></b
|
||||
>
|
||||
</view>
|
||||
<!-- <view class="orderReal">
|
||||
<span style="color: #666; margin-right: 10rpx; float: left"
|
||||
@@ -275,14 +369,7 @@
|
||||
>
|
||||
<b v-else style="color: #dd3c0c"><span>-¥</span>0</b>
|
||||
</view> -->
|
||||
<view class="orderReal" v-if="orderContet.orderStatus != 0">
|
||||
<span style="color: #666; margin-right: 10rpx; float: left"
|
||||
>实付款 :
|
||||
</span>
|
||||
<b style="color: #dd3c0c"
|
||||
><span>¥</span>{{ orderContet.realMoney }}</b
|
||||
>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="order_item">
|
||||
<view class="orderYunf">
|
||||
@@ -327,9 +414,11 @@
|
||||
>付款时间 :
|
||||
</span>
|
||||
<text style="font-size: 24rpx; color: #666">{{
|
||||
orderContet.paymentDate
|
||||
orderContet.paymentDate? orderContet.paymentDate:''
|
||||
}}</text>
|
||||
</view>
|
||||
<br/>
|
||||
|
||||
</view>
|
||||
|
||||
<!-- <view class="orderReal" v-if="orderContet.orderStatus >= 2 && orderContet.orderStatus != 5">
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
<template>
|
||||
|
||||
<view
|
||||
class="container commonPageBox commonDetailPage"
|
||||
style=""
|
||||
>
|
||||
<view class="container commonPageBox commonDetailPage" style="">
|
||||
<!-- 公共组件-每个页面必须引入 -->
|
||||
<public-module></public-module>
|
||||
<z-nav-bar
|
||||
@@ -39,11 +35,7 @@
|
||||
<!-- 站位 -->
|
||||
|
||||
<!-- <view v-if="ordersListTab == 1"> -->
|
||||
<view
|
||||
class="order_box"
|
||||
:style="`height: auto;margin-top: 40px; `"
|
||||
style=""
|
||||
>
|
||||
<view class="order_box" :style="`height: auto;margin-top: 40px; `" style="margin-bottom: 40px;">
|
||||
<common-list
|
||||
imgUrl="url"
|
||||
indexKey="orderSn"
|
||||
@@ -130,7 +122,41 @@
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
<view
|
||||
v-if="slotProps.row.orderType == 'relearn'"
|
||||
class="bookinfolist"
|
||||
>
|
||||
<image
|
||||
class="feng fengPoint"
|
||||
src="/static/icon/fugou.png"
|
||||
mode="aspectFill"
|
||||
>
|
||||
</image>
|
||||
<!-- <view class="description" >课程复读订单
|
||||
</view> -->
|
||||
<view class="btns flexbox">
|
||||
<view class="booknameleft">
|
||||
{{ slotProps.row.remark }}
|
||||
</view>
|
||||
|
||||
<view
|
||||
style="
|
||||
line-height: 58rpx;
|
||||
color: #333;
|
||||
font-size: 26rpx;
|
||||
font-weight: 700;
|
||||
"
|
||||
>
|
||||
<text style="font-size: 20rpx"></text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view
|
||||
class="btns flexbox"
|
||||
style="color: #9f9f9f; margin-top: 10rpx; font-size: 24rpx"
|
||||
>
|
||||
下单时间:{{ slotProps.row.createTime }}
|
||||
</view> -->
|
||||
</view>
|
||||
<view
|
||||
v-if="slotProps.row.orderType == 'vip'"
|
||||
class="bookinfolist"
|
||||
@@ -322,64 +348,32 @@
|
||||
font-weight: 700;
|
||||
"
|
||||
>
|
||||
<text style="font-size: 20rpx">¥</text>
|
||||
{{
|
||||
slotProps.row.realMoney ||
|
||||
slotProps.row.realMoney == 0
|
||||
? slotProps.row.realMoney
|
||||
: ""
|
||||
}}
|
||||
<!-- <text style="font-size: 20rpx">¥</text> -->
|
||||
<text v-if="slotProps.row.orderType == 'point'">
|
||||
{{ slotProps.row.bookBuyConfigEntity.realMoney }}
|
||||
</text>
|
||||
|
||||
<template v-if="slotProps.row.realMoney > 0&&slotProps.row.orderType != 'point'">
|
||||
¥{{ slotProps.row.realMoney }}
|
||||
</template>
|
||||
<text
|
||||
style="margin: 0 4rpx"
|
||||
v-if="
|
||||
slotProps.row.realMoney > 0 &&
|
||||
slotProps.row.jfDeduction > 0&&slotProps.row.orderType != 'point'
|
||||
"
|
||||
>
|
||||
+
|
||||
</text>
|
||||
|
||||
<text v-if="slotProps.row.jfDeduction > 0&&slotProps.row.orderType != 'point'"
|
||||
>{{ slotProps.row.jfDeduction }} 积分</text
|
||||
>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view
|
||||
class="btns flexbox"
|
||||
style="
|
||||
margin-top: 0rpx;
|
||||
float: right;
|
||||
width: auto;
|
||||
margin-left: 20rpx;
|
||||
"
|
||||
v-if="
|
||||
(slotProps.row.addressId == 0 ||
|
||||
slotProps.row.addressId == null) &&
|
||||
slotProps.row.orderType == 'order' &&
|
||||
slotProps.row.jfDeduction > 0
|
||||
"
|
||||
>
|
||||
<view
|
||||
class="right flexbox opbtns"
|
||||
style="
|
||||
line-height: 44rpx;
|
||||
letter-spacing: 1rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
"
|
||||
><text style="color: #9b9b9b">( </text>
|
||||
<view
|
||||
style="
|
||||
line-height: 46rpx;
|
||||
color: #9b9b9b;
|
||||
font-size: 24rpx;
|
||||
font-weight: 500;
|
||||
margin-right: 10rpx;
|
||||
"
|
||||
>积分抵扣</view
|
||||
>
|
||||
<view
|
||||
style="
|
||||
/* margin-top: 8rpx; */
|
||||
line-height: 46rpx;
|
||||
color: #9b9b9b;
|
||||
font-size: 26rpx;
|
||||
font-weight: 700;
|
||||
"
|
||||
>
|
||||
<text style="font-size: 20rpx">¥</text>
|
||||
{{ slotProps.row.jfDeduction }}
|
||||
</view> </view
|
||||
><text style="color: #9b9b9b">)</text>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
<view
|
||||
@@ -982,7 +976,7 @@ export default {
|
||||
});
|
||||
}
|
||||
this.getOrderList();
|
||||
},
|
||||
}
|
||||
);
|
||||
} else if (payItem.paymentMethod == 1) {
|
||||
console.log("微信支付");
|
||||
@@ -1282,7 +1276,7 @@ export default {
|
||||
//匹配最后一个表情符号并删除11。
|
||||
this.Pform.comment = this.Pform.comment.replace(
|
||||
/(\[[^\]]+\]|[\s\S])$/,
|
||||
"",
|
||||
""
|
||||
);
|
||||
if (this.emoji.length > 0) {
|
||||
this.emoji = this.emoji.slice(0, -1);
|
||||
@@ -1642,7 +1636,7 @@ export default {
|
||||
.cateList {
|
||||
width: 100%;
|
||||
position: fixed !important;
|
||||
z-index: 970;
|
||||
z-index: 970;
|
||||
}
|
||||
|
||||
/deep/.u-tabs__wrapper__nav__item {
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
><uni-easyinput
|
||||
:maxlength="16"
|
||||
:style="{
|
||||
borderColor: '#2979FF',
|
||||
borderColor: '#117e4c',
|
||||
}"
|
||||
v-model="addForm.consigneeName"
|
||||
placeholder="请输入收件人姓名"
|
||||
|
||||
@@ -146,7 +146,8 @@ export default {
|
||||
}
|
||||
|
||||
.titleItem {
|
||||
width: calc(100% );
|
||||
width: calc(100%) !important;
|
||||
// display: block !important;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
|
||||
2311
pages/component/commonComponents/orderSubmit.vue
Normal file
2311
pages/component/commonComponents/orderSubmit.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -77,10 +77,14 @@
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<!-- isSelectGoods -->
|
||||
<view
|
||||
style="width: 100%;"
|
||||
class="related_courses_name"
|
||||
:class="`goods_item ${
|
||||
selectGoodsData &&
|
||||
selectGoodsData.productId == slotProps.row.productId
|
||||
(!isFudu &&
|
||||
selectGoodsData &&
|
||||
selectGoodsData.productId == slotProps.row.productId) ||
|
||||
(isFudu &&
|
||||
selectGoodsData.productName == slotProps.row.productName)
|
||||
? 'isSelectGoods color_shandow'
|
||||
: ''
|
||||
}`"
|
||||
@@ -98,7 +102,7 @@
|
||||
<view class="" style="align-items: center">
|
||||
<!-- <text style="color: #999; text-decoration: line-through; margin-right: 20rpx;"
|
||||
v-if="slotProps.row.activityPrice > 0 && slotProps.row.activityPrice < slotProps.row.price" >¥{{slotProps.row.price}}</text>
|
||||
<view class="price" style="color: #258feb"
|
||||
<view class="price" style="color: #3AB3AE "
|
||||
>¥{{ slotProps.row.activityPrice?slotProps.row.activityPrice:slotProps.row.price }}</view
|
||||
></view
|
||||
> -->
|
||||
@@ -163,7 +167,8 @@ export default {
|
||||
"isScroll",
|
||||
"selectGoodsData",
|
||||
"customButtonGroup1",
|
||||
"buyOptions",
|
||||
"buyOptions", "isFudu", // 是否复读
|
||||
"type", // 页面类型
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
|
||||
393
pages/component/commonComponents/selectVip.vue
Normal file
393
pages/component/commonComponents/selectVip.vue
Normal file
@@ -0,0 +1,393 @@
|
||||
<template>
|
||||
<view
|
||||
class="container commonPageBox commonDetailPage"
|
||||
style="height: auto !important; padding-bottom: 0 !important"
|
||||
>
|
||||
<u-popup
|
||||
:show="show"
|
||||
v-if="show"
|
||||
mode="bottom"
|
||||
@close="close"
|
||||
class="popup_box"
|
||||
>
|
||||
<view class="popup_top">
|
||||
<!-- @click="previewImage(selectGoodsData.productImages)" -->
|
||||
<view class="product_image">
|
||||
<image
|
||||
src="@/static/icon/vip.png"
|
||||
mode="aspectFit"
|
||||
class="goods_image"
|
||||
></image>
|
||||
</view>
|
||||
<view class="title">已选:{{ selectGoodsData.title }} {{ selectGoodsData.year }}年</view>
|
||||
</view>
|
||||
|
||||
<view :class="`common_radius_box goods_box popup_content`">
|
||||
<view class="title title_box"
|
||||
>
|
||||
|
||||
|
||||
|
||||
|
||||
<text style="color: #e97512; font-weight: bold;font-size: 30rpx;">
|
||||
¥{{ Number(selectGoodsData.rebateFee).toFixed(2) }}</text
|
||||
>
|
||||
</text>
|
||||
<u-icon
|
||||
name="close"
|
||||
color="#333"
|
||||
size="18"
|
||||
@click="close"
|
||||
style="display: inline-block"
|
||||
></u-icon
|
||||
></view>
|
||||
<view class="title title_list"
|
||||
><text>VIP商品列表({{ goodsList.length }})</text></view
|
||||
>
|
||||
|
||||
<common-list
|
||||
imgUrl="url"
|
||||
isNoIcon
|
||||
imgMode="aspectFit"
|
||||
defaultUrl=""
|
||||
:isCondition="true"
|
||||
:dataList="goodsList"
|
||||
@hancleClick="selectGoods"
|
||||
label="title"
|
||||
>
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
|
||||
<!-- isSelectGoods -->
|
||||
<view
|
||||
class="related_courses_name"
|
||||
:class="`goods_item ${
|
||||
(
|
||||
selectGoodsData &&
|
||||
selectGoodsData.id == slotProps.row.id)
|
||||
? 'isSelectGoods color_shandow'
|
||||
: ''
|
||||
}`"
|
||||
>
|
||||
<view class="image_box" style="margin-right: 10rpx">
|
||||
<image
|
||||
src="@/static/icon/vip.png"
|
||||
mode="aspectFit"
|
||||
class="goods_image"
|
||||
></image>
|
||||
</view>
|
||||
|
||||
<view :class="`goods_info just`" style="">
|
||||
<view class="name">{{ slotProps.row.title }}<text style="color: #ff2e4d;margin-left: 10rpx;">{{ slotProps.row.year }}年</text></view>
|
||||
<view class="flex_box" style="align-items: center">
|
||||
<!-- <text style="color: #999; text-decoration: line-through; margin-right: 20rpx;"
|
||||
v-if="slotProps.row.activityPrice > 0 && slotProps.row.activityPrice < slotProps.row.price" >¥{{slotProps.row.price}}</text>
|
||||
<view class="price" style="color: #3AB3AE"
|
||||
>¥{{ slotProps.row.activityPrice?slotProps.row.activityPrice:slotProps.row.price }}</view
|
||||
></view
|
||||
> -->
|
||||
<text ><span style="color: #e97512;">
|
||||
¥{{Number(slotProps.row.rebateFee).toFixed(2)}}</span>
|
||||
</text>
|
||||
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- <text v-if="slotProps.row.conditions!='03'">【试听】</text> -->
|
||||
</template>
|
||||
</common-list>
|
||||
|
||||
<view class="goods_nav_box">
|
||||
<uni-goods-nav
|
||||
:fill="true"
|
||||
:options="buyOptions"
|
||||
:button-group="customButtonGroup1"
|
||||
@click="onHandleClickBuy"
|
||||
@buttonClick="onHandleClickBuy"
|
||||
/>
|
||||
</view>
|
||||
<!-- <view>
|
||||
<text @click="handleClickClose">取消</text>
|
||||
<text @click="handleClickGoBuy">立即购买</text>
|
||||
</view>-->
|
||||
</view>
|
||||
</u-popup></view
|
||||
>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapState } from "vuex";
|
||||
export default {
|
||||
props: [
|
||||
"goodsList",
|
||||
"label",
|
||||
"isCondition",
|
||||
"imgUrl",
|
||||
"imgMode",
|
||||
"className",
|
||||
"col",
|
||||
"defaultUrl",
|
||||
"isScroll",
|
||||
"selectGoodsData",
|
||||
"customButtonGroup1",
|
||||
"buyOptions",
|
||||
"isFudu", // 是否复读
|
||||
"type", // 页面类型
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
};
|
||||
},
|
||||
onLoad() {},
|
||||
onHide() {
|
||||
// this.showSearchList = false
|
||||
// this.searchList = []
|
||||
},
|
||||
computed: {
|
||||
...mapState(["userInfo"]),
|
||||
},
|
||||
methods: {
|
||||
getPrice(slotProps) {
|
||||
if (
|
||||
Number(slotProps.row.isVipPrice) === 1 &&
|
||||
Number(slotProps.row.vipPrice) > 0
|
||||
) {
|
||||
return `
|
||||
<text style="color: #e97512; font-size: 12px; font-weight: bold;">
|
||||
¥${Number(slotProps.row.vipPrice).toFixed(2)}
|
||||
</text>
|
||||
<text
|
||||
style="color: #8a8a8a; font-size: 10px; margin-left: 4px; font-weight: bold; text-decoration: line-through;"
|
||||
>
|
||||
¥${Number(slotProps.row.price).toFixed(2)}
|
||||
</text>
|
||||
`;
|
||||
} else if (Number(slotProps.row.activityPrice) > 0) {
|
||||
return `
|
||||
<text style="color: #e97512; font-size: 12px; font-weight: bold;">
|
||||
¥${Number(slotProps.row.activityPrice).toFixed(2)}
|
||||
</text>
|
||||
<text
|
||||
style="color: #8a8a8a; font-size: 10px; margin-left: 4px; font-weight: bold; text-decoration: line-through;"
|
||||
>
|
||||
¥${Number(slotProps.row.price).toFixed(2)}
|
||||
</text>
|
||||
`;
|
||||
} else {
|
||||
return `<span style="color: #e97512;">
|
||||
¥${Number(slotProps.row.price).toFixed(2)}</span>
|
||||
`;
|
||||
}
|
||||
},
|
||||
// 放大图片
|
||||
previewImage(url) {
|
||||
console.log(url);
|
||||
uni.previewImage({
|
||||
urls: [url],
|
||||
longPressActions: {
|
||||
itemList: ["很抱歉,暂不支持保存图片到本地"],
|
||||
success: function (res) {
|
||||
// console.log(res,'+++++')
|
||||
},
|
||||
},
|
||||
});
|
||||
},
|
||||
close() {
|
||||
this.show = false;
|
||||
},
|
||||
selectGoods(data) {
|
||||
this.$emit("selectGoods", data);
|
||||
},
|
||||
open() {
|
||||
this.show = true;
|
||||
},
|
||||
gotoDetail(v) {
|
||||
this.$emit("hancleClick", v);
|
||||
},
|
||||
onHandleClickBuy() {
|
||||
// this.$emit("selectGoodsData", this.selectGoodsData);
|
||||
setTimeout(() => {
|
||||
this.$emit("onHandleClickBuy");
|
||||
}, 200);
|
||||
|
||||
},
|
||||
},
|
||||
onBackPress() {
|
||||
// #ifdef APP-PLUS
|
||||
plus.key.hideSoftKeybord();
|
||||
// #endif
|
||||
},
|
||||
|
||||
components: {},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/style/mixin.scss";
|
||||
.goods_item {
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
// margin-bottom: 20rpx;
|
||||
padding: 10rpx 20rpx;
|
||||
border: 2rpx solid #fff;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
.title {
|
||||
box-sizing: border-box;
|
||||
// font-weight: bold;
|
||||
margin-bottom: 40rpx;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
.image_box {
|
||||
width: 70rpx;
|
||||
height: 70rpx;
|
||||
float: left;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.goods_image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.goods_info {
|
||||
width: calc(100%);
|
||||
// padding: 10rpx 20rpx;
|
||||
box-sizing: border-box;
|
||||
// height: 100rpx;
|
||||
// display: flex;
|
||||
// align-items: center;
|
||||
// justify-content: space-between;
|
||||
float: left;
|
||||
.name {
|
||||
font-size: 26rpx;
|
||||
// font-weight: 600;
|
||||
color: #333;
|
||||
}
|
||||
.price {
|
||||
font-size: 26rpx;
|
||||
color: #aaa;
|
||||
}
|
||||
}
|
||||
.isSelectGoods {
|
||||
color: $themeColor !important;
|
||||
.name {
|
||||
color: $themeColor !important;
|
||||
}
|
||||
.price {
|
||||
color: $themeColor !important;
|
||||
}
|
||||
border: 2rpx solid $themeColor;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
/deep/.list_item {
|
||||
// border-bottom: none;
|
||||
padding: 10rpx 0 !important;
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
.goods_image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.curriulum_box {
|
||||
margin-top: 20rpx;
|
||||
width: 100%;
|
||||
|
||||
.curriulum_title_box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 20rpx;
|
||||
background-color: #fff;
|
||||
|
||||
.curriulum_title {
|
||||
width: calc(100% - 80rpx);
|
||||
|
||||
font-size: 38rpx;
|
||||
line-height: 40rpx;
|
||||
padding: 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.goods_box {
|
||||
background-color: #fff;
|
||||
// margin-top: 20rpx;
|
||||
// padding: 40rpx 30rpx;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
|
||||
.curriulum_title_box {
|
||||
width: calc(100%) !important;
|
||||
padding-bottom: 20rpx;
|
||||
background-color: #fff;
|
||||
|
||||
.curriulum_title {
|
||||
width: calc(100%);
|
||||
font-weight: 600;
|
||||
font-size: 34rpx;
|
||||
// line-height: 40rpx;
|
||||
// display: flex;
|
||||
// align-items: center;
|
||||
margin-top: 80rpx;
|
||||
margin-bottom: 0rpx;
|
||||
// padding: 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
}
|
||||
.popup_box {
|
||||
padding-top: 30rpx;
|
||||
|
||||
background-color: transparent;
|
||||
.popup_top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #fff;
|
||||
margin-bottom: 20rpx;
|
||||
padding: 0 20rpx;
|
||||
.title {
|
||||
margin-bottom: 0;
|
||||
font-size: 30rpx;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
.popup_content {
|
||||
padding-bottom: 140rpx;
|
||||
}
|
||||
/deep/.list_item {
|
||||
// border-bottom: none;
|
||||
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.product_image {
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
border-radius: 10rpx;
|
||||
// background-color: #f5f5f5;
|
||||
// margin: 0 auto;
|
||||
}
|
||||
}
|
||||
/deep/.u-popup__content {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
/deep/.u-popup__content__close {
|
||||
color: #fff !important;
|
||||
}
|
||||
.title_box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding-left: 0;
|
||||
.title_price {
|
||||
color: #ef1224;
|
||||
font-size: 40rpx;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
1074
pages/course/myCourse.vue
Normal file
1074
pages/course/myCourse.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -123,7 +123,7 @@ export default{
|
||||
color: #fff;
|
||||
padding: 0 12rpx;
|
||||
border-radius: 15rpx;
|
||||
background-image: linear-gradient(90deg, #258feb 0%, #00e1ec 100%);
|
||||
background-image: linear-gradient(90deg, #3AB3AE 0%, #00e1ec 100%);
|
||||
}
|
||||
.vip_item_special .vip_item_title{
|
||||
height: 50rpx;
|
||||
@@ -190,7 +190,7 @@ export default{
|
||||
}
|
||||
.line{
|
||||
text-decoration: line-through;
|
||||
color: #258feb;
|
||||
color: #3AB3AE ;
|
||||
font-style: italic;
|
||||
}
|
||||
.vip_item_flag{
|
||||
|
||||
@@ -781,6 +781,7 @@
|
||||
}
|
||||
|
||||
.titleItem {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
</view>
|
||||
|
||||
<view class="right">
|
||||
<u-icon
|
||||
<!-- <u-icon
|
||||
v-if="
|
||||
userVip == null &&
|
||||
slotProps.data.type != 0 &&
|
||||
@@ -151,7 +151,7 @@
|
||||
color="#FF2B57"
|
||||
size="30"
|
||||
style="display: inline-block; margin-left: 10rpx"
|
||||
></u-icon>
|
||||
></u-icon> -->
|
||||
|
||||
<text
|
||||
v-if="
|
||||
@@ -168,9 +168,51 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</template>
|
||||
|
||||
<template slot="contentList" slot-scope="slotProps">
|
||||
|
||||
<view
|
||||
v-if="
|
||||
userVip == null &&
|
||||
slotProps.data.type != 0 &&
|
||||
slotProps.data.isBuy != 1
|
||||
"
|
||||
style="margin-bottom: 20rpx;"
|
||||
>
|
||||
<view class="libOther">
|
||||
<!-- 没有观看权限的时候 -->
|
||||
<view class="text">
|
||||
您未购买此目录课程或已到期,购买后或开通VIP即可学习本目录课程
|
||||
</view>
|
||||
<view class="tag-view flex_box">
|
||||
<u-button
|
||||
class="btn"
|
||||
type="warning"
|
||||
size="small"
|
||||
@click="handleClickGetGoodsList(slotProps.data)"
|
||||
text="购买课程"
|
||||
></u-button>
|
||||
|
||||
<u-button
|
||||
class="btn"
|
||||
type="success"
|
||||
size="small"
|
||||
@click="goNewPay(slotProps.data)"
|
||||
text="复读"
|
||||
v-if="showNewPayBtn[slotProps.index]&&showNewPayBtn[slotProps.index].status"
|
||||
></u-button>
|
||||
<u-button
|
||||
size="small"
|
||||
class="btn"
|
||||
type="primary"
|
||||
@click="onPageJump('/pages/mine/vip/index')"
|
||||
text="开通VIP"
|
||||
></u-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="containerBg2">
|
||||
<view class="shiting_content">
|
||||
<view class="catalogueList">
|
||||
@@ -217,7 +259,7 @@
|
||||
slotProps1.row.isAudition == 0
|
||||
"
|
||||
name="lock"
|
||||
color="#258feb"
|
||||
color="#3AB3AE "
|
||||
size="24"
|
||||
></u-icon>
|
||||
</view>
|
||||
@@ -229,7 +271,7 @@
|
||||
slotProps.data.isBuy == 0
|
||||
"
|
||||
name="lock"
|
||||
color="#258feb"
|
||||
color="#3AB3AE "
|
||||
size="24"
|
||||
></u-icon>
|
||||
</view>
|
||||
@@ -276,6 +318,7 @@
|
||||
</template>
|
||||
</common-anchor-link>
|
||||
<common-select-goods
|
||||
:isFudu="isFudu"
|
||||
ref="commonSelectGoods"
|
||||
:selectGoodsData="selectGoodsData"
|
||||
:goodsList="goodsList"
|
||||
@@ -345,6 +388,10 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
fuduId:null,
|
||||
isFudu:false,
|
||||
|
||||
showNewPayBtn: [],
|
||||
isHideCourseInfo: false,
|
||||
courseList: [],
|
||||
showGoBuy: true,
|
||||
@@ -427,6 +474,8 @@ export default {
|
||||
list: "sociology/course/getCourseDetail",
|
||||
goodsList: "sociology/product/getProductListForCourse",
|
||||
startStudyForMF: "sociology/course/startStudyForMF",
|
||||
newPayment:"common/courseRelearn/courseCatalogueCanRelearn", // 检查复读地址
|
||||
newPaymentList:"common/courseRelearn/relearnShopProductList", // 获取复读列表
|
||||
},
|
||||
userVip: null, //是否有vip
|
||||
textList: [], //转化文字集合
|
||||
@@ -458,7 +507,87 @@ export default {
|
||||
this.getCourseDescriptionData();
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
methods: { // 选择复读选项
|
||||
async goNewPay(item){
|
||||
await this.getNewPaymentList(item.id)
|
||||
if(this.newPaymentProList.length > 0){
|
||||
this.goodsList = this.newPaymentProList;
|
||||
this.selectGoodsData = this.goodsList[0];
|
||||
this.$refs.commonSelectGoods.open();
|
||||
this.isFudu = true
|
||||
this.show = true;
|
||||
//存复读需要的id
|
||||
this.fuduId = item.id;
|
||||
}else{
|
||||
this.show = false
|
||||
this.isFudu = false
|
||||
this.$commonJS.showToast('暂无复读方案');
|
||||
}
|
||||
},
|
||||
async getNewPaymentList(id){
|
||||
uni.showLoading({
|
||||
title:'加载中'
|
||||
})
|
||||
await this.$http
|
||||
.request({
|
||||
url: this.urlList.newPaymentList,
|
||||
method: "POST",
|
||||
data: {
|
||||
catalogueId: id,
|
||||
},
|
||||
header: {
|
||||
//默认 无 说明:请求头
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then(async (res) => {
|
||||
console.log("复读列表", res);
|
||||
uni.hideLoading()
|
||||
if(res.code != 0){return this.$commonJS.showToast(res.errMsg);}
|
||||
// if (res.code == 0) {
|
||||
this.newPaymentProList = res.productList
|
||||
// }
|
||||
this.$forceUpdate();
|
||||
}).catch(e => {
|
||||
uni.hideLoading()
|
||||
console.log('e',e);
|
||||
this.newPaymentProList = []
|
||||
this.$commonJS.showToast(e.errMsg);
|
||||
});
|
||||
|
||||
},
|
||||
// 查询目录续费情况
|
||||
async checkRenewPayment(id) {
|
||||
var ss = false;
|
||||
await this.$http
|
||||
.request({
|
||||
url: this.urlList.newPayment,
|
||||
method: "POST",
|
||||
data: {
|
||||
courseCatalogueId: id,
|
||||
},
|
||||
header: {
|
||||
//默认 无 说明:请求头
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then(async (res) => {
|
||||
console.log("res at line 493:", res);
|
||||
if (res.code != 0) {
|
||||
// return this.$commonJS.showToast(res.errMsg);
|
||||
}
|
||||
if (res.code == 0) {
|
||||
ss = res.canRelearn;
|
||||
}
|
||||
this.$forceUpdate();
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log("e", e);
|
||||
ss = false;
|
||||
this.$commonJS.showToast(e.errMsg);
|
||||
});
|
||||
return ss;
|
||||
},
|
||||
//点击顶部按钮
|
||||
handleClickGetVip() {
|
||||
uni.navigateTo({
|
||||
@@ -585,6 +714,8 @@ export default {
|
||||
navTitle: this.options.navTitle,
|
||||
title: this.options.title,
|
||||
sourceType: "curriculum",
|
||||
isFudu: this.isFudu,
|
||||
fuduId: this.fuduId
|
||||
}); // 这里转换成 字符串
|
||||
uni.navigateTo({
|
||||
url: `/pages/goods/order/index?data=${mynavData}`,
|
||||
@@ -618,6 +749,11 @@ export default {
|
||||
}
|
||||
this.$forceUpdate();
|
||||
});
|
||||
this.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
this.getCourseDescriptionData();
|
||||
}, 500);
|
||||
});
|
||||
} else if (v.type == 2 && this.userVip == null) {
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
@@ -628,11 +764,7 @@ export default {
|
||||
} else {
|
||||
this.getProductListForCourse(v);
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
this.getCourseDescriptionData();
|
||||
}, 500);
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
getProductListForCourse(v) {
|
||||
@@ -799,8 +931,16 @@ export default {
|
||||
that.curriculumData = res.data.course;
|
||||
that.cateList = [...res.data.catalogues];
|
||||
for (let i = 0; i < that.cateList.length; i++) {
|
||||
this.showNewPayBtn[i]={status:false}
|
||||
console.log('at line 876:',this.showNewPayBtn[i] )
|
||||
var list = await that.getChapterList(that.cateList[i]);
|
||||
|
||||
if (that.cateList[i].isBuy == 0 && this.userVip == null) {
|
||||
that.showNewPayBtn[i].status = await this.checkRenewPayment(that.cateList[i].id);
|
||||
|
||||
console.log("可以复读吗?", this.showNewPayBtn);
|
||||
} else {
|
||||
console.log("不用复读");
|
||||
} console.log('this.showNewPayBtn at line 877:', this.showNewPayBtn)
|
||||
that.allDataList[i] = {
|
||||
...that.cateList[i],
|
||||
courseList: [...list],
|
||||
@@ -812,7 +952,11 @@ export default {
|
||||
}, 200);
|
||||
this.$forceUpdate();
|
||||
});
|
||||
},
|
||||
}, onPageJump(url, id) {
|
||||
uni.navigateTo({
|
||||
url: `${url}?id=${id}`,
|
||||
});
|
||||
},
|
||||
getPriceData() {
|
||||
var that = this;
|
||||
setTimeout(() => {
|
||||
@@ -1667,7 +1811,7 @@ export default {
|
||||
|
||||
.describe_block {
|
||||
padding: 15rpx 20rpx;
|
||||
background: linear-gradient(90deg, #258feb 0%, #00e1ec 100%);
|
||||
background: linear-gradient(90deg, #3ab3ae 0%, #00e1ec 100%);
|
||||
position: fixed;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
@@ -1691,5 +1835,26 @@ export default {
|
||||
border-radius: 10rpx;
|
||||
line-height: 50rpx;
|
||||
height: 50rpx;
|
||||
}
|
||||
}.libOther {
|
||||
border: 1px solid #fff;
|
||||
border-radius: 10rpx;
|
||||
text-align: center;
|
||||
background-color: rgba(0, 0, 0, .4);
|
||||
padding: 10rpx;
|
||||
|
||||
.text {
|
||||
font-size: 26rpx;
|
||||
line-height: 40rpx;
|
||||
margin-bottom: 20rpx;
|
||||
color: #fff;
|
||||
}
|
||||
}.tag-view {
|
||||
justify-content: center;
|
||||
margin-bottom: 20rpx;
|
||||
|
||||
.btn {
|
||||
width: 40%;
|
||||
margin: 0 20rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
2596
pages/goods/order/index copy.vue
Normal file
2596
pages/goods/order/index copy.vue
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -324,7 +324,7 @@ export default {
|
||||
},
|
||||
{
|
||||
name: "我的课程",
|
||||
url: "/pages/curriculum/order/index/index",
|
||||
url: "/pages/course/myCourse",
|
||||
// url: "",
|
||||
imgUrl: require("@/static/icon/homePage/wdkc.png"),
|
||||
},
|
||||
|
||||
351
pages/hufen/hufen.vue
Normal file
351
pages/hufen/hufen.vue
Normal file
@@ -0,0 +1,351 @@
|
||||
<template>
|
||||
<view class="commonPageBox">
|
||||
<!-- 公共组件-每个页面必须引入 -->
|
||||
<public-module></public-module>
|
||||
<z-nav-bar title="我的湖分" bgColor="#3ab3ae" fontColor="#fff">
|
||||
<!-- <uni-icons type="bars" class="topRight" slot="right" @click="showDrawer('showRight')" size="22"></uni-icons> -->
|
||||
</z-nav-bar>
|
||||
<view class="xiugai">
|
||||
<common-list
|
||||
:dataList="tabList"
|
||||
@hancleClick="handleClickTab"
|
||||
label="name"
|
||||
>
|
||||
<template slot="rightSlot" slot-scope="slotProps">
|
||||
<text
|
||||
class="fdButtonBox aui-text-success"
|
||||
style="
|
||||
line-height: 40rpx;
|
||||
font-size: 36rpx;
|
||||
float: right;
|
||||
color: #3AB3AE !important;
|
||||
font-weight: bold;
|
||||
"
|
||||
>{{ slotProps.row.score }}<text style="font-size: 30rpx;margin-left: 4rpx;">湖分</text></text
|
||||
>
|
||||
</template>
|
||||
</common-list>
|
||||
</view>
|
||||
<u-popup mode="bottom" :show="show" border-radius="10" @close="show=false">
|
||||
<view class="content" style="height: 50vh">
|
||||
<p style="height: 90rpx" class="popupTitle">
|
||||
{{ currentData.name }} 湖分记录
|
||||
</p>
|
||||
<scroll-view scroll-y="true" style="height: calc(100% - 210rpx)">
|
||||
<view style="padding: 20rpx; box-sizing: border-box">
|
||||
<!-- <view v-for="index in 20" :key="index"> 第{{ index }}个Item </view> -->
|
||||
<view class="AC_con">
|
||||
<!-- <view class="AC_jilu PM_font">湖分记录</view> -->
|
||||
<common-list
|
||||
:dataList="MoneyRecord"
|
||||
isCondition="true"
|
||||
isNoIcon="true"
|
||||
label="orderType"
|
||||
>
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<view class="label_content AC_List">
|
||||
<view class="left">
|
||||
<view class="title"
|
||||
><view class="AC_time"
|
||||
>{{ slotProps.row.createTime }}
|
||||
</view></view
|
||||
>
|
||||
</view>
|
||||
<view
|
||||
:class="`right ${slotProps.row.score > 0 ? 'Hot' : ''}`"
|
||||
>
|
||||
<text
|
||||
v-if="slotProps.row.score > 0"
|
||||
style="color: #3ab3ae"
|
||||
>+</text
|
||||
>
|
||||
<text style="color: #3ab3ae">{{
|
||||
slotProps.row.score
|
||||
}}</text> </view
|
||||
><view class="AC_mark" v-if="slotProps.row.detail">{{
|
||||
slotProps.row.detail
|
||||
}}</view>
|
||||
</view>
|
||||
<!-- <text class="order" style="font-size: 12px;" v-if="slotProps.row.relationId" @click="goClick(slotProps.row.relationId)">订单详情</text> -->
|
||||
</template>
|
||||
</common-list>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<view class="confrim-btn">
|
||||
<u-button
|
||||
style="
|
||||
width: 90%;
|
||||
margin: 0 auto;
|
||||
margin-top: 20rpx;
|
||||
color: #1d1d1d;
|
||||
border: 1rpx solid #a0a0a0;
|
||||
"
|
||||
@click="show = false"
|
||||
>关闭</u-button
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
var clear;
|
||||
import { mapState } from "vuex";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tabList: [],
|
||||
MoneyRecord: [],
|
||||
pageList: [],
|
||||
show: false,
|
||||
currentData: {},
|
||||
};
|
||||
},
|
||||
//第一次加载
|
||||
onLoad(e) {
|
||||
|
||||
// 隐藏原生的tabbar
|
||||
uni.hideTabBar();
|
||||
},
|
||||
computed: {
|
||||
...mapState(["userInfo"]),
|
||||
videoHTML() {
|
||||
return `<video class="video-box" poster="http://ehh-public-01.oss-cn-beijing.aliyuncs.com/wumenyishu-image/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20240606110049.jpg" src="${this.videoUrl}" enable-danmu danmu-btn controls style="width:100%;height:320rpx"></video>`;
|
||||
},
|
||||
},
|
||||
//页面显示
|
||||
onShow() {
|
||||
// 隐藏原生的tabbar
|
||||
uni.hideTabBar();
|
||||
this.getData();
|
||||
},
|
||||
onUnload() {
|
||||
// #ifdef APP-PLUS
|
||||
plus.screen.lockOrientation("portrait-primary"); // 清除横屏
|
||||
// #endif
|
||||
this.showTemp = true;
|
||||
this.videoContext = null;
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
uni.stopPullDownRefresh();
|
||||
},
|
||||
components: {
|
||||
// curriculumVideo,
|
||||
},
|
||||
//方法
|
||||
methods: {
|
||||
async handleClickTab(e) {
|
||||
this.currentData = e;
|
||||
console.log("e at line 78:", e);
|
||||
await this.gethufenData();
|
||||
this.show = true;
|
||||
console.log(e);
|
||||
this.$forceUpdate();
|
||||
|
||||
// this.tabList = e;
|
||||
},
|
||||
getPointsType(type) {
|
||||
var str = "";
|
||||
|
||||
switch (type) {
|
||||
case "01":
|
||||
return "在线教学";
|
||||
|
||||
case "03":
|
||||
return "学术期刊";
|
||||
|
||||
case "05":
|
||||
return "太湖讲堂";
|
||||
|
||||
case "07":
|
||||
return "创作技术";
|
||||
|
||||
case "11":
|
||||
return "注册邀请";
|
||||
|
||||
case "13":
|
||||
return "课程邀请";
|
||||
}
|
||||
},
|
||||
async gethufenData(type) {
|
||||
await this.$http
|
||||
.request({
|
||||
url: "common/userContribution/getUserContributionByType",
|
||||
method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||||
data: {
|
||||
current: 1,
|
||||
limit: 999999,
|
||||
type: this.currentData.type,
|
||||
},
|
||||
header: {
|
||||
//默认 无 说明:请求头
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("res at line 296:", res.list);
|
||||
if (res.code == 0 && res.list.records.length > 0) {
|
||||
this.MoneyRecord = [];
|
||||
this.MoneyRecord = res.list.records;
|
||||
} else {
|
||||
this.MoneyRecord = [];
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e, "报错");
|
||||
});
|
||||
},
|
||||
async getData() {
|
||||
await this.$http
|
||||
.post("common/userContribution/getUserContribution")
|
||||
.then((res) => {
|
||||
console.log("res at line 296:", res.list);
|
||||
if (res.code == 0 && res.list.length > 0) {
|
||||
this.tabList = [];
|
||||
this.tabList = res.list.map((e) => {
|
||||
return { ...e, name: e.dict_value };
|
||||
});
|
||||
} else {
|
||||
this.tabList = [];
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e, "报错");
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.AC_List {
|
||||
overflow: hidden;
|
||||
|
||||
.left {
|
||||
width: calc(100% - 200rpx) !important;
|
||||
// font-weight: 700;
|
||||
float: left;
|
||||
color: #333;
|
||||
font-size: 38rpx;
|
||||
line-height: 40rpx;
|
||||
}
|
||||
.right {
|
||||
display: block;
|
||||
width: 200rpx !important;
|
||||
float: right;
|
||||
text-align: right;
|
||||
font-size: 38rpx;
|
||||
// font-weight: 700;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
// border-bottom: 1px solid #eee;
|
||||
// padding: 40rpx 10rpx;
|
||||
|
||||
.AC_title {
|
||||
font-size: 32rpx;
|
||||
margin-bottom: 20rpx;
|
||||
|
||||
view {
|
||||
float: right;
|
||||
font-size: 34rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.AC_mark {
|
||||
width: 100%;
|
||||
font-size: 28rpx;
|
||||
margin-top: 10rpx;
|
||||
margin-bottom: 15rpx;
|
||||
// white-space: nowrap;
|
||||
color: #343434;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.AC_time {
|
||||
// width: 100%;
|
||||
color: #909090;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
.popupTitle {
|
||||
padding-top: 10rpx;
|
||||
|
||||
box-sizing: border-box;
|
||||
font-size: 42rpx;
|
||||
// font-weight: bold;
|
||||
text-align: center;
|
||||
font-family: PangMenZhengDaoBiaoTiTiMianFeiBan;
|
||||
line-height: 60rpx;
|
||||
color: #3ab3ae;
|
||||
}
|
||||
.grid-text {
|
||||
font-size: 28rpx;
|
||||
margin-top: 4rpx;
|
||||
}
|
||||
.commonPageBox {
|
||||
height: 100vh;
|
||||
// background-image: url("@/static/icon/mine_bg.png");
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
background-image: linear-gradient(
|
||||
-60deg,
|
||||
#f4fcf6 0%, /* 极浅的绿白色 */
|
||||
#e8f7f0 40%, /* 轻微绿色调的浅色 */
|
||||
#d8f3e6 60%, /* 非常浅的绿色 */
|
||||
#f0fdf9 80%, /* 淡绿色与白色的混合 */
|
||||
#f9fffb 100% /* 接近白色的极浅绿色 */
|
||||
);
|
||||
|
||||
|
||||
// background-color: #d8f8e4 !important;
|
||||
}
|
||||
.xiugai {
|
||||
border-radius: 20rpx !important;
|
||||
margin: 20rpx;
|
||||
// padding:0 40rpx;
|
||||
background: #fff;
|
||||
|
||||
.nav_list {
|
||||
background-color: #b7e0e2;
|
||||
padding: 15rpx 0 15rpx 10rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 22rpx;
|
||||
position: relative;
|
||||
font-weight: bold;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
|
||||
&:active {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
text {
|
||||
color: #333;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 30rpx;
|
||||
height: 30rpx;
|
||||
background-image: url("@/static/icon/icon_right.png");
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
}
|
||||
}
|
||||
|
||||
.nav_list:nth-last-child(1) {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -247,10 +247,10 @@
|
||||
<template slot="rightSlot" slot-scope="slotProps">
|
||||
<text
|
||||
class="fdButtonBox aui-text-success"
|
||||
style="line-height: 40rpx"
|
||||
>{{ slotProps.row.content }}</text
|
||||
v-if="slotProps.row.contentType&&slotProps.row.contentType == 'hufen'&&hufenNumber>0"
|
||||
style="line-height: 40rpx; font-size: 40rpx;color: #3AB3AE;float: right;"
|
||||
>{{ hufenNumber }}<text style="font-size: 30rpx;margin-left: 4rpx;">湖分</text></text
|
||||
>
|
||||
|
||||
<view> </view>
|
||||
</template>
|
||||
</common-list>
|
||||
@@ -316,7 +316,7 @@ import $http from "@/config/requestConfig.js";
|
||||
import { mapState, mapMutations } from "vuex";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
return {hufenNumber: 0,
|
||||
userCouponNum: 0,
|
||||
come: "1",
|
||||
orderList: [
|
||||
@@ -384,7 +384,11 @@ export default {
|
||||
url: "/pages/bookShop/orderList?type=mine",
|
||||
|
||||
type: "switchTab",
|
||||
},
|
||||
},{
|
||||
name: "我的湖分",
|
||||
url: "/pages/hufen/hufen",
|
||||
type: "pageJump", contentType: "hufen",
|
||||
},
|
||||
{
|
||||
name: "个人资料",
|
||||
url: "/pages/mine/userInfo/persData",
|
||||
@@ -430,6 +434,7 @@ export default {
|
||||
onShow() {
|
||||
this.getBookList();
|
||||
this.getData();
|
||||
this.gethufenData();
|
||||
//获取vip身份
|
||||
this.textList = [];
|
||||
this.getUserVipType();
|
||||
@@ -443,7 +448,20 @@ export default {
|
||||
},
|
||||
//方法
|
||||
methods: {
|
||||
...mapMutations(["setUserInfo"]),
|
||||
...mapMutations(["setUserInfo"]), async gethufenData() {
|
||||
await this.$http
|
||||
.post("common/userContribution/getUserContribution")
|
||||
.then((res) => {
|
||||
console.log("res at line 296:", res);
|
||||
if (res.code == 0) {
|
||||
this.hufenNumber = res.total;
|
||||
} else {
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e, "报错");
|
||||
});
|
||||
},
|
||||
async getUserCouponList() {
|
||||
await this.$http
|
||||
.request({
|
||||
@@ -1432,7 +1450,7 @@ uni-page-body {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0 10rpx;
|
||||
background: linear-gradient(90deg, #258feb 0%, #00e1ec 100%);
|
||||
background: linear-gradient(90deg, #3AB3AE 0%, #00e1ec 100%);
|
||||
border-radius: 20rpx;
|
||||
font-size: 18rpx;
|
||||
line-height: 40rpx;
|
||||
|
||||
@@ -736,7 +736,7 @@ export default {
|
||||
//console.log('中等密码-----',value)
|
||||
this.passNote =
|
||||
"请至少使用大小写字母、数字、符号两种类型组合的密码,长度为8位。";
|
||||
this.passStr = "<span style='color:#2979ff'>密码强度中等!</span>";
|
||||
this.passStr = "<span style='color:#117e4c'>密码强度中等!</span>";
|
||||
this.passwordOk = true;
|
||||
} else if (enoughRegex.test(value)) {
|
||||
//console.log('弱密码-----',value)
|
||||
|
||||
351
pages/mine/vip/index copy.vue
Normal file
351
pages/mine/vip/index copy.vue
Normal file
@@ -0,0 +1,351 @@
|
||||
<template>
|
||||
|
||||
<view class="commonPageBox">
|
||||
<z-nav-bar title="VIP"></z-nav-bar>
|
||||
<view class="vip_block">
|
||||
<view
|
||||
class="vip_item"
|
||||
:class="[
|
||||
item.type == 1 || item.type == 2 ? 'vip_item_special' : '',
|
||||
item.state == 1 ? 'vip_item_overdue' : '',
|
||||
(item.type == 1 && item.state == 0) ||
|
||||
(item.type == 2 && item.state == 0)
|
||||
? 'vip_item_bg_1'
|
||||
: '',
|
||||
item.type != 1 && item.type != 2 && item.state == 0
|
||||
? 'vip_item_bg_2'
|
||||
: '',
|
||||
]"
|
||||
v-for="(item, index) in list"
|
||||
:key="index"
|
||||
>
|
||||
<view>
|
||||
<text class="vip_item_title">{{ item.title }}</text>
|
||||
<text class="vip_item_tip" v-if="item.tip && item.tip < 100"
|
||||
><uni-icons type="info" size="17" color="#ff1f00"></uni-icons>还有{{item.tip}}天到期</text
|
||||
>
|
||||
<text class="vip_item_flag" v-if="item.state == 1">
|
||||
<uni-icons type="info" size="17" color="#999"></uni-icons>已过期
|
||||
</text>
|
||||
</view>
|
||||
|
||||
<view class="vip_price" style="padding-top: 10rpx">
|
||||
<text class="font_bold">课程价格:</text>
|
||||
<view class="vip_qx_v">一年<text class="vip_fee line">{{ item.originalPrice || 0 }}</text>元</view>
|
||||
</view>
|
||||
<view v-if="$platform!='ios'">
|
||||
<text
|
||||
class="vip_item_btn"
|
||||
v-if="item.state == null"
|
||||
@click="openorderModal(item, 0)"
|
||||
>去办理</text
|
||||
>
|
||||
<text class="vip_item_btn" v-else @click="openorderModal(item, 0)"
|
||||
>去续费</text
|
||||
>
|
||||
</view>
|
||||
|
||||
<view class="vip_price" v-if="item.vcbList && item.vcbList.length > 0">
|
||||
<text class="font_bold" v-if="item.type == 1 || item.type == 2"
|
||||
>超级VIP价格:</text
|
||||
>
|
||||
<text class="font_bold" v-else>VIP价格:</text>
|
||||
<text
|
||||
class="vip_price_v"
|
||||
v-for="(item_price, index_price) in item.vcbList"
|
||||
:key="index_price"
|
||||
@click="openorderModal(item_price)"
|
||||
>
|
||||
{{ item_price.year }}年<text>{{ item_price.rebateFee }}</text
|
||||
>元
|
||||
</text>
|
||||
</view>
|
||||
<view
|
||||
class="vip_price"
|
||||
v-if="item.yanqiList && item.yanqiList.length > 0"
|
||||
>
|
||||
<text class="font_bold">延期价格:</text>
|
||||
<text
|
||||
class="vip_price_v"
|
||||
v-for="(item_yq, index_yq) in item.yanqiList"
|
||||
:key="index_yq"
|
||||
@click="openorderModal(item_yq, 1)"
|
||||
>
|
||||
{{ item_yq.year }}年<text>{{ item_yq.rebateFee }}</text
|
||||
>元
|
||||
</text>
|
||||
</view>
|
||||
<view class="vip_qx">
|
||||
<text class="font_bold" style="display: block">VIP权限:</text>
|
||||
<view class="vip_qx_v" v-if="item.type == 1"
|
||||
>无限制观看吴门医述APP中医学、中西汇通学、针灸学、肿瘤学四个板块任意课程;</view
|
||||
>
|
||||
<view class="vip_qx_v" v-else-if="item.type == 2"
|
||||
>无限制观看众妙之门APP与吴门医述APP心理学板块任意课程;</view
|
||||
>
|
||||
<view class="vip_qx_v" v-else-if="item.type == 7"
|
||||
>无限制观看众妙之门APP任意课程;</view
|
||||
>
|
||||
<view class="vip_qx_v" v-else
|
||||
>无限制观看吴门医述APP{{
|
||||
item.title.replace(/VIP/g, "")
|
||||
}}板块任意课程;</view
|
||||
>
|
||||
|
||||
<view class="vip_qx_v">
|
||||
<text v-if="item.type == 1 || item.type == 2">{{
|
||||
item.title.replace(/超级VIP/g, "")
|
||||
}}</text>
|
||||
<text v-else>{{ item.title.replace(/VIP/g, "") }}</text>
|
||||
培训班报名享受<text
|
||||
class="vip_fee"
|
||||
v-if="item.type == 1 || item.type == 2"
|
||||
>8折</text
|
||||
><text class="vip_fee" v-else>9折</text>优惠
|
||||
</view>
|
||||
<view class="vip_qx_v"
|
||||
>疯子读书APP购书享受<text
|
||||
class="vip_fee"
|
||||
v-if="item.type == 1 || item.type == 2"
|
||||
>8折</text
|
||||
><text class="vip_fee" v-else>9折</text>优惠</view
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<u-popup :show="orderModalShow" mode="bottom" :round="20">
|
||||
<view class="orderModalShow popup_box">
|
||||
<u-icon
|
||||
name="close"
|
||||
color="#333"
|
||||
size="18"
|
||||
@click="closeOrderModalShow"
|
||||
style="
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
top: 20rpx;
|
||||
"
|
||||
></u-icon>
|
||||
<orderPay ref="orderPay" :dataInfo="selectVipData"></orderPay>
|
||||
</view>
|
||||
</u-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import $http from "@/config/requestConfig.js";
|
||||
import orderPay from "./order.vue";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
type: 0,
|
||||
text: "", //针对不同type展示文案
|
||||
list: [],
|
||||
orderModalShow: false,
|
||||
selectVipData: {},
|
||||
};
|
||||
},
|
||||
components: {
|
||||
orderPay,
|
||||
},
|
||||
onLoad() {
|
||||
this.getData();
|
||||
},
|
||||
onShow() {},
|
||||
methods: {
|
||||
//获取数据
|
||||
getData() {
|
||||
uni.showLoading({
|
||||
title: "加载中",
|
||||
});
|
||||
$http
|
||||
.request({
|
||||
url: "common/userVip/getVipBuyConfigList",
|
||||
method: "POST",
|
||||
data: {},
|
||||
header: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
uni.hideLoading();
|
||||
if (res.code == 0) {
|
||||
this.list = res.res;
|
||||
}
|
||||
})
|
||||
.catch((e) => {});
|
||||
},
|
||||
//点击购买
|
||||
openorderModal(item, type) {
|
||||
if(this.$platform=='ios'){
|
||||
return false
|
||||
}
|
||||
let text = "";
|
||||
//如果是右侧按钮点击展示
|
||||
//判断点击类型是vip价格还是延期价格
|
||||
if (type == 0) {
|
||||
if (item.state == null) {
|
||||
//没有vip
|
||||
this.selectVipData.list = item.vcbList;
|
||||
this.selectVipData.id = item.vcbList[0].id;
|
||||
} else {
|
||||
this.selectVipData.list = item.yanqiList;
|
||||
this.selectVipData.id = item.yanqiList[0].id;
|
||||
}
|
||||
} else {
|
||||
this.selectVipData.id = item.id;
|
||||
}
|
||||
|
||||
if (type) {
|
||||
this.selectVipData.type = type;
|
||||
}
|
||||
|
||||
this.selectVipData.title = item.title + "-" + item.year + "年";
|
||||
this.selectVipData.lastFee = item.rebateFee;
|
||||
|
||||
this.orderModalShow = true;
|
||||
console.log("-----selectVipData-----", this.selectVipData);
|
||||
this.$nextTick(() => {
|
||||
this.$refs.orderPay.initPrepareOrder();
|
||||
});
|
||||
},
|
||||
//关闭
|
||||
closeOrderModalShow() {
|
||||
this.orderModalShow = false;
|
||||
this.selectVipData = {};
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.commonPageBox {
|
||||
height: 100% !important;
|
||||
}
|
||||
.vip_block {
|
||||
padding: 20rpx;
|
||||
}
|
||||
.vip_item {
|
||||
width: 100%;
|
||||
padding: 30rpx 20rpx;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0px 0px 5px 0px #a7bbe4;
|
||||
margin-bottom: 20rpx;
|
||||
position: relative;
|
||||
}
|
||||
.vip_item_title {
|
||||
display: inline-block;
|
||||
height: 46rpx;
|
||||
line-height: 46rpx;
|
||||
font-size: 24rpx;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
padding: 0 12rpx;
|
||||
border-radius: 15rpx;
|
||||
background-image: linear-gradient(90deg, #3AB3AE 0%, #00e1ec 100%);
|
||||
}
|
||||
.vip_item_special .vip_item_title {
|
||||
height: 50rpx;
|
||||
line-height: 50rpx;
|
||||
font-size: 26rpx;
|
||||
background-image: linear-gradient(90deg, #ff1f00 0%, #fa9f93 100%);
|
||||
}
|
||||
.vip_price {
|
||||
margin-top: 5rpx;
|
||||
}
|
||||
.vip_price text,
|
||||
.vip_qx text,
|
||||
.vip_qx_v {
|
||||
display: inline-block;
|
||||
font-size: 28rpx;
|
||||
line-height: 40rpx;
|
||||
}
|
||||
.vip_item_used {
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
bottom: 20rpx;
|
||||
font-size: 24rpx;
|
||||
color: #427ec5;
|
||||
font-weight: bold;
|
||||
}
|
||||
.vip_item_btn {
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
top: 30rpx;
|
||||
font-size: 23rpx;
|
||||
line-height: 40rpx;
|
||||
border: 1rpx solid #ff1f00;
|
||||
color: #ff1f00;
|
||||
padding: 0 12rpx;
|
||||
border-radius: 15rpx;
|
||||
opacity: 0.8;
|
||||
}
|
||||
.font_bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
.vip_fee {
|
||||
font-size: 34rpx !important;
|
||||
color: #ff1f00;
|
||||
font-weight: bold;
|
||||
padding: 0 5rpx;
|
||||
}
|
||||
.vip_price_v {
|
||||
font-size: 26rpx !important;
|
||||
color: #ff1f00;
|
||||
border: 1rpx solid #ff1f00;
|
||||
border-radius: 10rpx;
|
||||
margin-right: 15rpx;
|
||||
margin-bottom: 10rpx;
|
||||
padding: 0 10rpx;
|
||||
}
|
||||
.vip_price_yq {
|
||||
font-size: 26rpx !important;
|
||||
color: #427ec5;
|
||||
border: 1rpx solid #427ec5;
|
||||
border-radius: 10rpx;
|
||||
margin-right: 15rpx;
|
||||
margin-bottom: 10rpx;
|
||||
padding: 0 10rpx;
|
||||
}
|
||||
.line {
|
||||
text-decoration: line-through;
|
||||
color: #3AB3AE ;
|
||||
font-style: italic;
|
||||
}
|
||||
.vip_item_flag {
|
||||
font-size: 26rpx;
|
||||
color: #666;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
.vip_item_flag text {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
.vip_item_overdue {
|
||||
background: rgba(220, 223, 225, 0.9) !important;
|
||||
opacity: 0.75;
|
||||
}
|
||||
.vip_item_overdue .vip_item_title {
|
||||
background-image: none;
|
||||
font-size: 32rpx;
|
||||
color: #000;
|
||||
padding: 0;
|
||||
}
|
||||
.vip_item_bg_1 {
|
||||
background: rgba(227, 120, 125, 0.3) !important;
|
||||
}
|
||||
.vip_item_bg_2 {
|
||||
background: rgba(64, 148, 222, 0.3) !important;
|
||||
}
|
||||
.vip_item_tip {
|
||||
color: #ff1f00;
|
||||
font-size: 26rpx;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
.vip_item_tip text {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
</style>
|
||||
@@ -1,7 +1,6 @@
|
||||
<template>
|
||||
|
||||
<view class="commonPageBox">
|
||||
<z-nav-bar title="VIP"></z-nav-bar>
|
||||
<z-nav-bar title="VIP" bgColor="#3AB3AE" fontColor="#fff"></z-nav-bar>
|
||||
<view class="vip_block">
|
||||
<view
|
||||
class="vip_item"
|
||||
@@ -22,7 +21,9 @@
|
||||
<view>
|
||||
<text class="vip_item_title">{{ item.title }}</text>
|
||||
<text class="vip_item_tip" v-if="item.tip && item.tip < 100"
|
||||
><uni-icons type="info" size="17" color="#ff1f00"></uni-icons>还有{{item.tip}}天到期</text
|
||||
><uni-icons type="info" size="17" color="#ff1f00"></uni-icons>还有{{
|
||||
item.tip
|
||||
}}天到期</text
|
||||
>
|
||||
<text class="vip_item_flag" v-if="item.state == 1">
|
||||
<uni-icons type="info" size="17" color="#999"></uni-icons>已过期
|
||||
@@ -31,19 +32,22 @@
|
||||
|
||||
<view class="vip_price" style="padding-top: 10rpx">
|
||||
<text class="font_bold">课程价格:</text>
|
||||
<view class="vip_qx_v">一年<text class="vip_fee line">{{ item.originalPrice || 0 }}</text>元</view>
|
||||
<view class="vip_qx_v"
|
||||
>一年<text class="vip_fee line">{{ item.originalPrice || 0 }}</text
|
||||
>元</view
|
||||
>
|
||||
</view>
|
||||
<view v-if="$platform != 'ios'">
|
||||
<text
|
||||
class="vip_item_btn"
|
||||
v-if="item.state == null"
|
||||
@click="openorderModal(item)"
|
||||
>去办理</text
|
||||
>
|
||||
<text class="vip_item_btn" v-else @click="openorderModal(item)"
|
||||
>去续费</text
|
||||
>
|
||||
</view>
|
||||
<view v-if="$platform!='ios'">
|
||||
<text
|
||||
class="vip_item_btn"
|
||||
v-if="item.state == null"
|
||||
@click="openorderModal(item, 0)"
|
||||
>去办理</text
|
||||
>
|
||||
<text class="vip_item_btn" v-else @click="openorderModal(item, 0)"
|
||||
>去续费</text
|
||||
>
|
||||
</view>
|
||||
|
||||
<view class="vip_price" v-if="item.vcbList && item.vcbList.length > 0">
|
||||
<text class="font_bold" v-if="item.type == 1 || item.type == 2"
|
||||
@@ -54,7 +58,7 @@
|
||||
class="vip_price_v"
|
||||
v-for="(item_price, index_price) in item.vcbList"
|
||||
:key="index_price"
|
||||
@click="openorderModal(item_price)"
|
||||
@click="openorderModal(item, index_price)"
|
||||
>
|
||||
{{ item_price.year }}年<text>{{ item_price.rebateFee }}</text
|
||||
>元
|
||||
@@ -69,14 +73,20 @@
|
||||
class="vip_price_v"
|
||||
v-for="(item_yq, index_yq) in item.yanqiList"
|
||||
:key="index_yq"
|
||||
@click="openorderModal(item_yq, 1)"
|
||||
@click="openorderModal({ state: item.state, ...item }, index_yq)"
|
||||
>
|
||||
{{ item_yq.year }}年<text>{{ item_yq.rebateFee }}</text
|
||||
>元
|
||||
</text>
|
||||
</view>
|
||||
<view class="vip_qx">
|
||||
<text class="font_bold" style="display: block">VIP权限:</text>
|
||||
<text
|
||||
class="font_bold"
|
||||
style="display: block"
|
||||
v-if="item.type == 1 || item.type == 2"
|
||||
>超级VIP权限:</text
|
||||
>
|
||||
<text class="font_bold" style="display: block" v-else>VIP权限:</text>
|
||||
<view class="vip_qx_v" v-if="item.type == 1"
|
||||
>无限制观看吴门医述APP中医学、中西汇通学、针灸学、肿瘤学四个板块任意课程;</view
|
||||
>
|
||||
@@ -101,33 +111,39 @@
|
||||
class="vip_fee"
|
||||
v-if="item.type == 1 || item.type == 2"
|
||||
>8折</text
|
||||
><text class="vip_fee" v-else>9折</text>优惠
|
||||
><text class="vip_fee" v-else>9折</text>优惠;
|
||||
</view>
|
||||
<view class="vip_qx_v"
|
||||
>疯子读书APP购书享受<text
|
||||
class="vip_fee"
|
||||
v-if="item.type == 1 || item.type == 2"
|
||||
>8折</text
|
||||
><text class="vip_fee" v-else>9折</text>优惠</view
|
||||
><text class="vip_fee" v-else>9折</text>优惠。</view
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<common-select-vip
|
||||
type="vip"
|
||||
:isCondition="true"
|
||||
ref="commonSelectGoods"
|
||||
:selectGoodsData="selectGoodsData"
|
||||
:goodsList="goodsList"
|
||||
:buyOptions="buyOptions"
|
||||
:customButtonGroup1="customButtonGroup1"
|
||||
@selectGoods="handleClickSelectGoods"
|
||||
@onHandleClickBuy="goBuy()"
|
||||
>
|
||||
</common-select-vip>
|
||||
<u-popup :show="orderModalShow" mode="bottom" :round="20">
|
||||
<view class="orderModalShow popup_box">
|
||||
<u-icon
|
||||
name="close"
|
||||
color="#333"
|
||||
size="18"
|
||||
@click="closeOrderModalShow"
|
||||
style="
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
top: 20rpx;
|
||||
"
|
||||
></u-icon>
|
||||
<!-- <u-icon name="close" color="#333" size="18" @click="closeOrderModalShow" style="
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
top: 20rpx;
|
||||
"></u-icon> -->
|
||||
<orderPay ref="orderPay" :dataInfo="selectVipData"></orderPay>
|
||||
</view>
|
||||
</u-popup>
|
||||
@@ -143,6 +159,17 @@ export default {
|
||||
type: 0,
|
||||
text: "", //针对不同type展示文案
|
||||
list: [],
|
||||
buyOptions: [],
|
||||
customButtonGroup1: [
|
||||
{
|
||||
with: 200,
|
||||
text: "立即购买",
|
||||
backgroundColor: "linear-gradient(90deg, #3AB3AE 0%,#3AB3AE 100%)",
|
||||
color: "#fff",
|
||||
},
|
||||
],
|
||||
goodsList: [],
|
||||
selectGoodsData: {},
|
||||
orderModalShow: false,
|
||||
selectVipData: {},
|
||||
};
|
||||
@@ -155,6 +182,27 @@ export default {
|
||||
},
|
||||
onShow() {},
|
||||
methods: {
|
||||
handleClickSelectGoods(data) {
|
||||
this.selectGoodsData = data;
|
||||
console.log('this.selectGoodsData at line 186:', this.selectGoodsData)
|
||||
this.$forceUpdate();
|
||||
},
|
||||
goBuy() {
|
||||
// this.$refs.commonSelectGoods.close();
|
||||
var mynavData = JSON.stringify({
|
||||
|
||||
goods:[this.selectGoodsData],
|
||||
typeId: 0,
|
||||
navTitle: "",
|
||||
title: "",
|
||||
isVip: true,
|
||||
|
||||
}); // 这里转换成 字符串
|
||||
console.log('mynavData at line 192:', mynavData)
|
||||
uni.navigateTo({
|
||||
url: `/pages/goods/order/index?data=${mynavData}`,
|
||||
});
|
||||
},
|
||||
//获取数据
|
||||
getData() {
|
||||
uni.showLoading({
|
||||
@@ -179,37 +227,40 @@ export default {
|
||||
},
|
||||
//点击购买
|
||||
openorderModal(item, type) {
|
||||
if(this.$platform=='ios'){
|
||||
return false
|
||||
}
|
||||
console.log("item at line 120:", item);
|
||||
if (this.$platform == "ios") {
|
||||
return false;
|
||||
}
|
||||
let text = "";
|
||||
//如果是右侧按钮点击展示
|
||||
//判断点击类型是vip价格还是延期价格
|
||||
if (type == 0) {
|
||||
if (item.state == null) {
|
||||
//没有vip
|
||||
this.selectVipData.list = item.vcbList;
|
||||
this.selectVipData.id = item.vcbList[0].id;
|
||||
} else {
|
||||
this.selectVipData.list = item.yanqiList;
|
||||
this.selectVipData.id = item.yanqiList[0].id;
|
||||
}
|
||||
} else {
|
||||
this.selectVipData.id = item.id;
|
||||
}
|
||||
|
||||
if (type) {
|
||||
this.selectVipData.type = type;
|
||||
if (item.state == null) {
|
||||
//没有vip
|
||||
this.selectVipData.list = item.vcbList;
|
||||
// this.selectVipData.id = item.vcbList[0].id;
|
||||
} else {
|
||||
this.selectVipData.list = item.yanqiList;
|
||||
// this.selectVipData.id = item.yanqiList[0].id;
|
||||
}
|
||||
|
||||
this.selectVipData.title = item.title + "-" + item.year + "年";
|
||||
this.selectVipData.lastFee = item.rebateFee;
|
||||
this.selectVipData.state = item.state;
|
||||
|
||||
this.orderModalShow = true;
|
||||
console.log("-----selectVipData-----", this.selectVipData);
|
||||
this.$nextTick(() => {
|
||||
this.$refs.orderPay.initPrepareOrder();
|
||||
this.goodsList = this.selectVipData.list.map((e) => {
|
||||
return { ...e };
|
||||
});
|
||||
this.selectGoodsData = this.selectVipData.list[type ? type : 0];
|
||||
this.$refs.commonSelectGoods.open();
|
||||
this.show = true;
|
||||
|
||||
// this.orderModalShow = true;
|
||||
// console.log("-----selectVipData-----", this.selectVipData);
|
||||
|
||||
// this.$nextTick(() => {
|
||||
// this.$refs.orderPay.initPrepareOrder();
|
||||
// });
|
||||
},
|
||||
//关闭
|
||||
closeOrderModalShow() {
|
||||
@@ -245,7 +296,7 @@ export default {
|
||||
color: #fff;
|
||||
padding: 0 12rpx;
|
||||
border-radius: 15rpx;
|
||||
background-image: linear-gradient(90deg, #258feb 0%, #00e1ec 100%);
|
||||
background-image: linear-gradient(90deg, #3AB3AE 0%, #00e1ec 100%);
|
||||
}
|
||||
.vip_item_special .vip_item_title {
|
||||
height: 50rpx;
|
||||
@@ -312,7 +363,7 @@ export default {
|
||||
}
|
||||
.line {
|
||||
text-decoration: line-through;
|
||||
color: #258feb;
|
||||
color: #3AB3AE;
|
||||
font-style: italic;
|
||||
}
|
||||
.vip_item_flag {
|
||||
|
||||
@@ -285,8 +285,8 @@ export default {
|
||||
detailInfo: {},
|
||||
fdButtonStyle: {
|
||||
width: "90rpx",
|
||||
"border-color": "#258feb",
|
||||
color: "#258feb",
|
||||
"border-color": "#3AB3AE ",
|
||||
color: "#3AB3AE ",
|
||||
float: "right",
|
||||
"margin-right": "20rpx",
|
||||
"margin-left": "30rpx",
|
||||
@@ -511,6 +511,14 @@ export default {
|
||||
return;
|
||||
}
|
||||
let data = {
|
||||
paymentMethod: this.payType, //1微信2支付宝3苹果支付4虚拟币
|
||||
orderMoney: this.dataInfo.lastFee, //订单金额
|
||||
realMoney: Number(this.dataInfo.lastFee - this.jfNumber), //实际金额
|
||||
shippingMoney: 0, //运费
|
||||
jfDeduction: this.jfNumber, //积分抵扣
|
||||
vipBuyConfigId: this.dataInfo.id,
|
||||
come: 2, //订单来源,0疯子读书1国学众妙之门2医学吴门医
|
||||
|
||||
paymentMethod: this.payType, //1微信2支付宝3苹果支付4虚拟币
|
||||
orderMoney: this.dataInfo.lastFee, //订单金额
|
||||
realMoney: this.dataInfo.lastFee, //实际金额
|
||||
@@ -536,55 +544,30 @@ export default {
|
||||
icon: "none",
|
||||
image: "../../../static/icon/ic_close.png",
|
||||
});
|
||||
} else {
|
||||
if (that.payType == 2) {
|
||||
// 常规支付
|
||||
uni.showToast({
|
||||
title: "正在支付",
|
||||
icon: "loading",
|
||||
});
|
||||
await setPay(
|
||||
{
|
||||
typePay: "alipay",
|
||||
subject: "vip",
|
||||
totalAmount: res.money,
|
||||
type: 2,
|
||||
relevanceoid: res.orderSn,
|
||||
customerId: that.userInfo.id,
|
||||
},
|
||||
(res) => {
|
||||
uni.showLoading({
|
||||
title: "加载中",
|
||||
});
|
||||
console.log(res, "支付支付");
|
||||
if (res.success) {
|
||||
uni.showToast({
|
||||
title: "支付成功",
|
||||
});
|
||||
setTimeout(() => {
|
||||
uni.switchTab({
|
||||
url: "/pages/bookShop/orderList?type=order",
|
||||
});
|
||||
}, 1000);
|
||||
} else {
|
||||
setTimeout(() => {
|
||||
console.log("延迟调用 失败提示");
|
||||
uni.showToast({
|
||||
title: "支付失败",
|
||||
image: "../../../static/icon/ic_close.png",
|
||||
});
|
||||
}, 0);
|
||||
}
|
||||
},
|
||||
);
|
||||
} else if (this.payType == 1) {
|
||||
// 微信支付
|
||||
let data1 = {
|
||||
orderSn: res.orderSn,
|
||||
buyOrderId: null,
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (that.payType == 2) {
|
||||
// 常规支付
|
||||
uni.showToast({
|
||||
title: "正在支付",
|
||||
icon: "loading",
|
||||
});
|
||||
await setPay(
|
||||
{
|
||||
typePay: "alipay",
|
||||
subject: "vip",
|
||||
totalAmount: res.money,
|
||||
};
|
||||
setWXPay(data1, (res) => {
|
||||
type: 2,
|
||||
relevanceoid: res.orderSn,
|
||||
customerId: that.userInfo.id,
|
||||
},
|
||||
(res) => {
|
||||
uni.showLoading({
|
||||
title: "加载中",
|
||||
});
|
||||
console.log(res, "支付支付");
|
||||
if (res.success) {
|
||||
uni.showToast({
|
||||
title: "支付成功",
|
||||
@@ -595,33 +578,61 @@ export default {
|
||||
});
|
||||
}, 1000);
|
||||
} else {
|
||||
if (res.data.errMsg.indexOf("User canceled") != -1) {
|
||||
uni.showToast({
|
||||
title: "用户取消支付",
|
||||
icon: "none",
|
||||
image: "../../../static/icon/ic_close.png",
|
||||
});
|
||||
} else {
|
||||
setTimeout(() => {
|
||||
console.log("延迟调用 失败提示");
|
||||
uni.showToast({
|
||||
title: "支付失败",
|
||||
icon: "none",
|
||||
image: "../../../static/icon/ic_close.png",
|
||||
});
|
||||
}
|
||||
}, 0);
|
||||
}
|
||||
});
|
||||
} else if (this.payType == 4) {
|
||||
// 天医币支付
|
||||
uni.showToast({
|
||||
title: "购买成功",
|
||||
icon: "success",
|
||||
});
|
||||
setTimeout(() => {
|
||||
uni.switchTab({
|
||||
url: "/pages/bookShop/orderList?type=order",
|
||||
}
|
||||
);
|
||||
} else if (this.payType == 1) {
|
||||
// 微信支付
|
||||
let data1 = {
|
||||
orderSn: res.orderSn,
|
||||
buyOrderId: null,
|
||||
totalAmount: res.money,
|
||||
};
|
||||
setWXPay(data1, (res) => {
|
||||
if (res.success) {
|
||||
uni.showToast({
|
||||
title: "支付成功",
|
||||
});
|
||||
}, 1000);
|
||||
}
|
||||
setTimeout(() => {
|
||||
uni.switchTab({
|
||||
url: "/pages/bookShop/orderList?type=order",
|
||||
});
|
||||
}, 1000);
|
||||
} else {
|
||||
if (res.data.errMsg.indexOf("User canceled") != -1) {
|
||||
uni.showToast({
|
||||
title: "用户取消支付",
|
||||
icon: "none",
|
||||
image: "../../../static/icon/ic_close.png",
|
||||
});
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: "支付失败",
|
||||
icon: "none",
|
||||
image: "../../../static/icon/ic_close.png",
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
} else if (this.payType == 4) {
|
||||
console.log('4 at line 624:', 4)
|
||||
// 天医币支付
|
||||
uni.showToast({
|
||||
title: "购买成功",
|
||||
icon: "success",
|
||||
});
|
||||
setTimeout(() => {
|
||||
uni.switchTab({
|
||||
url: "/pages/bookShop/orderList?type=order",
|
||||
});
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1171,7 +1182,7 @@ export default {
|
||||
border-color: #e6e6e6;
|
||||
border-left-color: transparent;
|
||||
border-style: solid;
|
||||
// background-color: #258feb;
|
||||
// background-color: #3AB3AE ;
|
||||
|
||||
border-top-right-radius: 10rpx;
|
||||
border-bottom-right-radius: 10rpx;
|
||||
|
||||
@@ -33,8 +33,8 @@
|
||||
isNoIcon="true"
|
||||
label="orderType"
|
||||
>
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<view class="label_content AC_List">
|
||||
<template slot="labelSlot" slot-scope="slotProps" >
|
||||
<view class="label_content AC_List" @click="slotProps.row.relationId?goClick(slotProps.row.relationId):''">
|
||||
<view class="left">
|
||||
<view class="title">{{ slotProps.row.orderType }}</view>
|
||||
</view>
|
||||
@@ -247,7 +247,13 @@ export default {
|
||||
musicPlay,
|
||||
},
|
||||
//方法
|
||||
methods: {
|
||||
methods: { goClick(id){
|
||||
uni.navigateTo({
|
||||
url: "/pages/bookShop/orderLCont?orderId=" +
|
||||
id
|
||||
|
||||
});
|
||||
},
|
||||
// 获取
|
||||
getData() {
|
||||
var data = {
|
||||
@@ -400,7 +406,7 @@ export default {
|
||||
overflow: hidden;
|
||||
|
||||
.left {
|
||||
width: calc(100% - 120rpx) !important;
|
||||
width: calc(100% - 200rpx) !important;
|
||||
font-weight: 700;
|
||||
float: left;
|
||||
color: #333;
|
||||
@@ -431,13 +437,14 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
.AC_mark {
|
||||
.AC_mark {width: 100%;
|
||||
font-size: 28rpx;
|
||||
margin-top: 10rpx;
|
||||
margin-bottom: 15rpx;
|
||||
// white-space: nowrap;
|
||||
color: #343434;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.AC_time {
|
||||
|
||||
@@ -305,7 +305,7 @@ export default {
|
||||
// console.log('中等密码-----',value)
|
||||
this.note =
|
||||
"请至少使用大小写字母、数字、符号两种类型组合的密码,长度为8位。";
|
||||
this.str2 = "<span style='color:#2979ff'>密码强度中等!</span>";
|
||||
this.str2 = "<span style='color:#117e4c'>密码强度中等!</span>";
|
||||
this.passwordOk = true;
|
||||
} else if (enoughRegex.test(value)) {
|
||||
// console.log('弱密码-----',value)
|
||||
|
||||
Reference in New Issue
Block a user