mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-29 14:01:07 +00:00
【模版目录】更新移动端源码
This commit is contained in:
parent
5d6017aedd
commit
f5a6621d84
1
.gitignore
vendored
1
.gitignore
vendored
@ -6,7 +6,6 @@
|
||||
/crmeb/runtime/log
|
||||
/crmeb/runtime/session
|
||||
/crmeb/runtime/temp
|
||||
/crmeb/public/uploads
|
||||
/crmeb/app/adminapi/controller/v1/statistic/BalanceStatistic.php
|
||||
/crmeb/app/adminapi/controller/v1/statistic/OrderStatistic.php
|
||||
/crmeb/app/adminapi/controller/v1/statistic/ProductStatistic.php
|
||||
|
||||
@ -82,7 +82,7 @@
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
const queryData = uni.getEnterOptionsSync() // uni-app版本 3.5.1+ 支持
|
||||
const queryData = uni.getEnterOptionsSync() // uni-app版本 3.5.1+ 支持
|
||||
if (queryData.query.spread) {
|
||||
this.$Cache.set('spread', queryData.query.spread);
|
||||
this.globalData.spid = queryData.query.spread;
|
||||
@ -120,6 +120,7 @@
|
||||
// #endif
|
||||
},
|
||||
async onLaunch(option) {
|
||||
uni.hideTabBar()
|
||||
let that = this;
|
||||
colorChange('color_change').then(res => {
|
||||
uni.setStorageSync('is_diy', res.data.is_diy)
|
||||
|
||||
@ -1,181 +1,191 @@
|
||||
<template>
|
||||
<view class='product-bg'>
|
||||
<swiper :indicator-dots="indicatorDots" indicator-active-color="var(--view-theme)" :autoplay="autoplay" :circular="circular"
|
||||
:interval="interval" :duration="duration" @change="change" v-if="isPlay">
|
||||
<!-- #ifndef APP-PLUS -->
|
||||
<swiper-item v-if="videoline">
|
||||
<view class="item">
|
||||
<view v-show="!controls" style="width:100%;height:100% ">
|
||||
<video id="myVideo" :src='videoline' objectFit="contain" controls style="width:100%;height:100% "
|
||||
show-center-play-btn show-mute-btn="true" auto-pause-if-navigate :custom-cache="false" :enable-progress-gesture="false" :poster="imgUrls[0]" @pause="videoPause"></video>
|
||||
</view>
|
||||
<view class="poster" v-show="controls">
|
||||
<image class="image" :src="imgUrls[0]"></image>
|
||||
</view>
|
||||
<view class="stop" v-show="controls" @tap="bindPause">
|
||||
<image class="image" src="../../static/images/stop.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
</swiper-item>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<swiper-item v-if="videoline">
|
||||
<view class="item">
|
||||
<view class="poster" v-show="controls">
|
||||
<image class="image" :src="imgUrls[0]"></image>
|
||||
</view>
|
||||
<view class="stop" v-show="controls" @tap="bindPause">
|
||||
<image class="image" src="../../static/images/stop.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
</swiper-item>
|
||||
<!-- #endif -->
|
||||
<block v-for="(item,index) in imgUrls" :key='index'>
|
||||
<swiper-item v-if="videoline?index>=1:index>=0">
|
||||
<image :src="item" class="slide-image" />
|
||||
</swiper-item>
|
||||
</block>
|
||||
</swiper>
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<view v-if="!isPlay" style="width: 100%; height: 750rpx;">
|
||||
<video id="myVideo" :src='videoline' objectFit="cover" controls style="width:100%;height:100% "
|
||||
show-center-play-btn show-mute-btn="true" autoplay="true" auto-pause-if-navigate :custom-cache="false" :enable-progress-gesture="false" :poster="imgUrls[0]" @pause="videoPause"></video>
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
</view>
|
||||
</template>
|
||||
<template>
|
||||
<view class='product-bg'>
|
||||
<swiper :indicator-dots="indicatorDots" indicator-active-color="var(--view-theme)" :autoplay="autoplay"
|
||||
:circular="circular" :interval="interval" :duration="duration" @change="change" v-if="isPlay">
|
||||
<!-- #ifndef APP-PLUS -->
|
||||
<swiper-item v-if="videoline">
|
||||
<view class="item">
|
||||
<view v-show="!controls" style="width:100%;height:100% ">
|
||||
<video id="myVideo" :src='videoline' objectFit="contain" controls
|
||||
style="width:100%;height:100% " show-center-play-btn show-mute-btn="true"
|
||||
auto-pause-if-navigate :custom-cache="false" :enable-progress-gesture="false"
|
||||
:poster="imgUrls[0]" @pause="videoPause"></video>
|
||||
</view>
|
||||
<view class="poster" v-show="controls">
|
||||
<image class="image" :src="imgUrls[0]"></image>
|
||||
</view>
|
||||
<view class="stop" v-show="controls" @tap="bindPause">
|
||||
<image class="image" src="../../static/images/stop.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
</swiper-item>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<swiper-item v-if="videoline">
|
||||
<view class="item">
|
||||
<view class="poster" v-show="controls">
|
||||
<image class="image" :src="imgUrls[0]"></image>
|
||||
</view>
|
||||
<view class="stop" v-show="controls" @tap="bindPause">
|
||||
<image class="image" src="../../static/images/stop.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
</swiper-item>
|
||||
<!-- #endif -->
|
||||
<block v-for="(item,index) in imgUrls" :key='index'>
|
||||
<swiper-item v-if="videoline?index>=1:index>=0">
|
||||
<image :src="item" class="slide-image" />
|
||||
</swiper-item>
|
||||
</block>
|
||||
</swiper>
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<view v-if="!isPlay" style="width: 750rpx; height: 750rpx;">
|
||||
<video id="myVideo" class="goods-video" :src='videoline' controls show-center-play-btn show-mute-btn="true"
|
||||
autoplay="true" auto-pause-if-navigate :custom-cache="false" :enable-progress-gesture="false"
|
||||
:poster="imgUrls[0]" @pause="videoPause"></video>
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
imgUrls: {
|
||||
type: Array,
|
||||
default: function() {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
videoline: {
|
||||
type: String,
|
||||
value: ""
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
indicatorDots: true,
|
||||
circular: true,
|
||||
autoplay: true,
|
||||
interval: 3000,
|
||||
duration: 500,
|
||||
currents: "1",
|
||||
controls: true,
|
||||
isPlay: true,
|
||||
videoContext: ''
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
if (this.videoline) {
|
||||
this.imgUrls.shift()
|
||||
}
|
||||
// #ifndef APP-PLUS
|
||||
this.videoContext = uni.createVideoContext('myVideo', this);
|
||||
// #endif
|
||||
},
|
||||
methods: {
|
||||
videoPause(e) {
|
||||
// #ifdef APP-PLUS
|
||||
this.isPlay = true
|
||||
this.autoplay = true
|
||||
// #endif
|
||||
},
|
||||
videoIsPause() {
|
||||
console.log('stop')
|
||||
this.videoContext.pause();
|
||||
},
|
||||
bindPause: function() {
|
||||
// #ifndef APP-PLUS
|
||||
this.videoContext.play();
|
||||
this.$set(this, 'controls', false)
|
||||
this.autoplay = false
|
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
this.isPlay = false
|
||||
this.videoContext = uni.createVideoContext('myVideo', this);
|
||||
this.videoContext.play();
|
||||
// #endif
|
||||
},
|
||||
change: function(e) {
|
||||
this.$set(this, 'currents', e.detail.current + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.product-bg {
|
||||
width: 100%;
|
||||
height: 750rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.product-bg swiper {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.product-bg .slide-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.product-bg .pages {
|
||||
position: absolute;
|
||||
background-color: #fff;
|
||||
height: 34rpx;
|
||||
padding: 0 10rpx;
|
||||
border-radius: 3rpx;
|
||||
right: 30rpx;
|
||||
bottom: 30rpx;
|
||||
line-height: 34rpx;
|
||||
font-size: 24rpx;
|
||||
color: #050505;
|
||||
}
|
||||
|
||||
#myVideo {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
imgUrls: {
|
||||
type: Array,
|
||||
default: function() {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
videoline: {
|
||||
type: String,
|
||||
value: ""
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
indicatorDots: true,
|
||||
circular: true,
|
||||
autoplay: true,
|
||||
interval: 3000,
|
||||
duration: 500,
|
||||
currents: "1",
|
||||
controls: true,
|
||||
isPlay:true,
|
||||
videoContext:''
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
if(this.videoline){
|
||||
this.imgUrls.shift()
|
||||
}
|
||||
// #ifndef APP-PLUS
|
||||
this.videoContext = uni.createVideoContext('myVideo', this);
|
||||
// #endif
|
||||
},
|
||||
methods: {
|
||||
videoPause(e){
|
||||
// #ifdef APP-PLUS
|
||||
this.isPlay= true
|
||||
this.autoplay = true
|
||||
// #endif
|
||||
},
|
||||
bindPause: function() {
|
||||
|
||||
// #ifndef APP-PLUS
|
||||
this.videoContext.play();
|
||||
this.$set(this, 'controls', false)
|
||||
this.autoplay = false
|
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
this.isPlay= false
|
||||
this.videoContext = uni.createVideoContext('myVideo', this);
|
||||
this.videoContext.play();
|
||||
// #endif
|
||||
},
|
||||
change: function(e) {
|
||||
this.$set(this, 'currents', e.detail.current + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.product-bg {
|
||||
width: 100%;
|
||||
height: 750rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.product-bg swiper {
|
||||
.goods-video{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.product-bg .slide-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.product-bg .pages {
|
||||
position: absolute;
|
||||
background-color: #fff;
|
||||
height: 34rpx;
|
||||
padding: 0 10rpx;
|
||||
border-radius: 3rpx;
|
||||
right: 30rpx;
|
||||
bottom: 30rpx;
|
||||
line-height: 34rpx;
|
||||
font-size: 24rpx;
|
||||
color: #050505;
|
||||
}
|
||||
|
||||
#myVideo {
|
||||
width: 100%;
|
||||
height: 100%
|
||||
}
|
||||
|
||||
.product-bg .item {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.product-bg .item .poster {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 750rpx;
|
||||
width: 100%;
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.product-bg .item .poster .image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.product-bg .item .stop {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 136rpx;
|
||||
height: 136rpx;
|
||||
margin-top: -68rpx;
|
||||
margin-left: -68rpx;
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.product-bg .item .stop .image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.product-bg .item {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.product-bg .item .poster {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 750rpx;
|
||||
width: 100%;
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.product-bg .item .poster .image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.product-bg .item .stop {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 136rpx;
|
||||
height: 136rpx;
|
||||
margin-top: -68rpx;
|
||||
margin-left: -68rpx;
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.product-bg .item .stop .image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
|
||||
11
template/uni-app/components/verify/utils/ase.js
Normal file
11
template/uni-app/components/verify/utils/ase.js
Normal file
@ -0,0 +1,11 @@
|
||||
import CryptoJS from './crypto-js.js'
|
||||
/**
|
||||
* @word 要加密的内容
|
||||
* @keyWord String 服务器随机返回的关键字
|
||||
* */
|
||||
export function aesEncrypt(word,keyWord="XwKsGlMcdPMEhR1B"){
|
||||
var key = CryptoJS.enc.Utf8.parse(keyWord);
|
||||
var srcs = CryptoJS.enc.Utf8.parse(word);
|
||||
var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
|
||||
return encrypted.toString();
|
||||
}
|
||||
6191
template/uni-app/components/verify/utils/crypto-js.js
Normal file
6191
template/uni-app/components/verify/utils/crypto-js.js
Normal file
File diff suppressed because it is too large
Load Diff
510
template/uni-app/components/verify/verify.vue
Normal file
510
template/uni-app/components/verify/verify.vue
Normal file
File diff suppressed because one or more lines are too long
542
template/uni-app/components/verify/verifyPoint/verifyPoint.vue
Normal file
542
template/uni-app/components/verify/verifyPoint/verifyPoint.vue
Normal file
File diff suppressed because one or more lines are too long
646
template/uni-app/components/verify/verifySlider/verifySlider.vue
Normal file
646
template/uni-app/components/verify/verifySlider/verifySlider.vue
Normal file
File diff suppressed because one or more lines are too long
@ -3,7 +3,7 @@
|
||||
"appid" : "__UNI__A3F1ED4",
|
||||
"description" : "CRMEB标准版",
|
||||
"versionName" : "4.6.0",
|
||||
"versionCode" : 461,
|
||||
"versionCode" : 460,
|
||||
"transformPx" : false,
|
||||
/* 5+App特有相关 */
|
||||
"app-plus" : {
|
||||
|
||||
@ -941,7 +941,13 @@
|
||||
// #endif
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"plugins": {
|
||||
"live-player-plugin": {
|
||||
"version": "1.3.5",
|
||||
"provider": "wx2b03c6e691cd7370"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"root": "pages/goods_details",
|
||||
|
||||
@ -161,7 +161,7 @@
|
||||
import authorize from '@/components/Authorize';
|
||||
// #endif
|
||||
import colors from "@/mixins/color";
|
||||
import Verify from '@/pages/users/components/verify/verify.vue';
|
||||
import Verify from '@/components/verify/verify.vue';
|
||||
import sendVerifyCode from "@/mixins/SendVerifyCode";
|
||||
const app = getApp();
|
||||
export default {
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
import {
|
||||
registerVerify
|
||||
} from '@/api/user.js'
|
||||
import Verify from '@/pages/users/components/verify/verify.vue';
|
||||
import Verify from '@/components/verify/verify.vue';
|
||||
export default {
|
||||
name: "Auth",
|
||||
components: {
|
||||
@ -288,4 +288,4 @@
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<!-- #endif -->
|
||||
<!-- #endif -->
|
||||
|
||||
@ -150,11 +150,6 @@
|
||||
getNav() {
|
||||
getNavigation().then(res => {
|
||||
this.newData = res.data
|
||||
if (this.newData.status && this.newData.status.status) {
|
||||
uni.hideTabBar()
|
||||
} else {
|
||||
uni.showTabBar()
|
||||
}
|
||||
})
|
||||
},
|
||||
goRouter(item) {
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
<template>
|
||||
<view class="product-con" :style="colorStyle">
|
||||
<skeleton :show="showSkeleton" :isNodes="isNodes" ref="skeleton" loading="chiaroscuro" selector="skeleton"
|
||||
bgcolor="#FFF"></skeleton>
|
||||
|
||||
<view class="product-con skeleton" :style="{ visibility: showSkeleton ? 'hidden' : 'visible' }">
|
||||
<view class="product-con">
|
||||
|
||||
<!-- #ifndef APP-PLUS -->
|
||||
<view class="navbar" :style="{ height: navH + 'rpx', opacity: opacity }">
|
||||
@ -47,11 +45,11 @@
|
||||
<!-- #ifdef APP-PLUS || MP -->
|
||||
<view class="" :style="'width:100%;' + 'height:'+sysHeight"></view>
|
||||
<!-- #endif -->
|
||||
<productConSwiper class="skeleton-rect" :imgUrls="storeInfo.slider_image"
|
||||
<productConSwiper ref="proSwiper" :imgUrls="storeInfo.slider_image"
|
||||
:videoline="storeInfo.video_link" @videoPause="videoPause"></productConSwiper>
|
||||
<view class="wrapper">
|
||||
<view class="share acea-row row-between row-bottom">
|
||||
<view class="money font-color skeleton-rect">
|
||||
<view class="money font-color">
|
||||
{{$t(`¥`)}}
|
||||
<text class="num" v-text="storeInfo.price || 0"></text>
|
||||
<text v-if="storeInfo.spec_type">{{$t(`起`)}}</text>
|
||||
@ -68,20 +66,20 @@
|
||||
svip_price_open == 1
|
||||
" src="../../static/images/svip.gif"></image>
|
||||
</view>
|
||||
<view class="iconfont icon-fenxiang skeleton-rect" @click="listenerActionSheet"></view>
|
||||
<view class="iconfont icon-fenxiang" @click="listenerActionSheet"></view>
|
||||
</view>
|
||||
<view class="introduce skeleton-rect" v-text="storeInfo.store_name"></view>
|
||||
<view class="introduce" v-text="storeInfo.store_name"></view>
|
||||
<view class="limit_good" v-if="storeInfo.limit_type > 0">
|
||||
{{storeInfo.limit_type == 1 ? $t(`单次限购`) : $t(`永久限购`)}}{{storeInfo.limit_num}}{{$t(storeInfo.unit_name)}}
|
||||
</view>
|
||||
<view class="label acea-row row-between-wrapper" style="padding-bottom: 20rpx">
|
||||
<view class="skeleton-rect">
|
||||
<view class="">
|
||||
{{$t(`划线价`)}} : {{$t(`¥`)}}{{storeInfo.ot_price || 0}}
|
||||
</view>
|
||||
<view class="skeleton-rect">{{$t(`库存`)}} : {{storeInfo.stock || 0}}
|
||||
<view class="">{{$t(`库存`)}} : {{storeInfo.stock || 0}}
|
||||
{{$t(storeInfo.unit_name) || ''}}
|
||||
</view>
|
||||
<view class="skeleton-rect">{{$t(`销量`)}} : {{storeInfo.fsales || 0}}
|
||||
<view class="">{{$t(`销量`)}} : {{storeInfo.fsales || 0}}
|
||||
{{$t(storeInfo.unit_name) || ''}}
|
||||
</view>
|
||||
</view>
|
||||
@ -113,7 +111,7 @@
|
||||
<view class='activity'>赠送 {{storeInfo.give_integral}} 积分</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view v-if="couponList.length" class="coupon acea-row row-between-wrapper skeleton-rect"
|
||||
<view v-if="couponList.length" class="coupon acea-row row-between-wrapper"
|
||||
@click="couponTap" style="margin-top: 0rpx">
|
||||
<view class="hide line1 acea-row">
|
||||
{{$t(`优惠券`)}}:
|
||||
@ -125,7 +123,7 @@
|
||||
</view>
|
||||
<view class="iconfont icon-jiantou"></view>
|
||||
</view>
|
||||
<view class="coupon acea-row row-between-wrapper skeleton-rect" v-if="activity.length">
|
||||
<view class="coupon acea-row row-between-wrapper" v-if="activity.length">
|
||||
<view class="line1 acea-row">
|
||||
<text>{{$t(`活动`)}}:</text>
|
||||
<view v-for="(item, index) in activity" :key="index" @click="goActivity(item)">
|
||||
@ -169,7 +167,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="attribute acea-row row-between-wrapper skeleton-rect" @click="selecAttr"
|
||||
<view class="attribute acea-row row-between-wrapper" @click="selecAttr"
|
||||
v-if="attr.productAttr.length">
|
||||
<view class="flex">
|
||||
<view style="display: flex; align-items: center; width: 90%">
|
||||
@ -190,7 +188,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="userEvaluation skeleton-rect" id="past1" v-if="replyCount">
|
||||
<view class="userEvaluation" id="past1" v-if="replyCount">
|
||||
<view class="title acea-row row-between-wrapper">
|
||||
<view>{{$t(`用户评价`)}}({{ replyCount }})</view>
|
||||
<navigator class="praise" hover-class="none"
|
||||
@ -261,22 +259,22 @@
|
||||
<view>客服</view>
|
||||
</button> -->
|
||||
|
||||
<navigator hover-class="none" class="item skeleton-rect" open-type="switchTab" url="/pages/index/index">
|
||||
<navigator hover-class="none" class="item" open-type="switchTab" url="/pages/index/index">
|
||||
<view class="iconfont icon-shouye6"></view>
|
||||
<view class="p_center">{{$t(`首页`)}}</view>
|
||||
</navigator>
|
||||
<view @click="setCollect" class="item skeleton-rect">
|
||||
<view @click="setCollect" class="item">
|
||||
<view class="iconfont icon-shoucang1" v-if="storeInfo.userCollect"></view>
|
||||
<view class="iconfont icon-shoucang" v-else></view>
|
||||
<view class="p_center">{{$t(`收藏`)}}</view>
|
||||
</view>
|
||||
<view class="animated item skeleton-rect" :class="animated == true ? 'bounceIn' : ''" @click="goCart">
|
||||
<view class="animated item" :class="animated == true ? 'bounceIn' : ''" @click="goCart">
|
||||
<view class="iconfont icon-gouwuche1">
|
||||
<text class="num bg-color" v-if="parseFloat(CartCount) > 0">{{
|
||||
CartCount || 0
|
||||
}}</text>
|
||||
</view>
|
||||
<view class="p_center skeleton-rect">{{$t(`购物车`)}}</view>
|
||||
<view class="p_center">{{$t(`购物车`)}}</view>
|
||||
</view>
|
||||
<view v-if="a" class="presale">
|
||||
<view class="acea-row">
|
||||
@ -301,7 +299,7 @@
|
||||
</button>
|
||||
</form>
|
||||
</view>
|
||||
<view class="bnt acea-row skeleton-rect" v-else>
|
||||
<view class="bnt acea-row" v-else>
|
||||
<form v-if="storeInfo.cart_button" @submit="joinCart" class="joinCart bnts">
|
||||
<button class="joinCart bnts" form-type="submit">
|
||||
{{$t(`加入购物车`)}}
|
||||
@ -831,7 +829,8 @@
|
||||
that.topArr[index]
|
||||
);
|
||||
},
|
||||
scroll(e) {
|
||||
scroll(e) {
|
||||
this.$refs.proSwiper.videoPause()
|
||||
var that = this,
|
||||
scrollY = e.detail.scrollTop;
|
||||
var opacity = scrollY / 200;
|
||||
@ -1130,9 +1129,6 @@
|
||||
// #endif
|
||||
that.DefaultSelect();
|
||||
that.getCartCount();
|
||||
setTimeout(() => {
|
||||
this.showSkeleton = false;
|
||||
}, 100);
|
||||
})
|
||||
.catch((err) => {
|
||||
//状态异常返回上级页面
|
||||
@ -1371,6 +1367,7 @@
|
||||
* 打开属性插件
|
||||
*/
|
||||
selecAttr: function() {
|
||||
this.$refs.proSwiper.videoIsPause()
|
||||
this.$set(this.attr, "cartAttr", true);
|
||||
this.$set(this, "isOpen", true);
|
||||
},
|
||||
@ -1382,6 +1379,7 @@
|
||||
if (that.isLogin === false) {
|
||||
toLogin();
|
||||
} else {
|
||||
this.$refs.proSwiper.videoIsPause()
|
||||
that.getCouponList();
|
||||
that.$set(that.coupon, "coupon", true);
|
||||
}
|
||||
@ -1399,10 +1397,12 @@
|
||||
if (this.isLogin === false) {
|
||||
toLogin();
|
||||
} else {
|
||||
this.$refs.proSwiper.videoIsPause()
|
||||
this.goCat();
|
||||
}
|
||||
},
|
||||
goCart() {
|
||||
|
||||
uni.switchTab({
|
||||
url: '/pages/order_addcart/order_addcart'
|
||||
})
|
||||
@ -1510,6 +1510,7 @@
|
||||
if (this.isLogin === false) {
|
||||
toLogin();
|
||||
} else {
|
||||
this.$refs.proSwiper.videoIsPause()
|
||||
this.goCat(true);
|
||||
}
|
||||
},
|
||||
|
||||
@ -386,11 +386,6 @@
|
||||
})
|
||||
getNavigation().then(res => {
|
||||
this.newData = res.data
|
||||
if (this.newData.status && this.newData.status.status) {
|
||||
uni.hideTabBar()
|
||||
} else {
|
||||
uni.showTabBar()
|
||||
}
|
||||
})
|
||||
let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
|
||||
let curRoute = routes[routes.length - 1].route //获取当前页面路由
|
||||
|
||||
@ -2,8 +2,8 @@
|
||||
<view
|
||||
v-if="show"
|
||||
:style="{
|
||||
width: systemInfo.width * 2 + 'rpx',
|
||||
height: (systemInfo.height + 100) * 2 + 'rpx',
|
||||
width: '100vw',
|
||||
height: '100vh',
|
||||
backgroundColor: bgcolor,
|
||||
position: 'absolute',
|
||||
left: 0,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -265,6 +265,7 @@
|
||||
},
|
||||
computed: mapGetters(['isLogin']),
|
||||
onLoad(options) {
|
||||
uni.hideTabBar()
|
||||
if (this.is_diy) {
|
||||
if (uni.getStorageSync('FOOTER_BAR')) {
|
||||
uni.hideTabBar()
|
||||
@ -273,11 +274,6 @@
|
||||
}
|
||||
getNavigation().then(res => {
|
||||
this.newData = res.data
|
||||
if (this.newData.status && this.newData.status.status) {
|
||||
uni.hideTabBar()
|
||||
} else {
|
||||
uni.showTabBar()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
uni.hideTabBar()
|
||||
|
||||
@ -410,7 +410,7 @@
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
// uni.hideTabBar()
|
||||
uni.hideTabBar()
|
||||
let that = this;
|
||||
if (this.is_diy) {
|
||||
if (uni.getStorageSync('FOOTER_BAR')) {
|
||||
@ -418,11 +418,6 @@
|
||||
}
|
||||
getNavigation().then(res => {
|
||||
this.newData = res.data
|
||||
if (this.newData.status && this.newData.status.status) {
|
||||
uni.hideTabBar()
|
||||
} else {
|
||||
uni.showTabBar()
|
||||
}
|
||||
})
|
||||
}
|
||||
// #ifdef MP
|
||||
|
||||
@ -14,7 +14,6 @@
|
||||
|
||||
<Verify @success="success" :captchaType="'blockPuzzle'" :imgSize="{ width: '330px', height: '155px' }"
|
||||
ref="verify"></Verify>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -22,7 +21,7 @@
|
||||
const app = getApp();
|
||||
import sendVerifyCode from "@/mixins/SendVerifyCode";
|
||||
import Routine from '@/libs/routine';
|
||||
import Verify from './../verify/verify.vue';
|
||||
import Verify from '@/components/verify/verify.vue';
|
||||
import Cache from '@/utils/cache';
|
||||
import {
|
||||
loginMobile,
|
||||
|
||||
@ -129,7 +129,7 @@
|
||||
// #endif
|
||||
const BACK_URL = "login_back_url";
|
||||
import colors from '@/mixins/color.js';
|
||||
import Verify from '@/pages/users/components/verify/verify.vue';
|
||||
import Verify from '@/components/verify/verify.vue';
|
||||
export default {
|
||||
name: "Login",
|
||||
components: {
|
||||
@ -845,4 +845,4 @@
|
||||
.main-color {
|
||||
color: var(--view-theme);
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
|
||||
<script>
|
||||
import sendVerifyCode from "@/mixins/SendVerifyCode";
|
||||
import Verify from '@/pages/users/components/verify/verify.vue';
|
||||
import Verify from '@/components/verify/verify.vue';
|
||||
import {
|
||||
registerVerify,
|
||||
bindingUserPhone,
|
||||
|
||||
@ -52,7 +52,7 @@
|
||||
import authorize from '@/components/Authorize';
|
||||
// #endif
|
||||
import colors from '@/mixins/color.js';
|
||||
import Verify from '@/pages/users/components/verify/verify.vue';
|
||||
import Verify from '@/components/verify/verify.vue';
|
||||
export default {
|
||||
mixins: [sendVerifyCode, colors],
|
||||
components: {
|
||||
@ -244,4 +244,4 @@
|
||||
text-align: center;
|
||||
line-height: 90rpx;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user