Merge branch 'master' of https://gitee.com/beijing_hongye_huicheng/lilishop-uniapp
commit
6e5470e20c
11
App.vue
11
App.vue
|
@ -66,7 +66,16 @@ export default {
|
||||||
|
|
||||||
onShow() {
|
onShow() {
|
||||||
// #ifndef H5
|
// #ifndef H5
|
||||||
this.getClipboard();
|
// this.getClipboard();
|
||||||
|
// #endif
|
||||||
|
// #ifdef APP-PLUS
|
||||||
|
console.log(storage.getShow());
|
||||||
|
if (storage.getShow()) {
|
||||||
|
if(uni.getSystemInfoSync().platform == 'ios'){
|
||||||
|
this.$u.route("/pages/tabbar/screen/fullScreen");
|
||||||
|
// uni.reLaunch({ url: "/pages/tabbar/screen/fullScreen" });
|
||||||
|
}
|
||||||
|
}
|
||||||
// #endif
|
// #endif
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"version" : "1",
|
||||||
|
"prompt" : "template",
|
||||||
|
"title" : "服务协议和隐私政策",
|
||||||
|
"message" : " 请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/> 你可阅读<a href=\"https://pc-b2b2c.pickmall.cn/article/detail?id=1371992704333905920\">《服务协议》</a>和<a href=\"https://pc-b2b2c.pickmall.cn/article/detail?id=1371779927900160000\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
|
||||||
|
"buttonAccept" : "同意并接受",
|
||||||
|
"buttonRefuse" : "暂不同意",
|
||||||
|
"second" : {
|
||||||
|
"title" : "确认提示",
|
||||||
|
"message" : " 进入应用前,你需先同意<a href=\"https://pc-b2b2c.pickmall.cn/article/detail?id=1371992704333905920\">《服务协议》</a>和<a href=\"https://pc-b2b2c.pickmall.cn/article/detail?id=1371779927900160000\">《隐私政策》</a>,否则将退出应用。",
|
||||||
|
"buttonAccept" : "同意并继续",
|
||||||
|
"buttonRefuse" : "退出应用"
|
||||||
|
},
|
||||||
|
"styles" : {
|
||||||
|
"borderRadius" : "5px"
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,11 +6,11 @@ export default {
|
||||||
downloadLink: "https://pickmall.cn/download-page/index.html", //下载地址,下载app的地址
|
downloadLink: "https://pickmall.cn/download-page/index.html", //下载地址,下载app的地址
|
||||||
shareLink: "https://m-b2b2c.pickmall.cn", //分享地址,也就是在h5中默认的复制地址
|
shareLink: "https://m-b2b2c.pickmall.cn", //分享地址,也就是在h5中默认的复制地址
|
||||||
appid: "wx6f10f29075dc1b0b", //小程序唯一凭证,即 AppID,可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态)
|
appid: "wx6f10f29075dc1b0b", //小程序唯一凭证,即 AppID,可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态)
|
||||||
appSecret: "6dfbe0c72380dce5d49d65b3c91059b1", //可在 manifest.json 查看
|
aMapKey: "d649892b3937a5ad20b76dacb2bcb5bd", //在高德中申请Web服务key
|
||||||
aMapKey: "d649892b3937a5ad20b76dacb2bcb5bd", //在高德中申请web端key
|
|
||||||
scanAuthNavigation:['https://m-b2b2c.pickmall.cn/'], //扫码认证跳转域名配置 会根据此处配置的路由进行跳转
|
scanAuthNavigation:['https://m-b2b2c.pickmall.cn/'], //扫码认证跳转域名配置 会根据此处配置的路由进行跳转
|
||||||
iosAppId:"id1564638363", //AppStore的应用地址id 具体在分享->拷贝链接中查看
|
iosAppId:"id1564638363", //AppStore的应用地址id 具体在分享->拷贝链接中查看
|
||||||
logo:"https://lilishop-oss.oss-cn-beijing.aliyuncs.com/4c864e133c2944efad1f7282ac8a3b9e.png", //logo地址
|
logo:"https://lilishop-oss.oss-cn-beijing.aliyuncs.com/4c864e133c2944efad1f7282ac8a3b9e.png", //logo地址
|
||||||
customerServiceMobile:"13161366885", //客服电话
|
customerServiceMobile:"13161366885", //客服电话
|
||||||
customerServiceEmail:"lili@lili.com" //客服邮箱
|
customerServiceEmail:"lili@lili.com", //客服邮箱
|
||||||
|
imWebSrc:"https://im.pickmall.cn" //IM地址
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
"name" : "lili商城",
|
"name" : "lili商城",
|
||||||
"appid" : "__UNI__C100675",
|
"appid" : "__UNI__83F0C3D",
|
||||||
"description" : "",
|
"description" : "",
|
||||||
"versionName" : "4.2.4",
|
"versionName" : "4.2.5",
|
||||||
"versionCode" : 4000240,
|
"versionCode" : 4000250,
|
||||||
"transformPx" : false,
|
"transformPx" : false,
|
||||||
"app-plus" : {
|
"app-plus" : {
|
||||||
"compatible" : {
|
"compatible" : {
|
||||||
|
|
13
pages.json
13
pages.json
|
@ -14,7 +14,18 @@
|
||||||
"enablePullDownRefresh":true
|
"enablePullDownRefresh":true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path":"pages/tabbar/screen/fullScreen",
|
||||||
|
"style": {
|
||||||
|
"navigationStyle": "custom", // 隐藏系统导航栏
|
||||||
|
"app-plus":{
|
||||||
|
"animationType": "fade-in", // 设置fade-in淡入动画,为最合理的动画类型
|
||||||
|
"background": "transparent", // 背景透明
|
||||||
|
"backgroundColor": "rgba(0,0,0,0)", // 背景透明
|
||||||
|
"popGesture": "none" // 关闭IOS屏幕左边滑动关闭当前页面的功能
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/tabbar/cart/cartList",
|
"path": "pages/tabbar/cart/cartList",
|
||||||
"style": {
|
"style": {
|
||||||
|
|
|
@ -227,12 +227,17 @@
|
||||||
// 客户端类型 APP/NATIVE/JSAPI/H5
|
// 客户端类型 APP/NATIVE/JSAPI/H5
|
||||||
const paymentClient = this.paymentClient;
|
const paymentClient = this.paymentClient;
|
||||||
|
|
||||||
|
uni.showLoading({
|
||||||
|
title: "正在唤起支付...",
|
||||||
|
mask:true
|
||||||
|
});
|
||||||
|
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
//APP pay
|
//APP pay
|
||||||
// 初始化支付签名
|
// 初始化支付签名
|
||||||
await API_Trade.initiatePay(paymentMethod, paymentClient, params).then(
|
await API_Trade.initiatePay(paymentMethod, paymentClient, params).then(
|
||||||
(signXml) => {
|
(signXml) => {
|
||||||
|
uni.hideLoading();
|
||||||
//如果支付异常
|
//如果支付异常
|
||||||
if (!signXml.data.success) {
|
if (!signXml.data.success) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
|
@ -245,19 +250,24 @@
|
||||||
let payForm = signXml.data.result;
|
let payForm = signXml.data.result;
|
||||||
|
|
||||||
let paymentType = paymentMethod === "WECHAT" ? "wxpay" : "alipay";
|
let paymentType = paymentMethod === "WECHAT" ? "wxpay" : "alipay";
|
||||||
uni.requestPayment({
|
|
||||||
provider: paymentType,
|
if(paymentMethod === "WALLET"){
|
||||||
orderInfo: payForm,
|
uni.showToast({
|
||||||
success: (e) => {
|
icon: "none",
|
||||||
console.log(e);
|
title: "支付成功!",
|
||||||
|
});
|
||||||
|
this.callback(paymentMethod)
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
uni.requestPayment({
|
||||||
|
provider: paymentType,
|
||||||
|
orderInfo: payForm || '',
|
||||||
|
success: (e) => {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
icon: "none",
|
icon: "none",
|
||||||
title: "支付成功!",
|
title: "支付成功!",
|
||||||
});
|
});
|
||||||
|
|
||||||
this.callback(paymentMethod)
|
this.callback(paymentMethod)
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
fail: (e) => {
|
fail: (e) => {
|
||||||
console.log(this);
|
console.log(this);
|
||||||
|
@ -269,6 +279,7 @@
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
);
|
);
|
||||||
//APP pay
|
//APP pay
|
||||||
// #endif
|
// #endif
|
||||||
|
|
|
@ -68,6 +68,8 @@ export default {
|
||||||
params: {
|
params: {
|
||||||
pageNumber: 1,
|
pageNumber: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
order: "desc",
|
||||||
|
sort: "updateTime",
|
||||||
},
|
},
|
||||||
|
|
||||||
trackList: [], //足迹列表
|
trackList: [], //足迹列表
|
||||||
|
|
|
@ -11,11 +11,11 @@
|
||||||
<u-row class="portrait-box2">
|
<u-row class="portrait-box2">
|
||||||
<u-col span="6" class="portrait-box2-col" :gutter="16">
|
<u-col span="6" class="portrait-box2-col" :gutter="16">
|
||||||
<text>累计获得:</text>
|
<text>累计获得:</text>
|
||||||
<text class="pcolor">{{ pointData.point || 0 }}</text>
|
<text class="pcolor">{{ pointData.totalPoint || 0 }}</text>
|
||||||
</u-col>
|
</u-col>
|
||||||
<u-col span="6" class="portrait-box2-col">
|
<u-col span="6" class="portrait-box2-col">
|
||||||
<text>未使用:</text>
|
<text>剩余积分:</text>
|
||||||
<text class="pcolor">{{ pointData.variablePoint || 0 }}</text>
|
<text class="pcolor">{{ pointData.point || 0 }}</text>
|
||||||
</u-col>
|
</u-col>
|
||||||
</u-row>
|
</u-row>
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,8 @@
|
||||||
@clear="submitSearchOrderList(current)"
|
@clear="submitSearchOrderList(current)"
|
||||||
@custom="submitSearchOrderList(current)"
|
@custom="submitSearchOrderList(current)"
|
||||||
v-model="orderSn"
|
v-model="orderSn"
|
||||||
></u-search>
|
>
|
||||||
|
</u-search>
|
||||||
</div>
|
</div>
|
||||||
<scroll-view class="body-view" scroll-y @scrolltolower="renderDate">
|
<scroll-view class="body-view" scroll-y @scrolltolower="renderDate">
|
||||||
<view
|
<view
|
||||||
|
@ -60,79 +61,78 @@
|
||||||
<view>x{{ sku.num }}</view>
|
<view>x{{ sku.num }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="btn-view u-flex u-row-between">
|
|
||||||
<view class="description">
|
<view class="description">
|
||||||
<!-- 售后申请 -->
|
<!-- 售后申请 -->
|
||||||
|
<view v-if="current === 0 && order.groupAfterSaleStatus">
|
||||||
<view
|
<view
|
||||||
v-if="
|
v-if="order.groupAfterSaleStatus.includes('ALREADY_APPLIED')"
|
||||||
current === 0 &&
|
class="cannot_apply not_center"
|
||||||
order.groupAfterSaleStatus &&
|
|
||||||
order.groupAfterSaleStatus.includes('ALREADY_APPLIED')
|
|
||||||
"
|
|
||||||
class="cannot_apply"
|
|
||||||
>
|
>
|
||||||
<u-icon class="icon" name="info-circle-fill"></u-icon>
|
<u-icon class="icon" name="info-circle-fill"></u-icon>
|
||||||
该商品已申请售后服务
|
该商品已申请售后服务
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-if="current === 0 && order.groupAfterSaleStatus">
|
||||||
<view
|
<view
|
||||||
class="cannot_apply"
|
v-if="order.groupAfterSaleStatus.includes('EXPIRED')"
|
||||||
v-if="
|
class="cannot_apply not_center"
|
||||||
current === 0 &&
|
|
||||||
order.groupAfterSaleStatus &&
|
|
||||||
order.groupAfterSaleStatus.includes('EXPIRED')
|
|
||||||
"
|
|
||||||
@click="tipsShow = true"
|
@click="tipsShow = true"
|
||||||
>
|
>
|
||||||
<u-icon class="icon" name="info-circle-fill"></u-icon>
|
<u-icon class="icon" name="info-circle-fill"></u-icon>
|
||||||
该商品无法申请售后
|
该商品无法申请售后
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
<div v-if="current === 1 || current === 2">
|
<div v-if="current === 1 || current === 2">
|
||||||
<!-- 申请中 -->
|
<!-- 申请中 -->
|
||||||
<view
|
<view
|
||||||
class="cannot_apply"
|
class="cannot_apply not_center"
|
||||||
v-if="order.serviceType == 'RETURN_GOODS'"
|
v-if="order.serviceType == 'RETURN_GOODS'"
|
||||||
>
|
>
|
||||||
退货处理-{{ order.serviceStatus | serviceStatusList }}</view
|
退货处理-{{ order.serviceStatus | serviceStatusList }}</view
|
||||||
>
|
>
|
||||||
<view
|
<view
|
||||||
class="cannot_apply"
|
class="cannot_apply not_center"
|
||||||
v-if="order.serviceType == 'SUPPLY_AGAIN_GOODS'"
|
v-if="order.serviceType == 'SUPPLY_AGAIN_GOODS'"
|
||||||
>
|
>
|
||||||
补发商品-{{ order.serviceStatus | serviceStatusList }}</view
|
补发商品-{{ order.serviceStatus | serviceStatusList }}</view
|
||||||
>
|
>
|
||||||
<view
|
<view
|
||||||
class="cannot_apply"
|
class="cannot_apply not_center"
|
||||||
v-if="order.serviceType == 'RETURN_MONEY'"
|
v-if="order.serviceType == 'RETURN_MONEY'"
|
||||||
>
|
>
|
||||||
退款-{{ order.serviceStatus | serviceStatusList }}</view
|
退款-{{ order.serviceStatus | serviceStatusList }}</view
|
||||||
>
|
>
|
||||||
<view
|
<view
|
||||||
class="cannot_apply"
|
class="cannot_apply not_center"
|
||||||
v-if="order.serviceType == 'EXCHANGE_GOODS'"
|
v-if="order.serviceType == 'EXCHANGE_GOODS'"
|
||||||
>
|
>
|
||||||
换货-{{ order.serviceStatus | serviceStatusList }}</view
|
换货-{{ order.serviceStatus | serviceStatusList }}</view
|
||||||
>
|
>
|
||||||
<view class="cannot_apply" v-if="order.serviceType == 'CANCEL'">
|
<view
|
||||||
|
class="cannot_apply not_center"
|
||||||
|
v-if="order.serviceType == 'CANCEL'"
|
||||||
|
>
|
||||||
取消订单-{{ order.serviceStatus | serviceStatusList }}</view
|
取消订单-{{ order.serviceStatus | serviceStatusList }}</view
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 申请记录 -->
|
<!-- 申请记录 -->
|
||||||
</view>
|
</view>
|
||||||
|
<view class="btn-view u-flex u-row-right">
|
||||||
<!-- 售后申请 -->
|
<!-- 售后申请 -->
|
||||||
|
|
||||||
|
<div class="sale" v-if="current === 0 && sku.afterSaleStatus">
|
||||||
<div
|
<div
|
||||||
v-if="
|
v-if="
|
||||||
current === 0 &&
|
sku.afterSaleStatus.includes('NOT_APPLIED') ||
|
||||||
sku.afterSaleStatus &&
|
sku.afterSaleStatus.includes('PART_AFTER_SALE')
|
||||||
(sku.afterSaleStatus.includes('NOT_APPLIED') ||
|
|
||||||
sku.afterSaleStatus.includes('PART_AFTER_SALE'))
|
|
||||||
"
|
"
|
||||||
@click="applyService(sku.sn, order, sku)"
|
@click="applyService(sku.sn, order, sku)"
|
||||||
class="sale"
|
|
||||||
>
|
>
|
||||||
<view class="default-btn border"> 申请售后 </view>
|
<view class="default-btn border"> 申请售后 </view>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<view class="after-line">
|
<view class="after-line">
|
||||||
<!-- 申请中 -->
|
<!-- 申请中 -->
|
||||||
<view
|
<view
|
||||||
|
@ -229,7 +229,7 @@ export default {
|
||||||
pageNumber: 1,
|
pageNumber: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
sort: "createTime",
|
sort: "createTime",
|
||||||
flowPrice: 1,
|
flowPrice: 0,
|
||||||
order: "desc",
|
order: "desc",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -404,6 +404,10 @@ export default {
|
||||||
*/
|
*/
|
||||||
onExpress(order, sku) {
|
onExpress(order, sku) {
|
||||||
sku.storeName = order.storeName;
|
sku.storeName = order.storeName;
|
||||||
|
let data = {
|
||||||
|
...order,
|
||||||
|
...sku,
|
||||||
|
};
|
||||||
|
|
||||||
storage.setAfterSaleData(data);
|
storage.setAfterSaleData(data);
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
|
@ -458,31 +462,38 @@ page,
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
height: calc(100vh - 44px - 80rpx - 104rpx);
|
height: calc(100vh - 44px - 80rpx - 104rpx);
|
||||||
}
|
}
|
||||||
|
|
||||||
.u-tabs-search {
|
.u-tabs-search {
|
||||||
padding: 20rpx;
|
padding: 20rpx;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.countMoney {
|
.countMoney {
|
||||||
margin-left: 7rpx;
|
margin-left: 7rpx;
|
||||||
color: $main-color;
|
color: $main-color;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.seller-view {
|
.seller-view {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
margin: 20rpx 0rpx;
|
margin: 20rpx 0rpx;
|
||||||
padding: 0rpx 20rpx;
|
padding: 0rpx 20rpx;
|
||||||
border-radius: 20rpx;
|
border-radius: 20rpx;
|
||||||
|
|
||||||
.seller-info {
|
.seller-info {
|
||||||
height: 70rpx;
|
height: 70rpx;
|
||||||
|
|
||||||
.seller-name {
|
.seller-name {
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
|
||||||
.name {
|
.name {
|
||||||
margin-left: 15rpx;
|
margin-left: 15rpx;
|
||||||
margin-top: -2rpx;
|
margin-top: -2rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.order-sn {
|
.order-sn {
|
||||||
font-size: 22rpx;
|
font-size: 22rpx;
|
||||||
color: #909399;
|
color: #909399;
|
||||||
|
@ -526,6 +537,7 @@ page,
|
||||||
color: $main-color;
|
color: $main-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-view {
|
.btn-view {
|
||||||
padding: 16rpx 0;
|
padding: 16rpx 0;
|
||||||
|
|
||||||
|
@ -535,10 +547,12 @@ page,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.description {
|
.description {
|
||||||
color: #909399;
|
color: #909399;
|
||||||
size: 25rpx;
|
size: 25rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cannot_apply {
|
.cannot_apply {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 22rpx;
|
font-size: 22rpx;
|
||||||
|
@ -547,6 +561,10 @@ page,
|
||||||
height: 70rpx;
|
height: 70rpx;
|
||||||
line-height: 70rpx;
|
line-height: 70rpx;
|
||||||
}
|
}
|
||||||
|
.not_center {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
margin-right: 10rpx;
|
margin-right: 10rpx;
|
||||||
}
|
}
|
||||||
|
@ -556,6 +574,7 @@ page,
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
.default-btn {
|
.default-btn {
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
margin-left: 15rpx;
|
margin-left: 15rpx;
|
||||||
|
@ -566,9 +585,11 @@ page,
|
||||||
padding: 0 24rpx;
|
padding: 0 24rpx;
|
||||||
border-radius: 200px;
|
border-radius: 200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.close {
|
.close {
|
||||||
color: $light-color;
|
color: $light-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
.border {
|
.border {
|
||||||
border: 2rpx solid $light-color;
|
border: 2rpx solid $light-color;
|
||||||
color: $light-color;
|
color: $light-color;
|
||||||
|
|
|
@ -10,7 +10,10 @@
|
||||||
<!-- 省市区 -->
|
<!-- 省市区 -->
|
||||||
<div class="flex flex-a-c">
|
<div class="flex flex-a-c">
|
||||||
<span class="default" v-if="address.isDefault">默认</span>
|
<span class="default" v-if="address.isDefault">默认</span>
|
||||||
<div class="address-list" v-if="address.consigneeAddressPath.length != 0">
|
<div
|
||||||
|
class="address-list"
|
||||||
|
v-if="address.consigneeAddressPath.length != 0"
|
||||||
|
>
|
||||||
<span
|
<span
|
||||||
class="address-item"
|
class="address-item"
|
||||||
v-for="(item, index) in address.consigneeAddressPath"
|
v-for="(item, index) in address.consigneeAddressPath"
|
||||||
|
@ -89,14 +92,23 @@
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 店铺商品信息 -->
|
<!-- 店铺商品信息 -->
|
||||||
<div class="box box2" v-for="(item, index) in orderMessage.cartList" :key="index">
|
<div
|
||||||
|
class="box box2"
|
||||||
|
v-for="(item, index) in orderMessage.cartList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<div v-if="item.checked">
|
||||||
<div @click="navigateToStore(item)">
|
<div @click="navigateToStore(item)">
|
||||||
<div class="store-name">
|
<div class="store-name">
|
||||||
<span>{{ item.storeName }}</span>
|
<span>{{ item.storeName }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="promotionNotice">{{ item.promotionNotice || "" }}</div>
|
<div class="promotionNotice">{{ item.promotionNotice || "" }}</div>
|
||||||
<div class="flex goods-item" v-for="(val, i) in item.skuList" :key="i">
|
<div
|
||||||
|
class="flex goods-item"
|
||||||
|
v-for="(val, i) in item.checkedSkuList"
|
||||||
|
:key="i"
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
class="goods-image"
|
class="goods-image"
|
||||||
@click="
|
@click="
|
||||||
|
@ -134,16 +146,24 @@
|
||||||
</div>
|
</div>
|
||||||
<p class="goods-prices">
|
<p class="goods-prices">
|
||||||
<span>¥</span>
|
<span>¥</span>
|
||||||
<span class="goods-price">{{ formatPrice(val.goodsSku.price)[0] }}</span>
|
<span class="goods-price">{{
|
||||||
|
formatPrice(val.goodsSku.price)[0]
|
||||||
|
}}</span>
|
||||||
<span>.{{ formatPrice(val.goodsSku.price)[1] }}</span>
|
<span>.{{ formatPrice(val.goodsSku.price)[1] }}</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<u-row>
|
<u-row>
|
||||||
<u-col :offset="0" :span="4">发票信息</u-col>
|
<u-col :offset="0" :span="4">发票信息</u-col>
|
||||||
<u-col :span="8" class="tipsColor" textAlign="right" @click.native="invoice()">
|
<u-col
|
||||||
|
:span="8"
|
||||||
|
class="tipsColor"
|
||||||
|
textAlign="right"
|
||||||
|
@click.native="invoice()"
|
||||||
|
>
|
||||||
<span v-if="receiptList"
|
<span v-if="receiptList"
|
||||||
>{{ receiptList.receiptTitle }} - {{ receiptList.receiptContent }}</span
|
>{{ receiptList.receiptTitle }} -
|
||||||
|
{{ receiptList.receiptContent }}</span
|
||||||
>
|
>
|
||||||
<span v-else>不开发票</span>
|
<span v-else>不开发票</span>
|
||||||
</u-col>
|
</u-col>
|
||||||
|
@ -170,7 +190,9 @@
|
||||||
</u-col>
|
</u-col>
|
||||||
</u-row>
|
</u-row>
|
||||||
<u-row>
|
<u-row>
|
||||||
<u-col :offset="0" :span="4" class="tl" style="text-align: left">备注信息</u-col>
|
<u-col :offset="0" :span="4" class="tl" style="text-align: left"
|
||||||
|
>备注信息</u-col
|
||||||
|
>
|
||||||
<u-col :span="8" textAlign="right">
|
<u-col :span="8" textAlign="right">
|
||||||
<u-input
|
<u-input
|
||||||
style="text-align: right"
|
style="text-align: right"
|
||||||
|
@ -180,9 +202,14 @@
|
||||||
</u-col>
|
</u-col>
|
||||||
</u-row>
|
</u-row>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- 发票信息 -->
|
<!-- 发票信息 -->
|
||||||
<invoices :res="receiptList" @callbackInvoice="callbackInvoice" v-if="invoiceFlag" />
|
<invoices
|
||||||
|
:res="receiptList"
|
||||||
|
@callbackInvoice="callbackInvoice"
|
||||||
|
v-if="invoiceFlag"
|
||||||
|
/>
|
||||||
<u-select v-model="shippingFlag" :list="shippingMethod"></u-select>
|
<u-select v-model="shippingFlag" :list="shippingMethod"></u-select>
|
||||||
|
|
||||||
<div class="box box5" v-if="orderMessage.priceDetailDTO">
|
<div class="box box5" v-if="orderMessage.priceDetailDTO">
|
||||||
|
@ -190,22 +217,30 @@
|
||||||
<u-row>
|
<u-row>
|
||||||
<u-col :span="9">商品合计</u-col>
|
<u-col :span="9">商品合计</u-col>
|
||||||
<u-col :span="3" textAlign="right">
|
<u-col :span="3" textAlign="right">
|
||||||
<span>¥{{ orderMessage.priceDetailDTO.goodsPrice | unitPrice }}</span>
|
<span
|
||||||
|
>¥{{ orderMessage.priceDetailDTO.goodsPrice | unitPrice }}</span
|
||||||
|
>
|
||||||
</u-col>
|
</u-col>
|
||||||
</u-row>
|
</u-row>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<u-row>
|
<u-row>
|
||||||
<u-col v-if="orderMessage.cartTypeEnum != 'VIRTUAL'" :span="7">运费</u-col>
|
<u-col v-if="orderMessage.cartTypeEnum != 'VIRTUAL'" :span="7"
|
||||||
|
>运费</u-col
|
||||||
|
>
|
||||||
<u-col
|
<u-col
|
||||||
v-if="orderMessage.cartTypeEnum != 'VIRTUAL'"
|
v-if="orderMessage.cartTypeEnum != 'VIRTUAL'"
|
||||||
:span="5"
|
:span="5"
|
||||||
class="tr tipsColor"
|
class="tr tipsColor"
|
||||||
textAlign="right"
|
textAlign="right"
|
||||||
>
|
>
|
||||||
<span v-if="orderMessage.priceDetailDTO.freightPrice == 0">包邮</span>
|
<span v-if="orderMessage.priceDetailDTO.freightPrice == 0"
|
||||||
|
>包邮</span
|
||||||
|
>
|
||||||
<span v-else
|
<span v-else
|
||||||
>¥{{ orderMessage.priceDetailDTO.freightPrice | unitPrice }}</span
|
>¥{{
|
||||||
|
orderMessage.priceDetailDTO.freightPrice | unitPrice
|
||||||
|
}}</span
|
||||||
>
|
>
|
||||||
</u-col>
|
</u-col>
|
||||||
</u-row>
|
</u-row>
|
||||||
|
@ -215,7 +250,10 @@
|
||||||
|
|
||||||
<u-col
|
<u-col
|
||||||
:span="3"
|
:span="3"
|
||||||
v-if="orderMessage.priceDetailDTO && orderMessage.priceDetailDTO.couponPrice"
|
v-if="
|
||||||
|
orderMessage.priceDetailDTO &&
|
||||||
|
orderMessage.priceDetailDTO.couponPrice
|
||||||
|
"
|
||||||
textAlign="right"
|
textAlign="right"
|
||||||
@click="GET_Discount()"
|
@click="GET_Discount()"
|
||||||
>
|
>
|
||||||
|
@ -249,7 +287,9 @@
|
||||||
<u-col :span="6">活动优惠</u-col>
|
<u-col :span="6">活动优惠</u-col>
|
||||||
<u-col :span="6" class="tr tipsColor" textAlign="right">
|
<u-col :span="6" class="tr tipsColor" textAlign="right">
|
||||||
<span v-if="orderMessage.priceDetailDTO.discountPrice"
|
<span v-if="orderMessage.priceDetailDTO.discountPrice"
|
||||||
>-¥{{ orderMessage.priceDetailDTO.discountPrice | unitPrice }}</span
|
>-¥{{
|
||||||
|
orderMessage.priceDetailDTO.discountPrice | unitPrice
|
||||||
|
}}</span
|
||||||
>
|
>
|
||||||
<span v-else>0.00</span>
|
<span v-else>0.00</span>
|
||||||
</u-col>
|
</u-col>
|
||||||
|
@ -277,7 +317,9 @@
|
||||||
<span class="price">{{
|
<span class="price">{{
|
||||||
formatPrice(orderMessage.priceDetailDTO.flowPrice)[0]
|
formatPrice(orderMessage.priceDetailDTO.flowPrice)[0]
|
||||||
}}</span>
|
}}</span>
|
||||||
<span>.{{ formatPrice(orderMessage.priceDetailDTO.flowPrice)[1] }} </span>
|
<span
|
||||||
|
>.{{ formatPrice(orderMessage.priceDetailDTO.flowPrice)[1] }}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<span v-else class="number"
|
<span v-else class="number"
|
||||||
><span style="margin-right: 10rpx">{{
|
><span style="margin-right: 10rpx">{{
|
||||||
|
@ -448,7 +490,9 @@ export default {
|
||||||
this.navigateTo(
|
this.navigateTo(
|
||||||
`/pages/mine/address/address?from=cart&way=${
|
`/pages/mine/address/address?from=cart&way=${
|
||||||
this.routerVal.way
|
this.routerVal.way
|
||||||
}&parentOrder=${encodeURIComponent(JSON.stringify(this.routerVal.parentOrder))}`
|
}&parentOrder=${encodeURIComponent(
|
||||||
|
JSON.stringify(this.routerVal.parentOrder)
|
||||||
|
)}`
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -483,9 +527,11 @@ export default {
|
||||||
this.orderMessage.storeCoupons &&
|
this.orderMessage.storeCoupons &&
|
||||||
Object.keys(this.orderMessage.storeCoupons)[0]
|
Object.keys(this.orderMessage.storeCoupons)[0]
|
||||||
) {
|
) {
|
||||||
let storeMemberCouponsId = Object.keys(this.orderMessage.storeCoupons)[0];
|
let storeMemberCouponsId = Object.keys(
|
||||||
let storeCouponId = this.orderMessage.storeCoupons[storeMemberCouponsId]
|
this.orderMessage.storeCoupons
|
||||||
.memberCoupon.id;
|
)[0];
|
||||||
|
let storeCouponId =
|
||||||
|
this.orderMessage.storeCoupons[storeMemberCouponsId].memberCoupon.id;
|
||||||
selectedCoupon.push(storeCouponId);
|
selectedCoupon.push(storeCouponId);
|
||||||
}
|
}
|
||||||
this.orderMessage.cartList.forEach((item) => {
|
this.orderMessage.cartList.forEach((item) => {
|
||||||
|
@ -608,9 +654,8 @@ export default {
|
||||||
// 如果没有商品选择地址的话 则选择 默认地址
|
// 如果没有商品选择地址的话 则选择 默认地址
|
||||||
API_Address.getAddressDefault().then((res) => {
|
API_Address.getAddressDefault().then((res) => {
|
||||||
if (res.data.result) {
|
if (res.data.result) {
|
||||||
res.data.result.consigneeAddressPath = res.data.result.consigneeAddressPath.split(
|
res.data.result.consigneeAddressPath =
|
||||||
","
|
res.data.result.consigneeAddressPath.split(",");
|
||||||
);
|
|
||||||
this.address = res.data.result;
|
this.address = res.data.result;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -621,6 +666,14 @@ export default {
|
||||||
this.notSupportFreight = [];
|
this.notSupportFreight = [];
|
||||||
// 获取结算参数
|
// 获取结算参数
|
||||||
API_Trade.getCheckoutParams(this.routerVal.way).then((res) => {
|
API_Trade.getCheckoutParams(this.routerVal.way).then((res) => {
|
||||||
|
if (
|
||||||
|
!res.data.result.checkedSkuList ||
|
||||||
|
res.data.result.checkedSkuList.length === 0
|
||||||
|
) {
|
||||||
|
uni.switchTab({
|
||||||
|
url: "/pages/tabbar/cart/cartList",
|
||||||
|
});
|
||||||
|
}
|
||||||
if (res.data.result.skuList.length <= 0) {
|
if (res.data.result.skuList.length <= 0) {
|
||||||
uni.redirectTo({
|
uni.redirectTo({
|
||||||
url: "/pages/order/myOrder?status=0",
|
url: "/pages/order/myOrder?status=0",
|
||||||
|
@ -645,9 +698,8 @@ export default {
|
||||||
this.getUserAddress();
|
this.getUserAddress();
|
||||||
} else {
|
} else {
|
||||||
this.address = res.data.result.memberAddress;
|
this.address = res.data.result.memberAddress;
|
||||||
res.data.result.memberAddress.consigneeAddressPath = res.data.result.memberAddress.consigneeAddressPath.split(
|
res.data.result.memberAddress.consigneeAddressPath =
|
||||||
","
|
res.data.result.memberAddress.consigneeAddressPath.split(",");
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
|
|
|
@ -139,7 +139,7 @@
|
||||||
shape="circle"
|
shape="circle"
|
||||||
class="cancel-btn"
|
class="cancel-btn"
|
||||||
size="mini"
|
size="mini"
|
||||||
v-if="order.groupAfterSaleStatus.includes('NOT_APPLIED')"
|
v-if="order.groupAfterSaleStatus && order.groupAfterSaleStatus.includes('NOT_APPLIED')"
|
||||||
@click="applyService(order)"
|
@click="applyService(order)"
|
||||||
>
|
>
|
||||||
退款/售后
|
退款/售后
|
||||||
|
@ -323,7 +323,7 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
this.initData(0);
|
this.initData(0);
|
||||||
}
|
}
|
||||||
this.loadData(this.status);
|
// this.loadData(this.status);
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
if (this.tabCurrentIndex) {
|
if (this.tabCurrentIndex) {
|
||||||
|
@ -331,7 +331,7 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
this.initData(0);
|
this.initData(0);
|
||||||
}
|
}
|
||||||
this.loadData(this.status);
|
// this.loadData(this.status);
|
||||||
},
|
},
|
||||||
|
|
||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
|
@ -342,9 +342,9 @@ export default {
|
||||||
let status = Number(options.status);
|
let status = Number(options.status);
|
||||||
this.status = status;
|
this.status = status;
|
||||||
this.tabCurrentIndex = status;
|
this.tabCurrentIndex = status;
|
||||||
if (status == 0) {
|
// if (status == 0) {
|
||||||
this.loadData(status);
|
// this.loadData(status);
|
||||||
}
|
// }
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
|
|
|
@ -382,7 +382,6 @@ import popupGoods from "@/components/m-buy/goods"; //购物车商品的模块
|
||||||
import popupAddress from "./product/popup/address"; //地址选择模块
|
import popupAddress from "./product/popup/address"; //地址选择模块
|
||||||
import shares from "@/components/m-share/index"; //分享
|
import shares from "@/components/m-share/index"; //分享
|
||||||
import popups from "@/components/popups/popups"; //气泡框
|
import popups from "@/components/popups/popups"; //气泡框
|
||||||
|
|
||||||
import setup from "./product/popup/popup";
|
import setup from "./product/popup/popup";
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -528,6 +527,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
|
// udesk IM
|
||||||
IM() {
|
IM() {
|
||||||
return this.IMLink + this.storeDetail.merchantEuid;
|
return this.IMLink + this.storeDetail.merchantEuid;
|
||||||
},
|
},
|
||||||
|
@ -708,40 +708,49 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
linkMsgDetail() {
|
linkMsgDetail() {
|
||||||
if (this.storeDetail.merchantEuid) {
|
// lili 基础客服
|
||||||
|
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: `/pages/tabbar/home/web-view?src=${this.IM}`,
|
url: `/pages/tabbar/home/web-view?IM=${this.storeDetail.storeId}`,
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
// 客服
|
// udesk 代码
|
||||||
// #ifdef MP-WEIXIN
|
// if (this.storeDetail.merchantEuid) {
|
||||||
const params = {
|
// uni.navigateTo({
|
||||||
storeName: this.storeDetail.storeName,
|
// url: `/pages/tabbar/home/web-view?src=${this.IM}`,
|
||||||
goodsName: this.goodsDetail.goodsName,
|
// });
|
||||||
goodsId: this.goodsDetail.goodsId,
|
// }
|
||||||
goodsImg: this.goodsDetail.thumbnail,
|
|
||||||
price: this.goodsDetail.promotionPrice || this.goodsDetail.price,
|
|
||||||
// originalPrice: this.goodsDetail.original || this.goodsDetail.price,
|
// 客服 云智服代码
|
||||||
uuid: storage.getUuid(),
|
// // #ifdef MP-WEIXIN
|
||||||
token: storage.getAccessToken(),
|
// const params = {
|
||||||
sign: this.storeDetail.yzfSign,
|
// storeName: this.storeDetail.storeName,
|
||||||
mpSign: this.storeDetail.yzfMpSign,
|
// goodsName: this.goodsDetail.goodsName,
|
||||||
};
|
// goodsId: this.goodsDetail.goodsId,
|
||||||
uni.navigateTo({
|
// goodsImg: this.goodsDetail.thumbnail,
|
||||||
url:
|
// price: this.goodsDetail.promotionPrice || this.goodsDetail.price,
|
||||||
"/pages/product/customerservice/index?params=" +
|
// // originalPrice: this.goodsDetail.original || this.goodsDetail.price,
|
||||||
encodeURIComponent(JSON.stringify(params)),
|
// uuid: storage.getUuid(),
|
||||||
});
|
// token: storage.getAccessToken(),
|
||||||
// #endif
|
// sign: this.storeDetail.yzfSign,
|
||||||
// #ifndef MP-WEIXIN
|
// mpSign: this.storeDetail.yzfMpSign,
|
||||||
const sign = this.storeDetail.yzfSign;
|
// };
|
||||||
uni.navigateTo({
|
// uni.navigateTo({
|
||||||
url:
|
// url:
|
||||||
"/pages/tabbar/home/web-view?src=https://yzf.qq.com/xv/web/static/chat/index.html?sign=" +
|
// "/pages/product/customerservice/index?params=" +
|
||||||
sign,
|
// encodeURIComponent(JSON.stringify(params)),
|
||||||
});
|
// });
|
||||||
// #endif
|
// // #endif
|
||||||
}
|
// // #ifndef MP-WEIXIN
|
||||||
|
// const sign = this.storeDetail.yzfSign;
|
||||||
|
// uni.navigateTo({
|
||||||
|
// url:
|
||||||
|
// "/pages/tabbar/home/web-view?src=https://yzf.qq.com/xv/web/static/chat/index.html?sign=" +
|
||||||
|
// sign,
|
||||||
|
// });
|
||||||
|
// // #endif
|
||||||
|
|
||||||
},
|
},
|
||||||
// 格式化金钱 1999 --> [1999,00]
|
// 格式化金钱 1999 --> [1999,00]
|
||||||
formatPrice(val) {
|
formatPrice(val) {
|
||||||
|
|
|
@ -11,15 +11,11 @@
|
||||||
<view class="text">
|
<view class="text">
|
||||||
<div class="coupon-List-title">
|
<div class="coupon-List-title">
|
||||||
<view v-if="item.scopeType">
|
<view v-if="item.scopeType">
|
||||||
<span v-if="item.scopeType == 'ALL' && item.id == 'platform'"
|
<span v-if="item.scopeType == 'ALL' && item.id == 'platform'">全平台</span>
|
||||||
>全平台</span
|
|
||||||
>
|
|
||||||
<span v-if="item.scopeType == 'PORTION_CATEGORY'">仅限品类</span>
|
<span v-if="item.scopeType == 'PORTION_CATEGORY'">仅限品类</span>
|
||||||
<view v-else
|
<view v-else>{{
|
||||||
>{{
|
|
||||||
item.storeName == "platform" ? "全平台" : item.storeName + "店铺"
|
item.storeName == "platform" ? "全平台" : item.storeName + "店铺"
|
||||||
}}使用</view
|
}}使用</view>
|
||||||
>
|
|
||||||
</view>
|
</view>
|
||||||
</div>
|
</div>
|
||||||
<div>满{{ item.consumeThreshold | unitPrice }}可用</div>
|
<div>满{{ item.consumeThreshold | unitPrice }}可用</div>
|
||||||
|
@ -31,7 +27,7 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="line"></view>
|
<view class="line"></view>
|
||||||
<view class="time">{{ item.startTime }} - {{ item.endTime }}</view>
|
<view class="time">{{ item.startTime / 1000 | unixToDate }} - {{ item.endTime / 1000 | unixToDate }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -42,7 +38,7 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
yhqFlag: [], //获取优惠券判断是否点击
|
yhqFlag: [], //获取优惠券判断是否点击
|
||||||
couponRes: {},
|
couponRes: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
@ -58,7 +54,8 @@ export default {
|
||||||
Object.keys(this.res).forEach((item) => {
|
Object.keys(this.res).forEach((item) => {
|
||||||
let key = item.split("-")[0];
|
let key = item.split("-")[0];
|
||||||
if (key === "COUPON") {
|
if (key === "COUPON") {
|
||||||
this.couponRes[item] = this?.res[item];
|
this.couponRes.push(this?.res[item]);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -84,6 +81,7 @@ export default {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
.coupon-List {
|
.coupon-List {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
@ -140,6 +138,7 @@ export default {
|
||||||
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
font-size: 50rpx;
|
font-size: 50rpx;
|
||||||
}
|
}
|
||||||
|
@ -164,6 +163,7 @@ export default {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-left: 40rpx;
|
margin-left: 40rpx;
|
||||||
|
|
||||||
text {
|
text {
|
||||||
width: 140rpx;
|
width: 140rpx;
|
||||||
height: 40rpx;
|
height: 40rpx;
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<span v-if="res[prom].freeFreightFlag">赠送包邮服务</span>
|
<span v-if="res[prom].freeFreightFlag">赠送包邮服务</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="res_prom_item" v-if="res[prom].fullRate">
|
<div class="res_prom_item" v-if="res[prom].fullRate && res[prom].fullRateFlag">
|
||||||
<u-tag text="打折" type="error"></u-tag>
|
<u-tag text="打折" type="error"></u-tag>
|
||||||
<span class="pro-text"
|
<span class="pro-text"
|
||||||
>满{{ res[prom].fullMoney }}元,立享<span class="price"
|
>满{{ res[prom].fullMoney }}元,立享<span class="price"
|
||||||
|
|
|
@ -159,7 +159,7 @@ export default {
|
||||||
let recommendLives = await getLiveList(this.recommendParams);
|
let recommendLives = await getLiveList(this.recommendParams);
|
||||||
if (recommendLives.data.success) {
|
if (recommendLives.data.success) {
|
||||||
// 推荐直播间
|
// 推荐直播间
|
||||||
if (recommendLives.data.result.records.length != 0) {
|
if (recommendLives.data.result.records.length ) {
|
||||||
this.status = "loadmore";
|
this.status = "loadmore";
|
||||||
this.recommendLives = recommendLives.data.result.records;
|
this.recommendLives = recommendLives.data.result.records;
|
||||||
} else {
|
} else {
|
||||||
|
@ -172,7 +172,7 @@ export default {
|
||||||
* 2.如果没有直播间设置一个默认图片
|
* 2.如果没有直播间设置一个默认图片
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (this.recommendLives.length == 0) {
|
if (!this.recommendLives.length) {
|
||||||
if (this.liveList[0].shareImg) {
|
if (this.liveList[0].shareImg) {
|
||||||
this.$set(this, "swiperImg", [
|
this.$set(this, "swiperImg", [
|
||||||
{
|
{
|
||||||
|
@ -199,7 +199,7 @@ export default {
|
||||||
let res = await getLiveList(this.params[this.current]);
|
let res = await getLiveList(this.params[this.current]);
|
||||||
// 直播间
|
// 直播间
|
||||||
if (res.data.success) {
|
if (res.data.success) {
|
||||||
if (res.data.result.records.length != 0) {
|
if (res.data.result.records.length ) {
|
||||||
this.status = "loadmore";
|
this.status = "loadmore";
|
||||||
this.liveList.push(...res.data.result.records);
|
this.liveList.push(...res.data.result.records);
|
||||||
} else {
|
} else {
|
||||||
|
@ -211,7 +211,7 @@ export default {
|
||||||
? (this.status = "loadmore")
|
? (this.status = "loadmore")
|
||||||
: (this.status = "noMore");
|
: (this.status = "noMore");
|
||||||
|
|
||||||
console.log(this.status);
|
|
||||||
this.liveList.forEach((item) => {
|
this.liveList.forEach((item) => {
|
||||||
if (item.roomGoodsList) {
|
if (item.roomGoodsList) {
|
||||||
item.roomGoodsList = JSON.parse(item.roomGoodsList);
|
item.roomGoodsList = JSON.parse(item.roomGoodsList);
|
||||||
|
|
|
@ -102,6 +102,14 @@ export function modelNavigateTo(item) {
|
||||||
url: `/pages/product/shopList`,
|
url: `/pages/product/shopList`,
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
case "外部链接":
|
||||||
|
// #ifdef H5
|
||||||
|
window.location.href = val.url;
|
||||||
|
// #endif
|
||||||
|
// #ifdef APP-PLUS
|
||||||
|
plus.runtime.openURL(val.url) //不需要拼接\
|
||||||
|
// #endif
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1,7 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="layout">
|
<div class="layout">
|
||||||
<div class="menu-list">
|
<div class="menu-list">
|
||||||
<div class="menu-item" @click="modelNavigateTo(item)" v-for="(item, index) in res.list" :key="index">
|
<div
|
||||||
|
class="menu-item"
|
||||||
|
@click="modelNavigateTo(item)"
|
||||||
|
v-for="(item, index) in res.list"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
<div>
|
<div>
|
||||||
<u-image
|
<u-image
|
||||||
width="88rpx"
|
width="88rpx"
|
||||||
|
@ -18,15 +23,15 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {modelNavigateTo} from './tpl'
|
import { modelNavigateTo } from "./tpl";
|
||||||
export default {
|
export default {
|
||||||
title: "五列菜单",
|
title: "五列菜单",
|
||||||
props: ["res"],
|
props: ["res"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
modelNavigateTo,
|
modelNavigateTo,
|
||||||
}
|
};
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -34,6 +39,7 @@ export default {
|
||||||
.menu-list {
|
.menu-list {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|
||||||
> .menu-item {
|
> .menu-item {
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
<template>
|
||||||
|
<div class="layout">
|
||||||
|
<div class="background">
|
||||||
|
<u-notice-bar mode="vertical" :bg-color="res.list[0].bk_color" :color="res.list[0].color" :list="list"></u-notice-bar>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
title: "公告",
|
||||||
|
props: ["res"],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
list: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.list = this.res.list[0].title.map(i => i.context);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "./tpl.scss";
|
||||||
|
.background {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 2;
|
||||||
|
width: 100%;
|
||||||
|
height: 84rpx;
|
||||||
|
text-align: left;
|
||||||
|
font-size: 20rpx;
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
.layout {
|
||||||
|
text-align: center;
|
||||||
|
position: relative;
|
||||||
|
height: 84rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
background: #ffffff;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
line-height: 84rpx;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,271 @@
|
||||||
|
<template>
|
||||||
|
<div class="layout">
|
||||||
|
<div class="join-list">
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in res.list"
|
||||||
|
:key="index"
|
||||||
|
class="join-list-item"
|
||||||
|
@click="goToDetail(item.type)"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<div class="join-title">
|
||||||
|
<div>{{ item.title }}</div>
|
||||||
|
<div
|
||||||
|
class="sub"
|
||||||
|
v-if="item.type !== 'SECKILL'"
|
||||||
|
:style="{
|
||||||
|
backgroundColor: item.bk_color,
|
||||||
|
color: item.color1,
|
||||||
|
borderColor: item.bk_color,
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
{{ item.title1 }}
|
||||||
|
</div>
|
||||||
|
<div class="sub-seckill" v-else>
|
||||||
|
<div class="sub-seckill-block flex">
|
||||||
|
<div class="sub-seckill-block-text">
|
||||||
|
{{ timeLine[0] ? timeLine[0].timeLine : "x" }}点场
|
||||||
|
</div>
|
||||||
|
{{ times.hours == "00" ? "0" : times.hours }}:{{
|
||||||
|
times.minutes
|
||||||
|
}}:{{ times.seconds }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="join-box">
|
||||||
|
<div
|
||||||
|
class="join-item"
|
||||||
|
v-for="(i, _index) in item.data"
|
||||||
|
:key="_index"
|
||||||
|
>
|
||||||
|
<div class="item-img-box">
|
||||||
|
<img
|
||||||
|
class="item-img"
|
||||||
|
:src="i.thumbnail ? i.thumbnail : i.goodsImage"
|
||||||
|
alt
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="ellipsis"
|
||||||
|
:class="{ 'max-width': res.list.length <= 1 }"
|
||||||
|
>
|
||||||
|
{{ i.goodsName ? i.goodsName : i.name }}
|
||||||
|
</div>
|
||||||
|
<div class="item-price">
|
||||||
|
<span>¥{{ i.price ? i.price : i.originalPrice }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import * as API_Promotions from "@/api/promotions";
|
||||||
|
import Foundation from "@/utils/Foundation.js";
|
||||||
|
export default {
|
||||||
|
props: ["res"],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
timeLine: "", //获取几个点活动
|
||||||
|
resTime: 0, //当前时间
|
||||||
|
time: 0, //距离下一个活动的时间值
|
||||||
|
times: {}, //时间集合
|
||||||
|
onlyOne: "", //是否最后一个商品
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
let params = {
|
||||||
|
pageNumber: 1,
|
||||||
|
pageSize: 2,
|
||||||
|
status: "START",
|
||||||
|
promotionStatus: "START",
|
||||||
|
};
|
||||||
|
this._setTimeInterval = setInterval(() => {
|
||||||
|
if (this.time <= 0) {
|
||||||
|
clearInterval(this._setTimeInterval);
|
||||||
|
} else {
|
||||||
|
this.times = Foundation.countTimeDown(this.time);
|
||||||
|
this.time--;
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
this.res.list.forEach((ele) => {
|
||||||
|
switch (ele.type) {
|
||||||
|
case "PINTUAN":
|
||||||
|
API_Promotions.getAssembleList(params).then((response) => {
|
||||||
|
const data = response.data.result.records;
|
||||||
|
if (data) {
|
||||||
|
ele.data = data;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "SECKILL":
|
||||||
|
API_Promotions.getSeckillTimeLine().then((response) => {
|
||||||
|
if (response.data.success && response.data.result) {
|
||||||
|
ele.data = response.data.result[0].seckillGoodsList.slice(0, 2);
|
||||||
|
let timeLine = response.data.result.sort(
|
||||||
|
(x, y) => Number(x.timeLine) - Number(y.timeLine)
|
||||||
|
);
|
||||||
|
this.timeLine = timeLine.slice(0, 5);
|
||||||
|
this.resTime = parseInt(new Date().getTime() / 1000);
|
||||||
|
this.onlyOne = response.data.result.length === 1;
|
||||||
|
this.diffTime = parseInt(new Date().getTime() / 1000) - this.resTime;
|
||||||
|
|
||||||
|
this.time =
|
||||||
|
this.timeLine[0].distanceStartTime ||
|
||||||
|
(this.timeLine[1] && this.timeLine[1].distanceStartTime) ||
|
||||||
|
Foundation.theNextDayTime() - this.diffTime;
|
||||||
|
this.times = Foundation.countTimeDown(this.time);
|
||||||
|
console.log(this.timeLine);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "LIVE":
|
||||||
|
API_Promotions.getLiveList(params).then((response) => {
|
||||||
|
if (response.success && response.result.records) {
|
||||||
|
ele.data = response.result.records[0].commodityList.slice(0, 2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "KANJIA":
|
||||||
|
API_Promotions.getBargainList(params).then((response) => {
|
||||||
|
if (response.success && response.result) {
|
||||||
|
ele.data = response.result.records(0, 2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//跳转详情
|
||||||
|
goToDetail(type) {
|
||||||
|
switch(type) {
|
||||||
|
case "SECKILL":
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/promotion/seckill`,
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "PINTUAN":
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/promotion/joinGroup`,
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "LIVE":
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/promotion/lives`,
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "KANJIA":
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/promotion/bargain/list`,
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "./tpl.scss";
|
||||||
|
.join-box {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.join-list {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.join-list-item {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
.ellipsis {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 108rpx; // 大于1个活动
|
||||||
|
font-size: 22rpx;
|
||||||
|
}
|
||||||
|
.max-width {
|
||||||
|
width: 316rpx !important;
|
||||||
|
}
|
||||||
|
.item-price {
|
||||||
|
> span {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #e1212b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.join-item {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
.item-img {
|
||||||
|
width: 150rpx;
|
||||||
|
height: 150rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.item-img-box {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.item-line-through {
|
||||||
|
> span {
|
||||||
|
font-size: 20rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
text-decoration: line-through;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.item-position-tips {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 24rpx;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.join-title {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
align-items: center;
|
||||||
|
background: #fff;
|
||||||
|
height: 100rpx;
|
||||||
|
> div:nth-of-type(1) {
|
||||||
|
font-size: 30rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
> div:nth-of-type(2) {
|
||||||
|
font-size: 20rpx;
|
||||||
|
line-height: 1.75;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
text-align: center;
|
||||||
|
padding: 0 16rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
}
|
||||||
|
.sub {
|
||||||
|
background-color: #e1212b;
|
||||||
|
margin-right: 80rpx;
|
||||||
|
}
|
||||||
|
.sub-seckill {
|
||||||
|
white-space: nowrap;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
.sub-seckill-block {
|
||||||
|
background: rgba($main-color, 0.3);
|
||||||
|
border-radius: 100px !important;
|
||||||
|
color: rgba($main-color, 0.7);
|
||||||
|
overflow: hidden;
|
||||||
|
padding-right: 8rpx;
|
||||||
|
}
|
||||||
|
.sub-seckill-block-text {
|
||||||
|
background-color: $main-color;
|
||||||
|
color: #fff;
|
||||||
|
border-top-right-radius: 100px;
|
||||||
|
border-bottom-right-radius: 100px;
|
||||||
|
padding: 0 12rpx !important;
|
||||||
|
margin-right: 12rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -1,24 +1,34 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="layout">
|
<div class="layout" :style="{textAlign: res.list[0].textAlign}" @click="modelNavigateTo(res.list[0])" >
|
||||||
<div class="background">
|
<div class="background" :style="{ backgroundColor: res.list[0].bk_color}">
|
||||||
<div class="title" :style="{ color: res.list[0].color }">
|
<div class="title" :style="{ color: res.list[0].color }">
|
||||||
{{ res.list[0].title }}
|
{{ res.list[0].title }}
|
||||||
</div>
|
</div>
|
||||||
|
<div style="position: absolute;right: 10px;top:2px;color: #fff;line-height: 42px;font-size: 10px">
|
||||||
|
<a :style="{ color: res.list[0].color1 }" style="text-decoration: none">{{ res.list[0].title1 }}</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { modelNavigateTo } from "./tpl";
|
||||||
export default {
|
export default {
|
||||||
title: "标题栏",
|
title: "标题栏",
|
||||||
props: ["res"],
|
props: ["res"],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
modelNavigateTo,
|
||||||
|
};
|
||||||
|
},
|
||||||
mounted() {},
|
mounted() {},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "./tpl.scss";
|
@import "./tpl.scss";
|
||||||
.background {
|
.background {
|
||||||
background: url("/static/title.png") no-repeat;
|
// background: url("/static/title.png") no-repeat;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -43,5 +53,6 @@ export default {
|
||||||
line-height: 84rpx;
|
line-height: 84rpx;
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
margin-left: 8rpx;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -3,7 +3,12 @@
|
||||||
<!-- uni 中不能使用 vue component 所以用if判断每个组件 -->
|
<!-- uni 中不能使用 vue component 所以用if判断每个组件 -->
|
||||||
<div v-for="(item, index) in pageData.list" :key="index">
|
<div v-for="(item, index) in pageData.list" :key="index">
|
||||||
<!-- 搜索栏,如果在楼层装修顶部则会自动浮动,否则不浮动 -->
|
<!-- 搜索栏,如果在楼层装修顶部则会自动浮动,否则不浮动 -->
|
||||||
<u-navbar class="navbar" v-if="item.type == 'search'" :is-back="false" :is-fixed="index ===1 ? false : true">
|
<u-navbar
|
||||||
|
class="navbar"
|
||||||
|
v-if="item.type == 'search'"
|
||||||
|
:is-back="false"
|
||||||
|
:is-fixed="index === 1 ? false : true"
|
||||||
|
>
|
||||||
<search style="width: 100%" :res="item.options" />
|
<search style="width: 100%" :res="item.options" />
|
||||||
<!-- #ifndef H5 -->
|
<!-- #ifndef H5 -->
|
||||||
<!-- 扫码功能 不兼容h5 详情文档: https://uniapp.dcloud.io/api/system/barcode?id=scancode -->
|
<!-- 扫码功能 不兼容h5 详情文档: https://uniapp.dcloud.io/api/system/barcode?id=scancode -->
|
||||||
|
@ -14,10 +19,22 @@
|
||||||
</u-navbar>
|
</u-navbar>
|
||||||
<carousel v-if="item.type == 'carousel'" :res="item.options" />
|
<carousel v-if="item.type == 'carousel'" :res="item.options" />
|
||||||
<titleLayout v-if="item.type == 'title'" :res="item.options" />
|
<titleLayout v-if="item.type == 'title'" :res="item.options" />
|
||||||
<leftOneRightTwo v-if="item.type == 'leftOneRightTwo'" :res="item.options" />
|
<leftOneRightTwo
|
||||||
<leftTwoRightOne v-if="item.type == 'leftTwoRightOne'" :res="item.options" />
|
v-if="item.type == 'leftOneRightTwo'"
|
||||||
<topOneBottomTwo v-if="item.type == 'topOneBottomTwo'" :res="item.options" />
|
:res="item.options"
|
||||||
<topTwoBottomOne v-if="item.type == 'topTwoBottomOne'" :res="item.options" />
|
/>
|
||||||
|
<leftTwoRightOne
|
||||||
|
v-if="item.type == 'leftTwoRightOne'"
|
||||||
|
:res="item.options"
|
||||||
|
/>
|
||||||
|
<topOneBottomTwo
|
||||||
|
v-if="item.type == 'topOneBottomTwo'"
|
||||||
|
:res="item.options"
|
||||||
|
/>
|
||||||
|
<topTwoBottomOne
|
||||||
|
v-if="item.type == 'topTwoBottomOne'"
|
||||||
|
:res="item.options"
|
||||||
|
/>
|
||||||
<flexThree v-if="item.type == 'flexThree'" :res="item.options" />
|
<flexThree v-if="item.type == 'flexThree'" :res="item.options" />
|
||||||
<flexFive v-if="item.type == 'flexFive'" :res="item.options" />
|
<flexFive v-if="item.type == 'flexFive'" :res="item.options" />
|
||||||
<flexFour v-if="item.type == 'flexFour'" :res="item.options" />
|
<flexFour v-if="item.type == 'flexFour'" :res="item.options" />
|
||||||
|
@ -25,14 +42,13 @@
|
||||||
<textPicture v-if="item.type == 'textPicture'" :res="item.options" />
|
<textPicture v-if="item.type == 'textPicture'" :res="item.options" />
|
||||||
<menuLayout v-if="item.type == 'menu'" :res="item.options" />
|
<menuLayout v-if="item.type == 'menu'" :res="item.options" />
|
||||||
<flexOne v-if="item.type == 'flexOne'" :res="item.options" />
|
<flexOne v-if="item.type == 'flexOne'" :res="item.options" />
|
||||||
|
|
||||||
<goods v-if="item.type == 'goods'" :res="item.options" />
|
<goods v-if="item.type == 'goods'" :res="item.options" />
|
||||||
|
|
||||||
<group v-if="item.type == 'group'" :res="item.options" />
|
<group v-if="item.type == 'group'" :res="item.options" />
|
||||||
|
<notice v-if="item.type == 'notice'" :res="item.options" />
|
||||||
|
<promotions v-if="item.type == 'promotionDetail'" :res="item.options" />
|
||||||
<!-- <joinGroup v-if="item.type == 'joinGroup'" :res="item.options" /> -->
|
<!-- <joinGroup v-if="item.type == 'joinGroup'" :res="item.options" /> -->
|
||||||
<!-- <integral v-if="item.type == 'integral'" :res="item.options" /> -->
|
<!-- <integral v-if="item.type == 'integral'" :res="item.options" /> -->
|
||||||
<!-- <spike v-if="item.type == 'spike'" :res="item.options" /> -->
|
<!-- <spike v-if="item.type == 'spike'" :res="item.options" /> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<u-no-network></u-no-network>
|
<u-no-network></u-no-network>
|
||||||
</div>
|
</div>
|
||||||
|
@ -60,10 +76,8 @@ import tpl_goods from "@/pages/tabbar/home/template/tpl_goods"; //商品分类
|
||||||
import { getFloorData } from "@/api/home"; //获取楼层装修接口
|
import { getFloorData } from "@/api/home"; //获取楼层装修接口
|
||||||
import permision from "@/js_sdk/wa-permission/permission.js"; //权限工具类
|
import permision from "@/js_sdk/wa-permission/permission.js"; //权限工具类
|
||||||
import config from "@/config/config";
|
import config from "@/config/config";
|
||||||
// TODO 后续开发
|
import tpl_notice from "@/pages/tabbar/home/template/tpl_notice"; //标题栏模块
|
||||||
// import tpl_join_group from "@/pages/tabbar/home/template/tpl_join_group";
|
import tpl_promotions from "@/pages/tabbar/home/template/tpl_promotions_detail"; //标题栏模块
|
||||||
// import tpl_integral from "@/pages/tabbar/home/template/tpl_integral";
|
|
||||||
// import tpl_spike from "@/pages/tabbar/home/template/tpl_spike";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
|
@ -90,9 +104,8 @@ export default {
|
||||||
flexOne: tpl_flex_one,
|
flexOne: tpl_flex_one,
|
||||||
goods: tpl_goods,
|
goods: tpl_goods,
|
||||||
group: tpl_group,
|
group: tpl_group,
|
||||||
// spike: tpl_spike,
|
notice: tpl_notice,
|
||||||
// joinGroup: tpl_join_group,
|
promotions: tpl_promotions,
|
||||||
// integral: tpl_integral,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -131,7 +144,7 @@ export default {
|
||||||
|
|
||||||
// WX_CODE 为小程序码
|
// WX_CODE 为小程序码
|
||||||
if (res.scanType == "WX_CODE") {
|
if (res.scanType == "WX_CODE") {
|
||||||
console.log(res)
|
console.log(res);
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: `/${res.path}`,
|
url: `/${res.path}`,
|
||||||
});
|
});
|
||||||
|
|
|
@ -5,9 +5,13 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import configs from "@/config/config";
|
||||||
|
import storage from "@/utils/storage";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
configs,
|
||||||
|
storage,
|
||||||
webviewStyles: {
|
webviewStyles: {
|
||||||
progress: {
|
progress: {
|
||||||
color: this.$lightColor,
|
color: this.$lightColor,
|
||||||
|
@ -17,7 +21,12 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
onLoad(params) {
|
onLoad(params) {
|
||||||
this.src = decodeURIComponent(params.src);
|
params.IM
|
||||||
|
? (this.src = `${configs.imWebSrc}?token=${storage.getAccessToken()}&id=${
|
||||||
|
params.IM
|
||||||
|
}`)
|
||||||
|
: (this.src = decodeURIComponent(params.src));
|
||||||
|
console.log(this.src);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
<template>
|
||||||
|
<u-modal v-model="show" cancelText="不同意" confirmText="同意" showCancelButton="btnShow" title="服务协议和隐私政策" @confirm="confirm" @cancel="cancel">
|
||||||
|
<view class="u-update-content">
|
||||||
|
请您务必审慎阅读,充分理解“服务协议”和“隐私政策”各条款,
|
||||||
|
包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识,
|
||||||
|
操作日志等信息用于分析,优化应用性能。 您可阅读你可阅读
|
||||||
|
<a @click="gotoLink">《服务协议》</a>
|
||||||
|
和
|
||||||
|
<a @click="gotoB"> 《隐私政策》</a>了解详细信息。
|
||||||
|
如果您同意,请点击下面按钮开始接受我们的服务。
|
||||||
|
</view>
|
||||||
|
</u-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import storage from "@/utils/storage";
|
||||||
|
export default {
|
||||||
|
created() {
|
||||||
|
//先进入 created
|
||||||
|
// if (storage.getShow()) {
|
||||||
|
// //展示的话进入 true
|
||||||
|
// console.log(this.show); //如果上面没读缓存 此时 this.show 为true
|
||||||
|
// if (!this.show) {
|
||||||
|
// //如果等于 false 了 就跳到主页
|
||||||
|
// this.show = storage.getShow(); //这里就为false
|
||||||
|
// setTimeout(() => {
|
||||||
|
// //然后这里就跳转到 首页
|
||||||
|
// uni.reLaunch({
|
||||||
|
// //跳转到 首页
|
||||||
|
// url: "/pages/tabbar/home/index",
|
||||||
|
// });
|
||||||
|
// }, 500);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
show: true, //展示
|
||||||
|
btnShow:true,
|
||||||
|
a: "",
|
||||||
|
};
|
||||||
|
},
|
||||||
|
// onReady() {
|
||||||
|
// this.show = true;
|
||||||
|
// },
|
||||||
|
methods: {
|
||||||
|
gotoLink() {
|
||||||
|
uni.navigateTo({
|
||||||
|
//点击跳转到浏览器
|
||||||
|
url:
|
||||||
|
"/pages/tabbar/home/web-view?src=https://pc-b2b2c.pickmall.cn/article/detail?id=1371992704333905920",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
gotoB() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url:
|
||||||
|
"/pages/tabbar/home/web-view?src=https://pc-b2b2c.pickmall.cn/article/detail?id=1371779927900160000",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//取消
|
||||||
|
cancel(){
|
||||||
|
// #ifdef APP-PLUS
|
||||||
|
const threadClass = plus.ios.importClass("NSThread");
|
||||||
|
const mainThread = plus.ios.invoke(threadClass, "mainThread");
|
||||||
|
plus.ios.invoke(mainThread, "exit")
|
||||||
|
// #endif
|
||||||
|
},
|
||||||
|
confirm() {
|
||||||
|
//点击
|
||||||
|
this.show = false; // 让这个框为false
|
||||||
|
storage.setShow(this.show); //存入缓存
|
||||||
|
if (!this.show) {
|
||||||
|
// 他如果 不展示 就跳转到主页
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.reLaunch({
|
||||||
|
//跳转到 首页
|
||||||
|
url: "/pages/tabbar/home/index",
|
||||||
|
});
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.u-update-content {
|
||||||
|
font-size: 26rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
text-decoration: blue;
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -854,7 +854,7 @@ function downloadPopup(data, callback, cancelCallback, rebootCallback) {
|
||||||
export default function (isPrompt = false) {
|
export default function (isPrompt = false) {
|
||||||
getCurrentNo((version) => {
|
getCurrentNo((version) => {
|
||||||
getServerNo((res) => {
|
getServerNo((res) => {
|
||||||
if (res.versionCode.replace(/\./g, "") <= version.versionCode) {
|
if (res.versionCode.replace(/\./g, "") <= version.version) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,16 @@ export default {
|
||||||
getHotWords() {
|
getHotWords() {
|
||||||
return uni.getStorageSync(`hotWords`);
|
return uni.getStorageSync(`hotWords`);
|
||||||
},
|
},
|
||||||
|
//写入 展示还是不展示
|
||||||
|
setShow(val) {
|
||||||
|
uni.setStorageSync("show", val);
|
||||||
|
},
|
||||||
|
getShow() {
|
||||||
|
if (uni.getStorageSync(`show`) === "" || uni.getStorageSync(`show`) === undefined) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return uni.getStorageSync(`show`);
|
||||||
|
},
|
||||||
// 获取face id登录
|
// 获取face id登录
|
||||||
getFaceLogin() {
|
getFaceLogin() {
|
||||||
return uni.getStorageSync(FACE_LOGIN);
|
return uni.getStorageSync(FACE_LOGIN);
|
||||||
|
|
Loading…
Reference in New Issue