提交 873578d7 编写于 作者: zhangzhiwei's avatar zhangzhiwei

.

上级 c295a9c7
import request from "@/common/request";
export default {
dzResource() {
return request({
url: "/api/product/dzResource",
});
},
indexModule() {
return request({
url: "/api/index/module",
......
import request from "@/common/request";
export default {
dzResource() {
return request({
url: "/api/product/dzResource",
});
},
indexModule() {
return request({
url: "/api/index/module",
......
......@@ -7,15 +7,17 @@
</view>
</van-sticky>
<div class="main">
<van-sidebar style="width:180rpx;" class="sidebar" v-model="categoryIndex" @change="onChange">
<van-sidebar-item v-for="(item,index) in categoryList" :key="index" :title="item.name" />
<van-sidebar style="width:180rpx;" class="sidebar" v-model="categoryIndex" >
<van-sidebar-item @click="onChange(item.id)" v-for="(item,index) in categoryList" :key="item.id" :title="item.name" />
</van-sidebar>
<div class="right-content" >
<div class="card-shop" v-for="item in 10">
<van-list v-if="inited" :loading="good.loading" :finished="good.finished" finished-text="没有更多了"
offset="10" @load="onGoodLoad">
<div class="card-shop" v-for="item in good.list">
<van-row>
<van-col span="8" style="border-bottom-left-radius: 80px;">
<view class="image-container">
<van-image fit="cover" lazy-load src="https://img.edsmall.com/ROOT/ETao/gl/busiImage/166d3cd3-fe6d-44b7-9e2d-cb6d7ad6b0a6.png"
<view class="image-container" @click="goto(`/pages/good/detail?skuId=${item.skuId}&spuId=${item.spuId}`)">
<van-image fit="cover" lazy-load :src="item.mainImg"
loading-icon="https://img.edsmall.com/ROOT/ETao/fenxiao/h5/default1.png" />
</view>
</van-col>
......@@ -23,33 +25,35 @@
<view style="padding: 15rpx;background: #ffffff">
<text class="text-s ellipsis line_over2" style="text-align: left;background: #ffffff;line-height: 36rpx">
魅泰 MTTCB095白-05A套餐 成套灯具 现代风格魅泰 MTTCB095白-05A套餐 成套灯具 现代风格MTTCB095白-05A套餐 成套灯具 现代风格
{{ item.title }}
</text>
</view>
<view style="display: flex;background: #ffffff;padding: 15rpx;margin-top: 20rpx" class="text01">
<view style="display: flex;justify-content: space-between;align-items: center">
<view style="display: flex;background: #ffffff;padding: 15rpx;margin-top: 10rpx" class="text01">
<view class="text-orange text-ss">
<text class="text-bold text-l">898</text>
<text class="text-bold text-l">{{ item.salePrice }}</text>
</view>
<view class="text-ss" style="margin-left: 16rpx">
<text class="text-gray text-ss line-through">¥888</text>
<text class="text-gray text-ss line-through">{{ item.productPrice }}</text>
</view>
<view style="width: 80rpx">
</view>
<view style="text-align: right">
<view @click="check(item)">
<img src="../../static/img/car_search.png"
style="width: 1.8rem;margin-top: -5px" alt="">
style="width: 1.8rem" alt="">
</view>
</view>
</van-col>
</van-row>
</div>
</van-list>
</div>
</div>
</div>
</template>
<script lang="ts">
import { Dialog } from "vant";
import { PageUtils } from '@/utils/utils';
import { Toast } from 'vant';
import api from "@/api";
......@@ -57,15 +61,25 @@
export default {
setup() {
const state = reactive({
loading: {
cartAdd: false,
productFav: false,
brandFav: false,
share: false
},
})
const that = reactive({
categoryList: [{name: "智能艺术灯", type: 'menuId'}, {name: "智能筒射灯", type: 'styleName'}, {
name: "智能磁吸灯",
type: 'material'
}, {name: "智能橱柜灯", type: 'money'}, {name: "智能灯带", type: 'zone'}, {name: "智能光源", type: 'brandId'}, {
name: "智能面板",
type: 'space'
}, {name: "萌光套餐", type: 'color'}, {name: "萌光智选", type: 'colo1r'}, {name: "智选服务", type: 'col12or'}],
list: [],
inited:false,
temMuneId:null,
good: {
loading: false,
finished: false,
fail: false,
page: 0,
list: [] as any
},
categoryList: [],
categoryIndex: 0,
dataList: {},
toGoodList: (search) => {
......@@ -73,6 +87,38 @@
url: `/pages/goodList/index?${that.categoryList[that.categoryIndex].type}=${search}`,
});
},
goto(url) {
url && uni.navigateTo({ url })
},
cartAdd(data) {
if (state.loading.cartAdd) return
state.loading.cartAdd = true
api.cartAdd({
skuId: data.skuId,
link: uni.getStorageSync('subdomain'),
productQty: 1, // B端去除起订量限制 skuData.value.moq
}).then(() => {
Toast.success('加入购物车')
}).finally(() => {
state.loading.cartAdd = false
})
},
check(item) {
const { token } = uni.getStorageSync("user") || {};
if (token) {
that.cartAdd(item)
} else {
Dialog.confirm({
message: '您尚未登录,请前往登录',
title: "提示",
cancelButtonText: '取消'
}).then(() => {
uni.navigateTo({
url: '/pages/login/login'
})
});
}
},
changeLi: (e) => {
let topH1 = document.getElementById(e)
topH1.scrollIntoView({
......@@ -82,87 +128,55 @@
goBack() {
PageUtils.goBack()
},
changeName: (name) => {
switch (name) {
case 'TTT':
return '淘淘淘专区'
break;
case 'VIP':
return 'PLUS'
break;
case 'XIAN_LIANG':
return '限量专区'
break;
case 'XIAO_E':
return '小E专区'
break;
case 'YAN_XUAN':
return '严选专区'
break;
case 'YOU_XUAN':
return '优选专区'
break;
case 'XIN_P':
return '新品专区'
break;
case 'AUTONOM_HD':
return '活动专区'
onGoodLoad() {
if (that.good.loading || that.good.fail) return
that.good.loading = true
that.good.page += 1
api.productList({menuId: that.temMuneId, pageNum: that.good.page, sortType: 0, pageSize: 20, link: uni.getStorageSync("subdomain") }).then((data: any) => {
if (!data) return
if (!data||!data.hasNextPage){
that.good.finished = true
}
that.good.list.push(...data.list)
})
.catch(() => {
that.good.fail = true
})
.finally(() => {
that.good.loading = false
})
},
getBanner: () => {
api.sortAndSearch({link: uni.getStorageSync("subdomain") }).then((res: any) => {
that.dataList = res
that.list = res.type
api.dzResource().then((res: any) => {
that.categoryList = res.benDiMenu
if(res.benDiMenu&&res.benDiMenu.length>0){
that.getList(res.benDiMenu[0].id)
that.temMuneId=res.benDiMenu[0].id
}
})
},
getList(menuId) {
api.productList({
sortType: 0,
menuId: menuId,
pageNum: 1,
pageSize: 20,
link: uni.getStorageSync("subdomain") ? uni.getStorageSync("subdomain") : 'alisa'
}).then((data: any) => {
that.good.list=data.list
})
},
onChange: (e) => {
switch (e) {
case 0:
that.list = []
setTimeout(() => {
that.list = that.dataList.type
}, 0)
return
break;
case 1:
return that.list = that.dataList.style
break;
case 2:
return that.list = that.dataList.material
break;
case 3:
return that.list = that.dataList.price
break;
case 4:
that.list = []
for (let k in that.dataList.zone) {
that.dataList.zone[k].resource[0].id = that.dataList.zone[k].id
that.dataList.zone[k].resource[0].name = k
that.list.push(that.dataList.zone[k].resource[0])
}
break;
case 5:
Toast.loading({
duration:300,
message: '加载中...',
forbidClick: true,
loadingType: 'spinner',
});
setTimeout(()=>{
return that.list = that.dataList.brand
},200)
break;
case 6:
return that.list = that.dataList.room
break;
case 7:
return that.list = that.dataList.color
break;
}
that.good.page=1
that.good.list=[]
that.getList(e)
}
});
onMounted(() => {
that.getBanner()
setTimeout(() => {
that.inited = true
}, 500)
})
const refState = toRefs(that)
return {
......
......@@ -21,9 +21,9 @@ border: 1rpx solid #EBA926;color: #EBA926;padding: 2rpx 10rpx" @click="goPhoneBt
<van-row gutter="12" class="pd-h-px-10" style="padding-top: 26rpx">
<view style="color: #666666;font-size: 26rpx;letter-spacing: 1rpx;margin-top: 6rpx"><van-icon name="location-o" />浙江省杭州市杭州市莫干山路1418-66号3幢12层 1203 室</view>
</van-row>
<van-row gutter="12" class="pd-h-px-10" style="padding-top: 40rpx">
<van-button style="width: 100%" icon="photo-o" type="primary" @click="goto('/pages/index/userCard')">店铺海报</van-button>
</van-row>
<view class="pd-h-px-10" style="padding-top: 40rpx;text-align: center">
<van-button style="width: 90%" icon="photo-o" type="primary" @click="goto('/pages/index/userCard')">店铺海报</van-button>
</view>
</view>
</view>
</template>
......
src/static/img/car_search.png

6.3 KB | W: | H:

src/static/img/car_search.png

1.3 KB | W: | H:

src/static/img/car_search.png
src/static/img/car_search.png
src/static/img/car_search.png
src/static/img/car_search.png
  • 2-up
  • Swipe
  • Onion skin
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册