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

.

上级 c295a9c7
import request from "@/common/request"; import request from "@/common/request";
export default { export default {
dzResource() {
return request({
url: "/api/product/dzResource",
});
},
indexModule() { indexModule() {
return request({ return request({
url: "/api/index/module", url: "/api/index/module",
......
import request from "@/common/request"; import request from "@/common/request";
export default { export default {
dzResource() {
return request({
url: "/api/product/dzResource",
});
},
indexModule() { indexModule() {
return request({ return request({
url: "/api/index/module", url: "/api/index/module",
......
...@@ -7,15 +7,17 @@ ...@@ -7,15 +7,17 @@
</view> </view>
</van-sticky> </van-sticky>
<div class="main"> <div class="main">
<van-sidebar style="width:180rpx;" class="sidebar" v-model="categoryIndex" @change="onChange"> <van-sidebar style="width:180rpx;" class="sidebar" v-model="categoryIndex" >
<van-sidebar-item v-for="(item,index) in categoryList" :key="index" :title="item.name" /> <van-sidebar-item @click="onChange(item.id)" v-for="(item,index) in categoryList" :key="item.id" :title="item.name" />
</van-sidebar> </van-sidebar>
<div class="right-content" > <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-row>
<van-col span="8" style="border-bottom-left-radius: 80px;"> <van-col span="8" style="border-bottom-left-radius: 80px;">
<view class="image-container"> <view class="image-container" @click="goto(`/pages/good/detail?skuId=${item.skuId}&spuId=${item.spuId}`)">
<van-image fit="cover" lazy-load src="https://img.edsmall.com/ROOT/ETao/gl/busiImage/166d3cd3-fe6d-44b7-9e2d-cb6d7ad6b0a6.png" <van-image fit="cover" lazy-load :src="item.mainImg"
loading-icon="https://img.edsmall.com/ROOT/ETao/fenxiao/h5/default1.png" /> loading-icon="https://img.edsmall.com/ROOT/ETao/fenxiao/h5/default1.png" />
</view> </view>
</van-col> </van-col>
...@@ -23,33 +25,35 @@ ...@@ -23,33 +25,35 @@
<view style="padding: 15rpx;background: #ffffff"> <view style="padding: 15rpx;background: #ffffff">
<text class="text-s ellipsis line_over2" style="text-align: left;background: #ffffff;line-height: 36rpx"> <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> </text>
</view> </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"> <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>
<view class="text-ss" style="margin-left: 16rpx"> <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>
<view style="width: 80rpx">
</view> </view>
<view style="text-align: right"> <view @click="check(item)">
<img src="../../static/img/car_search.png" <img src="../../static/img/car_search.png"
style="width: 1.8rem;margin-top: -5px" alt=""> style="width: 1.8rem" alt="">
</view> </view>
</view> </view>
</van-col> </van-col>
</van-row> </van-row>
</div> </div>
</van-list>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { Dialog } from "vant";
import { PageUtils } from '@/utils/utils'; import { PageUtils } from '@/utils/utils';
import { Toast } from 'vant'; import { Toast } from 'vant';
import api from "@/api"; import api from "@/api";
...@@ -57,15 +61,25 @@ ...@@ -57,15 +61,25 @@
export default { export default {
setup() { setup() {
const state = reactive({
loading: {
cartAdd: false,
productFav: false,
brandFav: false,
share: false
},
})
const that = reactive({ const that = reactive({
categoryList: [{name: "智能艺术灯", type: 'menuId'}, {name: "智能筒射灯", type: 'styleName'}, { inited:false,
name: "智能磁吸灯", temMuneId:null,
type: 'material' good: {
}, {name: "智能橱柜灯", type: 'money'}, {name: "智能灯带", type: 'zone'}, {name: "智能光源", type: 'brandId'}, { loading: false,
name: "智能面板", finished: false,
type: 'space' fail: false,
}, {name: "萌光套餐", type: 'color'}, {name: "萌光智选", type: 'colo1r'}, {name: "智选服务", type: 'col12or'}], page: 0,
list: [], list: [] as any
},
categoryList: [],
categoryIndex: 0, categoryIndex: 0,
dataList: {}, dataList: {},
toGoodList: (search) => { toGoodList: (search) => {
...@@ -73,6 +87,38 @@ ...@@ -73,6 +87,38 @@
url: `/pages/goodList/index?${that.categoryList[that.categoryIndex].type}=${search}`, 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) => { changeLi: (e) => {
let topH1 = document.getElementById(e) let topH1 = document.getElementById(e)
topH1.scrollIntoView({ topH1.scrollIntoView({
...@@ -82,87 +128,55 @@ ...@@ -82,87 +128,55 @@
goBack() { goBack() {
PageUtils.goBack() PageUtils.goBack()
}, },
changeName: (name) => { onGoodLoad() {
switch (name) { if (that.good.loading || that.good.fail) return
case 'TTT': that.good.loading = true
return '淘淘淘专区' that.good.page += 1
break; api.productList({menuId: that.temMuneId, pageNum: that.good.page, sortType: 0, pageSize: 20, link: uni.getStorageSync("subdomain") }).then((data: any) => {
case 'VIP': if (!data) return
return 'PLUS' if (!data||!data.hasNextPage){
break; that.good.finished = true
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 '活动专区'
} }
that.good.list.push(...data.list)
})
.catch(() => {
that.good.fail = true
})
.finally(() => {
that.good.loading = false
})
}, },
getBanner: () => { getBanner: () => {
api.sortAndSearch({link: uni.getStorageSync("subdomain") }).then((res: any) => { api.dzResource().then((res: any) => {
that.dataList = res that.categoryList = res.benDiMenu
that.list = res.type 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) => { onChange: (e) => {
switch (e) { that.good.page=1
case 0: that.good.list=[]
that.list = [] that.getList(e)
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;
}
} }
}); });
onMounted(() => { onMounted(() => {
that.getBanner() that.getBanner()
setTimeout(() => {
that.inited = true
}, 500)
}) })
const refState = toRefs(that) const refState = toRefs(that)
return { return {
......
...@@ -21,9 +21,9 @@ border: 1rpx solid #EBA926;color: #EBA926;padding: 2rpx 10rpx" @click="goPhoneBt ...@@ -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"> <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> <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>
<van-row gutter="12" class="pd-h-px-10" style="padding-top: 40rpx"> <view class="pd-h-px-10" style="padding-top: 40rpx;text-align: center">
<van-button style="width: 100%" icon="photo-o" type="primary" @click="goto('/pages/index/userCard')">店铺海报</van-button> <van-button style="width: 90%" icon="photo-o" type="primary" @click="goto('/pages/index/userCard')">店铺海报</van-button>
</van-row> </view>
</view> </view>
</view> </view>
</template> </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 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册