feat: 实现商户导航功能涉及首页、发现、分类、购物车、商品;实现一键快速加购。
This commit is contained in:
parent
0bcad2ecb1
commit
b6c4e65ed9
@ -1,61 +0,0 @@
|
||||
<template>
|
||||
<view class="wf-item-page">
|
||||
<image :src="item.story_file[0]" class="item-img" />
|
||||
<view class="item-desc">
|
||||
{{item.story_title || ''}}
|
||||
</view>
|
||||
<view class="item-info">
|
||||
<image :src="item.user_avatar" mode="aspectFill" class="info-avatar" />
|
||||
<view class="info-nickname">{{item.user_nickname}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props:{
|
||||
item:{
|
||||
type:Object,
|
||||
require:true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.wf-item-page{
|
||||
background: #fff;
|
||||
overflow: hidden;
|
||||
border-radius: 5px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.item-img{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.item-info{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.info-avatar{
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
border-radius: 50%;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.info-nickname{
|
||||
font-size: 12px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.item-desc{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 5px 5px 0px 5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
</style>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,155 +0,0 @@
|
||||
<template name="pay-box">
|
||||
<block></block>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "pay-box",
|
||||
props: {
|
||||
shareDataDefault: {
|
||||
type: Object,
|
||||
default() {
|
||||
return {
|
||||
shareTitle: '',
|
||||
shareText: '',
|
||||
href: '',
|
||||
image: ''
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
showBoxView:false,
|
||||
shareType:0
|
||||
}
|
||||
},
|
||||
created() {
|
||||
uni.getProvider({
|
||||
service: "share",
|
||||
success: (e) => {
|
||||
//console.log("success", e);
|
||||
let data = []
|
||||
for (let i = 0; i < e.provider.length; i++) {
|
||||
switch (e.provider[i]) {
|
||||
case 'weixin':
|
||||
data.push({
|
||||
name: '分享到微信好友',
|
||||
id: 'weixin',
|
||||
sort: 0
|
||||
})
|
||||
data.push({
|
||||
name: '分享到微信朋友圈',
|
||||
id: 'weixin',
|
||||
type: 'WXSenceTimeline',
|
||||
sort: 1
|
||||
})
|
||||
break;
|
||||
case 'sinaweibo':
|
||||
data.push({
|
||||
name: '分享到新浪微博',
|
||||
id: 'sinaweibo',
|
||||
sort: 2
|
||||
})
|
||||
break;
|
||||
case 'qq':
|
||||
data.push({
|
||||
name: '分享到QQ',
|
||||
id: 'qq',
|
||||
sort: 3
|
||||
})
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.providerList = data.sort((x, y) => {
|
||||
return x.sort - y.sort
|
||||
});
|
||||
},
|
||||
fail: (e) => {
|
||||
//console.log("获取登录通道失败", e);
|
||||
uni.showModal({
|
||||
content: "获取登录通道失败",
|
||||
showCancel: false
|
||||
})
|
||||
}
|
||||
});
|
||||
},
|
||||
methods:{
|
||||
|
||||
share() {
|
||||
if (this.providerList.length === 0) {
|
||||
uni.showModal({
|
||||
title: '当前环境无分享渠道!',
|
||||
showCancel: false
|
||||
})
|
||||
return;
|
||||
}
|
||||
|
||||
let itemList = this.providerList.map(function (value) {
|
||||
return value.name
|
||||
})
|
||||
|
||||
var that = this;
|
||||
|
||||
uni.showActionSheet({
|
||||
itemList: itemList,
|
||||
success: (res) => {
|
||||
uni.share({
|
||||
provider: this.providerList[res.tapIndex].id,
|
||||
scene: this.providerList[res.tapIndex].type && this.providerList[res.tapIndex].type === 'WXSenceTimeline' ? 'WXSenceTimeline' : "WXSceneSession",
|
||||
type: this.shareType,
|
||||
|
||||
summary : this.shareDataDefault.shareText,
|
||||
imageUrl : this.shareDataDefault.image,
|
||||
title : this.shareDataDefault.shareTitle,
|
||||
href : this.shareDataDefault.href,
|
||||
|
||||
success: (res) => {
|
||||
//console.log("success:" + JSON.stringify(res));
|
||||
},
|
||||
fail: (e) => {
|
||||
uni.showModal({
|
||||
//content: e.errMsg,
|
||||
content: '用户取消',
|
||||
showCancel:false
|
||||
})
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
save(){
|
||||
uni.showActionSheet({
|
||||
itemList:['保存图片到相册'],
|
||||
success: () => {
|
||||
plus.gallery.save('https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/app_download.png', function() {
|
||||
uni.showToast({
|
||||
title:'保存成功',
|
||||
icon:'none'
|
||||
})
|
||||
}, function() {
|
||||
uni.showToast({
|
||||
title:'保存失败,请重试!',
|
||||
icon:'none'
|
||||
})
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
cancel() {
|
||||
this.showBoxView = false;
|
||||
this.$emit('onCancel');
|
||||
},
|
||||
show() {
|
||||
this.share();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
@ -1,128 +0,0 @@
|
||||
<template>
|
||||
<view class="tagController">
|
||||
<view class="tagContainer">
|
||||
<view class="tagItem" :class="tagBgColor" v-bind:key="index" v-for="(tagText,index) in value">
|
||||
<text @tap="tapTag" :data-text="tagText">{{tagText}}</text>
|
||||
<text v-if="isShowDelIcon" class="tagDelIcon" @tap="delTag" :data-text="tagText">x</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tagInput" v-if="isShowAdd">
|
||||
<input type="text" v-model="tagString" placeholder-class="placeholder-class" placeholder="输入新的标签" />
|
||||
<button type="default" size="mini" @tap="createTags">添加</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name:'robby-tags',
|
||||
props: ['enableDel','bgColorType','value', 'enableAdd'],
|
||||
data() {
|
||||
return {
|
||||
tagString:'',
|
||||
isShowDelIcon: this.enableDel || false,
|
||||
isShowAdd: this.enableAdd || false
|
||||
}
|
||||
},
|
||||
computed:{
|
||||
tagBgColor: function(){
|
||||
if(this.bgColorType === null){
|
||||
return 'tagBgDefault'
|
||||
}else if(this.bgColorType === 'primary'){
|
||||
return 'tagBgPrimary'
|
||||
}else if(this.bgColorType === 'success'){
|
||||
return 'tagBgSuccess'
|
||||
}else if(this.bgColorType === 'warn'){
|
||||
return 'tagBgWarning'
|
||||
}else if(this.bgColorType === 'error'){
|
||||
return 'tagBgError'
|
||||
}else{
|
||||
return 'tagBgDefault'
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
createTags: function(){
|
||||
let tempTagArr = []
|
||||
if(this.tagString.length>0){
|
||||
let newvalue = this.tagString.split(/,|,/)
|
||||
for(let i=0;i<newvalue.length;i++){
|
||||
let newTag = newvalue[i].trim()
|
||||
|
||||
if(newTag !== '' && this.value.indexOf(newTag) < 0){
|
||||
tempTagArr.push(newTag)
|
||||
}
|
||||
}
|
||||
}
|
||||
this.tagString = ''
|
||||
this.value.splice(this.value.length,0, ...tempTagArr)
|
||||
this.$emit('add', {
|
||||
currentTag: tempTagArr,
|
||||
allTags: this.value
|
||||
})
|
||||
this.$emit('input', this.value)
|
||||
},
|
||||
delTag: function(e){
|
||||
let delTagText = e.currentTarget.dataset.text
|
||||
let delTagIndex = this.value.indexOf(delTagText)
|
||||
this.value.splice(delTagIndex,1)
|
||||
this.$emit("delete", {
|
||||
currentTag: delTagText,
|
||||
allTags: this.value
|
||||
})
|
||||
this.$emit('input', this.value)
|
||||
},
|
||||
tapTag: function(e){
|
||||
let selTagText = e.currentTarget.dataset.text
|
||||
this.$emit("click", selTagText)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
.placeholder-class{
|
||||
font-size: 24rpx;
|
||||
}
|
||||
.tagController{
|
||||
padding: 10rpx;
|
||||
}
|
||||
.tagContainer{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.tagItem{
|
||||
padding: 10rpx 20rpx;
|
||||
margin: 10rpx;
|
||||
border-radius: 40rpx;
|
||||
color: white;
|
||||
}
|
||||
.tagBgDefault{
|
||||
background-color: #cfcfcf;
|
||||
color: black;
|
||||
}
|
||||
.tagBgPrimary{
|
||||
background-color: #007aff;
|
||||
}
|
||||
.tagBgSuccess{
|
||||
background-color: #4cd964;
|
||||
}
|
||||
.tagBgWarning{
|
||||
background-color: #f0ad4e;
|
||||
}
|
||||
.tagBgError{
|
||||
background-color: #dd524d;
|
||||
}
|
||||
.tagDelIcon{
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
.tagInput{
|
||||
padding: 10rpx;
|
||||
}
|
||||
.tagInput input{
|
||||
width: 60%;
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
@ -1,351 +0,0 @@
|
||||
<template>
|
||||
<view>
|
||||
<!-- 商品分类 -->
|
||||
<uni-drawer :visible="rightDrawerVisible" mode="right" @close="closeDrawer()" >
|
||||
<view class="m-tab">
|
||||
<view class="m-navbar">
|
||||
<view :class="['m-navbar-item', tapindex==1?'m-navbar-item-on':'']" @click="onecategorys">
|
||||
{{__('一级分类')}}
|
||||
</view>
|
||||
<view :class="['m-navbar-item', tapindex==2?'m-navbar-item-on':'']">
|
||||
{{__('二级分类')}}
|
||||
</view>
|
||||
<view :class="['m-navbar-item', tapindex==3?'m-navbar-item-on':'']">
|
||||
{{__('三级分类')}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<scroll-view scroll-y="true" style="height: 100%">
|
||||
<view class="m-cells" style="padding:20rpx 20rpx;" v-for="(category,ii) in categorys" :key="ii">
|
||||
<view class="m-cell m-cell-access m-info-sp" :data-category_id="category.category_id" :data-category_name="category.category_name" @click="getCate">
|
||||
<view class="m-cell-bd">
|
||||
<view class="m-order-title">
|
||||
<label class="m-ber-n">{{category.category_name}}</label>
|
||||
<label>
|
||||
<image class="nav-image" lazy-load src="/static/images/nav.png" mode="scaleToFill" />
|
||||
</label>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</uni-drawer>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import uniDrawer from '@/components/uni-drawer.vue';
|
||||
import { mapState, mapMutations } from 'vuex';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
rightDrawerVisible: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
index:0,
|
||||
tapindex: 1,
|
||||
deep:0,
|
||||
categorys:[]
|
||||
};
|
||||
},
|
||||
|
||||
components: {
|
||||
uniDrawer
|
||||
},
|
||||
computed: mapState([
|
||||
'Config',
|
||||
'StateCode',
|
||||
'notice',
|
||||
'plantformInfo',
|
||||
'shopInfo',
|
||||
'userInfo',
|
||||
'hasLogin'
|
||||
]),
|
||||
created() {
|
||||
var that = this;
|
||||
|
||||
this.GetPlist(function() {
|
||||
that.pdlist.length == 0 ? that.setData({ isdata: false }) : that.setData({ isdata: true });
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']),
|
||||
|
||||
onecategorys: function(){
|
||||
this.setData({
|
||||
deep:1,
|
||||
category_id:0,
|
||||
tapindex:1
|
||||
})
|
||||
this.getcategorys()
|
||||
},
|
||||
getCate: function(e){
|
||||
var that = this;
|
||||
switch (that.tapindex) {
|
||||
case 1:
|
||||
that.setData({
|
||||
deep:that.tapindex,
|
||||
category_id:e.currentTarget.dataset.category_id,
|
||||
onecategory:e.currentTarget.dataset.category_name,
|
||||
tapindex:2
|
||||
})
|
||||
that.getcategorys()
|
||||
break;
|
||||
case 2:
|
||||
that.setData({
|
||||
deep:that.tapindex,
|
||||
category_id:e.currentTarget.dataset.category_id,
|
||||
twocategory:e.currentTarget.dataset.category_name,
|
||||
tapindex:3
|
||||
})
|
||||
that.getcategorys()
|
||||
break;
|
||||
case 3:
|
||||
that.setData({
|
||||
threecategory:e.currentTarget.dataset.category_name,
|
||||
category_id:e.currentTarget.dataset.category_id,
|
||||
tapindex:1,
|
||||
deep:1,
|
||||
rightDrawerVisible:false
|
||||
})
|
||||
that.commodity_name = that.onecategory + '>' + that.twocategory + '>' + that.threecategory
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
getcategorys: function(e){
|
||||
var that = this;
|
||||
var params = {
|
||||
deep:that.deep
|
||||
};
|
||||
|
||||
if(that.category_id !== 0){
|
||||
params.category_id= that.category_id
|
||||
|
||||
}
|
||||
that.$.request({
|
||||
url: that.Config.URL.product.category,
|
||||
data: params,
|
||||
success: function(data, status, msg, code) {
|
||||
if(status == 200){
|
||||
that.setData({
|
||||
categorys:data.items
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '../styles/_variables.scss';
|
||||
|
||||
/*全部商品 start*/
|
||||
.m-navbar-item {
|
||||
padding: 20rpx 0;
|
||||
font-size: 24rpx;
|
||||
i {
|
||||
font-size: 0rpx;
|
||||
line-height: 0;
|
||||
vertical-align: middle;
|
||||
display: inline-block;
|
||||
width: 0rpx;
|
||||
height: 0rpx;
|
||||
margin-left: 9.375rpx;
|
||||
border-width: 9.375rpx;
|
||||
border-color: #aaa transparent transparent transparent;
|
||||
border-style: solid dashed dashed dashed;
|
||||
}
|
||||
}
|
||||
.m-navbar-item:after {
|
||||
border: none;
|
||||
}
|
||||
.m-navbar-item.m-navbar-item-on {
|
||||
background-color: #fff;
|
||||
color: $default-skin-bg;
|
||||
i {
|
||||
border-color: $default-skin-bg transparent transparent;
|
||||
}
|
||||
}
|
||||
.m-navbar-item.m-navbar-item-on::before {
|
||||
content: ' ';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
height: 6rpx;
|
||||
border-bottom: 6rpx solid $default-skin-bg;
|
||||
color: #cccccc;
|
||||
-webkit-transform-origin: 0 100%;
|
||||
transform-origin: 0 100%;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
z-index: 3;
|
||||
}
|
||||
.m-sort {
|
||||
position: relative;
|
||||
}
|
||||
.m-sort image {
|
||||
width: 24rpx;
|
||||
height: 24rpx;
|
||||
position: absolute;
|
||||
/*top: 50%;*/
|
||||
margin-top: 10rpx;
|
||||
margin-left: 2rpx;
|
||||
}
|
||||
/*全部商品 end*/
|
||||
.m-product-price1 {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.num {
|
||||
font-size: 24rpx;
|
||||
color: #717171;
|
||||
padding-right: 20rpx;
|
||||
/*margin-left:260rpx; */
|
||||
}
|
||||
|
||||
.u-pa .m-tab {
|
||||
top: var(--window-top);
|
||||
}
|
||||
.u-pa .m-tab-top {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.filter-box {
|
||||
top: var(--window-top);
|
||||
}
|
||||
|
||||
.filter-box-top {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.tag-view {
|
||||
margin: 10rpx 20rpx;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.uni-numbox-value {
|
||||
border: 2rpx solid #cccccc;
|
||||
background-color: #ffffff;
|
||||
width: 150rpx;
|
||||
height: 48rpx;
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
}
|
||||
.uni-dot {
|
||||
width: 30rpx;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
line-height: 44rpx;
|
||||
height: 44rpx;
|
||||
}
|
||||
|
||||
.uni-padding-wrap {
|
||||
overflow: hidden;
|
||||
max-width: 400rpx;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* */
|
||||
.product-list {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
&:hover {
|
||||
z-index: 2;
|
||||
}
|
||||
.flag {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
z-index: 2;
|
||||
width: 64px;
|
||||
height: 20px;
|
||||
margin-left: -32px;
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
}
|
||||
.flag-reduction {
|
||||
background-color: #e50dbb;
|
||||
z-index: 8;
|
||||
}
|
||||
|
||||
.flag-saleoff {
|
||||
background-color: #e53935;
|
||||
z-index: 7;
|
||||
}
|
||||
|
||||
.flag-postfree {
|
||||
background-color: #ffac13;
|
||||
z-index: 6;
|
||||
}
|
||||
|
||||
.flag-bargain {
|
||||
background-color: #ffac13;
|
||||
z-index: 4;
|
||||
}
|
||||
|
||||
.flag-gift {
|
||||
background-color: #2196f3;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.flag-new {
|
||||
background-color: #83c44e;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
.flag-selfsupport {
|
||||
background-color: #f44336;
|
||||
z-index: 10;
|
||||
|
||||
position: absolute;
|
||||
|
||||
top: 1px;
|
||||
right: 5px;
|
||||
left: auto;
|
||||
width: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.placeholder-class{
|
||||
font-size: 25rpx;
|
||||
}
|
||||
|
||||
.button{
|
||||
line-height: 2;
|
||||
font-size: 34rpx;
|
||||
}
|
||||
|
||||
.uni-common-mt{
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
|
||||
.u-pa {
|
||||
position: inherit!important;
|
||||
}
|
||||
|
||||
.u-pa .m-product-list
|
||||
{
|
||||
padding-top:0rpx;
|
||||
}
|
||||
|
||||
.u-pa .m-tab{
|
||||
position: relative;
|
||||
}
|
||||
</style>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
<template name="shoptheme1">
|
||||
<view>
|
||||
<view class="m-supermarket-ad">
|
||||
<view class="m-supermarket-ad">11111
|
||||
<view v-if="(commonTPL.AdContent.F1ProductContents.length>0)">
|
||||
<view class="m-supermarket-tip-list">
|
||||
<navigator :url="'/pages/product/list?is_store_flag=' + (commonTPL.isStoreFlag) + '&store_category_id=' + (item.store_product_cat_id) + '&cname=' + (item.name)"
|
||||
|
||||
33
pages.json
33
pages.json
@ -29,6 +29,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/index/cart",
|
||||
"style": {
|
||||
"navigationBarTitleText": "购物车",
|
||||
"app-plus": {
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/index/index",
|
||||
"style": {
|
||||
@ -115,6 +124,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "pages/index/member",
|
||||
|
||||
@ -831,17 +841,25 @@
|
||||
{
|
||||
"root": "pagesub",
|
||||
"pages": [
|
||||
/*
|
||||
{
|
||||
"path": "category/list",
|
||||
"path": "index/category",
|
||||
"style": {
|
||||
"navigationBarTitleText": "分类",
|
||||
"navigationBarTitleText": "",
|
||||
"navigationStyle": "custom",
|
||||
"app-plus": {
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "index/feed",
|
||||
"style": {
|
||||
"navigationBarTitleText": "发现",
|
||||
"app-plus": {
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
},
|
||||
*/
|
||||
{
|
||||
"path": "category/brands",
|
||||
"style": {
|
||||
@ -852,6 +870,13 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "index/goods",
|
||||
"style": {
|
||||
"navigationBarTitleText": "全部商品"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "index/store",
|
||||
"style": {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="page">
|
||||
<!-- <status-bar :backgroundColor="'#fff'"></status-bar> -->
|
||||
<!-- <uni-nav-bar title="购物车"></uni-nav-bar> -->
|
||||
<!-- <status-bar :backgroundColor="'#fff'"></status-bar>
|
||||
<uni-nav-bar title="购物车"></uni-nav-bar> -->
|
||||
<view v-if="loadComplete">
|
||||
<block v-if="isdata">
|
||||
<view class="manage" @click="showDelBtn">{{
|
||||
@ -910,11 +910,11 @@
|
||||
|
||||
<script>
|
||||
import guessYouLike from "@/components/product-list.vue";
|
||||
import statusBar from "../../components/status-bar.vue";
|
||||
import statusBar from "@/components/status-bar.vue";
|
||||
import { theme_bg } from "@/styles/_variables.scss";
|
||||
|
||||
import { mapState, mapMutations } from "vuex";
|
||||
import statecode from "../../config/statecode";
|
||||
import statecode from "@/config/statecode";
|
||||
|
||||
export default {
|
||||
data: function () {
|
||||
|
||||
2190
pages/index/cart.vue
Normal file
2190
pages/index/cart.vue
Normal file
File diff suppressed because it is too large
Load Diff
@ -973,7 +973,7 @@
|
||||
</view>
|
||||
<text>{{ __('客服') }}</text>
|
||||
</view>
|
||||
<view data-url="/pages/cart/cart" class="m-footer-btn-item" @click="goTabBar">
|
||||
<view data-url="/pages/index/cart" class="m-footer-btn-item" @click="goTabBar">
|
||||
<view class="m-footer-btn-icon">
|
||||
<label class="iconfont icon-cart "></label>
|
||||
<uni-badge v-if="cartNum>0" :text="cartNum" type="danger" style="margin-top: -12rpx;margin-left: -12rpx;"></uni-badge>
|
||||
|
||||
1368
pagesub/index/category.vue
Normal file
1368
pagesub/index/category.vue
Normal file
File diff suppressed because it is too large
Load Diff
176
pagesub/index/components/tabbar.vue
Normal file
176
pagesub/index/components/tabbar.vue
Normal file
@ -0,0 +1,176 @@
|
||||
<template>
|
||||
<view class="sub__tabbar">
|
||||
<view
|
||||
:class="['item', { current: current == 1 }]"
|
||||
@click="gopage(1, `/pagesub/index/store?store_id=${storeId}`)"
|
||||
>
|
||||
<view class="box">
|
||||
<image
|
||||
v-if="current == 1"
|
||||
class="icon"
|
||||
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/icon/icon_home_cur.png"
|
||||
/>
|
||||
<image v-else class="icon" src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/icon/icon_home.png" />
|
||||
<view class="desc">首页</view>
|
||||
</view>
|
||||
</view>
|
||||
<view
|
||||
:class="['item', { current: current == 2 }]"
|
||||
@click="
|
||||
gopage(
|
||||
2,
|
||||
`/pagesub/index/category?category_id=${categoryId}&store_id=${storeId}`
|
||||
)
|
||||
"
|
||||
>
|
||||
<view class="box">
|
||||
<image
|
||||
v-if="current == 2"
|
||||
class="icon"
|
||||
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/icon/icon_category_cur.png"
|
||||
/>
|
||||
<image v-else class="icon" src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/icon/icon_category.png" />
|
||||
<view class="desc">分类</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view
|
||||
:class="['item', { current: current == 3 }]"
|
||||
@click="gopage(3,'/pagesub/index/feed')"
|
||||
>发现</view
|
||||
> -->
|
||||
<view
|
||||
:class="['item', { current: current == 4 }]"
|
||||
@click="gopage(4, '/pages/index/cart')"
|
||||
>
|
||||
<view class="box">
|
||||
<image
|
||||
v-if="current == 4"
|
||||
class="icon"
|
||||
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/icon/icon_shop_cur.png"
|
||||
/>
|
||||
<image v-else class="icon" src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/icon/icon_shop.png" />
|
||||
<view class="desc">购物车</view>
|
||||
<text class="icon_badge">{{ goodsNum }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view
|
||||
:class="['item', { current: current == 5 }]"
|
||||
@click="gopage(5,`/pagesub/index/goods?store_id=${storeId}`)"
|
||||
>商品</view
|
||||
> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
current: {
|
||||
type: Number,
|
||||
default: 1,
|
||||
},
|
||||
cartNum: {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
storeId: {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
categoryId: {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
goodsNum: 0,
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
cartNum: {
|
||||
handler(newVal) {
|
||||
this.goodsNum = newVal;
|
||||
},
|
||||
immediate: true,
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
gopage(tabIndex, url) {
|
||||
if (tabIndex === this.current) {
|
||||
console.log("当前页面,不执行跳转");
|
||||
return;
|
||||
}
|
||||
this.$.navigateTo({
|
||||
url,
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.sub__tabbar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
z-index: 10;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
padding: 4rpx 0;
|
||||
padding-bottom: var(--safe-area-inset-bottom, 4);
|
||||
height: 48px;
|
||||
background: #fff;
|
||||
|
||||
.item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
color: #666;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
|
||||
.icon {
|
||||
width: 48rpx;
|
||||
height: 48rpx;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.desc {
|
||||
font-size: 24rpx;
|
||||
line-height: 14rpx;
|
||||
}
|
||||
|
||||
.icon_badge {
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: -5px;
|
||||
top: -5px;
|
||||
text-align: center;
|
||||
line-height: 24rpx;
|
||||
font-size: 24rpx;
|
||||
padding: 4rpx 10rpx;
|
||||
border-radius: 20rpx;
|
||||
color: #fff;
|
||||
background: #dd524d;
|
||||
}
|
||||
|
||||
.box {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 10rpx;
|
||||
}
|
||||
|
||||
&.current {
|
||||
color: #dd524d;
|
||||
font-weight: 900;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
42
pagesub/index/feed.vue
Normal file
42
pagesub/index/feed.vue
Normal file
@ -0,0 +1,42 @@
|
||||
<template>
|
||||
<view class="my_feed">
|
||||
<image
|
||||
lazy-load
|
||||
mode="widthFix"
|
||||
class="my_feedimg"
|
||||
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/media/media/plantform/default/20250703/fbc317620e5d41e09589d4b81703372a.jpg"
|
||||
/>
|
||||
<MyTabbar current="3" :cartNum="cartNum" :storeId="shopInfo.store_id" :categoryId="shopInfo.category_id"></MyTabbar>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapMutations, mapState } from "vuex";
|
||||
import MyTabbar from "./components/tabbar.vue";
|
||||
export default {
|
||||
components: {
|
||||
MyTabbar
|
||||
},
|
||||
computed: mapState([
|
||||
"Config",
|
||||
"StateCode",
|
||||
"notice",
|
||||
"plantformInfo",
|
||||
"shopInfo",
|
||||
"userInfo",
|
||||
"hasLogin",
|
||||
"cartNum",
|
||||
]),
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.my_feed{
|
||||
padding-bottom: 65px;
|
||||
}
|
||||
.my_feedimg{
|
||||
width: 100%;
|
||||
height: auto;
|
||||
max-width: 100%
|
||||
}
|
||||
</style>
|
||||
1750
pagesub/index/goods.vue
Normal file
1750
pagesub/index/goods.vue
Normal file
File diff suppressed because it is too large
Load Diff
@ -11,152 +11,91 @@
|
||||
</view>
|
||||
<view class="m-shopinfo">
|
||||
<view style="display: flex">
|
||||
<view
|
||||
style="
|
||||
<view style="
|
||||
font-size: 36rpx;
|
||||
color: #fff;
|
||||
flex: 1;
|
||||
height: 40rpx;
|
||||
line-height: 40rpx;
|
||||
"
|
||||
>{{ store_info.store_name }}</view
|
||||
>
|
||||
">{{ store_info.store_name }}</view>
|
||||
<view class="iconfont icon-qijiandian" v-if="false"></view>
|
||||
<view class="service-star-box" v-if="store_info.store_star_num > 0">
|
||||
<view>{{ __("综合体验") }}</view>
|
||||
<view
|
||||
class="m-startBox"
|
||||
v-for="(itemIndex, ii) in [1, 2, 3, 4, 5]"
|
||||
:key="ii"
|
||||
:class="[
|
||||
'iconfont',
|
||||
'icon-start',
|
||||
itemIndex <= store_info.store_star_num ? 'sel' : '',
|
||||
]"
|
||||
>
|
||||
<view class="m-startBox" v-for="(itemIndex, ii) in [1, 2, 3, 4, 5]" :key="ii" :class="[
|
||||
'iconfont',
|
||||
'icon-start',
|
||||
itemIndex <= store_info.store_star_num ? 'sel' : '',
|
||||
]">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="margin-left: 20rpx" v-if="false">{{
|
||||
store_info.store_grade_name
|
||||
}}</view>
|
||||
<text
|
||||
style="
|
||||
<text style="
|
||||
width: 56%;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
overflow: hidden;
|
||||
"
|
||||
v-if="store_info.store_slogan != ''"
|
||||
>{{ sprintf(__("公告:%s"), store_info.store_slogan) }}</text
|
||||
>
|
||||
" v-if="store_info.store_slogan != ''">{{ sprintf(__("公告:%s"), store_info.store_slogan) }}</text>
|
||||
</view>
|
||||
<view class="tag-view">
|
||||
<uni-tag
|
||||
:text="__('已收藏')"
|
||||
mark="right"
|
||||
type="gray"
|
||||
size="normal"
|
||||
inverted="1"
|
||||
circle="true"
|
||||
data-type="groupbuy"
|
||||
v-if="store_info.analytics.store_collect"
|
||||
@click="onUnlikeStore(store_info.store_id)"
|
||||
></uni-tag>
|
||||
<uni-tag :text="__('已收藏')" mark="right" type="gray" size="normal" inverted="1" circle="true"
|
||||
data-type="groupbuy" v-if="store_info.analytics.store_collect"
|
||||
@click="onUnlikeStore(store_info.store_id)"></uni-tag>
|
||||
|
||||
<uni-tag
|
||||
:text="__('收藏')"
|
||||
mark="right"
|
||||
type="lancerdt"
|
||||
size="normal"
|
||||
inverted="1"
|
||||
circle="true"
|
||||
data-type="groupbuy"
|
||||
v-if="store_info.analytics.store_collect < 1"
|
||||
@click="onLikeStore(store_info.store_id)"
|
||||
></uni-tag>
|
||||
<uni-tag :text="__('收藏')" mark="right" type="lancerdt" size="normal" inverted="1" circle="true"
|
||||
data-type="groupbuy" v-if="store_info.analytics.store_collect < 1"
|
||||
@click="onLikeStore(store_info.store_id)"></uni-tag>
|
||||
|
||||
<uni-tag
|
||||
:text="
|
||||
sprintf(__(' %d 次'), store_info.analytics.store_favorite_num)
|
||||
"
|
||||
mark="true"
|
||||
type="lancerdt"
|
||||
size="normal"
|
||||
inverted="1"
|
||||
circle="true"
|
||||
data-type="groupbuy"
|
||||
></uni-tag>
|
||||
<uni-tag :text="sprintf(__(' %d 次'), store_info.analytics.store_favorite_num)
|
||||
" mark="true" type="lancerdt" size="normal" inverted="1" circle="true" data-type="groupbuy"></uni-tag>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view v-if="loadStoreConfigComplete">
|
||||
<diy
|
||||
v-if="commonTPL.TemplateKey == 'shopdiy'"
|
||||
:BgConfig="BgConfig"
|
||||
:PageContent="PageContent"
|
||||
:pageId="pageId"
|
||||
:PageNav="PageNav"
|
||||
:StoreInfo="commonTPL.shopInfo"
|
||||
:loadPageFlag="loadPageFlag"
|
||||
></diy>
|
||||
<diy v-if="commonTPL.TemplateKey == 'shopdiy'" :BgConfig="BgConfig" :PageContent="PageContent" :pageId="pageId"
|
||||
:PageNav="PageNav" :StoreInfo="commonTPL.shopInfo" :loadPageFlag="loadPageFlag"></diy>
|
||||
|
||||
<block v-if="commonTPL.TemplateKey != 'shopdiy'">
|
||||
<block v-else>
|
||||
<view class="g-flex m-ba-tab" v-if="commonTPL.TemplateKey != ''">
|
||||
<view
|
||||
:class="[
|
||||
'g-flex-item',
|
||||
commonTPL.tapindex == 1 ? 'm-ba-item-select' : '',
|
||||
]"
|
||||
@click="clickRecommend"
|
||||
v-if="commonTPL.TemplateKey != 'shop6'"
|
||||
>
|
||||
<!--我加的判断-->
|
||||
<view :class="[
|
||||
'g-flex-item',
|
||||
commonTPL.tapindex == 1 ? 'm-ba-item-select' : '',
|
||||
]" @click="clickRecommend" v-if="commonTPL.TemplateKey != 'shop6'">
|
||||
<view class="m-ba-icon">
|
||||
<label class="iconfont icon-discount"></label>
|
||||
</view>
|
||||
<view>{{ __("推荐") }}</view>
|
||||
</view>
|
||||
<view
|
||||
:class="[
|
||||
'g-flex-item',
|
||||
commonTPL.tapindex == 2 ? 'm-ba-item-select' : '',
|
||||
]"
|
||||
@click="clickListAllProduct"
|
||||
>
|
||||
<view :class="[
|
||||
'g-flex-item',
|
||||
commonTPL.tapindex == 2 ? 'm-ba-item-select' : '',
|
||||
]" @click="clickListAllProduct">
|
||||
<view class="m-ba-icon">{{ commonTPL.shopInfo.AllProduct }}</view>
|
||||
<view>{{ __("全部商品") }}</view>
|
||||
</view>
|
||||
<view
|
||||
:class="[
|
||||
'g-flex-item',
|
||||
commonTPL.tapindex == 3 ? 'm-ba-item-select' : '',
|
||||
]"
|
||||
@click="clickListNewProduct"
|
||||
>
|
||||
<view :class="[
|
||||
'g-flex-item',
|
||||
commonTPL.tapindex == 3 ? 'm-ba-item-select' : '',
|
||||
]" @click="clickListNewProduct">
|
||||
<view class="m-ba-icon">{{ commonTPL.shopInfo.NewProduct }}</view>
|
||||
<view>{{ __("上新") }}</view>
|
||||
</view>
|
||||
<view
|
||||
:class="[
|
||||
'g-flex-item',
|
||||
commonTPL.tapindex == 4 ? 'm-ba-item-select' : '',
|
||||
]"
|
||||
@click="clickGetStoreData"
|
||||
>
|
||||
<view :class="[
|
||||
'g-flex-item',
|
||||
commonTPL.tapindex == 4 ? 'm-ba-item-select' : '',
|
||||
]" @click="clickGetStoreData">
|
||||
<view class="m-ba-icon">
|
||||
<label class="iconfont icon-store"></label>
|
||||
</view>
|
||||
<view>{{ __("店铺简介") }}</view>
|
||||
</view>
|
||||
<view
|
||||
:class="[
|
||||
'g-flex-item',
|
||||
commonTPL.tapindex == 4 ? 'm-ba-item-select hide' : 'hide',
|
||||
]"
|
||||
@click="showSupplyProducts"
|
||||
>
|
||||
<view :class="[
|
||||
'g-flex-item',
|
||||
commonTPL.tapindex == 4 ? 'm-ba-item-select hide' : 'hide',
|
||||
]" @click="showSupplyProducts">
|
||||
<view class="m-ba-icon">
|
||||
<label class="iconfont icon-store"></label>
|
||||
</view>
|
||||
@ -164,129 +103,73 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<shoptheme1
|
||||
v-if="commonTPL.tapindex == 1 && commonTPL.TemplateKey == 'shop1'"
|
||||
:commonTPL="commonTPL"
|
||||
>
|
||||
<shoptheme1 v-if="commonTPL.tapindex == 1 && commonTPL.TemplateKey == 'shop1'" :commonTPL="commonTPL">
|
||||
</shoptheme1>
|
||||
<shoptheme2
|
||||
v-if="commonTPL.tapindex == 1 && commonTPL.TemplateKey == 'shop2'"
|
||||
:commonTPL="commonTPL"
|
||||
>
|
||||
<shoptheme2 v-if="commonTPL.tapindex == 1 && commonTPL.TemplateKey == 'shop2'" :commonTPL="commonTPL">
|
||||
</shoptheme2>
|
||||
<shoptheme3
|
||||
v-if="commonTPL.tapindex == 1 && commonTPL.TemplateKey == 'shop3'"
|
||||
:commonTPL="commonTPL"
|
||||
>
|
||||
<shoptheme3 v-if="commonTPL.tapindex == 1 && commonTPL.TemplateKey == 'shop3'" :commonTPL="commonTPL">
|
||||
</shoptheme3>
|
||||
<shoptheme4
|
||||
v-if="commonTPL.tapindex == 1 && commonTPL.TemplateKey == 'shop4'"
|
||||
:commonTPL="commonTPL"
|
||||
>
|
||||
<shoptheme4 v-if="commonTPL.tapindex == 1 && commonTPL.TemplateKey == 'shop4'" :commonTPL="commonTPL">
|
||||
</shoptheme4>
|
||||
<shoptheme5
|
||||
v-if="commonTPL.tapindex == 1 && commonTPL.TemplateKey == 'shop5'"
|
||||
:commonTPL="commonTPL"
|
||||
>
|
||||
<shoptheme5 v-if="commonTPL.tapindex == 1 && commonTPL.TemplateKey == 'shop5'" :commonTPL="commonTPL">
|
||||
</shoptheme5>
|
||||
<shoptheme6
|
||||
v-if="commonTPL.tapindex == 1 && commonTPL.TemplateKey == 'shop6'"
|
||||
:commonTPL="commonTPL"
|
||||
>
|
||||
<shoptheme6 v-if="commonTPL.tapindex == 1 && commonTPL.TemplateKey == 'shop6'" :commonTPL="commonTPL">
|
||||
</shoptheme6>
|
||||
|
||||
<view v-if="loadStoreCategoryComplete">
|
||||
<shoptheme6
|
||||
v-if="commonTPL.tapindex == 2 && commonTPL.TemplateKey == 'shop6'"
|
||||
:commonTPL="commonTPL"
|
||||
ref="shop6"
|
||||
></shoptheme6>
|
||||
<shoptheme6 v-if="commonTPL.tapindex == 2 && commonTPL.TemplateKey == 'shop6'" :commonTPL="commonTPL"
|
||||
ref="shop6"></shoptheme6>
|
||||
<view v-else-if="commonTPL.tapindex == 2" class="m-scroll-box">
|
||||
<scroll-view
|
||||
scroll-y="true"
|
||||
@scrolltolower="scrollbottom"
|
||||
@scroll="scrollView"
|
||||
@scrolltoupper="scrollTop"
|
||||
class="m-product-all"
|
||||
:class="[
|
||||
<scroll-view scroll-y="true" @scrolltolower="scrollbottom" @scroll="scrollView" @scrolltoupper="scrollTop"
|
||||
class="m-product-all" :class="[
|
||||
'm-product-all',
|
||||
'u-pa',
|
||||
commonTPL.istop ? 'u-patop' : 'u-pabtn',
|
||||
]"
|
||||
>
|
||||
]">
|
||||
<view class="m-tab">
|
||||
<view class="m-navbar">
|
||||
<view
|
||||
class="m-navbar-item"
|
||||
:class="[
|
||||
'm-navbar-item',
|
||||
commonTPL.post.orderby == 'product_sale_num'
|
||||
? 'm-navbar-item-on'
|
||||
: '',
|
||||
]"
|
||||
@click="clickSortBySaleNum"
|
||||
>
|
||||
<view class="m-navbar-item" :class="[
|
||||
'm-navbar-item',
|
||||
commonTPL.post.orderby == 'product_sale_num'
|
||||
? 'm-navbar-item-on'
|
||||
: '',
|
||||
]" @click="clickSortBySaleNum">
|
||||
{{ __("销量") }}
|
||||
</view>
|
||||
<view
|
||||
class="m-navbar-item"
|
||||
:class="[
|
||||
'm-navbar-item',
|
||||
commonTPL.post.orderby == 'product_add_time'
|
||||
? 'm-navbar-item-on'
|
||||
: '',
|
||||
]"
|
||||
@click="clickNewpd"
|
||||
>
|
||||
<view class="m-navbar-item" :class="[
|
||||
'm-navbar-item',
|
||||
commonTPL.post.orderby == 'product_add_time'
|
||||
? 'm-navbar-item-on'
|
||||
: '',
|
||||
]" @click="clickNewpd">
|
||||
{{ __("新品") }}
|
||||
</view>
|
||||
<view
|
||||
class="m-navbar-item"
|
||||
:class="[
|
||||
'm-navbar-item',
|
||||
commonTPL.post.orderby == 'product_unit_price'
|
||||
? 'm-navbar-item-on'
|
||||
: '',
|
||||
]"
|
||||
@click="clickSortByPrice"
|
||||
>
|
||||
<view class="m-navbar-item" :class="[
|
||||
'm-navbar-item',
|
||||
commonTPL.post.orderby == 'product_unit_price'
|
||||
? 'm-navbar-item-on'
|
||||
: '',
|
||||
]" @click="clickSortByPrice">
|
||||
<label class="m-sort">
|
||||
{{ __("价格") }}
|
||||
<image
|
||||
:src="
|
||||
'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/' +
|
||||
(commonTPL.sort == 1 ? 'sort-desc' : 'sort-asc') +
|
||||
'.png'
|
||||
"
|
||||
/>
|
||||
<image :src="'https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/' +
|
||||
(commonTPL.sort == 1 ? 'sort-desc' : 'sort-asc') +
|
||||
'.png'
|
||||
" />
|
||||
</label>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view
|
||||
:class="[
|
||||
'm-product-list',
|
||||
commonTPL.viewtype == 1 ? 'fadeIn animated m-listv' : '',
|
||||
]"
|
||||
>
|
||||
<navigator
|
||||
v-for="(item, i) in commonTPL.pdlist"
|
||||
:key="i"
|
||||
:url="
|
||||
'/pages/product/detail?is_store_flag=' +
|
||||
commonTPL.isStoreFlag +
|
||||
'&pid=' +
|
||||
item.id
|
||||
"
|
||||
class="m-product-item"
|
||||
style="border-radius: 19rpx"
|
||||
>
|
||||
<view :class="[
|
||||
'm-product-list',
|
||||
commonTPL.viewtype == 1 ? 'fadeIn animated m-listv' : '',
|
||||
]">
|
||||
<view v-for="(item, i) in commonTPL.pdlist" :key="i" @click="goShopDetail('/pages/product/detail?is_store_flag=' +
|
||||
commonTPL.isStoreFlag +
|
||||
'&pid=' +
|
||||
item.id)" class="m-product-item" style="border-radius: 19rpx">
|
||||
<view class="m-product-img">
|
||||
<image
|
||||
:src="item.ProductPic"
|
||||
mode="aspectFill"
|
||||
style="border-radius: 19rpx"
|
||||
/>
|
||||
<image :src="item.ProductPic" mode="aspectFill" style="border-radius: 19rpx" />
|
||||
</view>
|
||||
<view class="m-product-info">
|
||||
<view class="m-product-name">
|
||||
@ -294,39 +177,39 @@
|
||||
</view>
|
||||
<view class="m-product-price">
|
||||
<block v-if="item.ItemSalePrice">
|
||||
<label>{{ __("¥") }}</label
|
||||
>{{ number_format(item.ItemSalePrice, 2) }}
|
||||
<label>{{ __("¥")
|
||||
}}{{ number_format(item.ItemSalePrice, 2) }}</label>
|
||||
</block>
|
||||
|
||||
<view @click.stop="addCart(item, $event)">
|
||||
<uni-icons type="plus-filled" size="30" color="#fe411b"></uni-icons>
|
||||
</view>
|
||||
|
||||
<block v-if="item.product_unit_points">
|
||||
<label style="margin: 0rpx 10rpx">+</label
|
||||
><label style="font-size: 32rpx">{{
|
||||
<label style="margin: 0rpx 10rpx">+</label><label style="font-size: 32rpx">{{
|
||||
number_format(item.product_unit_points)
|
||||
}}</label>
|
||||
<label>{{ __("积分") }}</label>
|
||||
</block>
|
||||
|
||||
<block v-if="item.product_unit_sp">
|
||||
<label style="margin: 0rpx 10rpx">+</label
|
||||
><label style="font-size: 32rpx">{{
|
||||
<label style="margin: 0rpx 10rpx">+</label><label style="font-size: 32rpx">{{
|
||||
item.product_unit_sp
|
||||
}}</label>
|
||||
<label>{{ __("众宝") }}</label>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</navigator>
|
||||
</view>
|
||||
</view>
|
||||
<view class="u-top-default">
|
||||
<view class="u-view" @click="onViewType">
|
||||
<label
|
||||
:class="[
|
||||
'iconfont zc',
|
||||
commonTPL.viewtype == 1
|
||||
? 'zc-viewlist'
|
||||
: 'zc-viewgallery',
|
||||
]"
|
||||
></label>
|
||||
<label :class="[
|
||||
'iconfont zc',
|
||||
commonTPL.viewtype == 1
|
||||
? 'zc-viewlist'
|
||||
: 'zc-viewgallery',
|
||||
]"></label>
|
||||
</view>
|
||||
<view class="u-back hide" @click="retruntop">
|
||||
<label class="iconfont icon-fanhuidingbu"></label>
|
||||
@ -352,47 +235,26 @@
|
||||
</view>
|
||||
|
||||
<view v-if="loadStoreCategoryComplete">
|
||||
<shoptheme6
|
||||
v-if="commonTPL.tapindex == 3 && commonTPL.TemplateKey == 'shop6'"
|
||||
:commonTPL="commonTPL"
|
||||
@ckallPD6="ckallPD6"
|
||||
>
|
||||
<shoptheme6 v-if="commonTPL.tapindex == 3 && commonTPL.TemplateKey == 'shop6'" :commonTPL="commonTPL"
|
||||
@ckallPD6="ckallPD6">
|
||||
</shoptheme6>
|
||||
<scroll-view
|
||||
v-else-if="commonTPL.tapindex == 3"
|
||||
scroll-y="true"
|
||||
@scrolltolower="scrollbottom"
|
||||
@scrolltoupper="scrollTop"
|
||||
@scroll="scrollView"
|
||||
:class="[
|
||||
<scroll-view v-else-if="commonTPL.tapindex == 3" scroll-y="true" @scrolltolower="scrollbottom"
|
||||
@scrolltoupper="scrollTop" @scroll="scrollView" :class="[
|
||||
'm-product-all u-pa',
|
||||
commonTPL.istop ? 'u-patop' : 'u-pabtn',
|
||||
]"
|
||||
>
|
||||
<view
|
||||
:class="[
|
||||
'm-product-list',
|
||||
'no-tap',
|
||||
commonTPL.viewtype == 1 ? 'fadeIn animated m-listv' : '',
|
||||
]"
|
||||
>
|
||||
]">
|
||||
<view :class="[
|
||||
'm-product-list',
|
||||
'no-tap',
|
||||
commonTPL.viewtype == 1 ? 'fadeIn animated m-listv' : '',
|
||||
]">
|
||||
<block v-for="(item, i) in commonTPL.pdlist" :key="i">
|
||||
<navigator
|
||||
:url="
|
||||
'/pages/product/detail?is_store_flag=' +
|
||||
commonTPL.isStoreFlag +
|
||||
'&pid=' +
|
||||
item.id
|
||||
"
|
||||
class="m-product-item"
|
||||
style="border-radius: 19rpx"
|
||||
>
|
||||
<view @click="goShopDetail('/pages/product/detail?is_store_flag=' +
|
||||
commonTPL.isStoreFlag +
|
||||
'&pid=' +
|
||||
item.id)" class="m-product-item" style="border-radius: 19rpx">
|
||||
<view class="m-product-img">
|
||||
<image
|
||||
:src="item.ProductPic"
|
||||
mode="aspectFill"
|
||||
style="border-radius: 19rpx"
|
||||
/>
|
||||
<image :src="item.ProductPic" mode="aspectFill" style="border-radius: 19rpx" />
|
||||
</view>
|
||||
<view class="m-product-info">
|
||||
<view class="m-product-name">
|
||||
@ -400,44 +262,35 @@
|
||||
</view>
|
||||
<view class="m-product-price">
|
||||
<block v-if="item.ItemSalePrice">
|
||||
<label>{{ __("¥") }}</label
|
||||
>{{ number_format(item.ItemSalePrice, 2) }}
|
||||
<label>{{ __("¥") }}{{ number_format(item.ItemSalePrice, 2) }}</label>
|
||||
</block>
|
||||
|
||||
<block v-if="item.product_unit_points">
|
||||
<label style="margin: 0rpx 10rpx">+</label
|
||||
><label style="font-size: 32rpx">{{
|
||||
<label style="margin: 0rpx 10rpx">+</label><label style="font-size: 32rpx">{{
|
||||
number_format(item.product_unit_points)
|
||||
}}</label>
|
||||
<label>{{ __("积分") }}</label>
|
||||
</block>
|
||||
|
||||
<block v-if="item.product_unit_sp">
|
||||
<label style="margin: 0rpx 10rpx">+</label
|
||||
><label style="font-size: 32rpx">{{
|
||||
<label style="margin: 0rpx 10rpx">+</label><label style="font-size: 32rpx">{{
|
||||
item.product_unit_sp
|
||||
}}</label>
|
||||
<label>{{ __("众宝") }}</label>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</navigator>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
<view class="u-top-default">
|
||||
<view
|
||||
class="u-view"
|
||||
@click="onViewType"
|
||||
style="line-height: 96rpx"
|
||||
>
|
||||
<label
|
||||
:class="[
|
||||
'iconfont zc',
|
||||
commonTPL.viewtype == 1
|
||||
? 'zc-viewlist'
|
||||
: 'zc-viewgallery',
|
||||
]"
|
||||
></label>
|
||||
<view class="u-view" @click="onViewType" style="line-height: 96rpx">
|
||||
<label :class="[
|
||||
'iconfont zc',
|
||||
commonTPL.viewtype == 1
|
||||
? 'zc-viewlist'
|
||||
: 'zc-viewgallery',
|
||||
]"></label>
|
||||
</view>
|
||||
<view class="u-back hide" @click="retruntop">
|
||||
<label class="iconfont icon-fanhuidingbu"></label>
|
||||
@ -464,49 +317,33 @@
|
||||
<view v-if="commonTPL.tapindex == 4" class="m-ShopProfile">
|
||||
<view class="m-cells" style="">
|
||||
<view class="shop-address-content">
|
||||
<view
|
||||
class="shop-address-left-content"
|
||||
@click.stop="gotomap"
|
||||
:data-lat="commonTPL.shopInfo.store_latitude"
|
||||
:data-address="commonTPL.shopInfo.LegalAdress"
|
||||
:data-name="commonTPL.shopInfo.store_name"
|
||||
:data-lng="commonTPL.shopInfo.store_longitude"
|
||||
>
|
||||
<view class="shop-address-left-content" @click.stop="gotomap"
|
||||
:data-lat="commonTPL.shopInfo.store_latitude" :data-address="commonTPL.shopInfo.LegalAdress"
|
||||
:data-name="commonTPL.shopInfo.store_name" :data-lng="commonTPL.shopInfo.store_longitude">
|
||||
<label class="zc zc-shouhuodizhi address-icon"></label>
|
||||
<view class="address-info">
|
||||
<view class="address-item">
|
||||
<text style="font-weight: 700">{{
|
||||
commonTPL.shopInfo.LegalAdress
|
||||
}}</text>
|
||||
<text
|
||||
v-if="distance"
|
||||
@click.stop="gotomap"
|
||||
:data-lat="commonTPL.shopInfo.store_latitude"
|
||||
:data-address="commonTPL.shopInfo.LegalAdress"
|
||||
:data-name="commonTPL.shopInfo.store_name"
|
||||
:data-lng="commonTPL.shopInfo.store_longitude"
|
||||
style="color: #999; font-size: 20rpx"
|
||||
>{{ sprintf(__("距您 %s"), distance) }}</text
|
||||
>
|
||||
<text v-if="distance" @click.stop="gotomap" :data-lat="commonTPL.shopInfo.store_latitude"
|
||||
:data-address="commonTPL.shopInfo.LegalAdress" :data-name="commonTPL.shopInfo.store_name"
|
||||
:data-lng="commonTPL.shopInfo.store_longitude" style="color: #999; font-size: 20rpx">{{
|
||||
sprintf(__("距您 %s"), distance) }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<span>
|
||||
<image
|
||||
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/phone_sp.png"
|
||||
style="width: 4rpx; height: 70rpx; border-radius: 24%"
|
||||
/>
|
||||
style="width: 4rpx; height: 70rpx; border-radius: 24%" />
|
||||
</span>
|
||||
|
||||
<view
|
||||
class="shop-address-right-content"
|
||||
@click="callPhone(commonTPL.shopInfo.LegalNumber)"
|
||||
>
|
||||
<view class="shop-address-right-content" @click="callPhone(commonTPL.shopInfo.LegalNumber)">
|
||||
<view class="shop-address-right-item">
|
||||
<image
|
||||
src="https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/static/xcxfile/appicon/images/phone.png"
|
||||
class="phone-img"
|
||||
/>
|
||||
class="phone-img" />
|
||||
<text style="font-size: 12px">{{ __("联系商家") }}</text>
|
||||
</view>
|
||||
</view>
|
||||
@ -514,35 +351,16 @@
|
||||
|
||||
<view class="m-cell">
|
||||
<view class="m-cell-bd">
|
||||
<!-- <text>{{sprintf(__('店铺介绍:%s'), commonTPL.shopInfo.VendorInfo)}}</text> -->
|
||||
<wxParse
|
||||
:content="commonTPL.shopInfo.VendorInfo || ' '"
|
||||
:imageProp="{ padding: 0 }"
|
||||
/>
|
||||
<wxParse :content="commonTPL.shopInfo.VendorInfo || ' '" :imageProp="{ padding: 0 }" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="m-cell" v-if="false" style="margin: 0 20rpx">
|
||||
<view class="m-cell-bd">
|
||||
<swiper
|
||||
indicator-dots="true"
|
||||
autoplay="true"
|
||||
interval="3000"
|
||||
duration="300"
|
||||
>
|
||||
<swiper-item
|
||||
v-for="(item, ii) in commonTPL.shopInfo.info.store_slide"
|
||||
:key="ii"
|
||||
v-if="item.check"
|
||||
>
|
||||
<image
|
||||
lazy-load
|
||||
class="slide-image"
|
||||
mode="aspectFill"
|
||||
:src="item.img"
|
||||
:data-src="item.img"
|
||||
@click="previewProductImg"
|
||||
/>
|
||||
<swiper indicator-dots="true" autoplay="true" interval="3000" duration="300">
|
||||
<swiper-item v-for="(item, ii) in commonTPL.shopInfo.info.store_slide" :key="ii" v-if="item.check">
|
||||
<image lazy-load class="slide-image" mode="aspectFill" :src="item.img" :data-src="item.img"
|
||||
@click="previewProductImg" />
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</view>
|
||||
@ -550,17 +368,12 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!--评论-->
|
||||
<view v-if="commonTPL.tapindex == 5">
|
||||
<block v-if="comment_row.length > 0">
|
||||
<view class="uni-padding-wrap">
|
||||
<view class="uni-comment">
|
||||
<view
|
||||
v-for="(comment, cc) in comment_row"
|
||||
:key="cc"
|
||||
class="uni-comment-list"
|
||||
style="border-bottom: 1px solid #eee"
|
||||
>
|
||||
<view v-for="(comment, cc) in comment_row" :key="cc" class="uni-comment-list"
|
||||
style="border-bottom: 1px solid #eee">
|
||||
<view class="uni-comment-face">
|
||||
<image :src="comment.user_avatar" mode="widthFix"></image>
|
||||
</view>
|
||||
@ -574,22 +387,13 @@
|
||||
<view class="uni-comment-content">{{
|
||||
comment.comment_content
|
||||
}}</view>
|
||||
<view
|
||||
v-if="comment.comment_image[0]"
|
||||
class="m-cell-bd"
|
||||
style="padding: 0; margin: 0; line-height: 1"
|
||||
>
|
||||
<view v-if="comment.comment_image[0]" class="m-cell-bd"
|
||||
style="padding: 0; margin: 0; line-height: 1">
|
||||
<view class="uni-uploader-body">
|
||||
<view class="uni-uploader__files">
|
||||
<block
|
||||
v-for="(image, ii) in comment.comment_image"
|
||||
:key="ii"
|
||||
>
|
||||
<block v-for="(image, ii) in comment.comment_image" :key="ii">
|
||||
<view class="uni-uploader__file">
|
||||
<image
|
||||
class="uni-uploader__img"
|
||||
:src="comment.comment_image[ii]"
|
||||
></image>
|
||||
<image class="uni-uploader__img" :src="comment.comment_image[ii]"></image>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
@ -600,11 +404,8 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<navigator
|
||||
:url="'/pages/index/addcomment?is_store=' + options.store_id"
|
||||
class="m-nullpage"
|
||||
style="height: 286rpx; margin-top: 0%"
|
||||
>
|
||||
<navigator :url="'/pages/index/addcomment?is_store=' + options.store_id" class="m-nullpage"
|
||||
style="height: 286rpx; margin-top: 0%">
|
||||
<view class="m-nullpage-middle">
|
||||
<label class="iconfont icon-xiecomment"></label>
|
||||
<view class="m-null-tip">
|
||||
@ -615,10 +416,7 @@
|
||||
</navigator>
|
||||
</block>
|
||||
<block v-else>
|
||||
<navigator
|
||||
:url="'/pages/index/addcomment?is_store=' + options.store_id"
|
||||
class="m-nullpage"
|
||||
>
|
||||
<navigator :url="'/pages/index/addcomment?is_store=' + options.store_id" class="m-nullpage">
|
||||
<view class="m-nullpage-middle">
|
||||
<label class="iconfont icon-xiecomment"></label>
|
||||
<view class="m-null-tip">
|
||||
@ -629,11 +427,11 @@
|
||||
</navigator>
|
||||
</block>
|
||||
</view>
|
||||
|
||||
<!--评论-->
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<MyTabbar current="1" :cartNum="cartNum" :storeId="shopInfo.store_id" :categoryId="shopInfo.category_id"></MyTabbar>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -686,6 +484,7 @@ var thatProm = {
|
||||
formdate: "",
|
||||
pageId: 0,
|
||||
};
|
||||
|
||||
import wxParse from "@/components/u-parse/u-parse.vue";
|
||||
import paymentBox from "../../components/payment-box.vue";
|
||||
|
||||
@ -699,6 +498,7 @@ import shoptheme5 from "../../components/themes/shoptheme5.vue";
|
||||
import shoptheme6 from "../../components/themes/shoptheme6.vue";
|
||||
import diy from "../../components/themes/diy.vue";
|
||||
import uniTag from "@/components/uni-tag/uni-tag.vue";
|
||||
import MyTabbar from "./components/tabbar.vue";
|
||||
|
||||
import favorite from "@/helpers/favorite";
|
||||
|
||||
@ -771,6 +571,7 @@ export default {
|
||||
"shopInfo",
|
||||
"userInfo",
|
||||
"hasLogin",
|
||||
"cartNum",
|
||||
]),
|
||||
components: {
|
||||
shoptheme1,
|
||||
@ -782,7 +583,16 @@ export default {
|
||||
diy,
|
||||
uniTag,
|
||||
wxParse,
|
||||
MyTabbar,
|
||||
},
|
||||
|
||||
onBackPress({ from }) {
|
||||
console.log("=======", from);
|
||||
if (from == "backbutton") {
|
||||
uni.switchTab({ url: "/pages/index/index" });
|
||||
}
|
||||
},
|
||||
|
||||
onLoad: function (options) {
|
||||
this.initStorePageData(options);
|
||||
},
|
||||
@ -818,7 +628,7 @@ export default {
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom: function () {},
|
||||
onReachBottom: function () { },
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
@ -859,7 +669,7 @@ export default {
|
||||
/**
|
||||
* 页面滚动触发事件的处理函数
|
||||
*/
|
||||
onPageScroll: function () {},
|
||||
onPageScroll: function () { },
|
||||
|
||||
methods: {
|
||||
...mapMutations([
|
||||
@ -868,7 +678,46 @@ export default {
|
||||
"forceUserInfo",
|
||||
"getStoreInfo",
|
||||
]),
|
||||
ckLabel: function (e) {},
|
||||
|
||||
goShopDetail(url) {
|
||||
this.$.gopage(url)
|
||||
},
|
||||
|
||||
async addCart(item, event) {
|
||||
var that = this;
|
||||
var params = {
|
||||
item_id: item.item_id,
|
||||
proName: item.product_name,
|
||||
cart_quantity: 1,
|
||||
activity_id: 0,
|
||||
SKU_Id: item.item_id,
|
||||
};
|
||||
|
||||
event.stopPropagation()
|
||||
|
||||
await this.$store.dispatch(`addCart`, {
|
||||
params: params,
|
||||
callback: (data, status, msg, code) => {
|
||||
if (status == 200) {
|
||||
if (data.item_quantity != 0) {
|
||||
that.$.alert(that.__("添加购物车成功"), function () { }, 400);
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: "亲~商品没有库存啦!",
|
||||
icon: "error",
|
||||
duration: 500,
|
||||
});
|
||||
// that.$.alert(that.__("商品没有库存了"), function () {}, 500);
|
||||
}
|
||||
|
||||
if (that.plantformInfo.prodcut_addcart_flag) {
|
||||
that.$store.dispatch(`getCartList`, function (data) { });
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
ckLabel: function (e) { },
|
||||
reloadShop6Data: function () {
|
||||
let that = this;
|
||||
if (this.$refs.shop6) {
|
||||
@ -979,9 +828,9 @@ export default {
|
||||
Math.asin(
|
||||
Math.sqrt(
|
||||
Math.pow(Math.sin(a / 2), 2) +
|
||||
Math.cos(radLat1) *
|
||||
Math.cos(radLat2) *
|
||||
Math.pow(Math.sin(b / 2), 2)
|
||||
Math.cos(radLat1) *
|
||||
Math.cos(radLat2) *
|
||||
Math.pow(Math.sin(b / 2), 2)
|
||||
)
|
||||
);
|
||||
s = s * 6378.137; // EARTH_RADIUS;
|
||||
@ -1047,11 +896,11 @@ export default {
|
||||
RefreshProduct: function (e) {
|
||||
e
|
||||
? this.setData({
|
||||
refresh: true,
|
||||
})
|
||||
refresh: true,
|
||||
})
|
||||
: this.setData({
|
||||
refresh: false,
|
||||
});
|
||||
refresh: false,
|
||||
});
|
||||
},
|
||||
|
||||
//初始化数据,获取店铺分类
|
||||
@ -1108,7 +957,7 @@ export default {
|
||||
that.$.hideLoading();
|
||||
},
|
||||
|
||||
fail: function (err) {},
|
||||
fail: function (err) { },
|
||||
});
|
||||
});
|
||||
//读取店铺商品分类 todo 根据需要读取。
|
||||
@ -1209,7 +1058,7 @@ export default {
|
||||
that.getStoreData();
|
||||
},
|
||||
// 查看店铺简介
|
||||
getStoreData: function () {},
|
||||
getStoreData: function () { },
|
||||
// 切换商品显示方式
|
||||
onViewType: function () {
|
||||
var that = this;
|
||||
@ -1483,7 +1332,7 @@ export default {
|
||||
that.commonTPL.TemplateKey == "shopdiy" && that.getDivModel(); //shopdiy用户自定义UI
|
||||
resolve("success");
|
||||
},
|
||||
complete: function (res, status) {},
|
||||
complete: function (res, status) { },
|
||||
});
|
||||
});
|
||||
//读取店铺商品分类
|
||||
@ -1497,16 +1346,16 @@ export default {
|
||||
t.length > 2 || t.length < 2
|
||||
? that.$.alert("无法识别")
|
||||
: t[0] == "productId"
|
||||
? that.$.isNull(t[1])
|
||||
? that.$.alert("无法识别")
|
||||
: that.$.navigateTo("/pages/product/detail?pid=" + t[1])
|
||||
: t[0] == "eventId"
|
||||
? that.$.isNull(t[1])
|
||||
? that.$.alert("无法识别")
|
||||
: that.$.navigateTo(
|
||||
"../activitycheckin/activitycheckin?eventId=" + t[1]
|
||||
)
|
||||
: that.$.alert("无法识别");
|
||||
? that.$.isNull(t[1])
|
||||
? that.$.alert("无法识别")
|
||||
: that.$.navigateTo("/pages/product/detail?pid=" + t[1])
|
||||
: t[0] == "eventId"
|
||||
? that.$.isNull(t[1])
|
||||
? that.$.alert("无法识别")
|
||||
: that.$.navigateTo(
|
||||
"../activitycheckin/activitycheckin?eventId=" + t[1]
|
||||
)
|
||||
: that.$.alert("无法识别");
|
||||
},
|
||||
fail: function (e) {
|
||||
that.$.alert("无法识别");
|
||||
@ -1528,17 +1377,17 @@ export default {
|
||||
},
|
||||
userReceiveCoupon: function () {
|
||||
var e = {
|
||||
CouponIds: "",
|
||||
CouponIds: "",
|
||||
|
||||
user_is_new: this.user_is_new,
|
||||
},
|
||||
user_is_new: this.user_is_new,
|
||||
},
|
||||
that = this;
|
||||
that.$.xsr(that.$.makeUrl(userapi.UserReceiveCoupon, e), function (e) {
|
||||
e.Code == 0
|
||||
? that.setData({
|
||||
isCancelSuccess: false,
|
||||
Coupons: e.Info,
|
||||
})
|
||||
isCancelSuccess: false,
|
||||
Coupons: e.Info,
|
||||
})
|
||||
: that.$.alert(e.Msg);
|
||||
});
|
||||
},
|
||||
@ -1602,13 +1451,29 @@ export default {
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<style lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
@import "../../styles/_variables";
|
||||
@import "../../styles/layout.scss";
|
||||
@import "../../styles/store_themes.scss";
|
||||
@import "../../styles/store_tpl.scss";
|
||||
|
||||
.u-pabtn {
|
||||
position: static;
|
||||
}
|
||||
|
||||
.m-product-info {
|
||||
width: auto;
|
||||
|
||||
.m-product-price {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
|
||||
.inddex-store-container {
|
||||
padding-bottom: 64px;
|
||||
}
|
||||
|
||||
.inddex-store-container {
|
||||
.shop-address-content {
|
||||
display: flex;
|
||||
@ -1718,6 +1583,7 @@ export default {
|
||||
height: 30rpx;
|
||||
font-size: 20rpx;
|
||||
}
|
||||
|
||||
.m-startBox label {
|
||||
font-size: 20rpx;
|
||||
}
|
||||
@ -1725,7 +1591,7 @@ export default {
|
||||
}
|
||||
|
||||
.u-pa .m-product-list {
|
||||
padding-top: calc(82rpx) !important;
|
||||
padding-top: calc(90rpx) !important;
|
||||
}
|
||||
|
||||
.uni-comment-date {
|
||||
@ -1782,4 +1648,8 @@ export default {
|
||||
width: 182rpx;
|
||||
height: 182rpx;
|
||||
}
|
||||
|
||||
.u-top-default{
|
||||
bottom: 150px;
|
||||
}
|
||||
</style>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user