¶Ô±ÈÐÂÎļþ |
| | |
| | | <script setup> |
| | | import { ref, reactive, onMounted } from 'vue'; |
| | | import OrderItem from './OrderItem.vue'; |
| | | |
| | | const orderList = ref([[], [], [], []]); |
| | | const dataList = reactive([ |
| | | { |
| | | id: 1, |
| | | store: '夿¥æµæéå®è´©å', |
| | | deal: '交ææå', |
| | | goodsList: [ |
| | | { |
| | | goodsUrl: '//img13.360buyimg.com/n7/jfs/t1/103005/7/17719/314825/5e8c19faEb7eed50d/5b81ae4b2f7f3bb7.jpg', |
| | | title: 'ã嬿¥éå®ãç°è´§ ååjk嶿女2020å¬è£
æ°æ¬¾å°æ¸
æ°å®½æ¾è½¯ç³¯æ¯è¡£å¤å¥å¥³å¼è¡«çæ¬¾ç¾ææ¥ç³»çç¾é£', |
| | | type: 'ç°è²;M', |
| | | deliveryTime: '仿¬¾å30天å
åè´§', |
| | | price: '348.58', |
| | | number: 2 |
| | | }, |
| | | { |
| | | goodsUrl: '//img12.360buyimg.com/n7/jfs/t1/102191/19/9072/330688/5e0af7cfE17698872/c91c00d713bf729a.jpg', |
| | | title: 'ãè¡èè¤ãç°è´§ å°æ¸
æ°å¦é¢é£å¶ææ ¼è£ç¾è¤¶è£å¥³çæ¬¾ç¾ææ¥ç³»çç¾é£ååjk嶿女2020æ°æ¬¾', |
| | | type: '45cm;S', |
| | | deliveryTime: '仿¬¾å30天å
åè´§', |
| | | price: '135.00', |
| | | number: 1 |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | id: 2, |
| | | store: 'æ±åç®é©å', |
| | | deal: '交æå¤±è´¥', |
| | | goodsList: [ |
| | | { |
| | | goodsUrl: '//img14.360buyimg.com/n7/jfs/t1/60319/15/6105/406802/5d43f68aE9f00db8c/0affb7ac46c345e2.jpg', |
| | | title: 'ã嬿¥éå®ãç°è´§ ååjk嶿女2020å¬è£
æ°æ¬¾å°æ¸
æ°å®½æ¾è½¯ç³¯æ¯è¡£å¤å¥å¥³å¼è¡«çæ¬¾ç¾ææ¥ç³»çç¾é£', |
| | | type: 'ç²è²;M', |
| | | deliveryTime: '仿¬¾å7天å
åè´§', |
| | | price: '128.05', |
| | | number: 1 |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | id: 3, |
| | | store: '䏿æè°åº', |
| | | deal: '交æå¤±è´¥', |
| | | goodsList: [ |
| | | { |
| | | goodsUrl: '//img11.360buyimg.com/n7/jfs/t1/94448/29/2734/524808/5dd4cc16E990dfb6b/59c256f85a8c3757.jpg', |
| | | title: '䏿ï¼SAMSUNGï¼äº¬åå®¶çµ UA65RUF70AJXXZ 65è±å¯¸4Kè¶
髿¸
HDR 京ä¸å¾®è æºè½è¯é³ æè²èµæºæ¶²æ¶çµè§æº', |
| | | type: '4Kï¼å¹¿è²å', |
| | | deliveryTime: 'ä¿è´¨5å¹´', |
| | | price: '1998', |
| | | number: 3 |
| | | }, |
| | | { |
| | | goodsUrl: '//img14.360buyimg.com/n7/jfs/t6007/205/4099529191/294869/ae4e6d4f/595dcf19Ndce3227d.jpg!q90.jpg', |
| | | title: 'ç¾ç(Midea)639å 对å¼é¨å°ç®± 19å鿥éåå³ ä¸çº§è½æå·èåå¼é¨æèæºè½å®¶ç¨ååé¢èè½ BCD-639WKPZM(E)', |
| | | type: '容é大ï¼éå»', |
| | | deliveryTime: 'ä¿è´¨5å¹´', |
| | | price: '2354', |
| | | number: 1 |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | id: 4, |
| | | store: '䏿æè°åº', |
| | | deal: '交æå¤±è´¥', |
| | | goodsList: [ |
| | | { |
| | | goodsUrl: '//img10.360buyimg.com/n7/jfs/t22300/31/1505958241/171936/9e201a89/5b2b12ffNe6dbb594.jpg!q90.jpg', |
| | | title: 'æ³å½è¿å£çº¢é
æè²ï¼LAFITEï¼ä¼ 奿³¢å°å¤å¹²çº¢è¡èé
750ml*6æ´ç®±è£
', |
| | | type: '4Kï¼å¹¿è²å', |
| | | deliveryTime: 'çè10年好é
', |
| | | price: '1543', |
| | | number: 3 |
| | | }, |
| | | { |
| | | goodsUrl: '//img10.360buyimg.com/n7/jfs/t1/107598/17/3766/525060/5e143aacE9a94d43c/03573ae60b8bf0ee.jpg', |
| | | title: 'è妹ï¼BLUE GIRLï¼é
·ç½å¤é
æ¸
å¤ åè£
è¿å£å¤é
ç½è£
500ml*9å¬ æ´ç®±è£
', |
| | | type: '䏿', |
| | | deliveryTime: '壿好', |
| | | price: '120', |
| | | number: 1 |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | id: 5, |
| | | store: '䏿æè°åº', |
| | | deal: '交ææå', |
| | | goodsList: [ |
| | | { |
| | | goodsUrl: '//img12.360buyimg.com/n7/jfs/t1/52408/35/3554/78293/5d12e9cfEfd118ba1/ba5995e62cbd747f.jpg!q90.jpg', |
| | | title: 'ä¼ä¸å¾®ä¿¡ 䏿§äººè¸æçº¹è¯å«è夿ºå·è¸æº æ 线ç¾å°å¼å°å¤åºæå¡æºWX108', |
| | | type: 'è¯å«æçé«', |
| | | deliveryTime: 'ä½¿ç¨æ¹ä¾¿', |
| | | price: '451', |
| | | number: 9 |
| | | } |
| | | ] |
| | | } |
| | | ]); |
| | | const list = reactive([ |
| | | { name: 'å¾
仿¬¾' }, |
| | | { name: 'å¾
åè´§' }, |
| | | { name: 'å¾
æ¶è´§' }, |
| | | { name: 'å¾
è¯ä»·', count: 12 } |
| | | ]); |
| | | const current = ref(0); |
| | | const swiperCurrent = ref(0); |
| | | const loadStatus = ref(['loadmore', 'loadmore', 'loadmore', 'loadmore']); |
| | | |
| | | onMounted(() => { |
| | | getOrderList(0); |
| | | getOrderList(1); |
| | | getOrderList(3); |
| | | }); |
| | | |
| | | // è§¦åºæå è½½ |
| | | const reachBottom = () => { |
| | | loadStatus.value.splice(current.value, 1, "loading"); |
| | | setTimeout(() => { |
| | | getOrderList(current.value); |
| | | }, 1200); |
| | | }; |
| | | |
| | | // 页颿°æ® |
| | | const getOrderList = (idx) => { |
| | | // 模æç¬¬n个页é¢è·åæ°æ® |
| | | for (let i = 0; i < 5; i++) { |
| | | let index = Math.floor(Math.random() * dataList.length); |
| | | let data = JSON.parse(JSON.stringify(dataList[index])); |
| | | data.id = Math.random().toString(36).substr(2, 9); |
| | | orderList.value[idx].push(data); |
| | | } |
| | | loadStatus.value.splice(current.value, 1, "loadmore"); |
| | | }; |
| | | |
| | | // tabæ 忢 |
| | | const change = ({ index }) => { |
| | | current.value = index; // æ´æ°currentåé |
| | | swiperCurrent.value = index; |
| | | getOrderList(index); |
| | | }; |
| | | |
| | | const animationfinish = (e) => { |
| | | const currentIndex = e.detail.current; |
| | | swiperCurrent.value = currentIndex; |
| | | current.value = currentIndex; // å°currentç弿£ç¡®æ´æ°ä¸ºswiperçcurrent |
| | | }; |
| | | |
| | | // è·åtabsç»ä»¶çref |
| | | const tabs = ref(null); |
| | | </script> |
| | | |
| | | <template> |
| | | <view> |
| | | <view class="wrap"> |
| | | <view class="u-tabs-box"> |
| | | <u-tabs activeColor="#f29100" ref="tabs" :list="list" :current="current" @change="change" |
| | | :is-scroll="false" swiperWidth="750"></u-tabs> |
| | | </view> |
| | | <swiper class="swiper-box" :current="swiperCurrent" @animationfinish="animationfinish"> |
| | | <swiper-item class="swiper-item" v-for="(orderlist, index) in orderList" :key="index"> |
| | | <scroll-view scroll-y style="height: 100%;width: 100%;" @scrolltolower="reachBottom" |
| | | v-if="orderlist.length !== 0"> |
| | | <view class="page-box"> |
| | | <OrderItem v-for="res in orderlist" :key="res.id" :order="res" /> |
| | | <u-loadmore :status="loadStatus[0]" bgColor="#f2f2f2"></u-loadmore> |
| | | </view> |
| | | </scroll-view> |
| | | <scroll-view scroll-y style="height: 100%;width: 100%;" v-else> |
| | | <view class="page-box"> |
| | | <view class="centre"> |
| | | <image src="https://cdn.uviewui.com/uview/template/taobao-order.png" mode="aspectFit" class="empty-image"> |
| | | </image> |
| | | <view class="explain"> |
| | | æ¨è¿æ²¡æç¸å
³ç订å |
| | | <view class="tips">å¯ä»¥å»ççæé£äºæ³ä¹°ç</view> |
| | | </view> |
| | | <view class="btn">é便éé</view> |
| | | </view> |
| | | </view> |
| | | </scroll-view> |
| | | </swiper-item> |
| | | </swiper> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | <style> |
| | | /* #ifndef H5 */ |
| | | page { |
| | | height: 100%; |
| | | background-color: #f2f2f2; |
| | | } |
| | | |
| | | /* #endif */ |
| | | </style> |
| | | |
| | | <style lang="scss" scoped> |
| | | .centre { |
| | | text-align: center; |
| | | margin: 200rpx auto; |
| | | font-size: 32rpx; |
| | | width: 100%; |
| | | |
| | | .empty-image { |
| | | width: 164rpx; |
| | | height: 164rpx; |
| | | border-radius: 50%; |
| | | margin: 0 auto 20rpx; |
| | | display: block; /* ç¡®ä¿å¾çä½ä¸ºå级å
ç´ */ |
| | | } |
| | | |
| | | .tips { |
| | | font-size: 24rpx; |
| | | color: #999999; |
| | | margin-top: 20rpx; |
| | | } |
| | | |
| | | .btn { |
| | | margin: 80rpx auto; |
| | | width: 200rpx; |
| | | border-radius: 32rpx; |
| | | line-height: 64rpx; |
| | | color: #ffffff; |
| | | font-size: 26rpx; |
| | | background: linear-gradient(270deg, rgba(249, 116, 90, 1) 0%, rgba(255, 158, 1, 1) 100%); |
| | | } |
| | | } |
| | | |
| | | .wrap { |
| | | display: flex; |
| | | flex-direction: column; |
| | | height: calc(100vh - var(--window-top)); |
| | | width: 100%; |
| | | } |
| | | |
| | | .swiper-box { |
| | | flex: 1; |
| | | } |
| | | |
| | | .swiper-item { |
| | | height: 100%; |
| | | } |
| | | </style> |