需求改动

main
fanfan 11 months ago
parent 6cd34f6e06
commit 8d530aecb0
  1. 7
      components/goods-sku-popup/index.vue
  2. 6
      manifest.json
  3. 7
      pages.json
  4. 236
      pages/cart/index.vue
  5. 458
      pages/goods/components/SkuPopup.vue
  6. 471
      pages/goods/detail.vue
  7. 1682
      pages/goods/list.vue
  8. 341
      pages/index/index.vue
  9. 10
      pages/serve/install.vue
  10. BIN
      static/test/JD.png
  11. BIN
      static/test/address.png
  12. BIN
      static/test/ben.png
  13. BIN
      static/test/moments.png
  14. BIN
      static/test/redShen.png
  15. BIN
      static/test/selectIcon.png
  16. BIN
      static/test/sheng.png
  17. BIN
      static/test/shenhe.png
  18. BIN
      static/test/tongkuan.png
  19. BIN
      static/test/zhuan.png

@ -33,7 +33,7 @@
item_value.ishow ? '' : themeColorFn('disableStyle'),
item_value.ishow ? themeColorFn('btnStyle') : '',
subIndex[index1] == index2 ? themeColorFn('activedStyle') : ''
]" @click="skuClick(item_value, index1, index2)">
]" @click="skuClick(item_value, index1, index2,item)">
{{ item_value.name }}
</view>
</view>
@ -622,7 +622,7 @@
//
},
// sku
skuClick(value, index1, index2) {
skuClick(value, index1, index2,item) {
let that = this;
if (value.ishow) {
if (that.selectArr[index1] != value.name) {
@ -631,7 +631,8 @@
} else {
that.$set(that.selectArr, index1, '');
that.$set(that.subIndex, index1, -1);
}
}
this.$emit('selectedOld',{title:item,value:value,})
that.checkInpath(index1);
//
that.checkSelectShop();

@ -113,11 +113,11 @@
"usingComponents" : true,
"lazyCodeLoading" : "requiredComponents",
"permission" : {
"scope.userLocation" : {
"desc" : "获取当前所在城市位置"
},
"makePhoneCall" : {
"desc" : "用于拨打电话"
},
"scope.userLocation" : {
"desc" : "获取当前所在城市位置"
}
},
"optimization" : {

@ -751,6 +751,13 @@
"navigationStyle": "custom"
// "navigationBarTitleText": "商品详情页"
}
},
{
"path": "city",
"style": {
"navigationBarTitleText": "城市列表",
"enablePullDownRefresh": true
}
}
]
},

@ -80,15 +80,52 @@
<text v-if="item.selling_point" class="ziying">{{item.selling_point}}</text>
<text class="name">{{item.goods_name}}</text>
</view>
<!-- <view class="isExpress">
<text>包邮</text>
</view> -->
<view class="price">
<text style="font-size: 20rpx;"></text>
<text style="font-weight: bold;font-size: 36rpx;">{{item.goods_price_min}}</text>
<text style="font-size: 20rpx;margin-left:10rpx;">到手价</text>
<text
style="color: #949494;font-size: 22rpx;text-decoration: line-through;">{{item.line_price_min}}</text>
</view>
<!-- 商品价格 -->
<view class="shenBox">
<view class="detail-price oneline-hide">
<text class="goods-price f-30 col-m"><text
style="font-size: 26rpx;"></text>{{ item.goods_price_min>0?Number(item.goods_price_min):0.00}}
<text class="delPrice"></text></text>
<text v-if="item.line_price_min > 0"
class="line-price col-9 f-24">{{ item.line_price_min>0?Number(item.line_price_min):0.00 }}</text>
</view>
<image src="../../static/test/redShen.png" v-if="is_check==1" mode=""></image>
</view>
<view class="goodsInfo1">
<view class="oneTip">
{{item.cmmdty_model}}
</view>
</view>
<view class="goodsSend">
<view class="sendLeft">
<view class="left_1" v-if="item.goods_source==0">
JD
</view>
<view class="left_1" v-if="item.goods_source==1">
SN
</view>
<view class="left_1" v-if="item.goods_source==2">
GC
</view>
<view class="left_1" v-if="item.goods_source==3">
CC
</view>
<view class="left_1" v-if="item.goods_source==4">
ZC
</view>
<view class="left_2">
{{Number(item.discount)}}
</view>
</view>
<view class="sendRight">
<text v-if="item.delivery_time==0">24小时内发货</text>
<text v-if="item.delivery_time==1">48小时内发货</text>
<text v-if="item.delivery_time==2">72小时内发货</text>
<text v-if="item.delivery_time==3">7天内发货</text>
<text v-if="item.delivery_time==4">15天内发货</text>
<text v-if="item.delivery_time==5">30天内发货</text>
<text v-if="item.delivery_time==6">45天内发货</text>
</view>
</view>
</view>
@ -104,15 +141,52 @@
<text v-if="item.selling_point" class="ziying">{{item.selling_point}}</text>
<text class="name">{{item.goods_name}}</text>
</view>
<!-- <view class="isExpress">
<text>包邮</text>
</view> -->
<view class="price">
<text style="font-size: 20rpx;"></text>
<text style="font-weight: bold;font-size: 36rpx;">{{item.goods_price_min}}</text>
<text style="font-size: 20rpx;margin-left:10rpx;">到手价</text>
<text
style="color: #949494;font-size: 22rpx;text-decoration: line-through;">{{item.line_price_min}}</text>
</view>
<!-- 商品价格 -->
<view class="shenBox">
<view class="detail-price oneline-hide">
<text class="goods-price f-30 col-m"><text
style="font-size: 26rpx;"></text>{{ item.goods_price_min>0?Number(item.goods_price_min):0.00}}
<text class="delPrice"></text></text>
<text v-if="item.line_price_min > 0"
class="line-price col-9 f-24">{{ item.line_price_min>0?Number(item.line_price_min):0.00 }}</text>
</view>
<image src="../../static/test/redShen.png" v-if="is_check==1" mode=""></image>
</view>
<view class="goodsInfo1">
<view class="oneTip">
{{item.cmmdty_model}}
</view>
</view>
<view class="goodsSend">
<view class="sendLeft">
<view class="left_1" v-if="item.goods_source==0">
JD
</view>
<view class="left_1" v-if="item.goods_source==1">
SN
</view>
<view class="left_1" v-if="item.goods_source==2">
GC
</view>
<view class="left_1" v-if="item.goods_source==3">
CC
</view>
<view class="left_1" v-if="item.goods_source==4">
ZC
</view>
<view class="left_2">
{{Number(item.discount)}}
</view>
</view>
<view class="sendRight">
<text v-if="item.delivery_time==0">24小时内发货</text>
<text v-if="item.delivery_time==1">48小时内发货</text>
<text v-if="item.delivery_time==2">72小时内发货</text>
<text v-if="item.delivery_time==3">7天内发货</text>
<text v-if="item.delivery_time==4">15天内发货</text>
<text v-if="item.delivery_time==5">30天内发货</text>
<text v-if="item.delivery_time==6">45天内发货</text>
</view>
</view>
</view>
@ -405,6 +479,7 @@
::v-deep .u-empty {
padding: 100rpx 0;
}
.container {
padding-bottom: 120rpx;
}
@ -455,13 +530,14 @@
display: flex;
align-items: center;
margin-top: 14rpx;
white-space: normal;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
-webkit-line-clamp: 2;
height: 90rpx;
line-height: 45rpx;
.ziying {
padding: 4rpx 10rpx;
background: #FF4438;
@ -475,10 +551,10 @@
.name {
margin-left: 6rpx;
font-size: 24rpx;
font-weight: 400;
color: #1E1E1E;
flex: 1;
font-weight: bold;
font-size: 30rpx;
}
}
@ -781,4 +857,122 @@
}
}
.shenBox {
overflow: hidden;
display: flex;
justify-content: space-between;
align-items: center;
image {
width: 28rpx;
height: 28rpx;
}
}
.goods-price {
font-family: PingFang SC, PingFang SC;
font-weight: bold;
font-size: 36rpx;
color: #F21A1C !important;
}
.line-price {
text-decoration: line-through;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #949494;
}
.goodsInfo1 {
display: flex;
align-items: center;
margin-bottom: 10rpx;
.oneTip {
padding: 0 16rpx;
height: 42rpx;
background: #F6F6F6;
border-radius: 10rpx 10rpx 10rpx 10rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #333333;
line-height: 42rpx;
text-align: left;
font-style: normal;
text-transform: none;
margin-top: 6rpx;
max-width: 300rpx;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
-webkit-line-clamp: 1;
white-space: nowrap;
}
}
.goodsSend {
display: flex;
justify-content: space-between;
align-items: center;
.sendLeft {
width: 120rpx;
border: 1rpx solid #F21A1C;
border-radius: 10rpx;
height: 42rpx;
display: flex;
justify-content: space-between;
align-items: center;
.left_1 {
height: 100%;
width: 50rpx;
line-height: 36.5rpx;
font-family: PingFang SC, PingFang SC;
font-weight: bold;
font-size: 30rpx;
color: #F21A1C;
text-align: center;
}
.left_2 {
height: 100%;
width: 70rpx;
background-color: #F21A1C;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #FFFFFF;
line-height: 36rpx;
text-align: center;
font-style: normal;
text-transform: none;
}
}
.sendRight {
height: 42rpx;
background: #FDEDED;
padding: 0 10rpx;
border-radius: 10rpx 10rpx 10rpx 10rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #F21A1C;
line-height: 42rpx;
text-align: left;
font-style: normal;
text-transform: none;
}
}
.delPrice {
font-size: 20rpx;
font-weight: 500;
color: #F21A1C;
}
</style>

@ -1,205 +1,255 @@
<template>
<goods-sku-popup :modelValue="modelValue" @input="onChangeValue" border-radius="20" :localdata="goodsInfo" :mode="skuMode" :maskCloseAble="true"
:priceColor="appTheme.mainBg" :buyNowBackgroundColor="appTheme.mainBg" :addCartColor="appTheme.viceText"
:addCartBackgroundColor="appTheme.viceBg"
:activedStyle="{ color: appTheme.mainBg, borderColor: appTheme.mainBg, backgroundColor: activedBtnBackgroundColor }"
@open="openSkuPopup" @close="closeSkuPopup" @add-cart="addCart" @buy-now="buyNow" buyNowText="立即购买" :maxBuyNum="maxBuyNum" />
</template>
<script>
import { setCartTotalNum } from '@/core/app'
import { hex2rgba } from '@/utils/color'
import * as CartApi from '@/api/cart'
import GoodsSkuPopup from '@/components/goods-sku-popup'
export default {
components: {
GoodsSkuPopup
},
emits: ['update:modelValue'],
props: {
//
modelValue: {
Type: Boolean,
default: false
},
// 1: 2: 3:
skuMode: {
type: Number,
default: 1
},
//
goods: {
type: Object,
default: {}
}
},
data() {
return {
//
goodsInfo: {},
//
maxBuyNum: null
}
},
computed: {
//
activedBtnBackgroundColor() {
return hex2rgba(this.appTheme.mainBg, 0.1)
}
},
mounted() {
const app = this
const { goods } = app
app.goodsInfo = {
_id: goods.goods_id,
name: goods.goods_name,
goods_thumb: goods.goods_image,
sku_list: app.getSkuList(),
spec_list: app.getSpecList()
}
console.log(111,app.goods)
console.log(111222,goods)
app.maxBuyNum = app.getMaxBuyNum()
},
methods: {
//
onChangeValue(val) {
this.$emit('update:modelValue', val)
},
// SKU
getSkuList() {
const app = this
const { goods: { goods_name, goods_image, skuList } } = app
const skuData = []
if(skuList && skuList.length > 0){
skuList.forEach(item => {
skuData.push({
_id: item.id,
goods_sku_id: item.goods_sku_id,
goods_id: item.goods_id,
goods_name: goods_name,
image: item.image_url ? item.image_url : goods_image,
price: item.goods_price * 100,
stock: item.stock_num,
spec_value_ids: item.spec_value_ids,
sku_name_arr: app.getSkuNameArr(item.spec_value_ids)
})
})
}
return skuData
},
// sku
getSkuNameArr(specValueIds) {
const app = this
const defaultData = ['默认']
const { goods: { specList } } = app
const skuNameArr = []
if (specValueIds) {
if(specList && specList.length > 0){
specValueIds.forEach((valueId, groupIndex) => {
const specValueName = app.getSpecValueName(valueId, groupIndex)
skuNameArr.push(specValueName)
<template>
<goods-sku-popup :modelValue="modelValue" @input="onChangeValue" border-radius="20" :localdata="goodsInfo"
:mode="skuMode" :maskCloseAble="true" :priceColor="appTheme.mainBg" :buyNowBackgroundColor="appTheme.mainBg"
:addCartColor="appTheme.viceText" :addCartBackgroundColor="appTheme.viceBg"
:activedStyle="{ color: appTheme.mainBg, borderColor: appTheme.mainBg, backgroundColor: activedBtnBackgroundColor }"
@open="openSkuPopup" @close="closeSkuPopup" @add-cart="addCart" @buy-now="buyNow" @num-change='numChange'
@selected-old='selectedOld' buyNowText="立即购买" :maxBuyNum="maxBuyNum" />
</template>
<script>
import {
setCartTotalNum
} from '@/core/app'
import {
hex2rgba
} from '@/utils/color'
import * as CartApi from '@/api/cart'
import GoodsSkuPopup from '@/components/goods-sku-popup'
export default {
components: {
GoodsSkuPopup
},
emits: ['update:modelValue'],
props: {
//
modelValue: {
Type: Boolean,
default: false
},
// 1: 2: 3:
skuMode: {
type: Number,
default: 1
},
//
goods: {
type: Object,
default: {}
}
},
data() {
return {
//
goodsInfo: {},
//
maxBuyNum: null,
selectSku: '',
shopNum: 1,
}
},
computed: {
//
activedBtnBackgroundColor() {
return hex2rgba(this.appTheme.mainBg, 0.1)
}
},
mounted() {
const app = this
const {
goods
} = app
app.goodsInfo = {
_id: goods.goods_id,
name: goods.goods_name,
goods_thumb: goods.goods_image,
sku_list: app.getSkuList(),
spec_list: app.getSpecList()
}
console.log(111, app.goods)
console.log(111222, goods)
app.maxBuyNum = app.getMaxBuyNum()
},
methods: {
//
onChangeValue(val) {
this.$emit('update:modelValue', val)
},
// SKU
getSkuList() {
const app = this
const {
goods: {
goods_name,
goods_image,
skuList
}
} = app
const skuData = []
if (skuList && skuList.length > 0) {
skuList.forEach(item => {
skuData.push({
_id: item.id,
goods_sku_id: item.goods_sku_id,
goods_id: item.goods_id,
goods_name: goods_name,
image: item.image_url ? item.image_url : goods_image,
price: item.goods_price * 100,
stock: item.stock_num,
spec_value_ids: item.spec_value_ids,
sku_name_arr: app.getSkuNameArr(item.spec_value_ids)
})
})
}
return skuData
},
// sku
getSkuNameArr(specValueIds) {
const app = this
const defaultData = ['默认']
const {
goods: {
specList
}
} = app
const skuNameArr = []
if (specValueIds) {
if (specList && specList.length > 0) {
specValueIds.forEach((valueId, groupIndex) => {
const specValueName = app.getSpecValueName(valueId, groupIndex)
skuNameArr.push(specValueName)
})
}
}
return skuNameArr.length ? skuNameArr : defaultData
},
//
getSpecValueName(valueId, groupIndex) {
const app = this
const {
goods: {
specList
}
} = app
const res = specList[groupIndex].valueList.find(specValue => {
return specValue.spec_value_id == valueId
})
}
}
return skuNameArr.length ? skuNameArr : defaultData
},
//
getSpecValueName(valueId, groupIndex) {
const app = this
const { goods: { specList } } = app
const res = specList[groupIndex].valueList.find(specValue => {
return specValue.spec_value_id == valueId
})
return res.spec_value
},
//
getSpecList() {
const { goods: { specList } } = this
const defaultData = [{ name: '默认', list: [{ name: '默认' }] }]
const specData = []
if(specList && specList.length > 0){
specList.forEach(group => {
const children = []
group.valueList.forEach(specValue => {
children.push({ name: specValue.spec_value })
})
specData.push({
name: group.spec_name,
list: children
})
})
}
return specData.length ? specData : defaultData
},
//
getMaxBuyNum() {
const { goods } = this
return goods.is_restrict ? goods.restrict_single : null
},
// sku -----------------------------------------------------------
openSkuPopup() {
// console.log(" - sku")
},
closeSkuPopup() {
// console.log(" - sku")
},
//
addCart(selectShop) {
const app = this
const { goods_id, goods_sku_id, buy_num } = selectShop
CartApi.add(goods_id, goods_sku_id, buy_num)
.then(result => {
//
app.$toast(result.message)
//
app.onChangeValue(false)
//
const cartTotal = result.data.cartTotal
//
setCartTotalNum(cartTotal)
//
app.$emit('addCart', cartTotal)
})
},
//
buyNow(selectShop) {
console.log("buyNow",selectShop)
if(uni.getStorageSync("userInfo").user_type == 40){
//
this.onChangeValue(false);
uni.$emit("onenPrice",selectShop)
return ;
console.log(selectShop)
}
//
this.$navTo('pages/sureOrder/index', {
mode: 'buyNow',
goodsId: selectShop.goods_id,
goodsSkuId: selectShop.goods_sku_id,
goodsNum: selectShop.buy_num
})
//
this.onChangeValue(false)
}
}
}
</script>
<style lang="scss" scoped>
</style>
return res.spec_value
},
//
getSpecList() {
const {
goods: {
specList
}
} = this
const defaultData = [{
name: '默认',
list: [{
name: '默认'
}]
}]
const specData = []
if (specList && specList.length > 0) {
specList.forEach(group => {
const children = []
group.valueList.forEach(specValue => {
children.push({
name: specValue.spec_value
})
})
specData.push({
name: group.spec_name,
list: children
})
})
}
return specData.length ? specData : defaultData
},
//
getMaxBuyNum() {
const {
goods
} = this
return goods.is_restrict ? goods.restrict_single : null
},
selectedOld(e) {
this.selectSku = e
},
numChange(e) {
this.shopNum = e
},
// sku -----------------------------------------------------------
openSkuPopup() {
// console.log(" - sku")
},
closeSkuPopup() {
this.$emit('getSku', {
selectSku: this.selectSku,
shopNum: this.shopNum
})
// console.log(" - sku")
},
//
addCart(selectShop) {
this.selectInfor = selectShop
const app = this
const {
goods_id,
goods_sku_id,
buy_num
} = selectShop
CartApi.add(goods_id, goods_sku_id, buy_num)
.then(result => {
//
app.$toast(result.message)
//
app.onChangeValue(false)
//
const cartTotal = result.data.cartTotal
//
setCartTotalNum(cartTotal)
//
app.$emit('addCart', cartTotal)
})
},
//
buyNow(selectShop) {
this.selectInfor = selectShop
if (uni.getStorageSync("userInfo").user_type == 40) {
//
this.onChangeValue(false);
uni.$emit("onenPrice", selectShop)
return;
console.log(selectShop)
}
//
this.$navTo('pages/sureOrder/index', {
mode: 'buyNow',
goodsId: selectShop.goods_id,
goodsSkuId: selectShop.goods_sku_id,
goodsNum: selectShop.buy_num
})
//
this.onChangeValue(false)
}
}
}
</script>
<style lang="scss" scoped>
</style>

@ -11,11 +11,6 @@
</u-navbar>
<view class="head">
<view class="share" @click="shareImg()">
<view class="sp"></view>
<image :src="$picUrl+'/static/detail/share.png'" class="shareIcon" @click="shareImg"></image>
<button open-type="share"></button>
</view>
<view class="swiper">
<swiper class="swiper" :circular="true" autoplay @change="changeSwiper">
<swiper-item v-for="(item,index) in goods.goods_images1" :key="index" @click="previewImage(index)">
@ -34,31 +29,35 @@
<view class="leftPrice">
<text></text>{{goods.goods_price_min?Number(goods.goods_price_min):0}}
</view>
<view class="sellPrice" v-if="goods.goods_price_min_dealer">
<text
class="sellLeft">分销价</text>{{goods.goods_price_min_dealer?Number(goods.goods_price_min_dealer):0}}
</view>
<view class="sellPrice" v-if="goods.goods_price_min_plus">
<text class="sellLeft">会员价</text>{{goods.goods_price_min_plus?Number(goods.goods_price_min_plus):0}}
<view class="sellPrice">
<text class="sellLeft"></text>{{goods.line_price_min?Number(goods.line_price_min):0}}
</view>
</view>
<view class="right">
<view class="rightPrice">
{{goods.line_price_min?Number(goods.line_price_min):0}}
<view class="rightPrice" v-if="goods.is_check==1">
<image src="../../static/test/shenhe.png" style="width: 44rpx;height: 42rpx;"></image>
</view>
<view class="rightInfo">
<image :src="$picUrl+'/static/detail/jiangjia.png'"></image>
<view class="rightBox">
<image src="../../static/test/ben.png" v-if="userInfo.user_type==40"
style="width: 44rpx;height: 42rpx;"></image>
<image src="../../static/test/zhuan.png" v-if="userInfo.user_type==30"
style="width: 44rpx;height: 38rpx;"></image>
<image src="../../static/test/sheng.png" v-if="userInfo.user_type==20"></image>
<text class="span"
v-if="userInfo.user_type==40">{{goods.cost_price_min?Number(goods.cost_price_min):0}}</text>
<text class="span"
v-else>{{(goods.line_price_min>0&&goods.goods_price_min>0)?(Number(goods.line_price_min)-Number(goods.goods_price_min)):0}}</text>
</view>
</view>
</view>
<view class="pro" v-if="isLogin || userInfo.user_type==10">
<view class="pro" v-if="isLogin">
<view class="proMem">
<text v-if="userInfo.user_type==10">Plus</text>
<text v-if="userInfo.user_type==20">Plus</text>
<text v-if="userInfo.user_type==30">分销</text>
PRO会员
</view>
<view class="proInfo">
开通<text v-if="userInfo.user_type==10">Plus</text>
开通<text v-if="userInfo.user_type==20">Plus</text>
<text v-if="userInfo.user_type==30">分销</text>会员预计再省<text style="color: #FF1D1D;">30</text>
</view>
<view class="proBtn" @click="goMember()">
@ -66,47 +65,84 @@
</view>
</view>
<view class="goodsDetail">
<view class="goodsName">
{{goods.goods_name}}
<view class="goodsContent">
<view class="line2 goodsName">
{{goods.goods_name}}
</view>
<view class="goodsCircle" @click="shareImg()">
<image src="../../static/test/moments.png" mode="" class="goodsCircleImg"></image>
<view class="goodsCircleText">
分享
</view>
</view>
</view>
<view class="goodsOpera">
<!-- <view class="goodsNum" @click="copyNum(goods.skuList[0].goods_sku_no)"
v-if="goods.specList && goods.specList.length>0">
<text>{{goods.skuList[0].goods_sku_no}}</text>
<image :src="$picUrl+'/static/detail/copy.png'"></image>
</view> -->
<view v-if="goods.goods_no" class="goodsNum" @click="copyNum(goods.goods_no)">
<text>{{goods.goods_no}}</text>
<image :src="$picUrl+'/static/detail/copy.png'"></image>
</view>
<view class="operaImg">
<image :src="$picUrl+'/static/detail/miaosha.png'" v-if="isSeckill" class="tips"></image>
<image :src="$picUrl+'/static/detail/tip.png'" v-if="goods_sku_no" @click="toJDdetal()" class="tips">
<image :src="$picUrl+'/static/detail/tip.png'" v-if="goods_sku_no" @click="toJDdetal()"
class="tips">
</image>
<!-- <image :src="$picUrl+'/static/detail/ys.png'" class="tips"></image> -->
</view>
</view>
<view class="rank" @click="goRanking()" v-if="goods && goods.category">
<text>排行榜 {{goods.category.name}}热搜榜第{{goods.paihang}}</text>
<text><text style="font-size: 32rpx;font-weight: bold;">排行榜</text>
{{goods.category.name}}热搜榜第{{goods.paihang}}</text>
<image :src="$picUrl+'/static/detail/rightIcon.png'"></image>
</view>
<view class="goodsOpera" style="margin-top: 30rpx;">
<!-- @click="toCity" -->
<view class="goodsNum">
<picker mode="multiSelector" @change="multiChange" @columnchange="columnChange"
value="{{multiIndex}}" :range="multiArray" range-key="name">
<image src="../../static/test/address.png"
style="width: 46rpx;height: 46rpx;margin-right: 7rpx;">
</image>
<text style="margin-right: 10rpx;">南京有货</text>
<u-icon name="arrow-right" color="#B7B7B7" size="22"></u-icon>
</picker>
</view>
<view v-if="goods.goods_no" class="operaImg" @click="copyNum(goods.unicode)">
<view class="left_1" v-if="goods.goods_source==0">
JD
</view>
<view class="left_1" v-if="goods.goods_source==1">
SN
</view>
<view class="left_1" v-if="goods.goods_source==2">
GC
</view>
<view class="left_1" v-if="goods.goods_source==3">
CC
</view>
<view class="left_1" v-if="goods.goods_source==4">
ZC
</view>
<text>{{goods.unicode}}</text>
<image :src="$picUrl+'/static/detail/copy.png'"
style="width: 27rpx;height: 27rpx;margin-left: 5rpx;"></image>
</view>
</view>
</view>
</view>
<view class="orderInfo">
<!-- <template v-if="userInfo.user_type == 40">
<view class="chosed" v-if="goods.spec_type == 20">
<view class="title">已选</view>
<view class="info" style="justify-content: flex-start;" v-if="goods.skuList.length>0">
<text v-for="(a,idx) in goods.skuList[0].goods_props" :key="idx" style="margin-right: 10rpx;">{{a.group.name}}{{a.value.name}}</text>1件
</view>
<u-icon name="arrow-right" color="#7C7C7C"></u-icon>
</view>
<view class="chosed" v-else>
<view class="title">已选</view>
<view class="info">1</view>
<u-icon name="arrow-right" color="#7C7C7C"></u-icon>
<view class="chosed" v-if="goods.spec_type == 20" @click="choseSku(3)">
<view class="title">已选</view>
<view class="info" style="justify-content: flex-start;" v-if="goods.skuList.length>0">
<text
style="margin-right: 10rpx;">{{selectSku.title.name}}-{{selectSku.value.name}}</text>{{selectShop}}
</view>
</template> -->
<u-icon name="arrow-right" color="#B7B7B7"></u-icon>
</view>
<view class="chosed" v-else @click="choseSku(3)">
<view class="title">已选</view>
<view class="info">{{selectShop}}</view>
<u-icon name="arrow-right" color="#B7B7B7"></u-icon>
</view>
<view class="chosed" v-if="goods.skuList && goods.skuList.length > 0 && goods.skuList[0].stock_num > 0">
<view class="title">送至</view>
<view class="info">
@ -118,7 +154,7 @@
<view class="address">
{{addressInfo.region?addressInfo.region.province +'-'+addressInfo.region.city+'-'+addressInfo.region.region:'全国'}}
</view>
<u-icon name="arrow-right" color="#7C7C7C"></u-icon>
<u-icon name="arrow-right" color="#B7B7B7"></u-icon>
</view>
</view>
</view>
@ -137,19 +173,37 @@
<text>商家名称{{cityInfo.shop_name}}</text>
</view>
</view>
<u-icon name="arrow-right" style="float: right;" color="#7C7C7C"></u-icon>
<u-icon name="arrow-right" style="float: right;" color="#B7B7B7"></u-icon>
</view>
</view>
<view class="chosed">
<view class="title">发货</view>
<view class="info">预计
<text v-if="goods.delivery_time==0">24小时内发货</text>
<text v-if="goods.delivery_time==2">72小时内发货</text>
<text v-if="goods.delivery_time==3">7天内发货</text>
<text v-if="goods.delivery_time==4">15天内发货</text>
<text v-if="goods.delivery_time==5">30天内发货</text>
<text v-if="goods.delivery_time==6">45天内发货</text>
</view>
</view>
<view class="chosed">
<view class="title">运费</view>
<view class="info">包邮已提交订单时为准
</view>
</view>
<view class="chosed" v-if="serveList.length>0">
<view class="title">服务</view>
<view class="title">保障</view>
<view class="info">
<image :src="$picUrl+'/static/detail/buy.png'" class="buy"></image>
<text class="li" v-for="(item,index) in serveList" :key="index"
style="margin-right: 5rpx;">{{item.name}}</text>
<view class="infoBao" v-for="(item,index) in serveList" :key="index">
<image src="../../static/test/selectIcon.png" class="buy"></image>
<text class="info" style="margin-right: 3rpx;">{{item.name}}</text>
</view>
</view>
</view>
<view class="chosed" v-else>
<view class="title">服务</view>
<view class="title">保障</view>
<view class="info">
<image :src="$picUrl+'/static/detail/buy.png'" class="buy"></image>
<text class="li" style="margin-right: 5rpx;">正品保障</text>
@ -201,6 +255,14 @@
</view>
<button open-type="contact"></button>
</view>
<view class="footerCus firstBtn" @click="toJDdetal()">
<view class="cusIcon">
<image src="/static/test/tongkuan.png" style="width: 50rpx;height: 34rpx;"></image>
</view>
<view class="customer">
看同款
</view>
</view>
<view class="footerCus " style="position: relative;" @click="shoppingCart()">
<view v-if="cartTotal > 0" class="uni-tabbar__badge">
{{ cartTotal > 99 ? '99+' : cartTotal }}
@ -221,15 +283,17 @@
</view>
</template>
<template v-else>
<view class="btn-bg" v-if="goods.spec_type == 20" style="background-color: #FF1D1D;"
<view class="btn-bg" v-if="goods.spec_type == 20" style="background-color: #FF9E2B;"
@click="choseSku(3)">
修改价格
</view>
<view class="btn-bg" v-else style="background-color: #FF1D1D;" @click="openPirce(1)">
<view class="btn-bg" v-else style="background-color: #FF9E2B;" @click="openPirce(1)">
修改价格
</view>
<view class="btn-bg" style="background-color: #FF1D1D;margin-left:40rpx;" @click="setPirce()">
设置秒杀价
<view class="btn-bg"
style="background:linear-gradient( 102deg, #FE5E06 0%, #F3221A 100%);margin-left:40rpx;"
@click="setPirce()">
设置秒杀
</view>
</template>
</view>
@ -376,7 +440,8 @@
<image :src="$picUrl+'/static/toTop.png?=1'"></image>
</view>
<view v-if="isTodo">
<SkuPopup v-model="showSkuPopup" :skuMode="skuMode" :goods="goods" @addCart="onAddCart" />
<SkuPopup v-model="showSkuPopup" :skuMode="skuMode" :goods="goods" @getSku='onGetSku'
@addCart="onAddCart" />
</view>
<setPrice ref="setRange" @getprice="getprice" />
<!-- 海报图弹层 -->
@ -384,7 +449,9 @@
</view>
</template>
<script>
import { getSceneData } from '@/core/app'
import {
getSceneData
} from '@/core/app'
import GoodsPosterPopup from '@/components/goods-poster-popup'
import * as GoodsApi from '@/api/goods'
import * as goodsCar from '@/api/cart.js'
@ -404,7 +471,7 @@
isTodo: false,
result: {},
max_price: "",
cost_price:'',
cost_price: '',
markup_rate: "",
showGoodsPosterPopup: false,
cityInfo: {},
@ -440,11 +507,22 @@
posterApiCall: GoodsApi.poster,
//
cartTotal: 0,
guaranteeList: [{
name: '原包正品'
}, {
name: '全国联保'
}, {
name: '运损换新'
}],
selectSku: '',
selectShop: 1,
multiIndex: [0, 0],
multiArray: [],
multiData: []
}
},
onLoad(options) {
const that = this;
console.log(options, "oo")
this.isPre = options.isPre ? options.isPre : null
// query
// this.onRecordQuery(options)
@ -455,12 +533,13 @@
this.isSeckill = options.isSeckill ? options.isSeckill : null;
this.isBuy = options.isBuy ? decodeURIComponent(options.isBuy) : null;
this.seckillText = options.seckillText ? decodeURIComponent(options.seckillText) : null;
console.log(this.isBuy)
this.getSuggestGoods()
this.getServeList()
this.getGoodsDetail()
this.cityInfo = uni.getStorageSync("cityInfo");
this.getCartTotal()
this.getProvinceAll()
this.getAdressLocation()
uni.$on("onenPrice", function(selectShop) {
that.openPirce();
that.isTodo = false;
@ -474,7 +553,7 @@
// that.getGoodsDetail();
// }
// })
},
onShow() {
if (uni.getStorageSync('AccessToken')) {
@ -494,10 +573,69 @@
}
},
methods: {
getAdressLocation() {
const that = this
uni.getLocation({ //
type: 'gcj02',
success(res) {
let longitude = res.longitude
let latitude = res.latitude
console.log(res, 'AAAAAAAAAAAAAA')
},
fail(err) {
console.log(err, '获取经纬度失败')
},
})
},
async getProvinceAll() {
let {
status,
message,
data
} = await address.province();
if (status == 200) {
this.multiData = data.list;
var multiIndex = this.multiIndex;
this.multiArray = [
this.multiData,
this.multiData[0].children,
]
}
},
//
multiChange: function(e) {
this.multiIndex = e.detail.value;
let a_name = this.multiArray[0][e.detail.value[0]].name;
let a_id = this.multiArray[0][e.detail.value[0]].id;
let b_name = this.multiArray[1][e.detail.value[1]].name;
let b_id = this.multiArray[1][e.detail.value[1]].id;
// this.cityInfo.province = a_name;
// this.cityInfo.city = b_name;
let region = [{
value: a_id,
label: a_name
}, {
value: b_id,
label: b_name
}];
console.log(region)
},
//
columnChange: function(e) {
var _this = this;
var columnIndex = e.detail.column;
var columnValue = e.detail.value;
_this.multiIndex[columnIndex] = columnValue;
this.multiArray = [
_this.multiData,
_this.multiData[_this.multiIndex[0]].children,
]
},
// query
onRecordQuery(query) {
const scene = getSceneData(query)
this.goodsId = query.goodsId ? parseInt(query.goodsId) : parseInt(scene.gid)
const scene = getSceneData(query)
this.goodsId = query.goodsId ? parseInt(query.goodsId) : parseInt(scene.gid)
},
getprice(e) {
let that = this
@ -723,6 +861,10 @@
url: "/pages/search/index"
})
},
onGetSku(e) {
this.selectSku = e.selectSku
this.selectShop = e.shopNum
},
//
onAddCart(total) {
this.getCartTotal()
@ -736,7 +878,7 @@
}
this.skuMode = skuMode
this.showSkuPopup = true
console.log("choseSku",this.goods)
console.log("choseSku", this.goods)
},
copyNum(msg) {
uni.setClipboardData({
@ -775,10 +917,10 @@
this.$set(this.goods, item, info[item])
// that.goods[item] = info[item]
})
that.isTodo = true;
that.goods_sku_no =""
if(info.skuList && info.skuList.length > 0){
that.goods_sku_no = ""
if (info.skuList && info.skuList.length > 0) {
that.goods_sku_no = info.skuList[0].goods_sku_no
}
that.allPicture = info.goods_images.length;
@ -788,8 +930,14 @@
that.markup_rate = ""
that.shareCancel();
}
console.log(result, 'getGoodsDetail')
if (this.goods.skuList.length > 0) {
if (this.goods.skuList[0].goods_props) {
this.selectSku = {
title: this.goods.skuList[0].goods_props[0].group,
value: this.goods.skuList[0].goods_props[0].value
}
}
}
})
.catch()
})
@ -895,15 +1043,13 @@
this.shareCancel();
if (index == 2) {
uni.setClipboardData({
data: this.goods.goods_name,
success() {
uni.getClipboardData({
success() {
uni.showToast({
icon: "none",
title: "复制成功"
})
}
data: this.goods.goods_name, // value
success: function() {
//
uni.showToast({
title: '复制成功',
icon: 'none',
duration: 2000
})
}
})
@ -1135,6 +1281,7 @@
font-weight: 400;
color: #FFFFFF;
line-height: 34rpx;
text-decoration: line-through;
.sellLeft {
width: 72rpx;
@ -1144,16 +1291,20 @@
}
.right {
margin-right: 50rpx;
display: flex;
align-items: center;
margin-right: 40rpx;
.rightPrice {
text-align: center;
height: 48rpx;
font-size: 34rpx;
font-weight: 400;
color: #FFFFFF;
line-height: 48rpx;
text-decoration: line-through;
overflow: hidden;
margin-right: 24rpx;
display: flex;
align-items: center;
image {
width: 40rpx;
height: 40rpx;
}
}
.rightInfo {
@ -1165,6 +1316,36 @@
height: 100%;
}
}
.rightBox {
width: 195rpx;
height: 64rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
display: flex;
align-items: center;
justify-content: center;
image {
width: 38rpx;
height: 38rpx;
margin-right: 5rpx;
}
.span {
height: 42rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 800;
font-size: 30rpx;
color: #F21A1C;
line-height: 35rpx;
text-align: left;
font-style: normal;
text-transform: none;
margin-left: 5rpx;
margin-top: 5rpx;
}
}
}
}
@ -1211,13 +1392,50 @@
}
.goodsDetail {
.goodsContent {
justify-content: space-between;
display: flex;
margin: 28rpx 28rpx 0 28rpx;
}
.goodsName {
width: 672rpx;
font-size: 28rpx;
width: 582rpx;
font-size: 32rpx;
font-weight: 400;
color: #000000;
color: #000;
line-height: 50rpx;
margin: 28rpx auto 0;
font-weight: bold;
}
.line2 {
word-break: break-all;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.goodsCircle {
width: 48rpx;
// text-align: right;
}
.goodsCircleImg {
width: 48rpx;
height: 48rpx;
margin-right: 3rpx;
}
.goodsCircleText {
width: 48rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #333333;
line-height: 28rpx;
text-align: left;
font-style: normal;
text-transform: none;
}
.goodsOpera {
@ -1228,11 +1446,13 @@
.goodsNum {
text {
display: inline-block;
font-size: 24rpx;
font-weight: 400;
color: #8A8A8A;
margin-right: 4rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #333333;
text-align: left;
font-style: normal;
text-transform: none;
}
image {
@ -1246,6 +1466,8 @@
.operaImg {
margin-right: 34rpx;
display: flex;
align-items: center;
image {
width: 49rpx;
@ -1259,9 +1481,10 @@
}
.rank {
width: 670rpx;
height: 58rpx;
height: 70rpx;
background: #FFF3EE;
border-radius: 8rpx 8rpx 8rpx 8rpx;
width: 670rpx;
border-radius: 8rpx;
display: flex;
align-items: center;
@ -1271,15 +1494,15 @@
margin: 16rpx auto 0;
text {
font-size: 24rpx;
font-size: 28rpx;
font-weight: 400;
color: #FF1130;
line-height: 58rpx;
}
image {
width: 8rpx;
height: 14rpx;
width: 11rpx;
height: 19rpx;
}
}
}
@ -1291,7 +1514,7 @@
border-radius: 6rpx;
opacity: 1;
margin: 16rpx auto 20rpx;
padding: 25rpx 25rpx 10rpx;
padding: 25rpx 25rpx 5rpx;
box-sizing: border-box;
.chosed {
@ -1314,6 +1537,29 @@
color: #3D3D3D;
display: flex;
align-items: center;
flex-wrap: wrap;
.infoBao {
overflow: hidden;
display: flex;
align-items: flex-end;
margin-right: 15rpx;
margin-bottom: 15rpx;
image {
width: 29rpx;
height: 29rpx;
}
text {
flex: 1;
font-size: 24rpx;
font-weight: 400;
color: #3D3D3D;
display: flex;
align-items: center;
}
}
.buy {
width: 114rpx;
@ -1374,7 +1620,7 @@
.business {
.busSour {
height: 40rpx;
height: 30rpx;
font-size: 24rpx;
font-weight: 400;
color: #3D3D3D;
@ -1507,6 +1753,7 @@
justify-content: space-between;
.fooLeft {
margin: 0 24rpx;
display: flex;
align-items: center;
}
@ -1523,15 +1770,11 @@
display: flex;
align-items: center;
justify-content: flex-end;
margin-right: 20rpx;
}
.firstBtn {
margin-left: 60rpx;
// margin-right: 20rpx;
}
.footerCus {
margin-right: 44rpx;
width: 95rpx;
text-align: center;
position: relative;
@ -1557,8 +1800,10 @@
}
.customer {
width: 40rpx;
height: 28rpx;
// width: 40rpx;
// height: 28rpx;
width: 100%;
text-align: center;
font-size: 20rpx;
font-weight: 400;
color: #3D3D3D;
@ -1566,7 +1811,7 @@
}
.car {
width: 60rpx;
width: 100%;
}
}
@ -1963,4 +2208,16 @@
background-color: #FF6257 !important;
border-color: #FF6257 !important;
}
.left_1 {
height: 100%;
width: 50rpx;
line-height: 36.5rpx;
font-family: PingFang SC, PingFang SC;
font-weight: bold;
font-size: 30rpx;
color: #F21A1C;
text-align: center;
margin-right: 5rpx;
}
</style>

File diff suppressed because it is too large Load Diff

@ -104,39 +104,39 @@
</view>
</view>
<template v-if="wxAppSetting.big_brand">
<view class="dapai" v-if="dapaiList && dapaiList.length>0">
<!-- <image src="/static/index/dapaibg.png" mode="widthFix" class="dapaibg"></image> -->
<view class="dapaiBox">
<view class="dapaiTitle">
<image :src="$picUrl+'/static/index/dapai.png'" mode="widthFix"></image>
<view class="goods">
<image :src="$picUrl+'/static/index/diannei.png'" mode="widthFix"></image>
<view>店内现货</view>
<view class="dapai" v-if="dapaiList && dapaiList.length>0">
<!-- <image src="/static/index/dapaibg.png" mode="widthFix" class="dapaibg"></image> -->
<view class="dapaiBox">
<view class="dapaiTitle">
<image :src="$picUrl+'/static/index/dapai.png'" mode="widthFix"></image>
<view class="goods">
<image :src="$picUrl+'/static/index/diannei.png'" mode="widthFix"></image>
<view>店内现货</view>
</view>
</view>
</view>
<view class="more" @click="goJump('/pages/user/vip/goods')">查看更多<u-icon
style="margin-left:10rpx;" name="arrow-right"></u-icon>
</view>
<view class="dapaiContent" @click="goBigGoods" v-if="dapaiList.length>0">
<template v-for="(item,index) in dapaiList" :key="index">
<view class="dapaiItem" v-if="index <= 9"
@click="goJump('/pages/goods/detail?goodsId=' + item.goods_id)">
<view class="picContent">
<image :src="item.goods_image"></image>
</view>
<view class="priceBox">
<image :src="$picUrl+'/static/index/price.png'"></image>
<view><text></text>{{item.goods_price_min}}</view>
</view>
<view class="name">
{{item.goods_name}}
<view class="more" @click="goJump('/pages/user/vip/goods')">查看更多<u-icon
style="margin-left:10rpx;" name="arrow-right"></u-icon>
</view>
<view class="dapaiContent" @click="goBigGoods" v-if="dapaiList.length>0">
<template v-for="(item,index) in dapaiList" :key="index">
<view class="dapaiItem" v-if="index <= 9"
@click="goJump('/pages/goods/detail?goodsId=' + item.goods_id)">
<view class="picContent">
<image :src="item.goods_image"></image>
</view>
<view class="priceBox">
<image :src="$picUrl+'/static/index/price.png'"></image>
<view><text></text>{{item.goods_price_min}}</view>
</view>
<view class="name">
{{item.goods_name}}
</view>
</view>
</view>
</template>
</view>
</template>
</view>
</view>
</view>
</view>
</template>
<view class="qianggou" v-if="seckillList && seckillList.length>0">
<view class="title" @click="seckill">
@ -188,7 +188,7 @@
</view>
<view class="right">
<!-- <view class="rightContent"> -->
<view class="rightItem1" v-if="wxAppSetting.new_product">
<view class="rightItem1" v-if="wxAppSetting.new_product">
<view style="margin-bottom: 10rpx;">
<image :src="$picUrl+'/static/index/xinpin.png'" mode="widthFix" @click="goNewGoods"
class="title"></image>
@ -249,16 +249,52 @@
<text v-if="item.selling_point" class="ziying">{{item.selling_point}}</text>
<text class="name">{{item.goods_name}}</text>
</view>
<!-- <view class="isExpress">
<text>包邮</text>
</view> -->
<view class="price">
<text style="font-size: 20rpx;"></text>
<text
style="font-weight: bold;font-size: 36rpx;">{{item.goods_price_min}}</text>
<text style="font-size: 20rpx;margin-left:10rpx;">到手价</text>
<text
style="color: #949494;font-size: 22rpx;text-decoration: line-through;">{{item.line_price_min}}</text>
</view>
<!-- 商品价格 -->
<view class="shenBox">
<view class="detail-price oneline-hide">
<text class="goods-price f-30 col-m"><text
style="font-size: 26rpx;"></text>{{ item.goods_price_min>0?Number(item.goods_price_min):0.00}}
<text class="delPrice"></text></text>
<text v-if="item.line_price_min > 0"
class="line-price col-9 f-24">{{ item.line_price_min>0?Number(item.line_price_min):0.00 }}</text>
</view>
<image src="../../static/test/redShen.png" v-if="is_check==1" mode=""></image>
</view>
<view class="goodsInfo1">
<view class="oneTip">
{{item.cmmdty_model}}
</view>
</view>
<view class="goodsSend">
<view class="sendLeft">
<view class="left_1" v-if="item.goods_source==0">
JD
</view>
<view class="left_1" v-if="item.goods_source==1">
SN
</view>
<view class="left_1" v-if="item.goods_source==2">
GC
</view>
<view class="left_1" v-if="item.goods_source==3">
CC
</view>
<view class="left_1" v-if="item.goods_source==4">
ZC
</view>
<view class="left_2">
{{Number(item.discount)}}
</view>
</view>
<view class="sendRight">
<text v-if="item.delivery_time==0">24小时内发货</text>
<text v-if="item.delivery_time==1">48小时内发货</text>
<text v-if="item.delivery_time==2">72小时内发货</text>
<text v-if="item.delivery_time==3">7天内发货</text>
<text v-if="item.delivery_time==4">15天内发货</text>
<text v-if="item.delivery_time==5">30天内发货</text>
<text v-if="item.delivery_time==6">45天内发货</text>
</view>
</view>
</view>
@ -274,18 +310,55 @@
<text v-if="item.selling_point" class="ziying">{{item.selling_point}}</text>
<text class="name">{{item.goods_name}}</text>
</view>
<!-- <view class="isExpress">
<text>包邮</text>
</view> -->
<view class="price">
<text style="font-size: 20rpx;"></text>
<text
style="font-weight: bold;font-size: 36rpx;">{{item.goods_price_min}}</text>
<text style="font-size: 20rpx;margin-left:10rpx;">到手价</text>
<text
style="color: #949494;font-size: 22rpx;text-decoration: line-through;">{{item.line_price_min}}</text>
</view>
<!-- 商品价格 -->
<view class="shenBox">
<view class="detail-price oneline-hide">
<text class="goods-price f-30 col-m"><text
style="font-size: 26rpx;"></text>{{ item.goods_price_min>0?Number(item.goods_price_min):0.00}}
<text class="delPrice"></text></text>
<text v-if="item.line_price_min > 0"
class="line-price col-9 f-24">{{ item.line_price_min>0?Number(item.line_price_min):0.00 }}</text>
</view>
<image src="../../static/test/redShen.png" v-if="is_check==1" mode=""></image>
</view>
<view class="goodsInfo1">
<view class="oneTip">
{{item.cmmdty_model}}
</view>
</view>
<view class="goodsSend">
<view class="sendLeft">
<view class="left_1" v-if="item.goods_source==0">
JD
</view>
<view class="left_1" v-if="item.goods_source==1">
SN
</view>
<view class="left_1" v-if="item.goods_source==2">
GC
</view>
<view class="left_1" v-if="item.goods_source==3">
CC
</view>
<view class="left_1" v-if="item.goods_source==4">
ZC
</view>
<view class="left_2">
{{Number(item.discount)}}
</view>
</view>
<view class="sendRight">
<text v-if="item.delivery_time==0">24小时内发货</text>
<text v-if="item.delivery_time==1">48小时内发货</text>
<text v-if="item.delivery_time==2">72小时内发货</text>
<text v-if="item.delivery_time==3">7天内发货</text>
<text v-if="item.delivery_time==4">15天内发货</text>
<text v-if="item.delivery_time==5">30天内发货</text>
<text v-if="item.delivery_time==6">45天内发货</text>
</view>
</view>
</view>
</template>
</u-waterfall>
@ -582,11 +655,11 @@
} = await GoodsApi.wxAppSetting({});
if (status == 200) {
this.wxAppSetting = data;
this.list = data.same_city?[{
this.list = data.same_city ? [{
name: '首页'
}, {
name: '同城送'
}]: [{
}] : [{
name: '首页'
}]
}
@ -692,18 +765,19 @@
}).then(res => {
if (res.status == 200) {
this.tabList = res.data.list;
let arr = [], total = (this.tabList && this.tabList.length > 0 ?this.tabList[0].children.length:0)
if(this.tabList[0].children && this.tabList[0].children.length > 0){
this.tabList[0].children.map(a=>{
let arr = [],
total = (this.tabList && this.tabList.length > 0 ? this.tabList[0].children.length : 0)
if (this.tabList[0].children && this.tabList[0].children.length > 0) {
this.tabList[0].children.map(a => {
arr.push(a)
})
}
if(5- total >= 0 && arr.length > 0){
this.tabList[0].children.map(a=>{
if(a.children && a.children.length > 0){
a.children.map((b,idx)=>{
if(idx < (20-arr.length)){
if (5 - total >= 0 && arr.length > 0) {
this.tabList[0].children.map(a => {
if (a.children && a.children.length > 0) {
a.children.map((b, idx) => {
if (idx < (20 - arr.length)) {
arr.push(b)
}
})
@ -742,17 +816,18 @@
changeGoodsType(index) {
this.tabCurrent = index;
this.isToggle = false;
let arr = [], total = this.tabList[index].children.length
if(this.tabList[index].children && this.tabList[index].children.length > 0){
this.tabList[index].children.map(a=>{
let arr = [],
total = this.tabList[index].children.length
if (this.tabList[index].children && this.tabList[index].children.length > 0) {
this.tabList[index].children.map(a => {
arr.push(a)
})
}
if(5- total >= 0 && arr.length > 0){
this.tabList[index].children.map(a=>{
if(a.children && a.children.length > 0){
a.children.map((b,idx)=>{
if(idx < (20-arr.length)){
if (5 - total >= 0 && arr.length > 0) {
this.tabList[index].children.map(a => {
if (a.children && a.children.length > 0) {
a.children.map((b, idx) => {
if (idx < (20 - arr.length)) {
arr.push(b)
}
})
@ -1776,6 +1851,8 @@
-webkit-line-clamp: 2;
height: 90rpx;
line-height: 45rpx;
white-space: normal;
.ziying {
padding: 4rpx 10rpx;
background: #FF4438;
@ -1789,10 +1866,10 @@
.name {
margin-left: 6rpx;
font-size: 24rpx;
font-weight: 400;
color: #1E1E1E;
flex: 1;
font-weight: bold;
font-size: 30rpx;
// overflow: hidden;
// white-space: nowrap;
// text-overflow: ellipsis;
@ -2315,9 +2392,121 @@
display: none;
}
// .u-tab-bar ::after{
// border:1px solid red;
// height:10px;
// width:10px;
// }
.shenBox {
overflow: hidden;
display: flex;
justify-content: space-between;
align-items: center;
image {
width: 28rpx;
height: 28rpx;
}
}
.goods-price {
font-family: PingFang SC, PingFang SC;
font-weight: bold;
font-size: 36rpx;
color: #F21A1C !important;
}
.line-price {
text-decoration: line-through;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #949494;
}
.goodsInfo1 {
display: flex;
align-items: center;
margin-bottom: 10rpx;
.oneTip {
padding: 0 16rpx;
height: 42rpx;
background: #F6F6F6;
border-radius: 10rpx 10rpx 10rpx 10rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #333333;
line-height: 42rpx;
text-align: left;
font-style: normal;
text-transform: none;
margin-top: 6rpx;
max-width: 300rpx;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
-webkit-line-clamp: 1;
white-space: nowrap;
}
}
.goodsSend {
display: flex;
justify-content: space-between;
align-items: center;
.sendLeft {
width: 120rpx;
border: 1rpx solid #F21A1C;
border-radius: 10rpx;
height: 42rpx;
display: flex;
justify-content: space-between;
align-items: center;
.left_1 {
height: 100%;
width: 50rpx;
line-height: 36.5rpx;
font-family: PingFang SC, PingFang SC;
font-weight: bold;
font-size: 30rpx;
color: #F21A1C;
text-align: center;
}
.left_2 {
height: 100%;
width: 70rpx;
background-color: #F21A1C;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #FFFFFF;
line-height: 36rpx;
text-align: center;
font-style: normal;
text-transform: none;
}
}
.sendRight {
height: 42rpx;
background: #FDEDED;
padding: 0 10rpx;
border-radius: 10rpx 10rpx 10rpx 10rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #F21A1C;
line-height: 42rpx;
text-align: left;
font-style: normal;
text-transform: none;
}
}
.delPrice {
font-size: 20rpx;
font-weight: 500;
color: #F21A1C;
}
</style>

@ -135,7 +135,7 @@
.install_name {
height: 80rpx;
background-image: url('https://www.royaum.com.cn/static/install_name.png');
background-size: cover;
background-size: 100% 100%;
background-position: center;
font-family: Alibaba PuHuiTi;
font-weight: 400;
@ -148,7 +148,7 @@
.install_bao {
overflow: hidden;
padding: 25rpx 20rpx 25rpx 20rpx;
padding: 0rpx 20rpx 25rpx 20rpx;
display: flex;
flex-wrap: wrap;
.install_xiu {
@ -164,7 +164,7 @@
text-align: center;
line-height: 70rpx;
margin-bottom: 20rpx;
margin: 0 10rpx;
margin: 20rpx 10rpx 0 10rpx;
}
}
}
@ -173,7 +173,7 @@
width: 100%;
height: 244rpx;
background-image: url('https://www.royaum.com.cn/static/install_footer.png');
background-size: cover;
background-size: 100% 100%;
font-family: Alibaba PuHuiTi;
font-weight: 400;
font-size: 28rpx;
@ -195,7 +195,7 @@
width: 100%;
height: 354rpx;
background-image: url('https://www.royaum.com.cn/static/install_hedaer.png');
background-size: cover;
background-size: 100% 100%;
font-family: Alibaba PuHuiTi;
font-weight: 400;
font-size: 28rpx;

Binary file not shown.

After

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Loading…
Cancel
Save